Commit 00598d5c authored by Vinay Belgaumkar's avatar Vinay Belgaumkar Committed by Jani Nikula
Browse files

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: default avatarVinay Belgaumkar <vinay.belgaumkar@intel.com>
Fixes: 41e5c17e ("drm/i915/guc/slpc: Sysfs hooks for SLPC")
Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210907232704.12982-1-vinay.belgaumkar@intel.com


(cherry picked from commit f25e3908)
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
parent 03153666
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -1973,8 +1973,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)