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

drm/amdgpu: switch to SMN interface to operate RSMU index mode

This makes consistent with other regsiters' access in this module.

Signed-off-by: Guchun Chen <guchun.chen@amd.com>
Reviewed-by: Tao Zhou <tao.zhou1@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Guchun Chen and committed by
Alex Deucher
40e73314 fde812b3

+24 -5
+24 -5
drivers/gpu/drm/amd/amdgpu/umc_v6_1.c
··· 56 56 57 57 static void umc_v6_1_enable_umc_index_mode(struct amdgpu_device *adev) 58 58 { 59 - WREG32_FIELD15(RSMU, 0, RSMU_UMC_INDEX_REGISTER_NBIF_VG20_GPU, 59 + uint32_t rsmu_umc_addr, rsmu_umc_val; 60 + 61 + rsmu_umc_addr = SOC15_REG_OFFSET(RSMU, 0, 62 + mmRSMU_UMC_INDEX_REGISTER_NBIF_VG20_GPU); 63 + rsmu_umc_val = RREG32_PCIE(rsmu_umc_addr * 4); 64 + 65 + rsmu_umc_val = REG_SET_FIELD(rsmu_umc_val, 66 + RSMU_UMC_INDEX_REGISTER_NBIF_VG20_GPU, 60 67 RSMU_UMC_INDEX_MODE_EN, 1); 68 + 69 + WREG32_PCIE(rsmu_umc_addr * 4, rsmu_umc_val); 61 70 } 62 71 63 72 static void umc_v6_1_disable_umc_index_mode(struct amdgpu_device *adev) 64 73 { 65 - WREG32_FIELD15(RSMU, 0, RSMU_UMC_INDEX_REGISTER_NBIF_VG20_GPU, 74 + uint32_t rsmu_umc_addr, rsmu_umc_val; 75 + 76 + rsmu_umc_addr = SOC15_REG_OFFSET(RSMU, 0, 77 + mmRSMU_UMC_INDEX_REGISTER_NBIF_VG20_GPU); 78 + rsmu_umc_val = RREG32_PCIE(rsmu_umc_addr * 4); 79 + 80 + rsmu_umc_val = REG_SET_FIELD(rsmu_umc_val, 81 + RSMU_UMC_INDEX_REGISTER_NBIF_VG20_GPU, 66 82 RSMU_UMC_INDEX_MODE_EN, 0); 83 + 84 + WREG32_PCIE(rsmu_umc_addr * 4, rsmu_umc_val); 67 85 } 68 86 69 87 static uint32_t umc_v6_1_get_umc_index_mode_state(struct amdgpu_device *adev) 70 88 { 71 - uint32_t rsmu_umc_index; 89 + uint32_t rsmu_umc_addr, rsmu_umc_val; 72 90 73 - rsmu_umc_index = RREG32_SOC15(RSMU, 0, 91 + rsmu_umc_addr = SOC15_REG_OFFSET(RSMU, 0, 74 92 mmRSMU_UMC_INDEX_REGISTER_NBIF_VG20_GPU); 93 + rsmu_umc_val = RREG32_PCIE(rsmu_umc_addr * 4); 75 94 76 - return REG_GET_FIELD(rsmu_umc_index, 95 + return REG_GET_FIELD(rsmu_umc_val, 77 96 RSMU_UMC_INDEX_REGISTER_NBIF_VG20_GPU, 78 97 RSMU_UMC_INDEX_MODE_EN); 79 98 }