* [PATCH v4 0/6] drm: add per-connector hotplug events
@ 2021-10-18 8:47 Simon Ser
2021-10-18 8:47 ` [PATCH v4 1/6] drm/sysfs: introduce drm_sysfs_connector_hotplug_event Simon Ser
` (5 more replies)
0 siblings, 6 replies; 10+ messages in thread
From: Simon Ser @ 2021-10-18 8:47 UTC (permalink / raw)
To: dri-devel
When a uevent only updates a single connector, add a CONNECTOR property
to the uevent. This allows user-space to ignore other connectors when
handling the uevent. This is purely an optimization, drivers can still
send a uevent without the CONNECTOR property.
The CONNECTOR property is already set when sending HDCP property update
uevents, see drm_sysfs_connector_status_event.
This has been tested with a wlroots patch [1].
amdgpu and the probe-helper has been updated to use these new fine-grained
uevents.
Changes in v4: address comments from Ville, Maxime and Sam.
Simon Ser (6):
drm/sysfs: introduce drm_sysfs_connector_hotplug_event
drm/probe-helper: add drm_kms_helper_connector_hotplug_event
drm/connector: use drm_sysfs_connector_hotplug_event
amdgpu: use drm_kms_helper_connector_hotplug_event
drm/probe-helper: use drm_kms_helper_connector_hotplug_event
i915/display/dp: send a more fine-grained link-status uevent
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 8 ++--
.../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 4 +-
drivers/gpu/drm/drm_connector.c | 2 +-
drivers/gpu/drm/drm_probe_helper.c | 48 +++++++++++++++----
drivers/gpu/drm/drm_sysfs.c | 25 ++++++++++
drivers/gpu/drm/i915/display/intel_dp.c | 2 +-
include/drm/drm_probe_helper.h | 1 +
include/drm/drm_sysfs.h | 1 +
8 files changed, 75 insertions(+), 16 deletions(-)
base-commit: f6632721cd6231e1bf28b5317dcc7543e43359f7
--
2.33.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v4 1/6] drm/sysfs: introduce drm_sysfs_connector_hotplug_event
2021-10-18 8:47 [PATCH v4 0/6] drm: add per-connector hotplug events Simon Ser
@ 2021-10-18 8:47 ` Simon Ser
2021-10-18 8:47 ` [PATCH v4 2/6] drm/probe-helper: add drm_kms_helper_connector_hotplug_event Simon Ser
` (4 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Simon Ser @ 2021-10-18 8:47 UTC (permalink / raw)
To: dri-devel; +Cc: Sam Ravnborg, Harry Wentland
This function sends a hotplug uevent with a CONNECTOR property.
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Harry Wentland <harry.wentland@amd.com>
---
drivers/gpu/drm/drm_sysfs.c | 25 +++++++++++++++++++++++++
include/drm/drm_sysfs.h | 1 +
2 files changed, 26 insertions(+)
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
index 76ff6ec3421b..430e00b16eec 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -409,6 +409,31 @@ void drm_sysfs_hotplug_event(struct drm_device *dev)
}
EXPORT_SYMBOL(drm_sysfs_hotplug_event);
+/**
+ * drm_sysfs_connector_hotplug_event - generate a DRM uevent for any connector
+ * change
+ * @connector: connector which has changed
+ *
+ * Send a uevent for the DRM connector specified by @connector. This will send
+ * a uevent with the properties HOTPLUG=1 and CONNECTOR.
+ */
+void drm_sysfs_connector_hotplug_event(struct drm_connector *connector)
+{
+ struct drm_device *dev = connector->dev;
+ char hotplug_str[] = "HOTPLUG=1", conn_id[21];
+ char *envp[] = { hotplug_str, conn_id, NULL };
+
+ snprintf(conn_id, sizeof(conn_id),
+ "CONNECTOR=%u", connector->base.id);
+
+ drm_dbg_kms(connector->dev,
+ "[CONNECTOR:%d:%s] generating connector hotplug event\n",
+ connector->base.id, connector->name);
+
+ kobject_uevent_env(&dev->primary->kdev->kobj, KOBJ_CHANGE, envp);
+}
+EXPORT_SYMBOL(drm_sysfs_connector_hotplug_event);
+
/**
* drm_sysfs_connector_status_event - generate a DRM uevent for connector
* property status change
diff --git a/include/drm/drm_sysfs.h b/include/drm/drm_sysfs.h
index d454ef617b2c..6273cac44e47 100644
--- a/include/drm/drm_sysfs.h
+++ b/include/drm/drm_sysfs.h
@@ -11,6 +11,7 @@ int drm_class_device_register(struct device *dev);
void drm_class_device_unregister(struct device *dev);
void drm_sysfs_hotplug_event(struct drm_device *dev);
+void drm_sysfs_connector_hotplug_event(struct drm_connector *connector);
void drm_sysfs_connector_status_event(struct drm_connector *connector,
struct drm_property *property);
#endif
--
2.33.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v4 2/6] drm/probe-helper: add drm_kms_helper_connector_hotplug_event
2021-10-18 8:47 [PATCH v4 0/6] drm: add per-connector hotplug events Simon Ser
2021-10-18 8:47 ` [PATCH v4 1/6] drm/sysfs: introduce drm_sysfs_connector_hotplug_event Simon Ser
@ 2021-10-18 8:47 ` Simon Ser
2021-10-18 8:47 ` [PATCH v4 3/6] drm/connector: use drm_sysfs_connector_hotplug_event Simon Ser
` (3 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Simon Ser @ 2021-10-18 8:47 UTC (permalink / raw)
To: dri-devel; +Cc: Sam Ravnborg, Harry Wentland
This function is the same as drm_kms_helper_hotplug_event, but takes
a connector instead of a device.
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Harry Wentland <harry.wentland@amd.com>
---
drivers/gpu/drm/drm_probe_helper.c | 23 +++++++++++++++++++++++
include/drm/drm_probe_helper.h | 1 +
2 files changed, 24 insertions(+)
diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c
index 61d5c57f23e1..3aef3b188c99 100644
--- a/drivers/gpu/drm/drm_probe_helper.c
+++ b/drivers/gpu/drm/drm_probe_helper.c
@@ -604,6 +604,9 @@ EXPORT_SYMBOL(drm_helper_probe_single_connector_modes);
*
* This function must be called from process context with no mode
* setting locks held.
+ *
+ * If only a single connector has changed, consider calling
+ * drm_kms_helper_connector_hotplug_event() instead.
*/
void drm_kms_helper_hotplug_event(struct drm_device *dev)
{
@@ -616,6 +619,26 @@ void drm_kms_helper_hotplug_event(struct drm_device *dev)
}
EXPORT_SYMBOL(drm_kms_helper_hotplug_event);
+/**
+ * drm_kms_helper_connector_hotplug_event - fire off a KMS connector hotplug event
+ * @connector: drm_connector which has changed
+ *
+ * This is the same as drm_kms_helper_hotplug_event(), except it fires a more
+ * fine-grained uevent for a single connector.
+ */
+void drm_kms_helper_connector_hotplug_event(struct drm_connector *connector)
+{
+ struct drm_device *dev = connector->dev;
+
+ /* send a uevent + call fbdev */
+ drm_sysfs_connector_hotplug_event(connector);
+ if (dev->mode_config.funcs->output_poll_changed)
+ dev->mode_config.funcs->output_poll_changed(dev);
+
+ drm_client_dev_hotplug(dev);
+}
+EXPORT_SYMBOL(drm_kms_helper_connector_hotplug_event);
+
static void output_poll_execute(struct work_struct *work)
{
struct delayed_work *delayed_work = to_delayed_work(work);
diff --git a/include/drm/drm_probe_helper.h b/include/drm/drm_probe_helper.h
index 04c57564c397..48300aa6ca71 100644
--- a/include/drm/drm_probe_helper.h
+++ b/include/drm/drm_probe_helper.h
@@ -20,6 +20,7 @@ void drm_kms_helper_poll_fini(struct drm_device *dev);
bool drm_helper_hpd_irq_event(struct drm_device *dev);
bool drm_connector_helper_hpd_irq_event(struct drm_connector *connector);
void drm_kms_helper_hotplug_event(struct drm_device *dev);
+void drm_kms_helper_connector_hotplug_event(struct drm_connector *connector);
void drm_kms_helper_poll_disable(struct drm_device *dev);
void drm_kms_helper_poll_enable(struct drm_device *dev);
--
2.33.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v4 3/6] drm/connector: use drm_sysfs_connector_hotplug_event
2021-10-18 8:47 [PATCH v4 0/6] drm: add per-connector hotplug events Simon Ser
2021-10-18 8:47 ` [PATCH v4 1/6] drm/sysfs: introduce drm_sysfs_connector_hotplug_event Simon Ser
2021-10-18 8:47 ` [PATCH v4 2/6] drm/probe-helper: add drm_kms_helper_connector_hotplug_event Simon Ser
@ 2021-10-18 8:47 ` Simon Ser
2021-10-18 8:47 ` [PATCH v4 4/6] amdgpu: use drm_kms_helper_connector_hotplug_event Simon Ser
` (2 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Simon Ser @ 2021-10-18 8:47 UTC (permalink / raw)
To: dri-devel; +Cc: Sam Ravnborg, Harry Wentland
In drm_connector_register, use drm_sysfs_connector_hotplug_event
instead of drm_sysfs_hotplug_event, because the hotplug event
only updates a single connector.
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Harry Wentland <harry.wentland@amd.com>
---
drivers/gpu/drm/drm_connector.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index ec3973e8963c..a50c82bc2b2f 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -547,7 +547,7 @@ int drm_connector_register(struct drm_connector *connector)
connector->registration_state = DRM_CONNECTOR_REGISTERED;
/* Let userspace know we have a new connector */
- drm_sysfs_hotplug_event(connector->dev);
+ drm_sysfs_connector_hotplug_event(connector);
if (connector->privacy_screen)
drm_privacy_screen_register_notifier(connector->privacy_screen,
--
2.33.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v4 4/6] amdgpu: use drm_kms_helper_connector_hotplug_event
2021-10-18 8:47 [PATCH v4 0/6] drm: add per-connector hotplug events Simon Ser
` (2 preceding siblings ...)
2021-10-18 8:47 ` [PATCH v4 3/6] drm/connector: use drm_sysfs_connector_hotplug_event Simon Ser
@ 2021-10-18 8:47 ` Simon Ser
2021-10-18 8:47 ` [PATCH v4 5/6] drm/probe-helper: " Simon Ser
2021-10-18 8:47 ` [PATCH v4 6/6] i915/display/dp: send a more fine-grained link-status uevent Simon Ser
5 siblings, 0 replies; 10+ messages in thread
From: Simon Ser @ 2021-10-18 8:47 UTC (permalink / raw)
To: dri-devel; +Cc: Harry Wentland
When updating a single connector, use
drm_kms_helper_connector_hotplug_event instead of
drm_kms_helper_hotplug_event.
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
---
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 8 ++++----
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 9b1fc54555ee..c261e57d9a22 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -2652,7 +2652,7 @@ static void handle_hpd_irq(void *param)
drm_modeset_unlock_all(dev);
if (aconnector->base.force == DRM_FORCE_UNSPECIFIED)
- drm_kms_helper_hotplug_event(dev);
+ drm_kms_helper_connector_hotplug_event(connector);
} else if (dc_link_detect(aconnector->dc_link, DETECT_REASON_HPD)) {
if (new_connection_type == dc_connection_none &&
@@ -2666,7 +2666,7 @@ static void handle_hpd_irq(void *param)
drm_modeset_unlock_all(dev);
if (aconnector->base.force == DRM_FORCE_UNSPECIFIED)
- drm_kms_helper_hotplug_event(dev);
+ drm_kms_helper_connector_hotplug_event(connector);
}
mutex_unlock(&aconnector->hpd_lock);
@@ -2833,7 +2833,7 @@ static void handle_hpd_rx_irq(void *param)
dm_restore_drm_connector_state(dev, connector);
drm_modeset_unlock_all(dev);
- drm_kms_helper_hotplug_event(dev);
+ drm_kms_helper_connector_hotplug_event(connector);
} else if (dc_link_detect(dc_link, DETECT_REASON_HPDRX)) {
if (aconnector->fake_enable)
@@ -2846,7 +2846,7 @@ static void handle_hpd_rx_irq(void *param)
dm_restore_drm_connector_state(dev, connector);
drm_modeset_unlock_all(dev);
- drm_kms_helper_hotplug_event(dev);
+ drm_kms_helper_connector_hotplug_event(connector);
}
}
#ifdef CONFIG_DRM_AMD_DC_HDCP
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
index 87daa78a32b8..23e789855d17 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
@@ -1241,7 +1241,7 @@ static ssize_t trigger_hotplug(struct file *f, const char __user *buf,
dm_restore_drm_connector_state(dev, connector);
drm_modeset_unlock_all(dev);
- drm_kms_helper_hotplug_event(dev);
+ drm_kms_helper_connector_hotplug_event(connector);
} else if (param[0] == 0) {
if (!aconnector->dc_link)
goto unlock;
@@ -1263,7 +1263,7 @@ static ssize_t trigger_hotplug(struct file *f, const char __user *buf,
dm_restore_drm_connector_state(dev, connector);
drm_modeset_unlock_all(dev);
- drm_kms_helper_hotplug_event(dev);
+ drm_kms_helper_connector_hotplug_event(connector);
}
unlock:
--
2.33.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v4 5/6] drm/probe-helper: use drm_kms_helper_connector_hotplug_event
2021-10-18 8:47 [PATCH v4 0/6] drm: add per-connector hotplug events Simon Ser
` (3 preceding siblings ...)
2021-10-18 8:47 ` [PATCH v4 4/6] amdgpu: use drm_kms_helper_connector_hotplug_event Simon Ser
@ 2021-10-18 8:47 ` Simon Ser
2021-10-19 14:04 ` Maxime Ripard
2021-10-27 15:24 ` Sam Ravnborg
2021-10-18 8:47 ` [PATCH v4 6/6] i915/display/dp: send a more fine-grained link-status uevent Simon Ser
5 siblings, 2 replies; 10+ messages in thread
From: Simon Ser @ 2021-10-18 8:47 UTC (permalink / raw)
To: dri-devel; +Cc: Ville Syrjala, Sam Ravnborg, Maxime Ripard
If an hotplug event only updates a single connector, use
drm_kms_helper_connector_hotplug_event instead of
drm_kms_helper_hotplug_event.
Changes in v4:
- Simplify loop logic (Ville, Sam)
- Update drm_connector_helper_hpd_irq_event (Maxime)
Signed-off-by: Simon Ser <contact@emersion.fr>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Maxime Ripard <maxime@cerno.tech>
---
drivers/gpu/drm/drm_probe_helper.c | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c
index 3aef3b188c99..682359512996 100644
--- a/drivers/gpu/drm/drm_probe_helper.c
+++ b/drivers/gpu/drm/drm_probe_helper.c
@@ -888,7 +888,7 @@ bool drm_connector_helper_hpd_irq_event(struct drm_connector *connector)
mutex_unlock(&dev->mode_config.mutex);
if (changed) {
- drm_kms_helper_hotplug_event(dev);
+ drm_kms_helper_connector_hotplug_event(connector);
drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Sent hotplug event\n",
connector->base.id,
connector->name);
@@ -927,9 +927,9 @@ EXPORT_SYMBOL(drm_connector_helper_hpd_irq_event);
*/
bool drm_helper_hpd_irq_event(struct drm_device *dev)
{
- struct drm_connector *connector;
+ struct drm_connector *connector, *first_changed_connector = NULL;
struct drm_connector_list_iter conn_iter;
- bool changed = false;
+ int changed = 0;
if (!dev->mode_config.poll_enabled)
return false;
@@ -941,16 +941,25 @@ bool drm_helper_hpd_irq_event(struct drm_device *dev)
if (!(connector->polled & DRM_CONNECTOR_POLL_HPD))
continue;
- if (check_connector_changed(connector))
- changed = true;
+ if (check_connector_changed(connector)) {
+ if (!first_changed_connector) {
+ drm_connector_get(connector);
+ first_changed_connector = connector;
+ }
+
+ changed++;
+ }
}
drm_connector_list_iter_end(&conn_iter);
mutex_unlock(&dev->mode_config.mutex);
- if (changed) {
+ if (changed == 1)
+ drm_kms_helper_connector_hotplug_event(first_changed_connector);
+ else if (changed > 0)
drm_kms_helper_hotplug_event(dev);
- DRM_DEBUG_KMS("Sent hotplug event\n");
- }
+
+ if (first_changed_connector)
+ drm_connector_put(first_changed_connector);
return changed;
}
--
2.33.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v4 6/6] i915/display/dp: send a more fine-grained link-status uevent
2021-10-18 8:47 [PATCH v4 0/6] drm: add per-connector hotplug events Simon Ser
` (4 preceding siblings ...)
2021-10-18 8:47 ` [PATCH v4 5/6] drm/probe-helper: " Simon Ser
@ 2021-10-18 8:47 ` Simon Ser
2021-10-28 16:37 ` Ville Syrjälä
5 siblings, 1 reply; 10+ messages in thread
From: Simon Ser @ 2021-10-18 8:47 UTC (permalink / raw)
To: dri-devel; +Cc: Ville Syrjala
When link-status changes, send a hotplug uevent which contains the
connector ID. That way, user-space can more easily figure out that
only this connector has been updated.
Changes in v4: avoid sending two uevents (Ville)
Signed-off-by: Simon Ser <contact@emersion.fr>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_dp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 04175f359fd6..8b81a709d33b 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5263,7 +5263,7 @@ static void intel_dp_modeset_retry_work_fn(struct work_struct *work)
DRM_MODE_LINK_STATUS_BAD);
mutex_unlock(&connector->dev->mode_config.mutex);
/* Send Hotplug uevent so userspace can reprobe */
- drm_kms_helper_hotplug_event(connector->dev);
+ drm_kms_helper_connector_hotplug_event(connector);
}
bool
--
2.33.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v4 5/6] drm/probe-helper: use drm_kms_helper_connector_hotplug_event
2021-10-18 8:47 ` [PATCH v4 5/6] drm/probe-helper: " Simon Ser
@ 2021-10-19 14:04 ` Maxime Ripard
2021-10-27 15:24 ` Sam Ravnborg
1 sibling, 0 replies; 10+ messages in thread
From: Maxime Ripard @ 2021-10-19 14:04 UTC (permalink / raw)
To: Simon Ser; +Cc: dri-devel, Ville Syrjala, Sam Ravnborg
[-- Attachment #1: Type: text/plain, Size: 578 bytes --]
On Mon, Oct 18, 2021 at 08:47:30AM +0000, Simon Ser wrote:
> If an hotplug event only updates a single connector, use
> drm_kms_helper_connector_hotplug_event instead of
> drm_kms_helper_hotplug_event.
>
> Changes in v4:
> - Simplify loop logic (Ville, Sam)
> - Update drm_connector_helper_hpd_irq_event (Maxime)
>
> Signed-off-by: Simon Ser <contact@emersion.fr>
> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Cc: Maxime Ripard <maxime@cerno.tech>
Reviewed-by: Maxime Ripard <maxime@cerno.tech>
Thanks!
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v4 5/6] drm/probe-helper: use drm_kms_helper_connector_hotplug_event
2021-10-18 8:47 ` [PATCH v4 5/6] drm/probe-helper: " Simon Ser
2021-10-19 14:04 ` Maxime Ripard
@ 2021-10-27 15:24 ` Sam Ravnborg
1 sibling, 0 replies; 10+ messages in thread
From: Sam Ravnborg @ 2021-10-27 15:24 UTC (permalink / raw)
To: Simon Ser; +Cc: dri-devel, Ville Syrjala, Maxime Ripard
Hi Simon,
On Mon, Oct 18, 2021 at 08:47:30AM +0000, Simon Ser wrote:
> If an hotplug event only updates a single connector, use
> drm_kms_helper_connector_hotplug_event instead of
> drm_kms_helper_hotplug_event.
>
> Changes in v4:
> - Simplify loop logic (Ville, Sam)
> - Update drm_connector_helper_hpd_irq_event (Maxime)
>
> Signed-off-by: Simon Ser <contact@emersion.fr>
> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Cc: Maxime Ripard <maxime@cerno.tech>
Thanks, I like this better.
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Maybe I am late and this was already applied...
Sam
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v4 6/6] i915/display/dp: send a more fine-grained link-status uevent
2021-10-18 8:47 ` [PATCH v4 6/6] i915/display/dp: send a more fine-grained link-status uevent Simon Ser
@ 2021-10-28 16:37 ` Ville Syrjälä
0 siblings, 0 replies; 10+ messages in thread
From: Ville Syrjälä @ 2021-10-28 16:37 UTC (permalink / raw)
To: Simon Ser; +Cc: dri-devel
On Mon, Oct 18, 2021 at 08:47:31AM +0000, Simon Ser wrote:
> When link-status changes, send a hotplug uevent which contains the
> connector ID. That way, user-space can more easily figure out that
> only this connector has been updated.
>
> Changes in v4: avoid sending two uevents (Ville)
>
> Signed-off-by: Simon Ser <contact@emersion.fr>
> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_dp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 04175f359fd6..8b81a709d33b 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -5263,7 +5263,7 @@ static void intel_dp_modeset_retry_work_fn(struct work_struct *work)
> DRM_MODE_LINK_STATUS_BAD);
> mutex_unlock(&connector->dev->mode_config.mutex);
> /* Send Hotplug uevent so userspace can reprobe */
> - drm_kms_helper_hotplug_event(connector->dev);
> + drm_kms_helper_connector_hotplug_event(connector);
> }
>
> bool
> --
> 2.33.1
>
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-10-28 16:37 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-18 8:47 [PATCH v4 0/6] drm: add per-connector hotplug events Simon Ser
2021-10-18 8:47 ` [PATCH v4 1/6] drm/sysfs: introduce drm_sysfs_connector_hotplug_event Simon Ser
2021-10-18 8:47 ` [PATCH v4 2/6] drm/probe-helper: add drm_kms_helper_connector_hotplug_event Simon Ser
2021-10-18 8:47 ` [PATCH v4 3/6] drm/connector: use drm_sysfs_connector_hotplug_event Simon Ser
2021-10-18 8:47 ` [PATCH v4 4/6] amdgpu: use drm_kms_helper_connector_hotplug_event Simon Ser
2021-10-18 8:47 ` [PATCH v4 5/6] drm/probe-helper: " Simon Ser
2021-10-19 14:04 ` Maxime Ripard
2021-10-27 15:24 ` Sam Ravnborg
2021-10-18 8:47 ` [PATCH v4 6/6] i915/display/dp: send a more fine-grained link-status uevent Simon Ser
2021-10-28 16:37 ` Ville Syrjälä
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.