OSDN Git Service

drm/nouveau/kms: Move drm_dp_cec_unset_edid() into nouveau_connector_detect()
authorLyude Paul <lyude@redhat.com>
Wed, 26 Aug 2020 18:24:47 +0000 (14:24 -0400)
committerLyude Paul <lyude@redhat.com>
Mon, 31 Aug 2020 23:10:08 +0000 (19:10 -0400)
For whatever reason we currently unset the EDID for DP CEC support when
responding to the connector being unplugged, instead of just doing it in
nouveau_connector_detect() where we set the CEC EDID. This isn't really
needed and could even potentially cause us to forget to unset the EDID
if the connector is removed without a corresponding hpd event, so let's
fix that.

Signed-off-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200826182456.322681-12-lyude@redhat.com
drivers/gpu/drm/nouveau/nouveau_connector.c

index b905911..4a29f69 100644 (file)
@@ -633,10 +633,11 @@ detect_analog:
                        conn_status = connector_status_connected;
                        goto out;
                }
-
        }
 
  out:
+       if (!nv_connector->edid)
+               drm_dp_cec_unset_edid(&nv_connector->aux);
 
        pm_runtime_mark_last_busy(dev->dev);
        pm_runtime_put_autosuspend(dev->dev);
@@ -1174,8 +1175,6 @@ nouveau_connector_hotplug(struct nvif_notify *notify)
                return NVIF_NOTIFY_DROP;
        }
 
-       if (!plugged)
-               drm_dp_cec_unset_edid(&nv_connector->aux);
        NV_DEBUG(drm, "%splugged %s\n", plugged ? "" : "un", name);
 
        drm_helper_hpd_irq_event(connector->dev);