drm/amdgpu/sdma4: set align mask to 255
authorAlex Deucher <alexander.deucher@amd.com>
Wed, 7 Jun 2023 16:14:00 +0000 (12:14 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 15 Jun 2023 15:06:58 +0000 (11:06 -0400)
The wptr needs to be incremented at at least 64 dword intervals,
use 256 to align with windows.  This should fix potential hangs
with unaligned updates.

Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Aaron Liu <aaron.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c

index 1f83eeb..cd37f45 100644 (file)
@@ -2312,7 +2312,7 @@ const struct amd_ip_funcs sdma_v4_0_ip_funcs = {
 
 static const struct amdgpu_ring_funcs sdma_v4_0_ring_funcs = {
        .type = AMDGPU_RING_TYPE_SDMA,
-       .align_mask = 0xf,
+       .align_mask = 0xff,
        .nop = SDMA_PKT_NOP_HEADER_OP(SDMA_OP_NOP),
        .support_64bit_ptrs = true,
        .secure_submission_supported = true,
@@ -2344,7 +2344,7 @@ static const struct amdgpu_ring_funcs sdma_v4_0_ring_funcs = {
 
 static const struct amdgpu_ring_funcs sdma_v4_0_page_ring_funcs = {
        .type = AMDGPU_RING_TYPE_SDMA,
-       .align_mask = 0xf,
+       .align_mask = 0xff,
        .nop = SDMA_PKT_NOP_HEADER_OP(SDMA_OP_NOP),
        .support_64bit_ptrs = true,
        .secure_submission_supported = true,
index 4b033b2..ea5e123 100644 (file)
@@ -1825,7 +1825,7 @@ const struct amd_ip_funcs sdma_v4_4_2_ip_funcs = {
 
 static const struct amdgpu_ring_funcs sdma_v4_4_2_ring_funcs = {
        .type = AMDGPU_RING_TYPE_SDMA,
-       .align_mask = 0xf,
+       .align_mask = 0xff,
        .nop = SDMA_PKT_NOP_HEADER_OP(SDMA_OP_NOP),
        .support_64bit_ptrs = true,
        .get_rptr = sdma_v4_4_2_ring_get_rptr,
@@ -1856,7 +1856,7 @@ static const struct amdgpu_ring_funcs sdma_v4_4_2_ring_funcs = {
 
 static const struct amdgpu_ring_funcs sdma_v4_4_2_page_ring_funcs = {
        .type = AMDGPU_RING_TYPE_SDMA,
-       .align_mask = 0xf,
+       .align_mask = 0xff,
        .nop = SDMA_PKT_NOP_HEADER_OP(SDMA_OP_NOP),
        .support_64bit_ptrs = true,
        .get_rptr = sdma_v4_4_2_ring_get_rptr,