mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
drm/amd/pm: hide pp_table sysfs on APUs
APUs use firmware-owned DPM tables and do not support replacement through pp_table. Generic callbacks can nevertheless expose the sysfs file and accept an upload before resetting the power management stack. Treat pp_table as unsupported on APUs. Use the same platform check in the get and set paths to hide the file and reject uploads. Fixes:289921b03f("drm/amd/powerplay: implement sysfs of pp_table for smu11 (v2)") Signed-off-by: Yang Wang <kevinyang.wang@amd.com> Reviewed-by: Kenneth Feng <kenneth.feng@amd.com> Reviewed-by: Asad Kamal <asad.kamal@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit74f28db2db) Cc: stable@vger.kernel.org
This commit is contained in:
parent
114b42507b
commit
a65f5179d3
|
|
@ -1183,6 +1183,13 @@ int amdgpu_dpm_dispatch_task(struct amdgpu_device *adev,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static bool amdgpu_dpm_is_pp_table_allowed(struct amdgpu_device *adev)
|
||||
{
|
||||
return !amdgpu_sriov_vf(adev) &&
|
||||
!(adev->flags & AMD_IS_APU) &&
|
||||
!adev->scpm_enabled;
|
||||
}
|
||||
|
||||
int amdgpu_dpm_get_pp_table(struct amdgpu_device *adev, char *table,
|
||||
size_t size)
|
||||
{
|
||||
|
|
@ -1193,7 +1200,8 @@ int amdgpu_dpm_get_pp_table(struct amdgpu_device *adev, char *table,
|
|||
if ((!table && size) || (table && !size))
|
||||
return -EINVAL;
|
||||
|
||||
if (amdgpu_sriov_vf(adev) || !pp_funcs->get_pp_table || adev->scpm_enabled)
|
||||
if (!amdgpu_dpm_is_pp_table_allowed(adev) ||
|
||||
!pp_funcs->get_pp_table)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
mutex_lock(&adev->pm.mutex);
|
||||
|
|
@ -1717,7 +1725,8 @@ int amdgpu_dpm_set_pp_table(struct amdgpu_device *adev,
|
|||
if (!buf || !size)
|
||||
return -EINVAL;
|
||||
|
||||
if (amdgpu_sriov_vf(adev) || !pp_funcs->set_pp_table || adev->scpm_enabled)
|
||||
if (!amdgpu_dpm_is_pp_table_allowed(adev) ||
|
||||
!pp_funcs->set_pp_table)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
mutex_lock(&adev->pm.mutex);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user