if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
amdgpu_dpm_get_current_power_state(adev, &pm);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
level = amdgpu_dpm_get_performance_level(adev);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
if (amdgpu_dpm_get_pp_num_states(adev, &data))
memset(&data, 0, sizeof(data));
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
amdgpu_dpm_get_current_power_state(adev, &pm);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
size = amdgpu_dpm_get_pp_table(adev, &table);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
for (clk_index = 0 ; clk_index < 6 ; clk_index++) {
ret = amdgpu_dpm_emit_clock_levels(adev, od_clocks[clk_index], buf, &size);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
size = amdgpu_dpm_get_ppfeature_status(adev, buf);
if (size <= 0)
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
ret = amdgpu_dpm_emit_clock_levels(adev, type, buf, &size);
if (ret == -ENOENT)
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
value = amdgpu_dpm_get_sclk_od(adev);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
value = amdgpu_dpm_get_mclk_od(adev);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
size = amdgpu_dpm_get_power_profile_mode(adev, buf);
if (size <= 0)
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- r = pm_runtime_resume_and_get(adev->dev);
- if (r < 0)
- return r;
+ r = pm_runtime_get_if_active(adev->dev);
+ if (r <= 0)
+ return r ?: -EPERM;
/* get the sensor value */
r = amdgpu_dpm_read_sensor(adev, sensor, query, &size);
if (!adev->asic_funcs->get_pcie_usage)
return -ENODATA;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
amdgpu_asic_get_pcie_usage(adev, &count0, &count1);
struct drm_device *ddev = dev_get_drvdata(dev);
struct amdgpu_device *adev = drm_to_adev(ddev);
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
ret = amdgpu_dpm_get_apu_thermal_limit(adev, &limit);
if (!ret)
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
size = amdgpu_dpm_get_pm_metrics(adev, buf, PAGE_SIZE);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(ddev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(ddev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
size = amdgpu_dpm_get_gpu_metrics(adev, &gpu_metrics);
if (size <= 0)
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(adev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(adev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
ret = amdgpu_dpm_get_fan_control_mode(adev, &pwm_mode);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- err = pm_runtime_resume_and_get(adev->dev);
- if (err < 0)
- return err;
+ err = pm_runtime_get_if_active(adev->dev);
+ if (err <= 0)
+ return err ?: -EPERM;
err = amdgpu_dpm_get_fan_speed_pwm(adev, &speed);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- err = pm_runtime_resume_and_get(adev->dev);
- if (err < 0)
- return err;
+ err = pm_runtime_get_if_active(adev->dev);
+ if (err <= 0)
+ return err ?: -EPERM;
err = amdgpu_dpm_get_fan_speed_rpm(adev, &speed);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- err = pm_runtime_resume_and_get(adev->dev);
- if (err < 0)
- return err;
+ err = pm_runtime_get_if_active(adev->dev);
+ if (err <= 0)
+ return err ?: -EPERM;
err = amdgpu_dpm_get_fan_speed_rpm(adev, &rpm);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(adev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(adev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
ret = amdgpu_dpm_get_fan_control_mode(adev, &pwm_mode);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- r = pm_runtime_resume_and_get(adev->dev);
- if (r < 0)
- return r;
+ r = pm_runtime_get_if_active(adev->dev);
+ if (r <= 0)
+ return r ?: -EPERM;
r = amdgpu_dpm_get_power_limit(adev, &limit,
pp_limit_level, power_type);
if (adev->in_suspend && !adev->in_runpm)
return -EPERM;
- ret = pm_runtime_resume_and_get(adev->dev);
- if (ret < 0)
- return ret;
+ ret = pm_runtime_get_if_active(adev->dev);
+ if (ret <= 0)
+ return ret ?: -EPERM;
size = amdgpu_dpm_print_clock_levels(adev, od_type, buf);
if (size == 0)