summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorYang Wang <kevinyang.wang@amd.com>2026-04-16 18:17:30 +0800
committerAlex Deucher <alexander.deucher@amd.com>2026-04-17 14:51:15 -0400
commit25fd8095a868cfbeb9ef3118131d2ba1f7057846 (patch)
treeba9ed926e22668ac2a33d90ca8433bfc9ec2c6a5 /drivers
parent80d4d3a45b86816e9a99de4e3d6640ff82707dac (diff)
downloadlinux-next-25fd8095a868cfbeb9ef3118131d2ba1f7057846.tar.gz
linux-next-25fd8095a868cfbeb9ef3118131d2ba1f7057846.zip
drm/amd/pm: fix runtime PM imbalance issue in amdgpu_pm.c
Fix runtime PM counter imbalance to prevent device from failing to enter low power state Fixes: a50d32c41fb2 ("drm/amd/pm: Deprecate print_clock_levels interface") 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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/amd/pm/amdgpu_pm.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
index 62b0b1ef0d10..736304e73ca4 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -995,12 +995,15 @@ static ssize_t amdgpu_get_pp_dpm_clock(struct device *dev,
return ret;
ret = amdgpu_dpm_emit_clock_levels(adev, type, buf, &size);
- if (ret)
- return ret;
+ if (ret) {
+ size = ret;
+ goto out_pm_put;
+ }
if (size == 0)
size = sysfs_emit(buf, "\n");
+out_pm_put:
amdgpu_pm_put_access(adev);
return size;
@@ -3902,11 +3905,14 @@ static int amdgpu_retrieve_od_settings(struct amdgpu_device *adev,
return ret;
ret = amdgpu_dpm_emit_clock_levels(adev, od_type, buf, &size);
- if (ret)
- return ret;
+ if (ret) {
+ size = ret;
+ goto out_pm_put;
+ }
if (size == 0)
size = sysfs_emit(buf, "\n");
+out_pm_put:
amdgpu_pm_put_access(adev);
return size;