mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
drm: Do delayed switcheroo in drm_lastclose()
Amdgpu and nouveau call vga_switcheroo_process_delayed_switch() from their lastclose callbacks. Call it from drm_lastclose(), so that the driver functions can finally be removed. Only PCI devices with enabled switcheroo do the delayed switching. The call has no effect on other hardware. v2: - move change to drm_lastclose() (Sima) - update docs for vga_switcheroo_process_delayed_switch() Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240812083000.337744-2-tzimmermann@suse.de
This commit is contained in:
parent
844efaef48
commit
c3c5b79b6e
@ -38,6 +38,7 @@
|
||||
#include <linux/pci.h>
|
||||
#include <linux/poll.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/vga_switcheroo.h>
|
||||
|
||||
#include <drm/drm_client.h>
|
||||
#include <drm/drm_drv.h>
|
||||
@ -404,6 +405,9 @@ void drm_lastclose(struct drm_device * dev)
|
||||
drm_dbg_core(dev, "driver lastclose completed\n");
|
||||
|
||||
drm_client_dev_restore(dev);
|
||||
|
||||
if (dev_is_pci(dev->dev))
|
||||
vga_switcheroo_process_delayed_switch();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -926,8 +926,7 @@ static void vga_switcheroo_debugfs_init(struct vgasr_priv *priv)
|
||||
/**
|
||||
* vga_switcheroo_process_delayed_switch() - helper for delayed switching
|
||||
*
|
||||
* Process a delayed switch if one is pending. DRM drivers should call this
|
||||
* from their ->lastclose callback.
|
||||
* Process a delayed switch if one is pending.
|
||||
*
|
||||
* Return: 0 on success. -EINVAL if no delayed switch is pending, if the client
|
||||
* has unregistered in the meantime or if there are other clients blocking the
|
||||
|
Loading…
Reference in New Issue
Block a user