Commit a93247b5 authored by Thomas Zimmermann's avatar Thomas Zimmermann Committed by Maarten Lankhorst
Browse files

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: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241212170913.185939-4-tzimmermann@suse.de


Signed-off-by: default avatarMaarten Lankhorst <dev@lankhorst.se>
parent 603cc828
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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;
}

+8 −0
Original line number Diff line number Diff line
@@ -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:
	 *