diff options
author | Emily Deng <Emily.Deng@amd.com> | 2018-03-30 16:24:08 +0800 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-03-30 08:53:07 -0500 |
commit | 528a49ca8251b14138b4349d6925f5fa7ce54bf8 (patch) | |
tree | 4027da43a91cbfdea6cf48f835b66a097a40fe85 | |
parent | af2be4cea7cec7893134fe470e6c4157d5516d38 (diff) |
drm/amdgpu/sdma4:fix sdma engine hang
The sdma doesn't support register write and wait in one command.
Use this will make sdma engine hang.
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Emily Deng <Emily.Deng@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c index dd98d2e55508..03a36cbe7557 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c @@ -1171,13 +1171,6 @@ static void sdma_v4_0_ring_emit_reg_wait(struct amdgpu_ring *ring, uint32_t reg, sdma_v4_0_wait_reg_mem(ring, 0, 0, reg, 0, val, mask, 10); } -static void sdma_v4_0_ring_emit_reg_write_reg_wait(struct amdgpu_ring *ring, - uint32_t reg0, uint32_t reg1, - uint32_t ref, uint32_t mask) -{ - sdma_v4_0_wait_reg_mem(ring, 0, 1, reg0, reg1, ref, mask, 10); -} - static int sdma_v4_0_early_init(void *handle) { struct amdgpu_device *adev = (struct amdgpu_device *)handle; @@ -1618,7 +1611,7 @@ static const struct amdgpu_ring_funcs sdma_v4_0_ring_funcs = { .pad_ib = sdma_v4_0_ring_pad_ib, .emit_wreg = sdma_v4_0_ring_emit_wreg, .emit_reg_wait = sdma_v4_0_ring_emit_reg_wait, - .emit_reg_write_reg_wait = sdma_v4_0_ring_emit_reg_write_reg_wait, + .emit_reg_write_reg_wait = amdgpu_ring_emit_reg_write_reg_wait_helper, }; static void sdma_v4_0_set_ring_funcs(struct amdgpu_device *adev) |