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

drm/amdgpu: use the same HDP flush registers for all nbio 7.4.x

Align aldebaran with all other asics. One HDP bit per
SDMA instance, aligned with firmware. This is effectively
a revert of
commit a0f9f8546668 ("drm/amdgpu/nbio7.4: don't use GPU_HDP_FLUSH bit 12").
On further discussions with the relevant hardware teams,
re-align the bits for SDMA.

Fixes: a0f9f8546668 ("drm/amdgpu/nbio7.4: don't use GPU_HDP_FLUSH bit 12")
Reviewed-by: Kent Russell <kent.russell@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

+1 -26
+1 -4
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
··· 2206 2206 break; 2207 2207 case IP_VERSION(7, 4, 0): 2208 2208 case IP_VERSION(7, 4, 1): 2209 - adev->nbio.funcs = &nbio_v7_4_funcs; 2210 - adev->nbio.hdp_flush_reg = &nbio_v7_4_hdp_flush_reg; 2211 - break; 2212 2209 case IP_VERSION(7, 4, 4): 2213 2210 adev->nbio.funcs = &nbio_v7_4_funcs; 2214 - adev->nbio.hdp_flush_reg = &nbio_v7_4_hdp_flush_reg_ald; 2211 + adev->nbio.hdp_flush_reg = &nbio_v7_4_hdp_flush_reg; 2215 2212 break; 2216 2213 case IP_VERSION(7, 2, 0): 2217 2214 case IP_VERSION(7, 2, 1):
-21
drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c
··· 339 339 .ref_and_mask_sdma1 = GPU_HDP_FLUSH_DONE__SDMA1_MASK, 340 340 }; 341 341 342 - const struct nbio_hdp_flush_reg nbio_v7_4_hdp_flush_reg_ald = { 343 - .ref_and_mask_cp0 = GPU_HDP_FLUSH_DONE__CP0_MASK, 344 - .ref_and_mask_cp1 = GPU_HDP_FLUSH_DONE__CP1_MASK, 345 - .ref_and_mask_cp2 = GPU_HDP_FLUSH_DONE__CP2_MASK, 346 - .ref_and_mask_cp3 = GPU_HDP_FLUSH_DONE__CP3_MASK, 347 - .ref_and_mask_cp4 = GPU_HDP_FLUSH_DONE__CP4_MASK, 348 - .ref_and_mask_cp5 = GPU_HDP_FLUSH_DONE__CP5_MASK, 349 - .ref_and_mask_cp6 = GPU_HDP_FLUSH_DONE__CP6_MASK, 350 - .ref_and_mask_cp7 = GPU_HDP_FLUSH_DONE__CP7_MASK, 351 - .ref_and_mask_cp8 = GPU_HDP_FLUSH_DONE__CP8_MASK, 352 - .ref_and_mask_cp9 = GPU_HDP_FLUSH_DONE__CP9_MASK, 353 - .ref_and_mask_sdma0 = GPU_HDP_FLUSH_DONE__RSVD_ENG1_MASK, 354 - .ref_and_mask_sdma1 = GPU_HDP_FLUSH_DONE__RSVD_ENG2_MASK, 355 - .ref_and_mask_sdma2 = GPU_HDP_FLUSH_DONE__RSVD_ENG3_MASK, 356 - .ref_and_mask_sdma3 = GPU_HDP_FLUSH_DONE__RSVD_ENG4_MASK, 357 - .ref_and_mask_sdma4 = GPU_HDP_FLUSH_DONE__RSVD_ENG5_MASK, 358 - .ref_and_mask_sdma5 = GPU_HDP_FLUSH_DONE__RSVD_ENG6_MASK, 359 - .ref_and_mask_sdma6 = GPU_HDP_FLUSH_DONE__RSVD_ENG7_MASK, 360 - .ref_and_mask_sdma7 = GPU_HDP_FLUSH_DONE__RSVD_ENG8_MASK, 361 - }; 362 - 363 342 static void nbio_v7_4_init_registers(struct amdgpu_device *adev) 364 343 { 365 344 uint32_t baco_cntl;
-1
drivers/gpu/drm/amd/amdgpu/nbio_v7_4.h
··· 27 27 #include "soc15_common.h" 28 28 29 29 extern const struct nbio_hdp_flush_reg nbio_v7_4_hdp_flush_reg; 30 - extern const struct nbio_hdp_flush_reg nbio_v7_4_hdp_flush_reg_ald; 31 30 extern const struct amdgpu_nbio_funcs nbio_v7_4_funcs; 32 31 extern struct amdgpu_nbio_ras nbio_v7_4_ras; 33 32