[Intel-gfx] [PATCH] drm/i915: Get PM ref before accessing HW register
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Wed Sep 8 09:26:28 UTC 2021
On 08/09/2021 00:27, Vinay Belgaumkar wrote:
> Seeing these errors when GT is likely in suspend state-
> "RPM wakelock ref not held during HW access"
>
> Ensure GT is awake before trying to access HW registers. Avoid
> reading the register if that is not the case.
>
> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar at intel.com>
Fixes: 41e5c17ebfc2 ("drm/i915/guc/slpc: Sysfs hooks for SLPC")
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
> ---
> drivers/gpu/drm/i915/gt/intel_rps.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
> index 3489f5f0cac1..e1a198bbd135 100644
> --- a/drivers/gpu/drm/i915/gt/intel_rps.c
> +++ b/drivers/gpu/drm/i915/gt/intel_rps.c
> @@ -1969,8 +1969,14 @@ u32 intel_rps_read_actual_frequency(struct intel_rps *rps)
> u32 intel_rps_read_punit_req(struct intel_rps *rps)
> {
> struct intel_uncore *uncore = rps_to_uncore(rps);
> + struct intel_runtime_pm *rpm = rps_to_uncore(rps)->rpm;
> + intel_wakeref_t wakeref;
> + u32 freq = 0;
>
> - return intel_uncore_read(uncore, GEN6_RPNSWREQ);
> + with_intel_runtime_pm_if_in_use(rpm, wakeref)
> + freq = intel_uncore_read(uncore, GEN6_RPNSWREQ);
> +
> + return freq;
> }
>
> static u32 intel_rps_get_req(u32 pureq)
>
More information about the Intel-gfx
mailing list