mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 11:03:43 +02:00
drm/amd/pm: Fix incorrect power limit readback in smu11 if POWER_SOURCE_DC
when smu->adev->pm.ac_power == 0, message parameter with bit 16 set is saved
to smu->current_power_limit.
Fixes: 0cb4c62125 ("drm/amd/pm: correct power limit setting for SMU V11)"
Signed-off-by: Darren Powell <darren.powell@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
2d1ac1cbe5
commit
02f8aa9f2a
|
|
@ -984,6 +984,7 @@ int smu_v11_0_set_power_limit(struct smu_context *smu,
|
|||
{
|
||||
int power_src;
|
||||
int ret = 0;
|
||||
uint32_t limit_param;
|
||||
|
||||
if (limit_type != SMU_DEFAULT_PPT_LIMIT)
|
||||
return -EINVAL;
|
||||
|
|
@ -1006,10 +1007,10 @@ int smu_v11_0_set_power_limit(struct smu_context *smu,
|
|||
* BIT 16-23: PowerSource
|
||||
* BIT 0-15: PowerLimit
|
||||
*/
|
||||
limit &= 0xFFFF;
|
||||
limit |= 0 << 24;
|
||||
limit |= (power_src) << 16;
|
||||
ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetPptLimit, limit, NULL);
|
||||
limit_param = (limit & 0xFFFF);
|
||||
limit_param |= 0 << 24;
|
||||
limit_param |= (power_src) << 16;
|
||||
ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetPptLimit, limit_param, NULL);
|
||||
if (ret) {
|
||||
dev_err(smu->adev->dev, "[%s] Set power limit Failed!\n", __func__);
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user