[L] [PATCH 1/9] drm/gma500: Use drm_aperture_remove_conflicting_pci_framebuffers
Kai-Heng Feng
kai.heng.feng at canonical.com
Wed Jul 26 08:19:39 UTC 2023
From: Daniel Vetter <daniel.vetter at ffwll.ch>
BugLink: https://bugs.launchpad.net/bugs/2028749
This one nukes all framebuffers, which is a bit much. In reality
gma500 is igpu and never shipped with anything discrete, so there should
not be any difference.
v2: Unfortunately the framebuffer sits outside of the pci bars for
gma500, and so only using the pci helpers won't be enough. Otoh if we
only use non-pci helper, then we don't get the vga handling, and
subsequent refactoring to untangle these special cases won't work.
It's not pretty, but the simplest fix (since gma500 really is the only
quirky pci driver like this we have) is to just have both calls.
v4:
- fix Daniel's S-o-b address
v5:
- add back an S-o-b tag with Daniel's Intel address
Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
Cc: Patrik Jakobsson <patrik.r.jakobsson at gmail.com>
Cc: Thomas Zimmermann <tzimmermann at suse.de>
Cc: Javier Martinez Canillas <javierm at redhat.com>
Reviewed-by: Javier Martinez Canillas <javierm at redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230406132109.32050-2-tzimmermann@suse.de
(cherry picked from commit 80e993988b97fe794f3ec2be6db05fe30f9353c3)
Signed-off-by: Kai-Heng Feng <kai.heng.feng at canonical.com>
---
drivers/gpu/drm/gma500/psb_drv.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
index cd9c73f5a64a..000e6704e3c7 100644
--- a/drivers/gpu/drm/gma500/psb_drv.c
+++ b/drivers/gpu/drm/gma500/psb_drv.c
@@ -424,12 +424,17 @@ static int psb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
/*
* We cannot yet easily find the framebuffer's location in memory. So
- * remove all framebuffers here.
+ * remove all framebuffers here. Note that we still want the pci special
+ * handling to kick out vgacon.
*
* TODO: Refactor psb_driver_load() to map vdc_reg earlier. Then we
* might be able to read the framebuffer range from the device.
*/
- ret = drm_aperture_remove_framebuffers(true, &driver);
+ ret = drm_aperture_remove_framebuffers(false, &driver);
+ if (ret)
+ return ret;
+
+ ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &driver);
if (ret)
return ret;
--
2.34.1
More information about the kernel-team
mailing list