mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
drm/amd/pm: correct MGpuFanBoost setting
commit 1a0b713c73 upstream.
No MGpuFanBoost setting for those ASICs which do not support it.
Otherwise, it may breaks their fan control feature.
Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1580
Signed-off-by: Evan Quan <evan.quan@amd.com>
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
1a8ecc3cd1
commit
e3a662e5e8
|
|
@ -2606,6 +2606,8 @@ static ssize_t navi10_get_gpu_metrics(struct smu_context *smu,
|
||||||
|
|
||||||
static int navi10_enable_mgpu_fan_boost(struct smu_context *smu)
|
static int navi10_enable_mgpu_fan_boost(struct smu_context *smu)
|
||||||
{
|
{
|
||||||
|
struct smu_table_context *table_context = &smu->smu_table;
|
||||||
|
PPTable_t *smc_pptable = table_context->driver_pptable;
|
||||||
struct amdgpu_device *adev = smu->adev;
|
struct amdgpu_device *adev = smu->adev;
|
||||||
uint32_t param = 0;
|
uint32_t param = 0;
|
||||||
|
|
||||||
|
|
@ -2613,6 +2615,13 @@ static int navi10_enable_mgpu_fan_boost(struct smu_context *smu)
|
||||||
if (adev->asic_type == CHIP_NAVI12)
|
if (adev->asic_type == CHIP_NAVI12)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Skip the MGpuFanBoost setting for those ASICs
|
||||||
|
* which do not support it
|
||||||
|
*/
|
||||||
|
if (!smc_pptable->MGpuFanBoostLimitRpm)
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* Workaround for WS SKU */
|
/* Workaround for WS SKU */
|
||||||
if (adev->pdev->device == 0x7312 &&
|
if (adev->pdev->device == 0x7312 &&
|
||||||
adev->pdev->revision == 0)
|
adev->pdev->revision == 0)
|
||||||
|
|
|
||||||
|
|
@ -2715,6 +2715,16 @@ static ssize_t sienna_cichlid_get_gpu_metrics(struct smu_context *smu,
|
||||||
|
|
||||||
static int sienna_cichlid_enable_mgpu_fan_boost(struct smu_context *smu)
|
static int sienna_cichlid_enable_mgpu_fan_boost(struct smu_context *smu)
|
||||||
{
|
{
|
||||||
|
struct smu_table_context *table_context = &smu->smu_table;
|
||||||
|
PPTable_t *smc_pptable = table_context->driver_pptable;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Skip the MGpuFanBoost setting for those ASICs
|
||||||
|
* which do not support it
|
||||||
|
*/
|
||||||
|
if (!smc_pptable->MGpuFanBoostLimitRpm)
|
||||||
|
return 0;
|
||||||
|
|
||||||
return smu_cmn_send_smc_msg_with_param(smu,
|
return smu_cmn_send_smc_msg_with_param(smu,
|
||||||
SMU_MSG_SetMGpuFanBoostLimitRpm,
|
SMU_MSG_SetMGpuFanBoostLimitRpm,
|
||||||
0,
|
0,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user