drm/amdgpu: config HDP_MISC_CNTL.READ_BUFFER_WATERMARK
authorXiaogang Chen <xiaogang.chen@amd.com>
Mon, 21 Feb 2022 22:28:10 +0000 (16:28 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 24 Feb 2022 22:24:43 +0000 (17:24 -0500)
To fix applications running across multiple GPU config hang.

Signed-off-by: Xiaogang Chen <xiaogang.chen@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c
drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_4_0_sh_mask.h

index d7811e0..02400d9 100644 (file)
@@ -146,6 +146,9 @@ static void hdp_v4_0_init_registers(struct amdgpu_device *adev)
 
        WREG32_FIELD15(HDP, 0, HDP_MISC_CNTL, FLUSH_INVALIDATE_CACHE, 1);
 
+       if (adev->ip_versions[HDP_HWIP][0] == IP_VERSION(4, 4, 0))
+               WREG32_FIELD15(HDP, 0, HDP_MISC_CNTL, READ_BUFFER_WATERMARK, 2);
+
        WREG32_SOC15(HDP, 0, mmHDP_NONSURFACE_BASE, (adev->gmc.vram_start >> 8));
        WREG32_SOC15(HDP, 0, mmHDP_NONSURFACE_BASE_HI, (adev->gmc.vram_start >> 40));
 }
index 25e2869..65c91b0 100644 (file)
 #define HDP_MISC_CNTL__OUTSTANDING_WRITE_COUNT_1024__SHIFT     0x5
 #define HDP_MISC_CNTL__MULTIPLE_READS__SHIFT   0x6
 #define HDP_MISC_CNTL__SIMULTANEOUS_READS_WRITES__SHIFT        0xb
+#define HDP_MISC_CNTL__READ_BUFFER_WATERMARK__SHIFT 0xe
 #define HDP_MISC_CNTL__FED_ENABLE__SHIFT       0x15
 #define HDP_MISC_CNTL__SYSHUB_CHANNEL_PRIORITY__SHIFT  0x17
 #define HDP_MISC_CNTL__MMHUB_WRBURST_ENABLE__SHIFT     0x18
 #define HDP_MISC_CNTL__OUTSTANDING_WRITE_COUNT_1024_MASK       0x00000020L
 #define HDP_MISC_CNTL__MULTIPLE_READS_MASK     0x00000040L
 #define HDP_MISC_CNTL__SIMULTANEOUS_READS_WRITES_MASK  0x00000800L
+#define HDP_MISC_CNTL__READ_BUFFER_WATERMARK_MASK       0x0000c000L
 #define HDP_MISC_CNTL__FED_ENABLE_MASK 0x00200000L
 #define HDP_MISC_CNTL__SYSHUB_CHANNEL_PRIORITY_MASK    0x00800000L
 #define HDP_MISC_CNTL__MMHUB_WRBURST_ENABLE_MASK       0x01000000L