drm/nouveau/kms/nv50-: split DP disable+enable into two modesets
authorBen Skeggs <bskeggs@redhat.com>
Tue, 19 Sep 2023 21:56:24 +0000 (17:56 -0400)
committerLyude Paul <lyude@redhat.com>
Tue, 19 Sep 2023 22:22:16 +0000 (18:22 -0400)
Link training can finally be moved out of the supervisor sequence,
but first we need to split DP modesets into separate disable and
enable sequences to be able to perform link training between them
instead.

- preparation for GSP-RM

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Acked-by: Danilo Krummrich <me@dakr.org>
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230919220442.202488-30-lyude@redhat.com
drivers/gpu/drm/nouveau/dispnv50/disp.c

index ee53bc5d1004219ed6497277c22e2e7b79eae103..48e099ed7d51c690a875d35e050fa2ecc5fabc3f 100644 (file)
@@ -2375,7 +2375,8 @@ nv50_disp_outp_atomic_check_clr(struct nv50_atom *atom,
                if (IS_ERR(outp))
                        return PTR_ERR(outp);
 
-               if (outp->encoder->encoder_type == DRM_MODE_ENCODER_DPMST) {
+               if (outp->encoder->encoder_type == DRM_MODE_ENCODER_DPMST ||
+                   nouveau_encoder(outp->encoder)->dcb->type == DCB_OUTPUT_DP) {
                        outp->flush_disable = true;
                        atom->flush_disable = true;
                }