drm/amdgpu: fix IH overflow on Vega10 v2
authorChristian König <christian.koenig@amd.com>
Fri, 14 Dec 2018 14:31:24 +0000 (15:31 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 14 Jan 2019 20:04:47 +0000 (15:04 -0500)
commitb82175750131c9ac228cf08116a208c856d850c9
treee24fe4939660016d49f55180cf455c49f7e43276
parentd81f78b440f314e2a551d938e4c509fca16a8fe7
drm/amdgpu: fix IH overflow on Vega10 v2

When an ring buffer overflow happens the appropriate bit is set in the WPTR
register which is also written back to memory. But clearing the bit in the
WPTR doesn't trigger another memory writeback.

So what can happen is that we end up processing the buffer overflow over and
over again because the bit is never cleared. Resulting in a random system
lockup because of an infinite loop in an interrupt handler.

This is 100% reproducible on Vega10, but it's most likely an issue we have
in the driver over all generations all the way back to radeon.

v2: rebase

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/vega10_ih.c