diff mbox series

drm/i915/tgl: Implement Wa_1409142259

Message ID 20190906224142.6963-1-radhakrishna.sripada@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915/tgl: Implement Wa_1409142259 | expand

Commit Message

Sripada, Radhakrishna Sept. 6, 2019, 10:41 p.m. UTC
Disable CPS aware color pipe by setting chicken bit.

BSpec: 52890
HSDES: 1409142259

Cc: Stuart Summers <stuart.summers@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 5 +++++
 drivers/gpu/drm/i915/i915_reg.h             | 1 +
 2 files changed, 6 insertions(+)

Comments

Daniele Ceraolo Spurio Sept. 6, 2019, 10:46 p.m. UTC | #1
On 9/6/19 3:41 PM, Radhakrishna Sripada wrote:
> Disable CPS aware color pipe by setting chicken bit.
> 
> BSpec: 52890
> HSDES: 1409142259
> 
> Cc: Stuart Summers <stuart.summers@intel.com>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> ---
>   drivers/gpu/drm/i915/gt/intel_workarounds.c | 5 +++++
>   drivers/gpu/drm/i915/i915_reg.h             | 1 +
>   2 files changed, 6 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> index 243d3f77be13..14e3f9677b06 100644
> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> @@ -894,6 +894,11 @@ icl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
>   static void
>   tgl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
>   {
> +	wa_init_mcr(i915, wal);

this is not part of the WA you're trying to apply, right?

> +
> +	/* Wa_1409142259 */
> +	WA_SET_BIT_MASKED(GEN11_COMMON_SLICE_CHICKEN3,
> +			  GEN12_DISABLE_CPS_AWARE_COLOR_PIPE);

AFAICS the register is part of the render context, so shouldn't we set 
this as part of the ctx_workarounds? that's what we do for another WA on 
the same register on ICL.

Daniele

>   }
>   
>   static void
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 006cffd56be2..53e07882efb7 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -7668,6 +7668,7 @@ enum {
>   
>   #define GEN11_COMMON_SLICE_CHICKEN3		_MMIO(0x7304)
>     #define GEN11_BLEND_EMB_FIX_DISABLE_IN_RCC	(1 << 11)
> +  #define GEN12_DISABLE_CPS_AWARE_COLOR_PIPE	(1 << 9)
>   
>   #define HIZ_CHICKEN					_MMIO(0x7018)
>   # define CHV_HZ_8X8_MODE_IN_1X				(1 << 15)
>
Matt Roper Sept. 7, 2019, 12:44 a.m. UTC | #2
On Fri, Sep 06, 2019 at 03:41:42PM -0700, Radhakrishna Sripada wrote:
> Disable CPS aware color pipe by setting chicken bit.
> 
> BSpec: 52890

BSpec: 45829

as well ("This bit must be programmed to 1").  

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>

> HSDES: 1409142259
> 
> Cc: Stuart Summers <stuart.summers@intel.com>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> ---
>  drivers/gpu/drm/i915/gt/intel_workarounds.c | 5 +++++
>  drivers/gpu/drm/i915/i915_reg.h             | 1 +
>  2 files changed, 6 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> index 243d3f77be13..14e3f9677b06 100644
> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> @@ -894,6 +894,11 @@ icl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
>  static void
>  tgl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
>  {
> +	wa_init_mcr(i915, wal);
> +
> +	/* Wa_1409142259 */
> +	WA_SET_BIT_MASKED(GEN11_COMMON_SLICE_CHICKEN3,
> +			  GEN12_DISABLE_CPS_AWARE_COLOR_PIPE);
>  }
>  
>  static void
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 006cffd56be2..53e07882efb7 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -7668,6 +7668,7 @@ enum {
>  
>  #define GEN11_COMMON_SLICE_CHICKEN3		_MMIO(0x7304)
>    #define GEN11_BLEND_EMB_FIX_DISABLE_IN_RCC	(1 << 11)
> +  #define GEN12_DISABLE_CPS_AWARE_COLOR_PIPE	(1 << 9)
>  
>  #define HIZ_CHICKEN					_MMIO(0x7018)
>  # define CHV_HZ_8X8_MODE_IN_1X				(1 << 15)
> -- 
> 2.20.1
>
Matt Roper Sept. 7, 2019, 1:10 a.m. UTC | #3
On Fri, Sep 06, 2019 at 03:46:42PM -0700, Daniele Ceraolo Spurio wrote:
> 
> 
> On 9/6/19 3:41 PM, Radhakrishna Sripada wrote:
> > Disable CPS aware color pipe by setting chicken bit.
> > 
> > BSpec: 52890
> > HSDES: 1409142259
> > 
> > Cc: Stuart Summers <stuart.summers@intel.com>
> > Cc: Matt Roper <matthew.d.roper@intel.com>
> > Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> > ---
> >   drivers/gpu/drm/i915/gt/intel_workarounds.c | 5 +++++
> >   drivers/gpu/drm/i915/i915_reg.h             | 1 +
> >   2 files changed, 6 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> > index 243d3f77be13..14e3f9677b06 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> > +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> > @@ -894,6 +894,11 @@ icl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
> >   static void
> >   tgl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
> >   {
> > +	wa_init_mcr(i915, wal);
> 
> this is not part of the WA you're trying to apply, right?
> 
> > +
> > +	/* Wa_1409142259 */
> > +	WA_SET_BIT_MASKED(GEN11_COMMON_SLICE_CHICKEN3,
> > +			  GEN12_DISABLE_CPS_AWARE_COLOR_PIPE);
> 
> AFAICS the register is part of the render context, so shouldn't we set this
> as part of the ctx_workarounds? that's what we do for another WA on the same
> register on ICL.

How do you usually determine if a register is part of the context or
not?  This one doesn't have the "This Register is saved and restored as
part of Context" notation that other context registers have, so is there
somewhere else we're supposed to find that information?


Matt

> 
> Daniele
> 
> >   }
> >   static void
> > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> > index 006cffd56be2..53e07882efb7 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -7668,6 +7668,7 @@ enum {
> >   #define GEN11_COMMON_SLICE_CHICKEN3		_MMIO(0x7304)
> >     #define GEN11_BLEND_EMB_FIX_DISABLE_IN_RCC	(1 << 11)
> > +  #define GEN12_DISABLE_CPS_AWARE_COLOR_PIPE	(1 << 9)
> >   #define HIZ_CHICKEN					_MMIO(0x7018)
> >   # define CHV_HZ_8X8_MODE_IN_1X				(1 << 15)
> > 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Daniele Ceraolo Spurio Sept. 9, 2019, 4:31 p.m. UTC | #4
On 9/6/19 6:10 PM, Matt Roper wrote:
> On Fri, Sep 06, 2019 at 03:46:42PM -0700, Daniele Ceraolo Spurio wrote:
>>
>>
>> On 9/6/19 3:41 PM, Radhakrishna Sripada wrote:
>>> Disable CPS aware color pipe by setting chicken bit.
>>>
>>> BSpec: 52890
>>> HSDES: 1409142259
>>>
>>> Cc: Stuart Summers <stuart.summers@intel.com>
>>> Cc: Matt Roper <matthew.d.roper@intel.com>
>>> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
>>> ---
>>>    drivers/gpu/drm/i915/gt/intel_workarounds.c | 5 +++++
>>>    drivers/gpu/drm/i915/i915_reg.h             | 1 +
>>>    2 files changed, 6 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
>>> index 243d3f77be13..14e3f9677b06 100644
>>> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
>>> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
>>> @@ -894,6 +894,11 @@ icl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
>>>    static void
>>>    tgl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
>>>    {
>>> +	wa_init_mcr(i915, wal);
>>
>> this is not part of the WA you're trying to apply, right?
>>
>>> +
>>> +	/* Wa_1409142259 */
>>> +	WA_SET_BIT_MASKED(GEN11_COMMON_SLICE_CHICKEN3,
>>> +			  GEN12_DISABLE_CPS_AWARE_COLOR_PIPE);
>>
>> AFAICS the register is part of the render context, so shouldn't we set this
>> as part of the ctx_workarounds? that's what we do for another WA on the same
>> register on ICL.
> 
> How do you usually determine if a register is part of the context or
> not?  This one doesn't have the "This Register is saved and restored as
> part of Context" notation that other context registers have, so is there
> somewhere else we're supposed to find that information?
> 

Most of the context registers are not tagged that way. The golden 
reference for what's in the context is the context image page (Bspec 
46255 for TGL).

Daniele

> 
> Matt
> 
>>
>> Daniele
>>
>>>    }
>>>    static void
>>> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
>>> index 006cffd56be2..53e07882efb7 100644
>>> --- a/drivers/gpu/drm/i915/i915_reg.h
>>> +++ b/drivers/gpu/drm/i915/i915_reg.h
>>> @@ -7668,6 +7668,7 @@ enum {
>>>    #define GEN11_COMMON_SLICE_CHICKEN3		_MMIO(0x7304)
>>>      #define GEN11_BLEND_EMB_FIX_DISABLE_IN_RCC	(1 << 11)
>>> +  #define GEN12_DISABLE_CPS_AWARE_COLOR_PIPE	(1 << 9)
>>>    #define HIZ_CHICKEN					_MMIO(0x7018)
>>>    # define CHV_HZ_8X8_MODE_IN_1X				(1 << 15)
>>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 243d3f77be13..14e3f9677b06 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -894,6 +894,11 @@  icl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
 static void
 tgl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
 {
+	wa_init_mcr(i915, wal);
+
+	/* Wa_1409142259 */
+	WA_SET_BIT_MASKED(GEN11_COMMON_SLICE_CHICKEN3,
+			  GEN12_DISABLE_CPS_AWARE_COLOR_PIPE);
 }
 
 static void
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 006cffd56be2..53e07882efb7 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -7668,6 +7668,7 @@  enum {
 
 #define GEN11_COMMON_SLICE_CHICKEN3		_MMIO(0x7304)
   #define GEN11_BLEND_EMB_FIX_DISABLE_IN_RCC	(1 << 11)
+  #define GEN12_DISABLE_CPS_AWARE_COLOR_PIPE	(1 << 9)
 
 #define HIZ_CHICKEN					_MMIO(0x7018)
 # define CHV_HZ_8X8_MODE_IN_1X				(1 << 15)