From: Thomas Zimmermann <tzimmermann@suse.de> To: javierm@redhat.com, deller@gmx.de, daniel@ffwll.ch, sam@ravnborg.org, maxime@cerno.tech Cc: linux-fbdev@vger.kernel.org, linux-staging@lists.linux.dev, dri-devel@lists.freedesktop.org, Thomas Zimmermann <tzimmermann@suse.de> Subject: [PATCH 00/11] fbdev: Maintain device ownership with aperture helpers Date: Thu, 7 Jul 2022 17:39:41 +0200 [thread overview] Message-ID: <20220707153952.32264-1-tzimmermann@suse.de> (raw) 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. 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 | 176 ++--------- 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, 788 insertions(+), 735 deletions(-) base-commit: 11d480026e922adacd274306728adb6df6dd262a prerequisite-patch-id: c2b2f08f0eccc9f5df0c0da49fa1d36267deb11d prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24 -- 2.36.1
WARNING: multiple messages have this Message-ID (diff)
From: Thomas Zimmermann <tzimmermann@suse.de> To: javierm@redhat.com, deller@gmx.de, daniel@ffwll.ch, sam@ravnborg.org, maxime@cerno.tech Cc: linux-fbdev@vger.kernel.org, linux-staging@lists.linux.dev, Thomas Zimmermann <tzimmermann@suse.de>, dri-devel@lists.freedesktop.org Subject: [PATCH 00/11] fbdev: Maintain device ownership with aperture helpers Date: Thu, 7 Jul 2022 17:39:41 +0200 [thread overview] Message-ID: <20220707153952.32264-1-tzimmermann@suse.de> (raw) 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. 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 | 176 ++--------- 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, 788 insertions(+), 735 deletions(-) base-commit: 11d480026e922adacd274306728adb6df6dd262a prerequisite-patch-id: c2b2f08f0eccc9f5df0c0da49fa1d36267deb11d prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24 -- 2.36.1
next reply other threads:[~2022-07-07 15:46 UTC|newest] Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-07-07 15:39 Thomas Zimmermann [this message] 2022-07-07 15:39 ` [PATCH 00/11] fbdev: Maintain device ownership with aperture helpers Thomas Zimmermann 2022-07-07 15:39 ` [PATCH 01/11] fbdev: Remove trailing whitespaces Thomas Zimmermann 2022-07-07 15:39 ` Thomas Zimmermann 2022-07-08 12:49 ` Javier Martinez Canillas 2022-07-07 15:39 ` [PATCH 02/11] fbdev/vga16fb: Create EGA/VGA devices in sysfb code Thomas Zimmermann 2022-07-07 15:39 ` Thomas Zimmermann 2022-07-08 13:09 ` Javier Martinez Canillas 2022-07-11 7:58 ` Thomas Zimmermann 2022-07-11 9:54 ` Javier Martinez Canillas 2022-07-11 10:42 ` Thomas Zimmermann 2022-07-11 10:50 ` Javier Martinez Canillas 2022-07-07 15:39 ` [PATCH 03/11] fbdev/vga16fb: Auto-generate module init/exit code Thomas Zimmermann 2022-07-07 15:39 ` Thomas Zimmermann 2022-07-08 13:16 ` Javier Martinez Canillas 2022-07-11 8:01 ` Thomas Zimmermann 2022-07-11 9:55 ` Javier Martinez Canillas 2022-07-07 15:39 ` [PATCH 04/11] fbdev/core: Remove remove_conflicting_pci_framebuffers() Thomas Zimmermann 2022-07-07 15:39 ` Thomas Zimmermann 2022-07-11 10:51 ` Javier Martinez Canillas 2022-07-07 15:39 ` [PATCH 05/11] fbdev: Convert drivers to aperture helpers Thomas Zimmermann 2022-07-07 15:39 ` Thomas Zimmermann 2022-07-11 11:01 ` Javier Martinez Canillas 2022-07-15 11:48 ` Thomas Zimmermann 2022-07-15 11:56 ` Javier Martinez Canillas 2022-07-07 15:39 ` [PATCH 06/11] fbdev: Remove conflicting devices on PCI bus Thomas Zimmermann 2022-07-07 15:39 ` Thomas Zimmermann 2022-07-11 11:13 ` Javier Martinez Canillas 2022-07-15 11:52 ` Thomas Zimmermann 2022-07-07 15:39 ` [PATCH 07/11] video/aperture: Disable and unregister sysfb devices via aperture helpers Thomas Zimmermann 2022-07-07 15:39 ` Thomas Zimmermann 2022-07-11 11:16 ` Javier Martinez Canillas 2022-07-11 11:16 ` Javier Martinez Canillas 2022-07-07 15:39 ` [PATCH 08/11] video: Provide constants for VGA I/O range Thomas Zimmermann 2022-07-07 15:39 ` Thomas Zimmermann 2022-07-11 11:21 ` Javier Martinez Canillas 2022-07-07 15:39 ` [PATCH 09/11] video/aperture: Remove conflicting VGA devices, if any Thomas Zimmermann 2022-07-07 15:39 ` Thomas Zimmermann 2022-07-11 11:24 ` Javier Martinez Canillas 2022-07-07 15:39 ` [PATCH 10/11] fbdev: Acquire framebuffer apertures for firmware devices Thomas Zimmermann 2022-07-07 15:39 ` Thomas Zimmermann 2022-07-11 11:29 ` Javier Martinez Canillas 2022-07-15 11:58 ` Thomas Zimmermann 2022-07-07 15:39 ` [PATCH 11/11] fbdev: Remove conflict-handling code Thomas Zimmermann 2022-07-07 15:39 ` Thomas Zimmermann 2022-07-11 11:33 ` Javier Martinez Canillas
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220707153952.32264-1-tzimmermann@suse.de \ --to=tzimmermann@suse.de \ --cc=daniel@ffwll.ch \ --cc=deller@gmx.de \ --cc=dri-devel@lists.freedesktop.org \ --cc=javierm@redhat.com \ --cc=linux-fbdev@vger.kernel.org \ --cc=linux-staging@lists.linux.dev \ --cc=maxime@cerno.tech \ --cc=sam@ravnborg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.