[Intel-gfx] [PATCH] drm/i915: Organize HSW and BDW Forcewake MT Ack.
Ville Syrjälä
ville.syrjala at linux.intel.com
Fri Sep 26 20:12:54 CEST 2014
On Fri, Sep 26, 2014 at 01:15:26PM -0400, Rodrigo Vivi wrote:
> 0x130040 is actually a LCPLL_CTL and never was a Forcewake MT Ack.
> The fixed value was introduced but the wrong one was never removed.
> So let's clean the code and definitions a bit.
NAK. 0x130040 is the forcewake MT ack on IVB.
>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> ---
> drivers/gpu/drm/i915/i915_reg.h | 3 +--
> drivers/gpu/drm/i915/intel_uncore.c | 13 ++++---------
> 2 files changed, 5 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 15c0eaa..edd5485 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -5512,7 +5512,7 @@ enum punit_power_well {
> #define FORCEWAKE_ACK_VLV 0x1300b4
> #define FORCEWAKE_MEDIA_VLV 0x1300b8
> #define FORCEWAKE_ACK_MEDIA_VLV 0x1300bc
> -#define FORCEWAKE_ACK_HSW 0x130044
> +#define FORCEWAKE_MT_ACK 0x130044
> #define FORCEWAKE_ACK 0x130090
> #define VLV_GTLC_WAKE_CTRL 0x130090
> #define VLV_GTLC_RENDER_CTX_EXISTS (1 << 25)
> @@ -5527,7 +5527,6 @@ enum punit_power_well {
> #define FORCEWAKE_MT 0xa188 /* multi-threaded */
> #define FORCEWAKE_KERNEL 0x1
> #define FORCEWAKE_USER 0x2
> -#define FORCEWAKE_MT_ACK 0x130040
> #define ECOBUS 0xa180
> #define FORCEWAKE_MT_ENABLE (1<<5)
> #define VLV_SPAREG2H 0xA194
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index 918b761..a38c670 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -99,14 +99,8 @@ static void __gen7_gt_force_wake_mt_reset(struct drm_i915_private *dev_priv)
> static void __gen7_gt_force_wake_mt_get(struct drm_i915_private *dev_priv,
> int fw_engine)
> {
> - u32 forcewake_ack;
> -
> - if (IS_HASWELL(dev_priv->dev) || IS_BROADWELL(dev_priv->dev))
> - forcewake_ack = FORCEWAKE_ACK_HSW;
> - else
> - forcewake_ack = FORCEWAKE_MT_ACK;
> -
> - if (wait_for_atomic((__raw_i915_read32(dev_priv, forcewake_ack) & FORCEWAKE_KERNEL) == 0,
> + if (wait_for_atomic((__raw_i915_read32(dev_priv, FORCEWAKE_MT_ACK)
> + & FORCEWAKE_KERNEL) == 0,
> FORCEWAKE_ACK_TIMEOUT_MS))
> DRM_ERROR("Timed out waiting for forcewake old ack to clear.\n");
>
> @@ -115,7 +109,8 @@ static void __gen7_gt_force_wake_mt_get(struct drm_i915_private *dev_priv,
> /* something from same cacheline, but !FORCEWAKE_MT */
> __raw_posting_read(dev_priv, ECOBUS);
>
> - if (wait_for_atomic((__raw_i915_read32(dev_priv, forcewake_ack) & FORCEWAKE_KERNEL),
> + if (wait_for_atomic((__raw_i915_read32(dev_priv, FORCEWAKE_MT_ACK)
> + & FORCEWAKE_KERNEL),
> FORCEWAKE_ACK_TIMEOUT_MS))
> DRM_ERROR("Timed out waiting for forcewake to ack request.\n");
>
> --
> 1.9.3
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
More information about the Intel-gfx
mailing list