[Intel-gfx] [PATCH 24/28] drm/i915: Don't apply WaVSThreadDispatchOverride on HSW
Rodrigo Vivi
rodrigo.vivi at gmail.com
Wed Jan 29 14:06:22 CET 2014
Reviewed-by: Rodrigo Vivi <rodrigo.vivi at gmail.com>
On Wed, Jan 22, 2014 at 5:33 PM, <ville.syrjala at linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> BSpec states that the thread override values set by
> gen7_setup_fixed_func_scheduler() are invalid for HSW. So let's not
> muck around with them.
>
> Since gen7_setup_fixed_func_scheduler() now has two totally independent
> parts, one for IVB and one for HSW, move the HSW part directly into
> haswell_init_clock_gating().
>
> Note tht there's another workaround by the name of
> WaHSWVSRefCountFullforceMissDisable which basically claims that later
> steppings don't need the fix, but since WaVSRefCountFullforceMissDisable
> is listed to be needed for all steppings play it safe and keep applying
> the workaround.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_pm.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 766bc8a..376a52e 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -4655,7 +4655,7 @@ static void gen7_setup_fixed_func_scheduler(struct drm_i915_private *dev_priv)
> uint32_t reg = I915_READ(GEN7_FF_THREAD_MODE);
>
> /*
> - * WaVSThreadDispatchOverride:ivb,hsw
> + * WaVSThreadDispatchOverride:ivb
> *
> * This actually overrides the dispatch
> * mode for all thread types.
> @@ -4665,10 +4665,6 @@ static void gen7_setup_fixed_func_scheduler(struct drm_i915_private *dev_priv)
> reg |= GEN7_FF_VS_SCHED_HW;
> reg |= GEN7_FF_DS_SCHED_HW;
>
> - /* WaVSRefCountFullforceMissDisable:hsw */
> - if (IS_HASWELL(dev_priv->dev))
> - reg &= ~GEN7_FF_VS_REF_CNT_FFME;
> -
> I915_WRITE(GEN7_FF_THREAD_MODE, reg);
> }
>
> @@ -4779,7 +4775,9 @@ static void haswell_init_clock_gating(struct drm_device *dev)
> I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
> GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
>
> - gen7_setup_fixed_func_scheduler(dev_priv);
> + /* WaVSRefCountFullforceMissDisable:hsw */
> + I915_WRITE(GEN7_FF_THREAD_MODE,
> + I915_READ(GEN7_FF_THREAD_MODE) & ~GEN7_FF_VS_REF_CNT_FFME);
>
> /* WaDisable4x2SubspanOptimization:hsw */
> I915_WRITE(CACHE_MODE_1,
> --
> 1.8.3.2
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Rodrigo Vivi
Blog: http://blog.vivi.eng.br
More information about the Intel-gfx
mailing list