summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/drm_client_event.c
diff options
context:
space:
mode:
authorThomas Zimmermann <tzimmermann@suse.de>2024-12-12 18:08:44 +0100
committerMaarten Lankhorst <dev@lankhorst.se>2025-03-05 21:48:49 +0100
commita93247b58d04750a5d8dff922053d8d7ad6e8917 (patch)
treead31d5149ad21547ab518749937698008d246ca8 /drivers/gpu/drm/drm_client_event.c
parent603cc828aa70260ee28e5ba6a085fdc0d6485941 (diff)
downloadlinux-next-a93247b58d04750a5d8dff922053d8d7ad6e8917.tar.gz
linux-next-a93247b58d04750a5d8dff922053d8d7ad6e8917.zip
drm/client: Send pending hotplug events after resume
If a hotplug event arrives while the client has been suspended, DRM's client code will deliver the event after resuming. The functionality has been taken form i915, where it can be removed by a later commit. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20241212170913.185939-4-tzimmermann@suse.de Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
Diffstat (limited to 'drivers/gpu/drm/drm_client_event.c')
-rw-r--r--drivers/gpu/drm/drm_client_event.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_client_event.c b/drivers/gpu/drm/drm_client_event.c
index 8514df4a2e65..bd93cd93d519 100644
--- a/drivers/gpu/drm/drm_client_event.c
+++ b/drivers/gpu/drm/drm_client_event.c
@@ -60,6 +60,12 @@ static void drm_client_hotplug(struct drm_client_dev *client)
if (client->hotplug_failed)
return;
+ if (client->suspended) {
+ client->hotplug_pending = true;
+ return;
+ }
+
+ client->hotplug_pending = false;
ret = client->funcs->hotplug(client);
drm_dbg_kms(dev, "%s: ret=%d\n", client->name, ret);
if (ret)
@@ -159,6 +165,9 @@ static int drm_client_resume(struct drm_client_dev *client, bool holds_console_l
client->suspended = false;
+ if (client->hotplug_pending)
+ drm_client_hotplug(client);
+
return ret;
}