Skip to content

Commit 7ba84cb

Browse files
Lyudeairlied
authored andcommitted
drm/nouveau/kms/nv50-: Don't allow inheritance of headless iors
Turns out we made a silly mistake when coming up with OR inheritance on nouveau. On pre-DCB 4.1, iors are statically routed to output paths via the DCB. On later generations iors are only routed to an output path if they're actually being used. Unfortunately, it appears with NVIF_OUTP_INHERIT_V0 we make the mistake of assuming the later is true on all generations, which is currently leading us to return bogus ior -> head assignments through nvif, which causes WARN_ON(). So - fix this by verifying that we actually know that there's a head assigned to an ior before allowing it to be inherited through nvif. This -should- hopefully fix the WARN_ON on GT218 reported by Borislav. Signed-off-by: Lyude Paul <lyude@redhat.com> Cc: Borislav Petkov <bp@alien8.de> Reported-by: Borislav Petkov (AMD) <bp@alien8.de> Tested-by: Borislav Petkov (AMD) <bp@alien8.de> Signed-off-by: Dave Airlie <airlied@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20231214004359.1028109-1-lyude@redhat.com
1 parent 46dec61 commit 7ba84cb

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

  • drivers/gpu/drm/nouveau/nvkm/engine/disp

drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ nvkm_uoutp_mthd_inherit(struct nvkm_outp *outp, void *argv, u32 argc)
385385

386386
/* Ensure an ior is hooked up to this outp already */
387387
ior = outp->func->inherit(outp);
388-
if (!ior)
388+
if (!ior || !ior->arm.head)
389389
return -ENODEV;
390390

391391
/* With iors, there will be a separate output path for each type of connector - and all of

0 commit comments

Comments
 (0)