From 6a2d7a229e23a22b790721c63907e41871ccbb95 Mon Sep 17 00:00:00 2001 From: Evan Quan Date: Wed, 6 Apr 2022 18:00:16 -0400 Subject: [PATCH] drm/amd/pm: enable the support for retrieving combo pptable We need to relay on this way to get the raw PPTable when SCPM feature is enabled. Signed-off-by: Evan Quan Reviewed-by: Hawking Zhang Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 4 +++- drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c | 11 +++++++++++ drivers/gpu/drm/amd/pm/swsmu/smu_cmn.h | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h b/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h index 491357321020..49d2c0eb014d 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h +++ b/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h @@ -321,6 +321,7 @@ enum smu_table_id SMU_TABLE_I2C_COMMANDS, SMU_TABLE_PACE, SMU_TABLE_ECCINFO, + SMU_TABLE_COMBO_PPTABLE, SMU_TABLE_COUNT, }; @@ -336,7 +337,8 @@ struct smu_table_context void *max_sustainable_clocks; struct smu_bios_boot_up_values boot_values; - void *driver_pptable; + void *driver_pptable; + void *combo_pptable; void *ecc_table; void *driver_smu_config_table; struct smu_table tables[SMU_TABLE_COUNT]; diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c b/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c index f12319883a80..622881ab34c7 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c @@ -971,6 +971,17 @@ int smu_cmn_get_metrics_table(struct smu_context *smu, return 0; } +int smu_cmn_get_combo_pptable(struct smu_context *smu) +{ + void *pptable = smu->smu_table.combo_pptable; + + return smu_cmn_update_table(smu, + SMU_TABLE_COMBO_PPTABLE, + 0, + pptable, + false); +} + void smu_cmn_init_soft_gpu_metrics(void *table, uint8_t frev, uint8_t crev) { struct metrics_table_header *header = (struct metrics_table_header *)table; diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.h b/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.h index a4c593ed8b03..1526ce09c399 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.h +++ b/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.h @@ -99,6 +99,8 @@ int smu_cmn_get_metrics_table(struct smu_context *smu, void *metrics_table, bool bypass_cache); +int smu_cmn_get_combo_pptable(struct smu_context *smu); + void smu_cmn_init_soft_gpu_metrics(void *table, uint8_t frev, uint8_t crev); int smu_cmn_set_mp1_state(struct smu_context *smu, -- 2.11.0