]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/amd/powerplay: add function to get thermal range
authorLikun Gao <Likun.Gao@amd.com>
Fri, 4 Jan 2019 08:23:23 +0000 (16:23 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 Mar 2019 20:03:57 +0000 (15:03 -0500)
Add the function to get the min and max thermal value for vega20 with
smu11 architecture.

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
drivers/gpu/drm/amd/powerplay/smu_v11_0.c
drivers/gpu/drm/amd/powerplay/vega20_ppt.c

index a68519ea6dc87d396686c98f0542ff66477c0135..4d12cd607b1adacd19c145b518b34367a18780d8 100644 (file)
@@ -164,6 +164,7 @@ struct smu_table_context
        struct smu_table                *tables;
        uint32_t                        table_count;
        struct smu_table                memory_pool;
+       uint16_t                        software_shutdown_temp;
 };
 
 struct smu_dpm_context {
index 129d2b1c148776e54a288ec6fc9db5f9d7036d42..630ba22431a5e863e58f6e3de5a92fe2e3627ba5 100644 (file)
@@ -31,6 +31,7 @@
 #include "soc15_common.h"
 #include "atom.h"
 #include "vega20_ppt.h"
+#include "pp_thermal.h"
 
 #include "asic_reg/thm/thm_11_0_2_offset.h"
 #include "asic_reg/thm/thm_11_0_2_sh_mask.h"
@@ -893,6 +894,17 @@ static int smu_v11_0_get_current_clk_freq(struct smu_context *smu, uint32_t clk_
        return ret;
 }
 
+static int smu_v11_0_get_thermal_range(struct smu_context *smu,
+                               struct PP_TemperatureRange *range)
+{
+       memcpy(range, &SMU7ThermalWithDelayPolicy[0], sizeof(struct PP_TemperatureRange));
+
+       range->max = smu->smu_table.software_shutdown_temp *
+               PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+
+       return 0;
+}
+
 static const struct smu_funcs smu_v11_0_funcs = {
        .init_microcode = smu_v11_0_init_microcode,
        .load_microcode = smu_v11_0_load_microcode,
index d34e1facd79cc671221227b341f576c81e4af72c..45f3276a6fee10a263f2514c9ee6c843c5565166 100644 (file)
@@ -159,6 +159,8 @@ static int vega20_store_powerplay_table(struct smu_context *smu)
        memcpy(table_context->driver_pptable, &powerplay_table->smcPPTable,
               sizeof(PPTable_t));
 
+       table_context->software_shutdown_temp = powerplay_table->usSoftwareShutdownTemp;
+
        return 0;
 }