diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2022-10-13 08:04:25 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2022-10-13 08:04:25 +1000 |
commit | f83c215785b82c7bccc4d9b46dac1b913851e4a8 (patch) | |
tree | ea003082f9363353dbc4945013c146ee1c03e3e6 | |
parent | 4936d2332b248e82763b55f4d2b6d4ff14a05909 (diff) |
WIPdrm/nouveau/disp: train DP links outside of supervisor
- preparation for GSP-RM
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c | 9 |
3 files changed, 10 insertions, 5 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c index 89ea18641d77..2457d82be5ba 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c @@ -1287,10 +1287,6 @@ nv50_disp_super_2_2(struct nvkm_disp *disp, struct nvkm_head *head) ior->asy.link = outp->lvds.dual ? 3 : 1; } - /* Handle any link training, etc. */ - if (outp && outp->func->acquire) - outp->func->acquire(outp); - /* Execute OnInt2 IED script. */ nv50_disp_super_ied_on(head, ior, 0, khz); diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c index 168b0b596b8e..4081d0238f20 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c @@ -46,8 +46,8 @@ nvkm_outp_route(struct nvkm_disp *disp) list_for_each_entry(ior, &disp->iors, head) { if ((outp = ior->asy.outp)) { - OUTP_DBG(outp, "acquire %s", ior->name); if (ior->asy.outp != ior->arm.outp) { + OUTP_DBG(outp, "acquire %s", ior->name); if (ior->func->route.set) ior->func->route.set(outp, ior); ior->arm.outp = ior->asy.outp; diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c index d039c356e3fb..13721a7762ca 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c @@ -230,10 +230,19 @@ nvkm_uoutp_mthd_acquire_dp(struct nvkm_outp *outp, u8 dpcd[16], if (ret) return ret; + nvkm_outp_route(outp->disp); + memcpy(outp->dp.dpcd, dpcd, sizeof(outp->dp.dpcd)); outp->dp.lt.nr = link_nr; outp->dp.lt.bw = link_bw; outp->dp.lt.mst = mst; + + ret = outp->func->acquire(outp); + if (ret) { + nvkm_outp_release(outp, NVKM_OUTP_USER); + return ret; + } + return 0; } |