Skip to content

Commit dbc988c

Browse files
committed
drm/amdgpu/hdp5.2: use memcfg register to post the write for HDP flush
Reading back the remapped HDP flush register seems to cause problems on some platforms. All we need is a read, so read back the memcfg register. Fixes: f756dba ("drm/amdgpu/hdp5.2: do a posting read when flushing HDP") Reported-by: Alexey Klimov <alexey.klimov@linaro.org> Link: https://lists.freedesktop.org/archives/amd-gfx/2025-April/123150.html Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4119 Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3908 Reviewed-by: Felix Kuehling <felix.kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit 4a89b76) Cc: stable@vger.kernel.org
1 parent 0e33e0f commit dbc988c

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

drivers/gpu/drm/amd/amdgpu/hdp_v5_2.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,17 @@ static void hdp_v5_2_flush_hdp(struct amdgpu_device *adev,
3333
if (!ring || !ring->funcs->emit_wreg) {
3434
WREG32_NO_KIQ((adev->rmmio_remap.reg_offset + KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL) >> 2,
3535
0);
36-
RREG32_NO_KIQ((adev->rmmio_remap.reg_offset + KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL) >> 2);
36+
if (amdgpu_sriov_vf(adev)) {
37+
/* this is fine because SR_IOV doesn't remap the register */
38+
RREG32_NO_KIQ((adev->rmmio_remap.reg_offset + KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL) >> 2);
39+
} else {
40+
/* We just need to read back a register to post the write.
41+
* Reading back the remapped register causes problems on
42+
* some platforms so just read back the memory size register.
43+
*/
44+
if (adev->nbio.funcs->get_memsize)
45+
adev->nbio.funcs->get_memsize(adev);
46+
}
3747
} else {
3848
amdgpu_ring_emit_wreg(ring,
3949
(adev->rmmio_remap.reg_offset + KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL) >> 2,

0 commit comments

Comments
 (0)