[PATCH 1/7] drm/fb-helper: Set framebuffer for vga-switcheroo clients
Thomas Zimmermann
tzimmermann at suse.de
Thu Nov 12 13:21:11 UTC 2020
Set the framebuffer info for devices that support vga switcheroo. For
other devices, this does nothing.
Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
---
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 01ba1da28511..d2ba404a23b3 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -33,8 +33,10 @@
#include <linux/dma-buf.h>
#include <linux/kernel.h>
#include <linux/module.h>
+#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/sysrq.h>
+#include <linux/vga_switcheroo.h>
#include <linux/vmalloc.h>
#include <drm/drm_atomic.h>
@@ -1940,6 +1942,8 @@ EXPORT_SYMBOL(drm_fb_helper_hotplug_event);
void drm_fb_helper_lastclose(struct drm_device *dev)
{
drm_fb_helper_restore_fbdev_mode_unlocked(dev->fb_helper);
+
+ vga_switcheroo_process_delayed_switch();
}
EXPORT_SYMBOL(drm_fb_helper_lastclose);
@@ -2311,6 +2315,10 @@ static int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
#endif
}
+ /* 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), fbi);
+
return 0;
}
--
2.29.2
More information about the dri-devel
mailing list