aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHuang Rui <[email protected]>2018-12-04 21:57:05 +0800
committerAlex Deucher <[email protected]>2019-03-19 15:03:54 -0500
commit31b5ae495d68fba85bf64fae6f173372d56131da (patch)
tree5987b2be606a0d2b23b4874ce26c17fb90eb0800
parenta751b095898294764a364e436d9ddb14ad727482 (diff)
drm/amd/powerplay: add interface to write pptable (v2)
This patch adds interface to write pptable for smu. It's to copy pptable bo in the vram to smc with SMU MSGs such as SetDriverDramAddr and TransferTableDram2Smu. v2: add detailed info to describe this function Signed-off-by: Huang Rui <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
-rw-r--r--drivers/gpu/drm/amd/powerplay/amdgpu_smu.c8
-rw-r--r--drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h3
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
index 519682541cae..747b6b7a7675 100644
--- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
@@ -192,6 +192,14 @@ static int smu_smc_table_hw_init(struct smu_context *smu)
if (ret)
return ret;
+ /*
+ * Copy pptable bo in the vram to smc with SMU MSGs such as
+ * SetDriverDramAddr and TransferTableDram2Smu.
+ */
+ ret = smu_write_pptable(smu);
+ if (ret)
+ return ret;
+
return 0;
}
diff --git a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
index 95252653a665..e7e9fecbb086 100644
--- a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
+++ b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
@@ -45,6 +45,7 @@ struct smu_funcs
int (*parse_pptable)(struct smu_context *smu);
int (*populate_smc_pptable)(struct smu_context *smu);
int (*check_fw_version)(struct smu_context *smu);
+ int (*write_pptable)(struct smu_context *smu);
};
#define smu_init_microcode(smu) \
@@ -69,6 +70,8 @@ struct smu_funcs
((smu)->funcs->populate_smc_pptable ? (smu)->funcs->populate_smc_pptable((smu)) : 0)
#define smu_check_fw_version(smu) \
((smu)->funcs->check_fw_version ? (smu)->funcs->check_fw_version((smu)) : 0)
+#define smu_write_pptable(smu) \
+ ((smu)->funcs->write_pptable ? (smu)->funcs->write_pptable((smu)) : 0)
extern const struct amd_ip_funcs smu_ip_funcs;