mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-11 15:49:56 +00:00
drm/nouveau/disp: use drm_kms_helper_connector_hotplug_event()
This adds more information to the hotplug uevent and lets user-space know that it's about a particular connector only. Signed-off-by: Simon Ser <contact@emersion.fr> Cc: Ben Skeggs <bskeggs@redhat.com> Cc: Lyude Paul <lyude@redhat.com> Cc: David Airlie <airlied@linux.ie> Cc: Karol Herbst <kherbst@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230620181547.272476-1-contact@emersion.fr
This commit is contained in:
parent
815d091f90
commit
3b85641abc
@ -465,7 +465,8 @@ nouveau_display_hpd_work(struct work_struct *work)
|
||||
struct drm_connector *connector;
|
||||
struct drm_connector_list_iter conn_iter;
|
||||
u32 pending;
|
||||
bool changed = false;
|
||||
int changed = 0;
|
||||
struct drm_connector *first_changed_connector = NULL;
|
||||
|
||||
pm_runtime_get_sync(dev->dev);
|
||||
|
||||
@ -509,7 +510,12 @@ nouveau_display_hpd_work(struct work_struct *work)
|
||||
if (old_epoch_counter == connector->epoch_counter)
|
||||
continue;
|
||||
|
||||
changed = true;
|
||||
changed++;
|
||||
if (!first_changed_connector) {
|
||||
drm_connector_get(connector);
|
||||
first_changed_connector = connector;
|
||||
}
|
||||
|
||||
drm_dbg_kms(dev, "[CONNECTOR:%d:%s] status updated from %s to %s (epoch counter %llu->%llu)\n",
|
||||
connector->base.id, connector->name,
|
||||
drm_get_connector_status_name(old_status),
|
||||
@ -520,9 +526,14 @@ nouveau_display_hpd_work(struct work_struct *work)
|
||||
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);
|
||||
|
||||
if (first_changed_connector)
|
||||
drm_connector_put(first_changed_connector);
|
||||
|
||||
pm_runtime_mark_last_busy(drm->dev->dev);
|
||||
noop:
|
||||
pm_runtime_put_autosuspend(dev->dev);
|
||||
|
Loading…
x
Reference in New Issue
Block a user