drm/nouveau/kms/nv140-: Don't modify depth in state during atomic commit
authorLyude Paul <lyude@redhat.com>
Fri, 13 Dec 2019 22:06:59 +0000 (17:06 -0500)
committerLyude Paul <lyude@redhat.com>
Thu, 16 Jul 2020 22:16:31 +0000 (18:16 -0400)
commit9c8e9b790de33914e674035203461cb75c727e98
treed9ccfdea8fff838e7e189592ca604eaa38a37f90
parent5e6c2b4f916157e8f10d093d43e88b2a250d1774
drm/nouveau/kms/nv140-: Don't modify depth in state during atomic commit

Currently, we modify the depth value stored in the atomic state when
performing a commit in order to workaround the fact we haven't
implemented support for depths higher then 10 yet. This isn't idempotent
though, as it will happen every atomic commit where we modify the OR
state even if the head's depth in the atomic state hasn't been modified.

Normally this wouldn't matter, since we don't modify OR state outside of
modesets, but since the CRC capture region is implemented as part of the
OR state in hardware we'll want to make sure all commits modifying OR
state are idempotent so as to avoid changing the depth unexpectedly.

So, fix this by simply not writing the reduced depth value we come up
with to the atomic state.

Signed-off-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Dave Airlie <airlied@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200627194657.156514-5-lyude@redhat.com
drivers/gpu/drm/nouveau/dispnv50/headc37d.c
drivers/gpu/drm/nouveau/dispnv50/headc57d.c