Commit 5f1176b4 authored by Vinay Belgaumkar's avatar Vinay Belgaumkar Committed by John Harrison

drm/i915/guc/slpc: Check GuC status before freq boost

It's possible that i915 might get wedged between a boost
and un-boost. Validate the i915-GuC connection before trying
to send a H2G to change the min frequency.

Bug: https://gitlab.freedesktop.org/drm/intel/-/issues/4464

Cc: Ashutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: default avatarVinay Belgaumkar <vinay.belgaumkar@intel.com>
Reviewed-by: default avatarAshutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211112071016.9640-1-vinay.belgaumkar@intel.com
parent 212e6562
...@@ -183,11 +183,15 @@ static int slpc_unset_param(struct intel_guc_slpc *slpc, ...@@ -183,11 +183,15 @@ static int slpc_unset_param(struct intel_guc_slpc *slpc,
static int slpc_force_min_freq(struct intel_guc_slpc *slpc, u32 freq) static int slpc_force_min_freq(struct intel_guc_slpc *slpc, u32 freq)
{ {
struct drm_i915_private *i915 = slpc_to_i915(slpc); struct drm_i915_private *i915 = slpc_to_i915(slpc);
struct intel_guc *guc = slpc_to_guc(slpc);
intel_wakeref_t wakeref; intel_wakeref_t wakeref;
int ret = 0; int ret = 0;
lockdep_assert_held(&slpc->lock); lockdep_assert_held(&slpc->lock);
if (!intel_guc_is_ready(guc))
return -ENODEV;
/* /*
* This function is a little different as compared to * This function is a little different as compared to
* intel_guc_slpc_set_min_freq(). Softlimit will not be updated * intel_guc_slpc_set_min_freq(). Softlimit will not be updated
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment