Merge tag 'drm-misc-next-2019-03-28-1' of git://anongit.freedesktop.org/drm/drm-misc...
[platform/kernel/linux-starfive.git] / include / drm / drm_fb_helper.h
index 81ae48a..17857e4 100644 (file)
@@ -36,6 +36,7 @@ struct drm_fb_helper;
 #include <drm/drm_crtc.h>
 #include <drm/drm_device.h>
 #include <linux/kgdb.h>
+#include <linux/vgaarb.h>
 
 enum mode_set_atomic {
        LEAVE_ATOMIC_MODE_SET,
@@ -635,11 +636,18 @@ drm_fb_helper_remove_conflicting_pci_framebuffers(struct pci_dev *pdev,
                                                  int resource_id,
                                                  const char *name)
 {
+       int ret = 0;
+
+       /*
+        * WARNING: Apparently we must kick fbdev drivers before vgacon,
+        * otherwise the vga fbdev driver falls over.
+        */
 #if IS_REACHABLE(CONFIG_FB)
-       return remove_conflicting_pci_framebuffers(pdev, resource_id, name);
-#else
-       return 0;
+       ret = remove_conflicting_pci_framebuffers(pdev, resource_id, name);
 #endif
+       if (ret == 0)
+               ret = vga_remove_vgacon(pdev);
+       return ret;
 }
 
 #endif