diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2022-06-01 20:46:35 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2022-11-09 10:43:10 +1000 |
commit | 8bb30c882334c0fdbec9b604f09d2e9120b509ab (patch) | |
tree | 467441811efe8c1185e771639667f8e0f304782c /drivers/gpu/drm/nouveau/nouveau_display.c | |
parent | 016dacb60e6d4b301c5941a0dedb49d337926832 (diff) |
drm/nouveau/disp: add method to trigger DP link retrain
This moves control of link retraining in response to HPD IRQ to the
KMS driver's HPD IRQ handler.
NVKM still handles checking link status for the moment, this can be
moved to the KMS driver when it takes explicit control of link rate
selection.
v2:
- skip source config on retrain (fixes some retrain failures)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_display.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_display.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c index a21dc2a0f92b..965e1c62d497 100644 --- a/drivers/gpu/drm/nouveau/nouveau_display.c +++ b/drivers/gpu/drm/nouveau/nouveau_display.c @@ -506,8 +506,10 @@ nouveau_display_hpd_work(struct work_struct *work) !!(bits & NVIF_NOTIFY_CONN_V0_UNPLUG), !!(bits & NVIF_NOTIFY_CONN_V0_IRQ)); - if (bits & NVIF_NOTIFY_CONN_V0_IRQ) - continue; + if (bits & NVIF_NOTIFY_CONN_V0_IRQ) { + if (nouveau_dp_link_check(nv_connector)) + continue; + } connector->status = drm_helper_probe_detect(connector, NULL, false); if (old_epoch_counter == connector->epoch_counter) |