drm/i915: Get PM ref before accessing HW register
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@intel.com>
Fixes: 41e5c17ebf ("drm/i915/guc/slpc: Sysfs hooks for SLPC")
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210907232704.12982-1-vinay.belgaumkar@intel.com
This commit is contained in:
committed by
John Harrison
parent
74388ca483
commit
f25e3908b9
@@ -1969,8 +1969,14 @@ u32 intel_rps_read_actual_frequency(struct intel_rps *rps)
|
|||||||
u32 intel_rps_read_punit_req(struct intel_rps *rps)
|
u32 intel_rps_read_punit_req(struct intel_rps *rps)
|
||||||
{
|
{
|
||||||
struct intel_uncore *uncore = rps_to_uncore(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)
|
static u32 intel_rps_get_req(u32 pureq)
|
||||||
|
|||||||
Reference in New Issue
Block a user