OSDN Git Service

drm/nouveau/disp: move and extend the role of outp acquire/release methods
authorBen Skeggs <bskeggs@redhat.com>
Wed, 1 Jun 2022 10:46:32 +0000 (20:46 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Mon, 7 Nov 2022 02:59:28 +0000 (12:59 +1000)
commitea6143a86c67110a2c62deaf70d0b7b92e4f865f
treecac55fae72206788b5e272018167a25389272199
parent60ba8c5bd94e17ab4b024f5cecf8b48e2cf36412
drm/nouveau/disp: move and extend the role of outp acquire/release methods

There are various pieces of information we pass to NVKM about the next
modeset, which are generally used while handling supervisor interrupts.

We had to start passing in some information about audio requirements a
while back to allocate an appropriate SOR in ACQUIRE, so we may as well
move all this type of information here for other protocols too.

Certain methods will be blocked on non-acquired outputs now, preventing
NULL pointer derefs from KMS driver bugs.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
drivers/gpu/drm/nouveau/dispnv50/crc.c
drivers/gpu/drm/nouveau/dispnv50/disp.c
drivers/gpu/drm/nouveau/include/nvif/cl5070.h
drivers/gpu/drm/nouveau/include/nvif/if0012.h
drivers/gpu/drm/nouveau/include/nvif/outp.h
drivers/gpu/drm/nouveau/nouveau_encoder.h
drivers/gpu/drm/nouveau/nvif/outp.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c