[PATCH v2 00/11] fbdev: Maintain device ownership with aperture helpers
Thomas Zimmermann
tzimmermann at suse.de
Mon Jul 18 07:23:11 UTC 2022
Fbdev firmware drivers acquire ownership of framebuffer I/O ranges and
hand them over to native drivers during the boot process. Re-implement
this mechanism with aperture helpers and remove the respective fbdev
code.
This change allows to perform hand-over from DRM firmware drivers. In a
later patchset, device ownership can be moved from DRM and fbdev entirely
into aperture helpers.
Patches 1 and 4 are cleanups.
Patches 2 and 3 integrate EGA/VGA support into sysfb, although it's not
clear if the x86 architecture code actually still supports VGA graphics
mode.
Patches 5 to 10 replace fbdev's ownership management with aperture
helpers. This includes removal of conflicting framebuffer drivers,
removal of conflicting VGA drivers and registration of fbdev firmware
devices. Notably, many PCI-based fbdev drivers failed to remove firmware
devices until now; and therefore probably haven't worked correctly for
some time.
Patch 11 removes the implementation of fbdev ownership management.
The patchset has been tested by handing over device ownership between
firmware and native drivers of DRM and fbdev in various combinations.
v2:
* remove unused options handling from vga16fb (Javier)
* more elaborate commit messages (Javier)
* remove unused internal functions in fbmem.c
Thomas Zimmermann (11):
fbdev: Remove trailing whitespaces
fbdev/vga16fb: Create EGA/VGA devices in sysfb code
fbdev/vga16fb: Auto-generate module init/exit code
fbdev/core: Remove remove_conflicting_pci_framebuffers()
fbdev: Convert drivers to aperture helpers
fbdev: Remove conflicting devices on PCI bus
video/aperture: Disable and unregister sysfb devices via aperture
helpers
video: Provide constants for VGA I/O range
video/aperture: Remove conflicting VGA devices, if any
fbdev: Acquire framebuffer apertures for firmware devices
fbdev: Remove conflict-handling code
drivers/firmware/sysfb.c | 4 +
drivers/staging/sm750fb/sm750.c | 15 +-
drivers/video/aperture.c | 69 ++--
drivers/video/fbdev/arkfb.c | 5 +
drivers/video/fbdev/asiliantfb.c | 5 +
drivers/video/fbdev/aty/aty128fb.c | 57 ++--
drivers/video/fbdev/aty/atyfb_base.c | 7 +-
drivers/video/fbdev/aty/radeon_base.c | 83 +++--
drivers/video/fbdev/carminefb.c | 5 +
drivers/video/fbdev/chipsfb.c | 13 +-
drivers/video/fbdev/cirrusfb.c | 5 +
drivers/video/fbdev/core/fbmem.c | 213 ++-----------
drivers/video/fbdev/cyber2000fb.c | 5 +
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 | 5 +
drivers/video/fbdev/hyperv_fb.c | 6 +-
drivers/video/fbdev/i740fb.c | 5 +
drivers/video/fbdev/i810/i810_main.c | 315 ++++++++++---------
drivers/video/fbdev/imsttfb.c | 36 ++-
drivers/video/fbdev/intelfb/intelfbdrv.c | 5 +
drivers/video/fbdev/kyro/fbdev.c | 5 +
drivers/video/fbdev/matrox/matroxfb_base.c | 5 +
drivers/video/fbdev/mb862xx/mb862xxfbdrv.c | 5 +
drivers/video/fbdev/neofb.c | 41 +--
drivers/video/fbdev/nvidia/nvidia.c | 7 +-
drivers/video/fbdev/pm2fb.c | 5 +
drivers/video/fbdev/pm3fb.c | 5 +
drivers/video/fbdev/pvr2fb.c | 5 +
drivers/video/fbdev/riva/fbdev.c | 67 ++--
drivers/video/fbdev/s3fb.c | 5 +
drivers/video/fbdev/savage/savagefb_driver.c | 5 +
drivers/video/fbdev/sis/sis_main.c | 5 +
drivers/video/fbdev/skeletonfb.c | 210 +++++++------
drivers/video/fbdev/sm712fb.c | 5 +
drivers/video/fbdev/sstfb.c | 43 +--
drivers/video/fbdev/sunxvr2500.c | 5 +
drivers/video/fbdev/sunxvr500.c | 5 +
drivers/video/fbdev/tdfxfb.c | 5 +
drivers/video/fbdev/tgafb.c | 17 +-
drivers/video/fbdev/tridentfb.c | 5 +
drivers/video/fbdev/vermilion/vermilion.c | 7 +-
drivers/video/fbdev/vga16fb.c | 191 +++++------
drivers/video/fbdev/via/via-core.c | 5 +
drivers/video/fbdev/vt8623fb.c | 5 +
include/linux/fb.h | 4 -
include/video/vga.h | 20 +-
48 files changed, 776 insertions(+), 784 deletions(-)
base-commit: ebea934e2651857c9b56cc80bf99460ee18a3592
--
2.36.1
More information about the dri-devel
mailing list