summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/lima/lima_pp.c
diff options
context:
space:
mode:
authorNicholas Kazlauskas <nicholas.kazlauskas@amd.com>2024-02-23 00:52:40 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-06-27 14:52:15 +0300
commitde1af9af37cb8e5d6c160ad3acad957716a6968c (patch)
tree85894c02ed2a2c994b1b09a92a2d43a43155a746 /drivers/gpu/drm/lima/lima_pp.c
parent6e8f90b14803ce50c942371e250aec6c46fef8f3 (diff)
downloadlinux-de1af9af37cb8e5d6c160ad3acad957716a6968c.tar.xz
drm/amd/display: Workaround register access in idle race with cursor
[ Upstream commit b5b6d6251579a29dafdad25f4bc7f3ff7bfd2c86 ] [Why] Cursor update can be pre-empted by a request for setting target flip submission. This causes an issue where we're in the middle of the exit sequence trying to log to DM, but the pre-emption starts another DMCUB command submission that requires being out of idle. The DC lock aqusition can fail, and depending on the DM/OS interface it's possible that the function inserted into this thread must not fail. This means that lock aqusition must be skipped and exit *must* occur. [How] Modify when we consider idle as active. Consider it exited only once the exit has fully finished. Consider it as entered prior to actual notification. Since we're on the same core/thread the cached values are coherent and we'll see that we still need to exit. Once the cursor update resumes it'll continue doing the double exit but this won't cause a functional issue, just a (potential) redundant operation. Reviewed-by: Duncan Ma <duncan.ma@amd.com> Acked-by: Wayne Lin <wayne.lin@amd.com> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/gpu/drm/lima/lima_pp.c')
0 files changed, 0 insertions, 0 deletions