|
@@ -322,7 +322,7 @@ static void chv_set_memory_dvfs(struct drm_i915_private *dev_priv, bool enable)
|
|
|
{
|
|
|
u32 val;
|
|
|
|
|
|
- mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_lock(&dev_priv->pcu_lock);
|
|
|
|
|
|
val = vlv_punit_read(dev_priv, PUNIT_REG_DDR_SETUP2);
|
|
|
if (enable)
|
|
@@ -337,14 +337,14 @@ static void chv_set_memory_dvfs(struct drm_i915_private *dev_priv, bool enable)
|
|
|
FORCE_DDR_FREQ_REQ_ACK) == 0, 3))
|
|
|
DRM_ERROR("timed out waiting for Punit DDR DVFS request\n");
|
|
|
|
|
|
- mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_unlock(&dev_priv->pcu_lock);
|
|
|
}
|
|
|
|
|
|
static void chv_set_memory_pm5(struct drm_i915_private *dev_priv, bool enable)
|
|
|
{
|
|
|
u32 val;
|
|
|
|
|
|
- mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_lock(&dev_priv->pcu_lock);
|
|
|
|
|
|
val = vlv_punit_read(dev_priv, PUNIT_REG_DSPFREQ);
|
|
|
if (enable)
|
|
@@ -353,7 +353,7 @@ static void chv_set_memory_pm5(struct drm_i915_private *dev_priv, bool enable)
|
|
|
val &= ~DSP_MAXFIFO_PM5_ENABLE;
|
|
|
vlv_punit_write(dev_priv, PUNIT_REG_DSPFREQ, val);
|
|
|
|
|
|
- mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_unlock(&dev_priv->pcu_lock);
|
|
|
}
|
|
|
|
|
|
#define FW_WM(value, plane) \
|
|
@@ -2790,11 +2790,11 @@ static void intel_read_wm_latency(struct drm_i915_private *dev_priv,
|
|
|
|
|
|
/* read the first set of memory latencies[0:3] */
|
|
|
val = 0; /* data0 to be programmed to 0 for first set */
|
|
|
- mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_lock(&dev_priv->pcu_lock);
|
|
|
ret = sandybridge_pcode_read(dev_priv,
|
|
|
GEN9_PCODE_READ_MEM_LATENCY,
|
|
|
&val);
|
|
|
- mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_unlock(&dev_priv->pcu_lock);
|
|
|
|
|
|
if (ret) {
|
|
|
DRM_ERROR("SKL Mailbox read error = %d\n", ret);
|
|
@@ -2811,11 +2811,11 @@ static void intel_read_wm_latency(struct drm_i915_private *dev_priv,
|
|
|
|
|
|
/* read the second set of memory latencies[4:7] */
|
|
|
val = 1; /* data0 to be programmed to 1 for second set */
|
|
|
- mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_lock(&dev_priv->pcu_lock);
|
|
|
ret = sandybridge_pcode_read(dev_priv,
|
|
|
GEN9_PCODE_READ_MEM_LATENCY,
|
|
|
&val);
|
|
|
- mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_unlock(&dev_priv->pcu_lock);
|
|
|
if (ret) {
|
|
|
DRM_ERROR("SKL Mailbox read error = %d\n", ret);
|
|
|
return;
|
|
@@ -3608,13 +3608,13 @@ intel_enable_sagv(struct drm_i915_private *dev_priv)
|
|
|
return 0;
|
|
|
|
|
|
DRM_DEBUG_KMS("Enabling the SAGV\n");
|
|
|
- mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_lock(&dev_priv->pcu_lock);
|
|
|
|
|
|
ret = sandybridge_pcode_write(dev_priv, GEN9_PCODE_SAGV_CONTROL,
|
|
|
GEN9_SAGV_ENABLE);
|
|
|
|
|
|
/* We don't need to wait for the SAGV when enabling */
|
|
|
- mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_unlock(&dev_priv->pcu_lock);
|
|
|
|
|
|
/*
|
|
|
* Some skl systems, pre-release machines in particular,
|
|
@@ -3645,14 +3645,14 @@ intel_disable_sagv(struct drm_i915_private *dev_priv)
|
|
|
return 0;
|
|
|
|
|
|
DRM_DEBUG_KMS("Disabling the SAGV\n");
|
|
|
- mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_lock(&dev_priv->pcu_lock);
|
|
|
|
|
|
/* bspec says to keep retrying for at least 1 ms */
|
|
|
ret = skl_pcode_request(dev_priv, GEN9_PCODE_SAGV_CONTROL,
|
|
|
GEN9_SAGV_DISABLE,
|
|
|
GEN9_SAGV_IS_DISABLED, GEN9_SAGV_IS_DISABLED,
|
|
|
1);
|
|
|
- mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_unlock(&dev_priv->pcu_lock);
|
|
|
|
|
|
/*
|
|
|
* Some skl systems, pre-release machines in particular,
|
|
@@ -5621,7 +5621,7 @@ void vlv_wm_get_hw_state(struct drm_device *dev)
|
|
|
wm->level = VLV_WM_LEVEL_PM2;
|
|
|
|
|
|
if (IS_CHERRYVIEW(dev_priv)) {
|
|
|
- mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_lock(&dev_priv->pcu_lock);
|
|
|
|
|
|
val = vlv_punit_read(dev_priv, PUNIT_REG_DSPFREQ);
|
|
|
if (val & DSP_MAXFIFO_PM5_ENABLE)
|
|
@@ -5651,7 +5651,7 @@ void vlv_wm_get_hw_state(struct drm_device *dev)
|
|
|
wm->level = VLV_WM_LEVEL_DDR_DVFS;
|
|
|
}
|
|
|
|
|
|
- mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_unlock(&dev_priv->pcu_lock);
|
|
|
}
|
|
|
|
|
|
for_each_intel_crtc(dev, crtc) {
|
|
@@ -6224,7 +6224,7 @@ static void vlv_set_rps_idle(struct drm_i915_private *dev_priv)
|
|
|
|
|
|
void gen6_rps_busy(struct drm_i915_private *dev_priv)
|
|
|
{
|
|
|
- mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_lock(&dev_priv->pcu_lock);
|
|
|
if (dev_priv->rps.enabled) {
|
|
|
u8 freq;
|
|
|
|
|
@@ -6247,7 +6247,7 @@ void gen6_rps_busy(struct drm_i915_private *dev_priv)
|
|
|
dev_priv->rps.max_freq_softlimit)))
|
|
|
DRM_DEBUG_DRIVER("Failed to set idle frequency\n");
|
|
|
}
|
|
|
- mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_unlock(&dev_priv->pcu_lock);
|
|
|
}
|
|
|
|
|
|
void gen6_rps_idle(struct drm_i915_private *dev_priv)
|
|
@@ -6259,7 +6259,7 @@ void gen6_rps_idle(struct drm_i915_private *dev_priv)
|
|
|
*/
|
|
|
gen6_disable_rps_interrupts(dev_priv);
|
|
|
|
|
|
- mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_lock(&dev_priv->pcu_lock);
|
|
|
if (dev_priv->rps.enabled) {
|
|
|
if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
|
|
|
vlv_set_rps_idle(dev_priv);
|
|
@@ -6269,7 +6269,7 @@ void gen6_rps_idle(struct drm_i915_private *dev_priv)
|
|
|
I915_WRITE(GEN6_PMINTRMSK,
|
|
|
gen6_sanitize_rps_pm_mask(dev_priv, ~0));
|
|
|
}
|
|
|
- mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_unlock(&dev_priv->pcu_lock);
|
|
|
}
|
|
|
|
|
|
void gen6_rps_boost(struct drm_i915_gem_request *rq,
|
|
@@ -6306,7 +6306,7 @@ int intel_set_rps(struct drm_i915_private *dev_priv, u8 val)
|
|
|
{
|
|
|
int err;
|
|
|
|
|
|
- lockdep_assert_held(&dev_priv->rps.hw_lock);
|
|
|
+ lockdep_assert_held(&dev_priv->pcu_lock);
|
|
|
GEM_BUG_ON(val > dev_priv->rps.max_freq);
|
|
|
GEM_BUG_ON(val < dev_priv->rps.min_freq);
|
|
|
|
|
@@ -6715,7 +6715,7 @@ static void gen6_enable_rc6(struct drm_i915_private *dev_priv)
|
|
|
int rc6_mode;
|
|
|
int ret;
|
|
|
|
|
|
- WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
|
|
|
+ WARN_ON(!mutex_is_locked(&dev_priv->pcu_lock));
|
|
|
|
|
|
I915_WRITE(GEN6_RC_STATE, 0);
|
|
|
|
|
@@ -6789,7 +6789,7 @@ static void gen6_enable_rc6(struct drm_i915_private *dev_priv)
|
|
|
|
|
|
static void gen6_enable_rps(struct drm_i915_private *dev_priv)
|
|
|
{
|
|
|
- WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
|
|
|
+ WARN_ON(!mutex_is_locked(&dev_priv->pcu_lock));
|
|
|
|
|
|
/* Here begins a magic sequence of register writes to enable
|
|
|
* auto-downclocking.
|
|
@@ -6817,7 +6817,7 @@ static void gen6_update_ring_freq(struct drm_i915_private *dev_priv)
|
|
|
int scaling_factor = 180;
|
|
|
struct cpufreq_policy *policy;
|
|
|
|
|
|
- WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
|
|
|
+ WARN_ON(!mutex_is_locked(&dev_priv->pcu_lock));
|
|
|
|
|
|
policy = cpufreq_cpu_get(0);
|
|
|
if (policy) {
|
|
@@ -7210,7 +7210,7 @@ static void cherryview_enable_rc6(struct drm_i915_private *dev_priv)
|
|
|
enum intel_engine_id id;
|
|
|
u32 gtfifodbg, rc6_mode = 0, pcbr;
|
|
|
|
|
|
- WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
|
|
|
+ WARN_ON(!mutex_is_locked(&dev_priv->pcu_lock));
|
|
|
|
|
|
gtfifodbg = I915_READ(GTFIFODBG) & ~(GT_FIFO_SBDEDICATE_FREE_ENTRY_CHV |
|
|
|
GT_FIFO_FREE_ENTRIES_CHV);
|
|
@@ -7264,7 +7264,7 @@ static void cherryview_enable_rps(struct drm_i915_private *dev_priv)
|
|
|
{
|
|
|
u32 val;
|
|
|
|
|
|
- WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
|
|
|
+ WARN_ON(!mutex_is_locked(&dev_priv->pcu_lock));
|
|
|
|
|
|
intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
|
|
|
|
|
@@ -7310,7 +7310,7 @@ static void valleyview_enable_rc6(struct drm_i915_private *dev_priv)
|
|
|
enum intel_engine_id id;
|
|
|
u32 gtfifodbg, rc6_mode = 0;
|
|
|
|
|
|
- WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
|
|
|
+ WARN_ON(!mutex_is_locked(&dev_priv->pcu_lock));
|
|
|
|
|
|
valleyview_check_pctx(dev_priv);
|
|
|
|
|
@@ -7357,7 +7357,7 @@ static void valleyview_enable_rps(struct drm_i915_private *dev_priv)
|
|
|
{
|
|
|
u32 val;
|
|
|
|
|
|
- WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
|
|
|
+ WARN_ON(!mutex_is_locked(&dev_priv->pcu_lock));
|
|
|
|
|
|
intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
|
|
|
|
|
@@ -7881,7 +7881,7 @@ void intel_init_gt_powersave(struct drm_i915_private *dev_priv)
|
|
|
}
|
|
|
|
|
|
mutex_lock(&dev_priv->drm.struct_mutex);
|
|
|
- mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_lock(&dev_priv->pcu_lock);
|
|
|
|
|
|
/* Initialize RPS limits (for userspace) */
|
|
|
if (IS_CHERRYVIEW(dev_priv))
|
|
@@ -7921,7 +7921,7 @@ void intel_init_gt_powersave(struct drm_i915_private *dev_priv)
|
|
|
/* Finally allow us to boost to max by default */
|
|
|
dev_priv->rps.boost_freq = dev_priv->rps.max_freq;
|
|
|
|
|
|
- mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_unlock(&dev_priv->pcu_lock);
|
|
|
mutex_unlock(&dev_priv->drm.struct_mutex);
|
|
|
|
|
|
intel_autoenable_gt_powersave(dev_priv);
|
|
@@ -7968,7 +7968,7 @@ void intel_disable_gt_powersave(struct drm_i915_private *dev_priv)
|
|
|
if (!READ_ONCE(dev_priv->rps.enabled))
|
|
|
return;
|
|
|
|
|
|
- mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_lock(&dev_priv->pcu_lock);
|
|
|
|
|
|
if (INTEL_GEN(dev_priv) >= 9) {
|
|
|
gen9_disable_rc6(dev_priv);
|
|
@@ -7987,7 +7987,7 @@ void intel_disable_gt_powersave(struct drm_i915_private *dev_priv)
|
|
|
}
|
|
|
|
|
|
dev_priv->rps.enabled = false;
|
|
|
- mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_unlock(&dev_priv->pcu_lock);
|
|
|
}
|
|
|
|
|
|
void intel_enable_gt_powersave(struct drm_i915_private *dev_priv)
|
|
@@ -8002,7 +8002,7 @@ void intel_enable_gt_powersave(struct drm_i915_private *dev_priv)
|
|
|
if (intel_vgpu_active(dev_priv))
|
|
|
return;
|
|
|
|
|
|
- mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_lock(&dev_priv->pcu_lock);
|
|
|
|
|
|
if (IS_CHERRYVIEW(dev_priv)) {
|
|
|
cherryview_enable_rc6(dev_priv);
|
|
@@ -8035,7 +8035,7 @@ void intel_enable_gt_powersave(struct drm_i915_private *dev_priv)
|
|
|
WARN_ON(dev_priv->rps.efficient_freq > dev_priv->rps.max_freq);
|
|
|
|
|
|
dev_priv->rps.enabled = true;
|
|
|
- mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_unlock(&dev_priv->pcu_lock);
|
|
|
}
|
|
|
|
|
|
static void __intel_autoenable_gt_powersave(struct work_struct *work)
|
|
@@ -9123,7 +9123,7 @@ int sandybridge_pcode_read(struct drm_i915_private *dev_priv, u32 mbox, u32 *val
|
|
|
{
|
|
|
int status;
|
|
|
|
|
|
- WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
|
|
|
+ WARN_ON(!mutex_is_locked(&dev_priv->pcu_lock));
|
|
|
|
|
|
/* GEN6_PCODE_* are outside of the forcewake domain, we can
|
|
|
* use te fw I915_READ variants to reduce the amount of work
|
|
@@ -9170,7 +9170,7 @@ int sandybridge_pcode_write(struct drm_i915_private *dev_priv,
|
|
|
{
|
|
|
int status;
|
|
|
|
|
|
- WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
|
|
|
+ WARN_ON(!mutex_is_locked(&dev_priv->pcu_lock));
|
|
|
|
|
|
/* GEN6_PCODE_* are outside of the forcewake domain, we can
|
|
|
* use te fw I915_READ variants to reduce the amount of work
|
|
@@ -9247,7 +9247,7 @@ int skl_pcode_request(struct drm_i915_private *dev_priv, u32 mbox, u32 request,
|
|
|
u32 status;
|
|
|
int ret;
|
|
|
|
|
|
- WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
|
|
|
+ WARN_ON(!mutex_is_locked(&dev_priv->pcu_lock));
|
|
|
|
|
|
#define COND skl_pcode_try_request(dev_priv, mbox, request, reply_mask, reply, \
|
|
|
&status)
|
|
@@ -9344,7 +9344,7 @@ int intel_freq_opcode(struct drm_i915_private *dev_priv, int val)
|
|
|
|
|
|
void intel_pm_setup(struct drm_i915_private *dev_priv)
|
|
|
{
|
|
|
- mutex_init(&dev_priv->rps.hw_lock);
|
|
|
+ mutex_init(&dev_priv->pcu_lock);
|
|
|
|
|
|
INIT_DELAYED_WORK(&dev_priv->rps.autoenable_work,
|
|
|
__intel_autoenable_gt_powersave);
|