From: Kevin Wang Date: Wed, 19 Dec 2018 08:23:23 +0000 (+0800) Subject: drm/amd/powerplay: use virtual msg index to replace asic-related msg index X-Git-Tag: v5.2-rc1~48^2~36^2~306 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=5c45103f48d77287b0a641d40c96d284abac8d23;p=uclinux-h8%2Flinux.git drm/amd/powerplay: use virtual msg index to replace asic-related msg index Using virtual msg index is able to support all ASIC specific message values on one smu upper layer. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c index c0ff55f31954..ff1120af04a3 100644 --- a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c +++ b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c @@ -81,13 +81,17 @@ static int smu_v11_0_wait_for_response(struct smu_context *smu) static int smu_v11_0_send_msg(struct smu_context *smu, uint16_t msg) { struct amdgpu_device *adev = smu->adev; - int ret = 0; + int ret = 0, index = 0; + + index = smu_msg_get_index(smu, msg); + if (index < 0) + return index; smu_v11_0_wait_for_response(smu); WREG32_SOC15(MP1, 0, mmMP1_SMN_C2PMSG_90, 0); - smu_v11_0_send_msg_without_waiting(smu, msg); + smu_v11_0_send_msg_without_waiting(smu, (uint16_t)index); ret = smu_v11_0_wait_for_response(smu); @@ -105,7 +109,11 @@ smu_v11_0_send_msg_with_param(struct smu_context *smu, uint16_t msg, { struct amdgpu_device *adev = smu->adev; - int ret = 0; + int ret = 0, index = 0; + + index = smu_msg_get_index(smu, msg); + if (index < 0) + return index; ret = smu_v11_0_wait_for_response(smu); if (ret) @@ -116,7 +124,7 @@ smu_v11_0_send_msg_with_param(struct smu_context *smu, uint16_t msg, WREG32_SOC15(MP1, 0, mmMP1_SMN_C2PMSG_82, param); - smu_v11_0_send_msg_without_waiting(smu, msg); + smu_v11_0_send_msg_without_waiting(smu, (uint16_t)index); ret = smu_v11_0_wait_for_response(smu); if (ret)