mbox series

[v2,0/2] video/fbdev: Support 'nomodeset' in PCI drivers

Message ID 20221111133024.9897-1-tzimmermann@suse.de (mailing list archive)
Headers show
Series video/fbdev: Support 'nomodeset' in PCI drivers | expand

Message

Thomas Zimmermann Nov. 11, 2022, 1:30 p.m. UTC
Add support for the kernel's 'nomodeset' parameter to PCI-based
fbdev drivers. The option prevents DRM drivers from loading if they
could possibly displace a hardware-agnostic driver that runs on the
firmware framebuffer. It is a fallback for systems on which the
hardware's native driver does not work correctly.

After the work on the aperture helpers and their integration with
fbdev, it can happen that an fbdev driver replaces a hardware-
agnostic DRM driver. Supporting the nomodeset parameter unifies
the behavior among the graphics drivers and subsystems. An fbdev
driver will not replace any hardware-agnostic driver with nomodeset
given.

v2:
	* print warning for disabled drivers (Helge)
	* improve nomodeset docs (Javier)
	* use fbdev-internal helper

Thomas Zimmermann (2):
  drm: Move nomodeset kernel parameter to drivers/video
  fbdev: Add support for the nomodeset kernel parameter

 .../admin-guide/kernel-parameters.txt         | 15 +++++---
 MAINTAINERS                                   |  2 +
 drivers/gpu/drm/Kconfig                       |  7 +---
 drivers/gpu/drm/Makefile                      |  1 -
 drivers/staging/sm750fb/Kconfig               |  1 +
 drivers/staging/sm750fb/sm750.c               |  3 ++
 drivers/video/Kconfig                         |  4 ++
 drivers/video/Makefile                        |  1 +
 drivers/video/fbdev/Kconfig                   | 37 +++++++++++++++++++
 drivers/video/fbdev/arkfb.c                   |  5 +++
 drivers/video/fbdev/asiliantfb.c              |  3 ++
 drivers/video/fbdev/aty/aty128fb.c            |  5 +++
 drivers/video/fbdev/aty/atyfb_base.c          |  5 +++
 drivers/video/fbdev/aty/radeon_base.c         |  5 +++
 drivers/video/fbdev/carminefb.c               |  3 ++
 drivers/video/fbdev/chipsfb.c                 |  3 ++
 drivers/video/fbdev/cirrusfb.c                |  5 +++
 drivers/video/fbdev/core/fbmem.c              | 15 ++++++++
 drivers/video/fbdev/cyber2000fb.c             |  6 ++-
 drivers/video/fbdev/geode/Kconfig             |  3 ++
 drivers/video/fbdev/geode/gx1fb_core.c        |  5 +++
 drivers/video/fbdev/geode/gxfb_core.c         |  5 +++
 drivers/video/fbdev/geode/lxfb_core.c         |  5 +++
 drivers/video/fbdev/gxt4500.c                 |  3 ++
 drivers/video/fbdev/hyperv_fb.c               |  4 +-
 drivers/video/fbdev/i740fb.c                  |  5 +++
 drivers/video/fbdev/i810/i810_main.c          |  6 +++
 drivers/video/fbdev/imsttfb.c                 |  5 +++
 drivers/video/fbdev/intelfb/intelfbdrv.c      |  3 ++
 drivers/video/fbdev/kyro/fbdev.c              |  5 +++
 drivers/video/fbdev/matrox/matroxfb_base.c    |  3 ++
 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  3 ++
 drivers/video/fbdev/neofb.c                   |  5 +++
 drivers/video/fbdev/nvidia/nvidia.c           |  5 +++
 drivers/video/fbdev/pm2fb.c                   |  5 +++
 drivers/video/fbdev/pm3fb.c                   |  5 +++
 drivers/video/fbdev/pvr2fb.c                  |  5 +++
 drivers/video/fbdev/riva/fbdev.c              |  5 +++
 drivers/video/fbdev/s3fb.c                    |  5 +++
 drivers/video/fbdev/savage/savagefb_driver.c  |  3 ++
 drivers/video/fbdev/sis/sis_main.c            |  5 +++
 drivers/video/fbdev/skeletonfb.c              |  5 +++
 drivers/video/fbdev/sm712fb.c                 |  3 ++
 drivers/video/fbdev/sstfb.c                   |  3 ++
 drivers/video/fbdev/sunxvr2500.c              |  3 ++
 drivers/video/fbdev/sunxvr500.c               |  3 ++
 drivers/video/fbdev/tdfxfb.c                  |  5 +++
 drivers/video/fbdev/tgafb.c                   |  5 +++
 drivers/video/fbdev/tridentfb.c               |  5 +++
 drivers/video/fbdev/vermilion/vermilion.c     |  5 +++
 drivers/video/fbdev/via/via-core.c            |  3 ++
 drivers/video/fbdev/vt8623fb.c                |  5 +++
 .../drm/drm_nomodeset.c => video/nomodeset.c} | 12 +++---
 include/drm/drm_drv.h                         |  8 +++-
 include/linux/fb.h                            |  9 +++++
 include/video/nomodeset.h                     |  8 ++++
 56 files changed, 285 insertions(+), 21 deletions(-)
 rename drivers/{gpu/drm/drm_nomodeset.c => video/nomodeset.c} (63%)
 create mode 100644 include/video/nomodeset.h


base-commit: 3aa97a74d622aa26fe79cf4bd819b6a4fd176e90
prerequisite-patch-id: c2b2f08f0eccc9f5df0c0da49fa1d36267deb11d
prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24
prerequisite-patch-id: 3f204510fcbf9530d6540bd8e6128cce598988b6
prerequisite-patch-id: a0b503ec2c15fdf17e3c93ff0357fd3c27a791f6
prerequisite-patch-id: 2a2d490c863c0e2cb1b25052049b2f1c63f7c443
prerequisite-patch-id: bfad12b053cc616edbc07b5ea3e8f5793b647a5a
prerequisite-patch-id: a1abb89fd8c741f377444432278ea13f142b497d
prerequisite-patch-id: 63b3e0f79bfe4e3e19f389e21c8e0ee010801075