drm/amd/display: Fixed read/write pointer issue for get dmub trace
authorYongqiang Sun <yongqiang.sun@amd.com>
Fri, 26 Feb 2021 16:07:37 +0000 (11:07 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 24 Mar 2021 03:02:46 +0000 (23:02 -0400)
commit6804287bd1421f290065081db4b1a93c2fd2c591
treeee108a9c241a21d31b6939805636dffabd264358
parent61a74712c8302eaacd86b55f4ea7e3c7d9ea27f8
drm/amd/display: Fixed read/write pointer issue for get dmub trace

[Why]
Driver get wrap around dmub trace data due to read pointer being
increased incorrectly when there are multiple interrupt
queues with very short interval

[How]
Check read/write pointer before copying data from ring buffer

Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Yongqiang Sun <yongqiang.sun@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.h
drivers/gpu/drm/amd/display/dmub/dmub_srv.h
drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c