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 tzimmermann@suse.de Reviewed-by: Daniel Vetter daniel.vetter@ffwll.ch Reviewed-by: Alex Deucher alexander.deucher@amd.com Cc: Ben Skeggs bskeggs@redhat.com Cc: Karol Herbst kherbst@redhat.com Cc: Lyude Paul lyude@redhat.com Cc: Thomas Zimmermann tzimmermann@suse.de Cc: Javier Martinez Canillas javierm@redhat.com Cc: Laurent Pinchart laurent.pinchart@ideasonboard.com Cc: Jani Nikula jani.nikula@intel.com Cc: Dave Airlie airlied@redhat.com Cc: Evan Quan evan.quan@amd.com Cc: Christian König christian.koenig@amd.com Cc: Alex Deucher alexander.deucher@amd.com Cc: Hawking Zhang Hawking.Zhang@amd.com Cc: Likun Gao Likun.Gao@amd.com Cc: "Christian König" christian.koenig@amd.com Cc: Stanley Yang Stanley.Yang@amd.com Cc: "Tianci.Yin" tianci.yin@amd.com Cc: Xiaojian Du Xiaojian.Du@amd.com Cc: Andrey Grodzovsky andrey.grodzovsky@amd.com Cc: YiPeng Chai YiPeng.Chai@amd.com Cc: Somalapuram Amaranath Amaranath.Somalapuram@amd.com Cc: Bokun Zhang Bokun.Zhang@amd.com Cc: Guchun Chen guchun.chen@amd.com Cc: Hamza Mahfooz hamza.mahfooz@amd.com Cc: Aurabindo Pillai aurabindo.pillai@amd.com Cc: Mario Limonciello mario.limonciello@amd.com Cc: Solomon Chiu solomon.chiu@amd.com Cc: Kai-Heng Feng kai.heng.feng@canonical.com Cc: Felix Kuehling Felix.Kuehling@amd.com Cc: Daniel Vetter daniel.vetter@ffwll.ch Cc: "Marek Olšák" marek.olsak@amd.com Cc: Sam Ravnborg sam@ravnborg.org Cc: Hans de Goede hdegoede@redhat.com Cc: "Ville Syrjälä" ville.syrjala@linux.intel.com Cc: dri-devel@lists.freedesktop.org Cc: nouveau@lists.freedesktop.org Cc: stable@vger.kernel.org # v5.17+ --- drivers/gpu/drm/drm_fb_helper.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 367fb8b2d5fa..c5c13e192b64 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> @@ -1924,6 +1926,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper, int preferred_bpp) { struct drm_client_dev *client = &fb_helper->client; + struct drm_device *dev = fb_helper->dev; struct drm_fb_helper_surface_size sizes; int ret;
@@ -1945,6 +1948,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; }
linux-stable-mirror@lists.linaro.org