mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 15:03:52 +08:00
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>
This commit is contained in:
committed by
Maarten Lankhorst
parent
603cc828aa
commit
a93247b58d
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -142,6 +142,14 @@ struct drm_client_dev {
|
||||
*/
|
||||
bool suspended;
|
||||
|
||||
/**
|
||||
* @hotplug_pending:
|
||||
*
|
||||
* A hotplug event has been received while the client was suspended.
|
||||
* Try again on resume.
|
||||
*/
|
||||
bool hotplug_pending;
|
||||
|
||||
/**
|
||||
* @hotplug_failed:
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user