Re: [Intel-gfx] [PATCH v3] drm/i915/mtl: Fix Wa_22016670082

2023-11-22 Thread Sripada, Radhakrishna



> -Original Message-
> From: Intel-gfx  On Behalf Of 
> Sripada,
> Radhakrishna
> Sent: Wednesday, November 22, 2023 10:49 PM
> To: Chauhan, Shekhar ; intel-
> g...@lists.freedesktop.org
> Cc: Roper, Matthew D 
> Subject: Re: [Intel-gfx] [PATCH v3] drm/i915/mtl: Fix Wa_22016670082
> 
> 
> 
> > -Original Message-
> > From: Chauhan, Shekhar 
> > Sent: Wednesday, November 22, 2023 10:34 PM
> > To: intel-gfx@lists.freedesktop.org
> > Cc: Roper, Matthew D ; Sripada, Radhakrishna
> > ; Chauhan, Shekhar
> > 
> > Subject: [PATCH v3] drm/i915/mtl: Fix Wa_22016670082
> >
> > Wa_22016670082 is applicable on GT and Media.
> > For GT, an MCR register is required instead of MMIO.
> >
> > v1: Introduce the fix.
> > v2: Minor naming convention change and adding a TODO
> > v3: Enhancing the TODO
> >
> LGTM,
> Reviewed-by: Radhakrishna Sripada
With actual r-b
Reviewed-by: Radhakrishna Sripada 

> 
> > Signed-off-by: Shekhar Chauhan 
> > ---
> >  drivers/gpu/drm/i915/gt/intel_gt_regs.h | 2 ++
> >  drivers/gpu/drm/i915/gt/intel_workarounds.c | 2 +-
> >  2 files changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> > b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> > index 9de41703fae5..b2a245e3e77f 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> > +++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> > @@ -529,7 +529,9 @@
> >
> >  #define GEN8_RC6_CTX_INFO  _MMIO(0x8504)
> >
> > +/* TODO: Evaluate MCR usage for both Media and GT instances of SQCNT1
> > register. */
> >  #define GEN12_SQCNT1   _MMIO(0x8718)
> > +#define GEN12_GT_SQCNT1MCR_REG(0x8718)
> >  #define   GEN12_SQCNT1_PMON_ENABLE REG_BIT(30)
> >  #define   GEN12_SQCNT1_OABPC   REG_BIT(29)
> >  #define   GEN12_STRICT_RAR_ENABLE  REG_BIT(23)
> > diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> > b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> > index 9bc0654efdc0..dbf0c6e536f1 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> > +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> > @@ -1644,7 +1644,7 @@ xelpg_gt_workarounds_init(struct intel_gt *gt, struct
> > i915_wa_list *wal)
> > wa_mcr_write_or(wal, COMP_MOD_CTRL, FORCE_MISS_FTLB);
> >
> > /* Wa_22016670082 */
> > -   wa_write_or(wal, GEN12_SQCNT1, GEN12_STRICT_RAR_ENABLE);
> > +   wa_mcr_write_or(wal, GEN12_GT_SQCNT1,
> > GEN12_STRICT_RAR_ENABLE);
> >
> > if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) ||
> > IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) {
> > --
> > 2.34.1



Re: [Intel-gfx] [PATCH v3] drm/i915/mtl: Fix Wa_22016670082

2023-11-22 Thread Sripada, Radhakrishna



> -Original Message-
> From: Chauhan, Shekhar 
> Sent: Wednesday, November 22, 2023 10:34 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: Roper, Matthew D ; Sripada, Radhakrishna
> ; Chauhan, Shekhar
> 
> Subject: [PATCH v3] drm/i915/mtl: Fix Wa_22016670082
> 
> Wa_22016670082 is applicable on GT and Media.
> For GT, an MCR register is required instead of MMIO.
> 
> v1: Introduce the fix.
> v2: Minor naming convention change and adding a TODO
> v3: Enhancing the TODO
> 
LGTM,
Reviewed-by: Radhakrishna Sripada

> Signed-off-by: Shekhar Chauhan 
> ---
>  drivers/gpu/drm/i915/gt/intel_gt_regs.h | 2 ++
>  drivers/gpu/drm/i915/gt/intel_workarounds.c | 2 +-
>  2 files changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> index 9de41703fae5..b2a245e3e77f 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> +++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> @@ -529,7 +529,9 @@
> 
>  #define GEN8_RC6_CTX_INFO_MMIO(0x8504)
> 
> +/* TODO: Evaluate MCR usage for both Media and GT instances of SQCNT1
> register. */
>  #define GEN12_SQCNT1 _MMIO(0x8718)
> +#define GEN12_GT_SQCNT1  MCR_REG(0x8718)
>  #define   GEN12_SQCNT1_PMON_ENABLE   REG_BIT(30)
>  #define   GEN12_SQCNT1_OABPC REG_BIT(29)
>  #define   GEN12_STRICT_RAR_ENABLEREG_BIT(23)
> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> index 9bc0654efdc0..dbf0c6e536f1 100644
> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> @@ -1644,7 +1644,7 @@ xelpg_gt_workarounds_init(struct intel_gt *gt, struct
> i915_wa_list *wal)
>   wa_mcr_write_or(wal, COMP_MOD_CTRL, FORCE_MISS_FTLB);
> 
>   /* Wa_22016670082 */
> - wa_write_or(wal, GEN12_SQCNT1, GEN12_STRICT_RAR_ENABLE);
> + wa_mcr_write_or(wal, GEN12_GT_SQCNT1,
> GEN12_STRICT_RAR_ENABLE);
> 
>   if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) ||
>   IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) {
> --
> 2.34.1



[Intel-gfx] [PATCH v3] drm/i915/mtl: Fix Wa_22016670082

2023-11-22 Thread Shekhar Chauhan
Wa_22016670082 is applicable on GT and Media.
For GT, an MCR register is required instead of MMIO.

v1: Introduce the fix.
v2: Minor naming convention change and adding a TODO
v3: Enhancing the TODO

Signed-off-by: Shekhar Chauhan 
---
 drivers/gpu/drm/i915/gt/intel_gt_regs.h | 2 ++
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h 
b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
index 9de41703fae5..b2a245e3e77f 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
+++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
@@ -529,7 +529,9 @@
 
 #define GEN8_RC6_CTX_INFO  _MMIO(0x8504)
 
+/* TODO: Evaluate MCR usage for both Media and GT instances of SQCNT1 
register. */
 #define GEN12_SQCNT1   _MMIO(0x8718)
+#define GEN12_GT_SQCNT1MCR_REG(0x8718)
 #define   GEN12_SQCNT1_PMON_ENABLE REG_BIT(30)
 #define   GEN12_SQCNT1_OABPC   REG_BIT(29)
 #define   GEN12_STRICT_RAR_ENABLE  REG_BIT(23)
diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c 
b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 9bc0654efdc0..dbf0c6e536f1 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -1644,7 +1644,7 @@ xelpg_gt_workarounds_init(struct intel_gt *gt, struct 
i915_wa_list *wal)
wa_mcr_write_or(wal, COMP_MOD_CTRL, FORCE_MISS_FTLB);
 
/* Wa_22016670082 */
-   wa_write_or(wal, GEN12_SQCNT1, GEN12_STRICT_RAR_ENABLE);
+   wa_mcr_write_or(wal, GEN12_GT_SQCNT1, GEN12_STRICT_RAR_ENABLE);
 
if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) ||
IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) {
-- 
2.34.1