From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: sourab.gupta@intel.com
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
intel-gfx@lists.freedesktop.org,
Akash Goel <akash.goel@intel.com>
Subject: Re: [PATCH v3 5/6] drm/i915/vlv:Implement the WA 'WaDisable_RenderCache_OperationalFlush'
Date: Fri, 4 Apr 2014 14:17:25 +0300 [thread overview]
Message-ID: <20140404111725.GA12024@intel.com> (raw)
In-Reply-To: <1396500134-26674-1-git-send-email-sourab.gupta@intel.com>
On Thu, Apr 03, 2014 at 10:12:14AM +0530, sourab.gupta@intel.com wrote:
> From: Akash Goel <akash.goel@intel.com>
>
> On Gen4+ platforms (except BDW), Render Cache Operational flush
> cannot be enabled.
> This WA is apparently required for all Gen4+ platforms,except BDW.
> In BDW, the bit has been repurposed otherwise.
> This has been tested only on vlv.
>
> v2: Corrected the code regarding the wrong usage of
> MASKED_BIT_DISABLE (Chris)
>
> v3: Enhancing the scope of WA to Gen4+ platforms except BDW (Ville)
Actually you you missed g4x,crestline,broadwater. Add it into those as
well, and you can add:
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Signed-off-by: Akash Goel <akash.goel@intel.com>
> Signed-off-by: Sourab Gupta <sourab.gupta@intel.com>
> ---
> drivers/gpu/drm/i915/i915_reg.h | 1 +
> drivers/gpu/drm/i915/intel_pm.c | 15 +++++++++++++++
> 2 files changed, 16 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 393f93e..366c0bf 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -1060,6 +1060,7 @@ enum punit_power_well {
> #define ECO_FLIP_DONE (1<<0)
>
> #define CACHE_MODE_0_GEN7 0x7000 /* IVB+ */
> +#define RC_OP_FLUSH_ENABLE (1<<0)
> #define HIZ_RAW_STALL_OPT_DISABLE (1<<2)
> #define CACHE_MODE_1 0x7004 /* IVB+ */
> #define PIXEL_SUBSPAN_COLLECT_OPT_DISABLE (1<<6)
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 1454777..d181735 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -4624,6 +4624,9 @@ static void ironlake_init_clock_gating(struct drm_device *dev)
> I915_WRITE(CACHE_MODE_0,
> _MASKED_BIT_ENABLE(CM0_PIPELINED_RENDER_FLUSH_DISABLE));
>
> + /* WaDisable_RenderCache_OperationalFlush:ilk */
> + I915_WRITE(CACHE_MODE_0, _MASKED_BIT_DISABLE(RC_OP_FLUSH_ENABLE));
> +
> g4x_disable_trickle_feed(dev);
>
> ibx_init_clock_gating(dev);
> @@ -4699,6 +4702,9 @@ static void gen6_init_clock_gating(struct drm_device *dev)
> I915_WRITE(GEN6_GT_MODE,
> _MASKED_BIT_ENABLE(GEN6_TD_FOUR_ROW_DISPATCH_DISABLE));
>
> + /* WaDisable_RenderCache_OperationalFlush:snb */
> + I915_WRITE(CACHE_MODE_0, _MASKED_BIT_DISABLE(RC_OP_FLUSH_ENABLE));
> +
> /*
> * BSpec recoomends 8x4 when MSAA is used,
> * however in practice 16x4 seems fastest.
> @@ -4938,6 +4944,9 @@ static void haswell_init_clock_gating(struct drm_device *dev)
> I915_WRITE(GEN7_FF_THREAD_MODE,
> I915_READ(GEN7_FF_THREAD_MODE) & ~GEN7_FF_VS_REF_CNT_FFME);
>
> + /* WaDisable_RenderCache_OperationalFlush:hsw */
> + I915_WRITE(CACHE_MODE_0_GEN7, _MASKED_BIT_DISABLE(RC_OP_FLUSH_ENABLE));
> +
> /* enable HiZ Raw Stall Optimization */
> I915_WRITE(CACHE_MODE_0_GEN7,
> _MASKED_BIT_DISABLE(HIZ_RAW_STALL_OPT_DISABLE));
> @@ -4990,6 +4999,9 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
> I915_WRITE(GEN7_HALF_SLICE_CHICKEN1,
> _MASKED_BIT_ENABLE(GEN7_PSD_SINGLE_PORT_DISPATCH_ENABLE));
>
> + /* WaDisable_RenderCache_OperationalFlush:ivb */
> + I915_WRITE(CACHE_MODE_0_GEN7, _MASKED_BIT_DISABLE(RC_OP_FLUSH_ENABLE));
> +
> /* Apply the WaDisableRHWOOptimizationForRenderHang:ivb workaround. */
> I915_WRITE(GEN7_COMMON_SLICE_CHICKEN1,
> GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC);
> @@ -5107,6 +5119,9 @@ static void valleyview_init_clock_gating(struct drm_device *dev)
> _MASKED_BIT_ENABLE(GEN7_MAX_PS_THREAD_DEP |
> GEN7_PSD_SINGLE_PORT_DISPATCH_ENABLE));
>
> + /* WaDisable_RenderCache_OperationalFlush:vlv */
> + I915_WRITE(CACHE_MODE_0_GEN7, _MASKED_BIT_DISABLE(RC_OP_FLUSH_ENABLE));
> +
> /* WaForceL3Serialization:vlv */
> I915_WRITE(GEN7_L3SQCREG4, I915_READ(GEN7_L3SQCREG4) &
> ~L3SQ_URB_READ_CAM_MATCH_DISABLE);
> --
> 1.8.5.1
--
Ville Syrjälä
Intel OTC
next prev parent reply other threads:[~2014-04-04 11:17 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-24 17:30 [PATCH 0/6] Rendering Specific HW Workarounds for VLV sourab.gupta
2014-03-24 17:30 ` [PATCH v4 1/6] drm/i915/vlv: Added a rendering specific Hw WA 'WaTlbInvalidateStoreDataBefore' sourab.gupta
2014-03-24 17:30 ` [PATCH v4 2/6] drm/i915/vlv: Added a rendering specific Hw WA 'WaSendDummy3dPrimitveAfterSetContext' sourab.gupta
2014-04-08 4:41 ` Gupta, Sourab
2014-04-14 9:45 ` [PATCH v5 " sourab.gupta
2014-05-28 9:57 ` Gupta, Sourab
2014-06-05 5:44 ` Gupta, Sourab
2014-03-24 17:30 ` [PATCH v2 3/6] drm/i915: Enabling the TLB invalidate bit in GFX Mode register sourab.gupta
2014-04-01 5:01 ` Gupta, Sourab
2014-04-02 11:34 ` Ville Syrjälä
2014-04-02 11:55 ` Daniel Vetter
2014-03-24 17:30 ` [PATCH 4/6] drm/i915/vlv: Remove the enabling of VS_TIMER_DISPATCH bit in MI MODE reg sourab.gupta
2014-03-24 17:47 ` Chris Wilson
2014-03-24 17:55 ` Gupta, Sourab
2014-03-24 18:01 ` Chris Wilson
2014-03-24 18:28 ` [PATCH v2 " sourab.gupta
2014-03-25 11:33 ` Ville Syrjälä
2014-03-25 12:31 ` [PATCH v3 4/6] drm/i915: " sourab.gupta
2014-03-25 13:11 ` Ville Syrjälä
2014-03-25 15:41 ` Daniel Vetter
2014-03-24 17:30 ` [PATCH v2 5/6] drm/i915/vlv:Implement the WA 'WaDisable_RenderCache_OperationalFlush' sourab.gupta
2014-04-01 10:51 ` Ville Syrjälä
2014-04-03 4:42 ` [PATCH v3 " sourab.gupta
2014-04-04 11:17 ` Ville Syrjälä [this message]
2014-04-04 11:44 ` [PATCH v4 " sourab.gupta
2014-04-04 15:24 ` Chris Wilson
2014-04-04 15:35 ` Ville Syrjälä
2014-04-04 15:59 ` Chris Wilson
2014-04-04 15:59 ` Daniel Vetter
2014-03-24 17:30 ` [PATCH v2 6/6] drm/i915/vlv: Modifying WA 'WaDisableL3Bank2xClockGate for vlv sourab.gupta
2014-03-24 17:56 ` Damien Lespiau
2014-03-25 6:52 ` Gupta, Sourab
2014-04-01 5:22 ` Gupta, Sourab
2014-04-14 10:22 ` Gupta, Sourab
2014-05-26 10:33 ` Gupta, Sourab
2014-05-27 14:27 ` Damien Lespiau
2014-05-27 16:54 ` Daniel Vetter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140404111725.GA12024@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=akash.goel@intel.com \
--cc=daniel.vetter@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=sourab.gupta@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox