From: "Siluvery, Arun" <arun.siluvery@linux.intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915/chv: Add new WA and remove pre-production ones
Date: Tue, 28 Oct 2014 17:54:23 +0000 [thread overview]
Message-ID: <544FD84F.3000709@linux.intel.com> (raw)
In-Reply-To: <20141028170641.GA4284@intel.com>
On 28/10/2014 17:06, Ville Syrjälä wrote:
> On Tue, Oct 28, 2014 at 03:48:24PM +0000, Arun Siluvery wrote:
>> +WaForceEnableNonCoherent:chv
>> +WaHdcDisableFetchWhenMasked:chv
>> -WaDisableDopClockGating:chv
>> -WaDisableSamplerPowerBypass:chv
>> -WaDisableGunitClockGating:chv
>> -WaDisableFfDopClockGating:chv
>> -WaDisableDopClockGating:chv
>>
>> WaDisablePartialInstShootdown:chv and
>> WaDisableThreadStallDopClockGating:chv are related to the
>> same register so combine them.
>
> Please split into at least two patches (one to add new w/as and another to
> remove old ones). Otherwise reverting is a pita in case we find that one
> of the dropped w/as was actually still needed.
>
I thought of doing that but then combined them as these are early
pre-production ones and we may not need them in future but I agree
splitting them helps in reverting them if required.
>>
>> v2: Remove pre-production WA instead of restricting them
>> based on revision id (Ville)
>>
>> For: VIZ-4090
>> Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
>> ---
>> drivers/gpu/drm/i915/i915_reg.h | 1 +
>> drivers/gpu/drm/i915/intel_pm.c | 12 ------------
>> drivers/gpu/drm/i915/intel_ringbuffer.c | 22 +++++++++++-----------
>> 3 files changed, 12 insertions(+), 23 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
>> index 77fce96..9d39700 100644
>> --- a/drivers/gpu/drm/i915/i915_reg.h
>> +++ b/drivers/gpu/drm/i915/i915_reg.h
>> @@ -5024,6 +5024,7 @@ enum punit_power_well {
>> /* GEN8 chicken */
>> #define HDC_CHICKEN0 0x7300
>> #define HDC_FORCE_NON_COHERENT (1<<4)
>> +#define HDC_DONOT_FETCH_MEM_WHEN_MASKED (1<<11)
>> #define HDC_FENCE_DEST_SLM_DISABLE (1<<14)
>>
>> /* WaCatErrorRejectionIssue */
>> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
>> index 7a69eba..93db25f 100644
>> --- a/drivers/gpu/drm/i915/intel_pm.c
>> +++ b/drivers/gpu/drm/i915/intel_pm.c
>> @@ -5944,18 +5944,6 @@ static void cherryview_init_clock_gating(struct drm_device *dev)
>> /* WaDisableSDEUnitClockGating:chv */
>> I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
>> GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
>> -
>> - /* WaDisableGunitClockGating:chv (pre-production hw) */
>> - I915_WRITE(VLV_GUNIT_CLOCK_GATE, I915_READ(VLV_GUNIT_CLOCK_GATE) |
>> - GINT_DIS);
>
> OK
>
>> -
>> - /* WaDisableFfDopClockGating:chv (pre-production hw) */
>> - I915_WRITE(GEN6_RC_SLEEP_PSMI_CONTROL,
>> - _MASKED_BIT_ENABLE(GEN8_FF_DOP_CLOCK_GATE_DISABLE));
>
> OK
>
>> -
>> - /* WaDisableDopClockGating:chv (pre-production hw) */
>> - I915_WRITE(GEN6_UCGCTL1, I915_READ(GEN6_UCGCTL1) |
>> - GEN6_EU_TCUNIT_CLOCK_GATE_DISABLE);
>
> OK, I think. This was the weird w/a where it seemed hard to figure out
> what it needed. Nothing in BSpec about needing this bit on chv.
>
>> }
>>
>> static void g4x_init_clock_gating(struct drm_device *dev)
>> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
>> index a8f72e8..368b20a 100644
>> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
>> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
>> @@ -788,20 +788,20 @@ static int chv_init_workarounds(struct intel_engine_cs *ring)
>> struct drm_i915_private *dev_priv = dev->dev_private;
>>
>> /* WaDisablePartialInstShootdown:chv */
>> - WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN,
>> - PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE);
>> -
>> /* WaDisableThreadStallDopClockGating:chv */
>> WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN,
>> - STALL_DOP_GATING_DISABLE);
>> -
>> - /* WaDisableDopClockGating:chv (pre-production hw) */
>> - WA_SET_BIT_MASKED(GEN7_ROW_CHICKEN2,
>> - DOP_CLOCK_GATING_DISABLE);
>
> OK, again the weird w/a but Bspec seems to agree at least.
>
>> + PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE |
>> + STALL_DOP_GATING_DISABLE);
>
> Bspec says bit 5 is MBZ now, and yet the w/a database says it's
> forever. And the hardware accepts 1 there so it's not like many other
> MBZ bits that you can't set even if you try. Also Bspec has three
> different definitions for this bit on gen8, all disagree with each other
> and one definiton even manages to disagree with itself. And reading the
> hsd stuff I'm not the only that has been confused by this, and yet I see
> no conclusion there as to how this bit should be configured.
>
> Oh well, I guess we can leave it set for now and maybe eventually
> someone will figure out what we're supposed to do.
>
I am using w/a database as reference and it says forever, spec seems to
disagree but probably not yet updated.
regards
Arun
>>
>> - /* WaDisableSamplerPowerBypass:chv (pre-production hw) */
>> - WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN3,
>> - GEN8_SAMPLER_POWER_BYPASS_DIS);
>
> OK
>
>> + /* Use Force Non-Coherent whenever executing a 3D context. This is a
>> + * workaround for a possible hang in the unlikely event a TLB
>> + * invalidation occurs during a PSD flush.
>> + */
>> + /* WaForceEnableNonCoherent:chv */
>> + /* WaHdcDisableFetchWhenMasked:chv */
>> + WA_SET_BIT_MASKED(HDC_CHICKEN0,
>> + HDC_FORCE_NON_COHERENT |
>> + HDC_DONOT_FETCH_MEM_WHEN_MASKED);
>
> OK
>
> Right, so split it up a bit and you can add
>
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> to the patches.
>
>>
>> return 0;
>> }
>> --
>> 2.1.2
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
prev parent reply other threads:[~2014-10-28 17:54 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-28 11:57 [PATCH 1/2] drm/i915/chv: Add few more CHV workarounds Arun Siluvery
2014-10-28 11:57 ` [PATCH 2/2] drm/i915/gen8: Apply pre-production WA based on revision Arun Siluvery
2014-10-28 12:23 ` [PATCH 1/2] drm/i915/chv: Add few more CHV workarounds Ville Syrjälä
2014-10-28 13:32 ` Siluvery, Arun
2014-10-28 14:39 ` Ville Syrjälä
2014-10-28 15:02 ` Jani Nikula
2014-10-28 15:48 ` [PATCH] drm/i915/chv: Add new WA and remove pre-production ones Arun Siluvery
2014-10-28 17:06 ` Ville Syrjälä
2014-10-28 17:54 ` Siluvery, Arun [this message]
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=544FD84F.3000709@linux.intel.com \
--to=arun.siluvery@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=ville.syrjala@linux.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