Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amd/pm: Add get_thermal_temperature_range support

Add get_thermal_temperature_range support smu_v15_0_8

v2: Remove sriov check (Lijo)

v3: Restrict to 1VF mode(Lijo)

Signed-off-by: Asad Kamal <asad.kamal@amd.com>
Signed-off-by: Yang Wang <kevinyang.wang@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Asad Kamal and committed by
Alex Deucher
bc296e6c 422b399b

+33
+33
drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_8_ppt.c
··· 1683 1683 return 0; 1684 1684 } 1685 1685 1686 + static int smu_v15_0_8_get_thermal_temperature_range(struct smu_context *smu, 1687 + struct smu_temperature_range *range) 1688 + { 1689 + struct smu_table_context *smu_table = &smu->smu_table; 1690 + PPTable_t *pptable = (PPTable_t *)smu_table->driver_pptable; 1691 + uint32_t max_ctf, max_thm; 1692 + 1693 + if (amdgpu_sriov_multi_vf_mode(smu->adev)) 1694 + return 0; 1695 + 1696 + if (!range) 1697 + return -EINVAL; 1698 + 1699 + /* CTF (Critical Temperature Fault) limits */ 1700 + max_ctf = max3(pptable->CTFLimitMID, pptable->CTFLimitXCD, 1701 + pptable->CTFLimitAID); 1702 + range->hotspot_emergency_max = max_ctf * SMU_TEMPERATURE_UNITS_PER_CENTIGRADES; 1703 + 1704 + range->mem_emergency_max = pptable->CTFLimitHBM * 1705 + SMU_TEMPERATURE_UNITS_PER_CENTIGRADES; 1706 + 1707 + /* Thermal throttling limits */ 1708 + max_thm = max3(pptable->ThermalLimitMID, pptable->ThermalLimitXCD, 1709 + pptable->ThermalLimitAID); 1710 + range->hotspot_crit_max = max_thm * SMU_TEMPERATURE_UNITS_PER_CENTIGRADES; 1711 + 1712 + range->mem_crit_max = pptable->ThermalLimitHBM * 1713 + SMU_TEMPERATURE_UNITS_PER_CENTIGRADES; 1714 + 1715 + return 0; 1716 + } 1717 + 1686 1718 static const struct pptable_funcs smu_v15_0_8_ppt_funcs = { 1687 1719 .init_allowed_features = smu_v15_0_8_init_allowed_features, 1688 1720 .set_default_dpm_table = smu_v15_0_8_set_default_dpm_table, ··· 1746 1714 .populate_umd_state_clk = smu_v15_0_8_populate_umd_state_clk, 1747 1715 .set_performance_level = smu_v15_0_8_set_performance_level, 1748 1716 .od_edit_dpm_table = smu_v15_0_8_od_edit_dpm_table, 1717 + .get_thermal_temperature_range = smu_v15_0_8_get_thermal_temperature_range, 1749 1718 }; 1750 1719 1751 1720 static void smu_v15_0_8_init_msg_ctl(struct smu_context *smu,