use helper smu_cmn_send_msg API to simplify smu v15 code logic.

Signed-off-by: Yang Wang <[email protected]>
---
 .../gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c    | 41 ++++++++-----------
 1 file changed, 16 insertions(+), 25 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c
index 8e95a62e186c..51246a098335 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c
@@ -590,52 +590,43 @@ int smu_v15_0_notify_memory_pool_location(struct 
smu_context *smu)
 {
        struct smu_table_context *smu_table = &smu->smu_table;
        struct smu_table *memory_pool = &smu_table->memory_pool;
-       struct smu_msg_args args = {
-               .msg = SMU_MSG_DramLogSetDramAddr,
-               .num_args = 3,
-               .num_out_args = 0,
-       };
+       u32 param[3];
 
        if (memory_pool->size == 0 || memory_pool->cpu_addr == NULL)
                return 0;
 
        /* SMU_MSG_DramLogSetDramAddr: ARG0=low, ARG1=high, ARG2=size */
-       args.args[0] = lower_32_bits(memory_pool->mc_address);
-       args.args[1] = upper_32_bits(memory_pool->mc_address);
-       args.args[2] = (u32)memory_pool->size;
+       param[0] = lower_32_bits(memory_pool->mc_address);
+       param[1] = upper_32_bits(memory_pool->mc_address);
+       param[2] = (u32)memory_pool->size;
 
-       return smu->msg_ctl.ops->send_msg(&smu->msg_ctl, &args);
+       return smu_cmn_send_msg(smu, SMU_MSG_DramLogSetDramAddr,
+                               3, param, 0, NULL);
 }
 
 int smu_v15_0_set_driver_table_location(struct smu_context *smu)
 {
        struct smu_table *driver_table = &smu->smu_table.driver_table;
-       struct smu_msg_args args = {
-               .msg = SMU_MSG_SetDriverDramAddr,
-               .num_args = 2,
-               .num_out_args = 0,
-       };
+       u32 param[2];
 
-       args.args[0] = lower_32_bits(driver_table->mc_address);
-       args.args[1] = upper_32_bits(driver_table->mc_address);
+       param[0] = lower_32_bits(driver_table->mc_address);
+       param[1] = upper_32_bits(driver_table->mc_address);
 
-       return smu->msg_ctl.ops->send_msg(&smu->msg_ctl, &args);
+       return smu_cmn_send_msg(smu, SMU_MSG_SetDriverDramAddr,
+                               2, param, 0, NULL);
 }
 
 int smu_v15_0_set_tool_table_location(struct smu_context *smu)
 {
        struct smu_table *tool_table = 
&smu->smu_table.tables[SMU_TABLE_PMSTATUSLOG];
-       struct smu_msg_args args = {
-               .msg = SMU_MSG_SetToolsDramAddr,
-               .num_args = 2,
-               .num_out_args = 0,
-       };
+       u32 param[2];
 
        /* SMU_MSG_SetToolsDramAddr: ARG0=low, ARG1=high */
-       args.args[0] = lower_32_bits(tool_table->mc_address);
-       args.args[1] = upper_32_bits(tool_table->mc_address);
+       param[0] = lower_32_bits(tool_table->mc_address);
+       param[1] = upper_32_bits(tool_table->mc_address);
 
-       return smu->msg_ctl.ops->send_msg(&smu->msg_ctl, &args);
+       return smu_cmn_send_msg(smu, SMU_MSG_SetToolsDramAddr,
+                               2, param, 0, NULL);
 }
 
 int smu_v15_0_set_allowed_mask(struct smu_context *smu)
-- 
2.47.3

Reply via email to