video/aperture: Only kick vgacon when the pdev is decoding vga
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 6 Apr 2023 13:21:04 +0000 (15:21 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Sun, 16 Apr 2023 12:17:45 +0000 (14:17 +0200)
Otherwise it's a bit silly, and we might throw out the driver for the
screen the user is actually looking at. I haven't found a bug report
for this case yet, but we did get bug reports for the analog case
where we're throwing out the efifb driver.

v2: Flip the check around to make it clear it's a special case for
kicking out the vgacon driver only (Thomas)

v4:
- fixes to commit message
- fix Daniel's S-o-b address

v5:
- add back an S-o-b tag with Daniel's Intel address

Link: https://bugzilla.kernel.org/show_bug.cgi?id=216303
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Javier Martinez Canillas <javierm@redhat.com>
Cc: Helge Deller <deller@gmx.de>
Cc: linux-fbdev@vger.kernel.org
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230406132109.32050-5-tzimmermann@suse.de
drivers/video/aperture.c

index c56553d..b85163e 100644 (file)
@@ -342,13 +342,15 @@ int aperture_remove_conflicting_pci_devices(struct pci_dev *pdev, const char *na
                        return ret;
        }
 
-       /*
-        * WARNING: Apparently we must kick fbdev drivers before vgacon,
-        * otherwise the vga fbdev driver falls over.
-        */
-       ret = vga_remove_vgacon(pdev);
-       if (ret)
-               return ret;
+       if (primary) {
+               /*
+                * WARNING: Apparently we must kick fbdev drivers before vgacon,
+                * otherwise the vga fbdev driver falls over.
+                */
+               ret = vga_remove_vgacon(pdev);
+               if (ret)
+                       return ret;
+       }
 
        return 0;