Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: config HDP_MISC_CNTL.READ_BUFFER_WATERMARK

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>

authored by

Xiaogang Chen and committed by
Alex Deucher
45f0ff40 4f0f1b58

+5
+3
drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c
··· 146 146 147 147 WREG32_FIELD15(HDP, 0, HDP_MISC_CNTL, FLUSH_INVALIDATE_CACHE, 1); 148 148 149 + if (adev->ip_versions[HDP_HWIP][0] == IP_VERSION(4, 4, 0)) 150 + WREG32_FIELD15(HDP, 0, HDP_MISC_CNTL, READ_BUFFER_WATERMARK, 2); 151 + 149 152 WREG32_SOC15(HDP, 0, mmHDP_NONSURFACE_BASE, (adev->gmc.vram_start >> 8)); 150 153 WREG32_SOC15(HDP, 0, mmHDP_NONSURFACE_BASE_HI, (adev->gmc.vram_start >> 40)); 151 154 }
+2
drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_4_0_sh_mask.h
··· 104 104 #define HDP_MISC_CNTL__OUTSTANDING_WRITE_COUNT_1024__SHIFT 0x5 105 105 #define HDP_MISC_CNTL__MULTIPLE_READS__SHIFT 0x6 106 106 #define HDP_MISC_CNTL__SIMULTANEOUS_READS_WRITES__SHIFT 0xb 107 + #define HDP_MISC_CNTL__READ_BUFFER_WATERMARK__SHIFT 0xe 107 108 #define HDP_MISC_CNTL__FED_ENABLE__SHIFT 0x15 108 109 #define HDP_MISC_CNTL__SYSHUB_CHANNEL_PRIORITY__SHIFT 0x17 109 110 #define HDP_MISC_CNTL__MMHUB_WRBURST_ENABLE__SHIFT 0x18 ··· 119 118 #define HDP_MISC_CNTL__OUTSTANDING_WRITE_COUNT_1024_MASK 0x00000020L 120 119 #define HDP_MISC_CNTL__MULTIPLE_READS_MASK 0x00000040L 121 120 #define HDP_MISC_CNTL__SIMULTANEOUS_READS_WRITES_MASK 0x00000800L 121 + #define HDP_MISC_CNTL__READ_BUFFER_WATERMARK_MASK 0x0000c000L 122 122 #define HDP_MISC_CNTL__FED_ENABLE_MASK 0x00200000L 123 123 #define HDP_MISC_CNTL__SYSHUB_CHANNEL_PRIORITY_MASK 0x00800000L 124 124 #define HDP_MISC_CNTL__MMHUB_WRBURST_ENABLE_MASK 0x01000000L