drm/nouveau/kms/nv50-: Don't allow inheritance of headless iors
authorLyude Paul <lyude@redhat.com>
Thu, 14 Dec 2023 00:43:57 +0000 (19:43 -0500)
committerDave Airlie <airlied@redhat.com>
Fri, 15 Dec 2023 04:11:47 +0000 (14:11 +1000)
commit7ba84cbf18c7a53107c64880d9c90f18fa68b481
tree481357a4ca9f02bb9f81ff7ca8185a19e9f3434d
parent46dec61643d7047c9b5929f98a2b7fa4fa93a7dc
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
drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c