aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Zimmermann <[email protected]>2023-01-16 12:54:24 +0100
committerThomas Zimmermann <[email protected]>2023-01-18 17:12:23 +0100
commitd1d5101452ab04e5a3f010bdd200971d78956e5a (patch)
treecbd82e1906d8d0db119e12b512871ec5fa89a85b
parenta273e95721e96885971a05f1b34cb6d093904d9d (diff)
drm/fb-helper: Set framebuffer for vga-switcheroo clients
Set the framebuffer info for drivers that support VGA switcheroo. Only affects the amdgpu and nouveau drivers, which use VGA switcheroo and generic fbdev emulation. For other drivers, this does nothing. This fixes a potential regression in the console code. Both, amdgpu and nouveau, invoked vga_switcheroo_client_fb_set() from their internal fbdev code. But the call got lost when the drivers switched to the generic emulation. Fixes: 087451f372bf ("drm/amdgpu: use generic fb helpers instead of setting up AMD own's.") Fixes: 4a16dd9d18a0 ("drm/nouveau/kms: switch to drm fbdev helpers") Signed-off-by: Thomas Zimmermann <[email protected]> Reviewed-by: Daniel Vetter <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Cc: Ben Skeggs <[email protected]> Cc: Karol Herbst <[email protected]> Cc: Lyude Paul <[email protected]> Cc: Thomas Zimmermann <[email protected]> Cc: Javier Martinez Canillas <[email protected]> Cc: Laurent Pinchart <[email protected]> Cc: Jani Nikula <[email protected]> Cc: Dave Airlie <[email protected]> Cc: Evan Quan <[email protected]> Cc: Christian König <[email protected]> Cc: Alex Deucher <[email protected]> Cc: Hawking Zhang <[email protected]> Cc: Likun Gao <[email protected]> Cc: "Christian König" <[email protected]> Cc: Stanley Yang <[email protected]> Cc: "Tianci.Yin" <[email protected]> Cc: Xiaojian Du <[email protected]> Cc: Andrey Grodzovsky <[email protected]> Cc: YiPeng Chai <[email protected]> Cc: Somalapuram Amaranath <[email protected]> Cc: Bokun Zhang <[email protected]> Cc: Guchun Chen <[email protected]> Cc: Hamza Mahfooz <[email protected]> Cc: Aurabindo Pillai <[email protected]> Cc: Mario Limonciello <[email protected]> Cc: Solomon Chiu <[email protected]> Cc: Kai-Heng Feng <[email protected]> Cc: Felix Kuehling <[email protected]> Cc: Daniel Vetter <[email protected]> Cc: "Marek Olšák" <[email protected]> Cc: Sam Ravnborg <[email protected]> Cc: Hans de Goede <[email protected]> Cc: "Ville Syrjälä" <[email protected]> Cc: [email protected] Cc: [email protected] Cc: <[email protected]> # v5.17+ Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
-rw-r--r--drivers/gpu/drm/drm_fb_helper.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index b3a731b9170a..0d0c26ebab90 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -30,7 +30,9 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/console.h>
+#include <linux/pci.h>
#include <linux/sysrq.h>
+#include <linux/vga_switcheroo.h>
#include <drm/drm_atomic.h>
#include <drm/drm_drv.h>
@@ -1909,6 +1911,11 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
return ret;
strcpy(fb_helper->fb->comm, "[fbcon]");
+
+ /* Set the fb info for vgaswitcheroo clients. Does nothing otherwise. */
+ if (dev_is_pci(dev->dev))
+ vga_switcheroo_client_fb_set(to_pci_dev(dev->dev), fb_helper->info);
+
return 0;
}