drm/gma500: Remove generic DRM drivers in probe function
authorThomas Zimmermann <tzimmermann@suse.de>
Tue, 19 Oct 2021 08:09:42 +0000 (10:09 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 21 Oct 2021 07:32:51 +0000 (09:32 +0200)
Gma500 currently removes generic fbdev drivers, but ignores
generic DRM drivers. Use aperture helpers to remove all generic
graphics drivers before loading gma500. Makes gma500 compatible
with simpledrm.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20211019080942.24356-1-tzimmermann@suse.de
drivers/gpu/drm/gma500/psb_drv.c

index 7a10bb3..65cf1c7 100644 (file)
@@ -19,6 +19,7 @@
 #include <acpi/video.h>
 
 #include <drm/drm.h>
+#include <drm/drm_aperture.h>
 #include <drm/drm_drv.h>
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_file.h>
@@ -448,6 +449,17 @@ static int psb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        struct drm_device *dev;
        int ret;
 
+       /*
+        * We cannot yet easily find the framebuffer's location in memory. So
+        * remove all framebuffers here.
+        *
+        * 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);
+       if (ret)
+               return ret;
+
        ret = pcim_enable_device(pdev);
        if (ret)
                return ret;