* [PATCH v2] drm/i915/fbc: update the impacted platforms in wa_22014263786
@ 2025-10-01 8:12 Vinod Govindapillai
2025-10-01 10:03 ` Jani Nikula
2025-10-01 10:24 ` ✗ i915.CI.BAT: failure for drm/i915/fbc: update the impacted platforms in wa_22014263786 (rev2) Patchwork
0 siblings, 2 replies; 8+ messages in thread
From: Vinod Govindapillai @ 2025-10-01 8:12 UTC (permalink / raw)
To: intel-xe, intel-gfx
Cc: vinod.govindapillai, ucas.demarchi, kunal1.joshi, jani.saarinen
wa_22014263786 is not applicable to the BMG and hence exclude it
from the wa.
v2: Limit this wa to display verion 11 to 14, drop DG2 from the
exclusion list, use intel_display_wa (Lucas)
Bspec: 74212, 66624
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
drivers/gpu/drm/i915/display/intel_display_wa.c | 12 ++++++++++++
drivers/gpu/drm/i915/display/intel_display_wa.h | 1 +
drivers/gpu/drm/i915/display/intel_fbc.c | 3 +--
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.c b/drivers/gpu/drm/i915/display/intel_display_wa.c
index 31cd2c9cd488..7ca238725e30 100644
--- a/drivers/gpu/drm/i915/display/intel_display_wa.c
+++ b/drivers/gpu/drm/i915/display/intel_display_wa.c
@@ -52,6 +52,16 @@ static bool intel_display_needs_wa_16025573575(struct intel_display *display)
return DISPLAY_VERx100(display) == 3000 || DISPLAY_VERx100(display) == 3002;
}
+/*
+ * Wa_22014263786:
+ * Fixes: Screen flicker with FBC and Package C state enabled
+ * Workaround: Forced SLB invalidation before start of new frame.
+ */
+static bool intel_display_needs_wa_22014263786(struct intel_display *display)
+{
+ return DISPLAY_VERx100(display) >= 1100 && DISPLAY_VERx100(display) < 1401;
+}
+
/*
* Wa_14011503117:
* Fixes: Before enabling the scaler DE fatal error is masked
@@ -67,6 +77,8 @@ bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa,
return intel_display_needs_wa_16025573575(display);
case INTEL_DISPLAY_WA_14011503117:
return DISPLAY_VER(display) == 13;
+ case INTEL_DISPLAY_WA_22014263786:
+ return intel_display_needs_wa_22014263786(display);
default:
drm_WARN(display->drm, 1, "Missing Wa number: %s\n", name);
break;
diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h b/drivers/gpu/drm/i915/display/intel_display_wa.h
index abc1df83f066..3644e8e2b724 100644
--- a/drivers/gpu/drm/i915/display/intel_display_wa.h
+++ b/drivers/gpu/drm/i915/display/intel_display_wa.h
@@ -25,6 +25,7 @@ enum intel_display_wa {
INTEL_DISPLAY_WA_16023588340,
INTEL_DISPLAY_WA_16025573575,
INTEL_DISPLAY_WA_14011503117,
+ INTEL_DISPLAY_WA_22014263786,
};
bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa, const char *name);
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 0d380c825791..9607fdcb0cc0 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -933,8 +933,7 @@ static void intel_fbc_program_workarounds(struct intel_fbc *fbc)
intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id),
0, DPFC_CHICKEN_COMP_DUMMY_PIXEL);
- /* Wa_22014263786:icl,jsl,tgl,dg1,rkl,adls,adlp,mtl */
- if (DISPLAY_VER(display) >= 11 && !display->platform.dg2)
+ if (intel_display_wa(display, 22014263786))
intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id),
0, DPFC_CHICKEN_FORCE_SLB_INVALIDATION);
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v2] drm/i915/fbc: update the impacted platforms in wa_22014263786 2025-10-01 8:12 [PATCH v2] drm/i915/fbc: update the impacted platforms in wa_22014263786 Vinod Govindapillai @ 2025-10-01 10:03 ` Jani Nikula 2025-10-01 12:37 ` Govindapillai, Vinod 2025-10-01 10:24 ` ✗ i915.CI.BAT: failure for drm/i915/fbc: update the impacted platforms in wa_22014263786 (rev2) Patchwork 1 sibling, 1 reply; 8+ messages in thread From: Jani Nikula @ 2025-10-01 10:03 UTC (permalink / raw) To: Vinod Govindapillai, intel-xe, intel-gfx Cc: vinod.govindapillai, ucas.demarchi, kunal1.joshi, jani.saarinen On Wed, 01 Oct 2025, Vinod Govindapillai <vinod.govindapillai@intel.com> wrote: > wa_22014263786 is not applicable to the BMG and hence exclude it > from the wa. > > v2: Limit this wa to display verion 11 to 14, drop DG2 from the > exclusion list, use intel_display_wa (Lucas) > > Bspec: 74212, 66624 > Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com> > --- > drivers/gpu/drm/i915/display/intel_display_wa.c | 12 ++++++++++++ > drivers/gpu/drm/i915/display/intel_display_wa.h | 1 + > drivers/gpu/drm/i915/display/intel_fbc.c | 3 +-- > 3 files changed, 14 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.c b/drivers/gpu/drm/i915/display/intel_display_wa.c > index 31cd2c9cd488..7ca238725e30 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_wa.c > +++ b/drivers/gpu/drm/i915/display/intel_display_wa.c > @@ -52,6 +52,16 @@ static bool intel_display_needs_wa_16025573575(struct intel_display *display) > return DISPLAY_VERx100(display) == 3000 || DISPLAY_VERx100(display) == 3002; > } > > +/* > + * Wa_22014263786: > + * Fixes: Screen flicker with FBC and Package C state enabled > + * Workaround: Forced SLB invalidation before start of new frame. > + */ > +static bool intel_display_needs_wa_22014263786(struct intel_display *display) > +{ > + return DISPLAY_VERx100(display) >= 1100 && DISPLAY_VERx100(display) < 1401; IS_DISPLAY_VERx100(display, 1100, 1400) Also I'm not sure if we really need separate functions for one-liners like this. The documentation could be in the switch case too? *shrug*. BR, Jani. > +} > + > /* > * Wa_14011503117: > * Fixes: Before enabling the scaler DE fatal error is masked > @@ -67,6 +77,8 @@ bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa, > return intel_display_needs_wa_16025573575(display); > case INTEL_DISPLAY_WA_14011503117: > return DISPLAY_VER(display) == 13; > + case INTEL_DISPLAY_WA_22014263786: > + return intel_display_needs_wa_22014263786(display); > default: > drm_WARN(display->drm, 1, "Missing Wa number: %s\n", name); > break; > diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h b/drivers/gpu/drm/i915/display/intel_display_wa.h > index abc1df83f066..3644e8e2b724 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_wa.h > +++ b/drivers/gpu/drm/i915/display/intel_display_wa.h > @@ -25,6 +25,7 @@ enum intel_display_wa { > INTEL_DISPLAY_WA_16023588340, > INTEL_DISPLAY_WA_16025573575, > INTEL_DISPLAY_WA_14011503117, > + INTEL_DISPLAY_WA_22014263786, > }; > > bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa, const char *name); > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c > index 0d380c825791..9607fdcb0cc0 100644 > --- a/drivers/gpu/drm/i915/display/intel_fbc.c > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c > @@ -933,8 +933,7 @@ static void intel_fbc_program_workarounds(struct intel_fbc *fbc) > intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id), > 0, DPFC_CHICKEN_COMP_DUMMY_PIXEL); > > - /* Wa_22014263786:icl,jsl,tgl,dg1,rkl,adls,adlp,mtl */ > - if (DISPLAY_VER(display) >= 11 && !display->platform.dg2) > + if (intel_display_wa(display, 22014263786)) > intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id), > 0, DPFC_CHICKEN_FORCE_SLB_INVALIDATION); -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] drm/i915/fbc: update the impacted platforms in wa_22014263786 2025-10-01 10:03 ` Jani Nikula @ 2025-10-01 12:37 ` Govindapillai, Vinod 2025-10-01 13:10 ` Jani Nikula 0 siblings, 1 reply; 8+ messages in thread From: Govindapillai, Vinod @ 2025-10-01 12:37 UTC (permalink / raw) To: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, jani.nikula@linux.intel.com Cc: Saarinen, Jani, Joshi, Kunal1, ucas.demarchi@intel.com On Wed, 2025-10-01 at 13:03 +0300, Jani Nikula wrote: > On Wed, 01 Oct 2025, Vinod Govindapillai <vinod.govindapillai@intel.com> wrote: > > wa_22014263786 is not applicable to the BMG and hence exclude it > > from the wa. > > > > v2: Limit this wa to display verion 11 to 14, drop DG2 from the > > exclusion list, use intel_display_wa (Lucas) > > > > Bspec: 74212, 66624 > > Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com> > > --- > > drivers/gpu/drm/i915/display/intel_display_wa.c | 12 ++++++++++++ > > drivers/gpu/drm/i915/display/intel_display_wa.h | 1 + > > drivers/gpu/drm/i915/display/intel_fbc.c | 3 +-- > > 3 files changed, 14 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.c > > b/drivers/gpu/drm/i915/display/intel_display_wa.c > > index 31cd2c9cd488..7ca238725e30 100644 > > --- a/drivers/gpu/drm/i915/display/intel_display_wa.c > > +++ b/drivers/gpu/drm/i915/display/intel_display_wa.c > > @@ -52,6 +52,16 @@ static bool intel_display_needs_wa_16025573575(struct intel_display *display) > > return DISPLAY_VERx100(display) == 3000 || DISPLAY_VERx100(display) == 3002; > > } > > > > +/* > > + * Wa_22014263786: > > + * Fixes: Screen flicker with FBC and Package C state enabled > > + * Workaround: Forced SLB invalidation before start of new frame. > > + */ > > +static bool intel_display_needs_wa_22014263786(struct intel_display *display) > > +{ > > + return DISPLAY_VERx100(display) >= 1100 && DISPLAY_VERx100(display) < 1401; > > IS_DISPLAY_VERx100(display, 1100, 1400) > > Also I'm not sure if we really need separate functions for one-liners > like this. The documentation could be in the switch case too? *shrug*. Thanks. I will update that. I will get rid of the comments. I dont think it adds any extra information other than what it can be found from wa details. BR Vinod > > BR, > Jani. > > > +} > > + > > /* > > * Wa_14011503117: > > * Fixes: Before enabling the scaler DE fatal error is masked > > @@ -67,6 +77,8 @@ bool __intel_display_wa(struct intel_display *display, enum intel_display_wa > > wa, > > return intel_display_needs_wa_16025573575(display); > > case INTEL_DISPLAY_WA_14011503117: > > return DISPLAY_VER(display) == 13; > > + case INTEL_DISPLAY_WA_22014263786: > > + return intel_display_needs_wa_22014263786(display); > > default: > > drm_WARN(display->drm, 1, "Missing Wa number: %s\n", name); > > break; > > diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h > > b/drivers/gpu/drm/i915/display/intel_display_wa.h > > index abc1df83f066..3644e8e2b724 100644 > > --- a/drivers/gpu/drm/i915/display/intel_display_wa.h > > +++ b/drivers/gpu/drm/i915/display/intel_display_wa.h > > @@ -25,6 +25,7 @@ enum intel_display_wa { > > INTEL_DISPLAY_WA_16023588340, > > INTEL_DISPLAY_WA_16025573575, > > INTEL_DISPLAY_WA_14011503117, > > + INTEL_DISPLAY_WA_22014263786, > > }; > > > > bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa, const char > > *name); > > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c > > index 0d380c825791..9607fdcb0cc0 100644 > > --- a/drivers/gpu/drm/i915/display/intel_fbc.c > > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c > > @@ -933,8 +933,7 @@ static void intel_fbc_program_workarounds(struct intel_fbc *fbc) > > intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id), > > 0, DPFC_CHICKEN_COMP_DUMMY_PIXEL); > > > > - /* Wa_22014263786:icl,jsl,tgl,dg1,rkl,adls,adlp,mtl */ > > - if (DISPLAY_VER(display) >= 11 && !display->platform.dg2) > > + if (intel_display_wa(display, 22014263786)) > > intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id), > > 0, DPFC_CHICKEN_FORCE_SLB_INVALIDATION); > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] drm/i915/fbc: update the impacted platforms in wa_22014263786 2025-10-01 12:37 ` Govindapillai, Vinod @ 2025-10-01 13:10 ` Jani Nikula 2025-10-01 13:20 ` Govindapillai, Vinod 0 siblings, 1 reply; 8+ messages in thread From: Jani Nikula @ 2025-10-01 13:10 UTC (permalink / raw) To: Govindapillai, Vinod, intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Cc: Saarinen, Jani, Joshi, Kunal1, ucas.demarchi@intel.com, Ville Syrjälä On Wed, 01 Oct 2025, "Govindapillai, Vinod" <vinod.govindapillai@intel.com> wrote: > On Wed, 2025-10-01 at 13:03 +0300, Jani Nikula wrote: >> On Wed, 01 Oct 2025, Vinod Govindapillai <vinod.govindapillai@intel.com> wrote: >> > wa_22014263786 is not applicable to the BMG and hence exclude it >> > from the wa. >> > >> > v2: Limit this wa to display verion 11 to 14, drop DG2 from the >> > exclusion list, use intel_display_wa (Lucas) >> > >> > Bspec: 74212, 66624 >> > Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com> >> > --- >> > drivers/gpu/drm/i915/display/intel_display_wa.c | 12 ++++++++++++ >> > drivers/gpu/drm/i915/display/intel_display_wa.h | 1 + >> > drivers/gpu/drm/i915/display/intel_fbc.c | 3 +-- >> > 3 files changed, 14 insertions(+), 2 deletions(-) >> > >> > diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.c >> > b/drivers/gpu/drm/i915/display/intel_display_wa.c >> > index 31cd2c9cd488..7ca238725e30 100644 >> > --- a/drivers/gpu/drm/i915/display/intel_display_wa.c >> > +++ b/drivers/gpu/drm/i915/display/intel_display_wa.c >> > @@ -52,6 +52,16 @@ static bool intel_display_needs_wa_16025573575(struct intel_display *display) >> > return DISPLAY_VERx100(display) == 3000 || DISPLAY_VERx100(display) == 3002; >> > } >> > >> > +/* >> > + * Wa_22014263786: >> > + * Fixes: Screen flicker with FBC and Package C state enabled >> > + * Workaround: Forced SLB invalidation before start of new frame. >> > + */ >> > +static bool intel_display_needs_wa_22014263786(struct intel_display *display) >> > +{ >> > + return DISPLAY_VERx100(display) >= 1100 && DISPLAY_VERx100(display) < 1401; >> >> IS_DISPLAY_VERx100(display, 1100, 1400) >> >> Also I'm not sure if we really need separate functions for one-liners >> like this. The documentation could be in the switch case too? *shrug*. > > Thanks. I will update that. I will get rid of the comments. I dont think it adds any extra > information other than what it can be found from wa details. But I did not say we should get rid of the comments! We don't want to make people look up the wa details, because it's not publicly available information. I'm just wondering if we need the separate *function*. CC: Ville who's had pretty strong opinions on this whole thing. BR, Jani. > > BR > Vinod >> >> BR, >> Jani. >> >> > +} >> > + >> > /* >> > * Wa_14011503117: >> > * Fixes: Before enabling the scaler DE fatal error is masked >> > @@ -67,6 +77,8 @@ bool __intel_display_wa(struct intel_display *display, enum intel_display_wa >> > wa, >> > return intel_display_needs_wa_16025573575(display); >> > case INTEL_DISPLAY_WA_14011503117: >> > return DISPLAY_VER(display) == 13; >> > + case INTEL_DISPLAY_WA_22014263786: >> > + return intel_display_needs_wa_22014263786(display); >> > default: >> > drm_WARN(display->drm, 1, "Missing Wa number: %s\n", name); >> > break; >> > diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h >> > b/drivers/gpu/drm/i915/display/intel_display_wa.h >> > index abc1df83f066..3644e8e2b724 100644 >> > --- a/drivers/gpu/drm/i915/display/intel_display_wa.h >> > +++ b/drivers/gpu/drm/i915/display/intel_display_wa.h >> > @@ -25,6 +25,7 @@ enum intel_display_wa { >> > INTEL_DISPLAY_WA_16023588340, >> > INTEL_DISPLAY_WA_16025573575, >> > INTEL_DISPLAY_WA_14011503117, >> > + INTEL_DISPLAY_WA_22014263786, >> > }; >> > >> > bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa, const char >> > *name); >> > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c >> > index 0d380c825791..9607fdcb0cc0 100644 >> > --- a/drivers/gpu/drm/i915/display/intel_fbc.c >> > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c >> > @@ -933,8 +933,7 @@ static void intel_fbc_program_workarounds(struct intel_fbc *fbc) >> > intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id), >> > 0, DPFC_CHICKEN_COMP_DUMMY_PIXEL); >> > >> > - /* Wa_22014263786:icl,jsl,tgl,dg1,rkl,adls,adlp,mtl */ >> > - if (DISPLAY_VER(display) >= 11 && !display->platform.dg2) >> > + if (intel_display_wa(display, 22014263786)) >> > intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id), >> > 0, DPFC_CHICKEN_FORCE_SLB_INVALIDATION); >> > -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] drm/i915/fbc: update the impacted platforms in wa_22014263786 2025-10-01 13:10 ` Jani Nikula @ 2025-10-01 13:20 ` Govindapillai, Vinod 2025-10-01 17:19 ` Ville Syrjälä 0 siblings, 1 reply; 8+ messages in thread From: Govindapillai, Vinod @ 2025-10-01 13:20 UTC (permalink / raw) To: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, jani.nikula@linux.intel.com Cc: Saarinen, Jani, Joshi, Kunal1, ucas.demarchi@intel.com, ville.syrjala@linux.intel.com + I had Lucas' email id wrong. Fixed. On Wed, 2025-10-01 at 16:10 +0300, Jani Nikula wrote: > On Wed, 01 Oct 2025, "Govindapillai, Vinod" <vinod.govindapillai@intel.com> wrote: > > On Wed, 2025-10-01 at 13:03 +0300, Jani Nikula wrote: > > > On Wed, 01 Oct 2025, Vinod Govindapillai <vinod.govindapillai@intel.com> wrote: > > > > wa_22014263786 is not applicable to the BMG and hence exclude it > > > > from the wa. > > > > > > > > v2: Limit this wa to display verion 11 to 14, drop DG2 from the > > > > exclusion list, use intel_display_wa (Lucas) > > > > > > > > Bspec: 74212, 66624 > > > > Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com> > > > > --- > > > > drivers/gpu/drm/i915/display/intel_display_wa.c | 12 ++++++++++++ > > > > drivers/gpu/drm/i915/display/intel_display_wa.h | 1 + > > > > drivers/gpu/drm/i915/display/intel_fbc.c | 3 +-- > > > > 3 files changed, 14 insertions(+), 2 deletions(-) > > > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.c > > > > b/drivers/gpu/drm/i915/display/intel_display_wa.c > > > > index 31cd2c9cd488..7ca238725e30 100644 > > > > --- a/drivers/gpu/drm/i915/display/intel_display_wa.c > > > > +++ b/drivers/gpu/drm/i915/display/intel_display_wa.c > > > > @@ -52,6 +52,16 @@ static bool intel_display_needs_wa_16025573575(struct intel_display > > > > *display) > > > > return DISPLAY_VERx100(display) == 3000 || DISPLAY_VERx100(display) == 3002; > > > > } > > > > > > > > +/* > > > > + * Wa_22014263786: > > > > + * Fixes: Screen flicker with FBC and Package C state enabled > > > > + * Workaround: Forced SLB invalidation before start of new frame. > > > > + */ > > > > +static bool intel_display_needs_wa_22014263786(struct intel_display *display) > > > > +{ > > > > + return DISPLAY_VERx100(display) >= 1100 && DISPLAY_VERx100(display) < 1401; > > > > > > IS_DISPLAY_VERx100(display, 1100, 1400) > > > > > > Also I'm not sure if we really need separate functions for one-liners > > > like this. The documentation could be in the switch case too? *shrug*. > > > > Thanks. I will update that. I will get rid of the comments. I dont think it adds any extra > > information other than what it can be found from wa details. > > But I did not say we should get rid of the comments! We don't want to > make people look up the wa details, because it's not publicly available > information. > > I'm just wondering if we need the separate *function*. I got that part. I thought I will remove the comments along with that change! Originally this wa also did not have much information as comments other than the impacted platforms. Okay. Will wait for Ville's feedback before floating another version BR Vinod > > CC: Ville who's had pretty strong opinions on this whole thing. > > > BR, > Jani. > > > > > > BR > > Vinod > > > > > > BR, > > > Jani. > > > > > > > +} > > > > + > > > > /* > > > > * Wa_14011503117: > > > > * Fixes: Before enabling the scaler DE fatal error is masked > > > > @@ -67,6 +77,8 @@ bool __intel_display_wa(struct intel_display *display, enum > > > > intel_display_wa > > > > wa, > > > > return intel_display_needs_wa_16025573575(display); > > > > case INTEL_DISPLAY_WA_14011503117: > > > > return DISPLAY_VER(display) == 13; > > > > + case INTEL_DISPLAY_WA_22014263786: > > > > + return intel_display_needs_wa_22014263786(display); > > > > default: > > > > drm_WARN(display->drm, 1, "Missing Wa number: %s\n", name); > > > > break; > > > > diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h > > > > b/drivers/gpu/drm/i915/display/intel_display_wa.h > > > > index abc1df83f066..3644e8e2b724 100644 > > > > --- a/drivers/gpu/drm/i915/display/intel_display_wa.h > > > > +++ b/drivers/gpu/drm/i915/display/intel_display_wa.h > > > > @@ -25,6 +25,7 @@ enum intel_display_wa { > > > > INTEL_DISPLAY_WA_16023588340, > > > > INTEL_DISPLAY_WA_16025573575, > > > > INTEL_DISPLAY_WA_14011503117, > > > > + INTEL_DISPLAY_WA_22014263786, > > > > }; > > > > > > > > bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa, const char > > > > *name); > > > > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c > > > > b/drivers/gpu/drm/i915/display/intel_fbc.c > > > > index 0d380c825791..9607fdcb0cc0 100644 > > > > --- a/drivers/gpu/drm/i915/display/intel_fbc.c > > > > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c > > > > @@ -933,8 +933,7 @@ static void intel_fbc_program_workarounds(struct intel_fbc *fbc) > > > > intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id), > > > > 0, DPFC_CHICKEN_COMP_DUMMY_PIXEL); > > > > > > > > - /* Wa_22014263786:icl,jsl,tgl,dg1,rkl,adls,adlp,mtl */ > > > > - if (DISPLAY_VER(display) >= 11 && !display->platform.dg2) > > > > + if (intel_display_wa(display, 22014263786)) > > > > intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id), > > > > 0, DPFC_CHICKEN_FORCE_SLB_INVALIDATION); > > > > > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] drm/i915/fbc: update the impacted platforms in wa_22014263786 2025-10-01 13:20 ` Govindapillai, Vinod @ 2025-10-01 17:19 ` Ville Syrjälä 2025-10-01 17:26 ` Ville Syrjälä 0 siblings, 1 reply; 8+ messages in thread From: Ville Syrjälä @ 2025-10-01 17:19 UTC (permalink / raw) To: Govindapillai, Vinod Cc: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, jani.nikula@linux.intel.com, Saarinen, Jani, Joshi, Kunal1, ucas.demarchi@intel.com On Wed, Oct 01, 2025 at 01:20:20PM +0000, Govindapillai, Vinod wrote: > + I had Lucas' email id wrong. Fixed. > > On Wed, 2025-10-01 at 16:10 +0300, Jani Nikula wrote: > > On Wed, 01 Oct 2025, "Govindapillai, Vinod" <vinod.govindapillai@intel.com> wrote: > > > On Wed, 2025-10-01 at 13:03 +0300, Jani Nikula wrote: > > > > On Wed, 01 Oct 2025, Vinod Govindapillai <vinod.govindapillai@intel.com> wrote: > > > > > wa_22014263786 is not applicable to the BMG and hence exclude it > > > > > from the wa. > > > > > > > > > > v2: Limit this wa to display verion 11 to 14, drop DG2 from the > > > > > exclusion list, use intel_display_wa (Lucas) > > > > > > > > > > Bspec: 74212, 66624 > > > > > Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com> > > > > > --- > > > > > drivers/gpu/drm/i915/display/intel_display_wa.c | 12 ++++++++++++ > > > > > drivers/gpu/drm/i915/display/intel_display_wa.h | 1 + > > > > > drivers/gpu/drm/i915/display/intel_fbc.c | 3 +-- > > > > > 3 files changed, 14 insertions(+), 2 deletions(-) > > > > > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.c > > > > > b/drivers/gpu/drm/i915/display/intel_display_wa.c > > > > > index 31cd2c9cd488..7ca238725e30 100644 > > > > > --- a/drivers/gpu/drm/i915/display/intel_display_wa.c > > > > > +++ b/drivers/gpu/drm/i915/display/intel_display_wa.c > > > > > @@ -52,6 +52,16 @@ static bool intel_display_needs_wa_16025573575(struct intel_display > > > > > *display) > > > > > return DISPLAY_VERx100(display) == 3000 || DISPLAY_VERx100(display) == 3002; > > > > > } > > > > > > > > > > +/* > > > > > + * Wa_22014263786: > > > > > + * Fixes: Screen flicker with FBC and Package C state enabled > > > > > + * Workaround: Forced SLB invalidation before start of new frame. > > > > > + */ > > > > > +static bool intel_display_needs_wa_22014263786(struct intel_display *display) > > > > > +{ > > > > > + return DISPLAY_VERx100(display) >= 1100 && DISPLAY_VERx100(display) < 1401; > > > > > > > > IS_DISPLAY_VERx100(display, 1100, 1400) > > > > > > > > Also I'm not sure if we really need separate functions for one-liners > > > > like this. The documentation could be in the switch case too? *shrug*. > > > > > > Thanks. I will update that. I will get rid of the comments. I dont think it adds any extra > > > information other than what it can be found from wa details. > > > > But I did not say we should get rid of the comments! We don't want to > > make people look up the wa details, because it's not publicly available > > information. > > > > I'm just wondering if we need the separate *function*. > > I got that part. I thought I will remove the comments along with that change! Originally this wa > also did not have much information as comments other than the impacted platforms. > > Okay. Will wait for Ville's feedback before floating another version I think production w/a should generally be included in the public PRMs. But I don't enjoy looking them up in either internal or public source. What I would like to see described is the symptoms that are getting fixed, and whther those symptoms occur under specific circumstancs (esp. if we decided to apply the w/a as a bigger hammer without actually checking for those specific circumstances). That sort of information can be very useful when you're seeing some problem and pondering whether you might be missing some existing w/a. Very low level details aren't probably particularly useful even to us. To really understand those you probably have to trawl the hsd(s) anyway. So after some pondering I'm thinking the explanations should perhaps still stay where the w/a is implemented, and this w/a list would _only_ contain the platform checks. And I would also want to be able to immediately jump from the actual code to the relevant w/a platform check (as in with cscope/etc). Though that's still a somewhat annoying extra step or two, esp. since I can't directly jump to the defition of the enum value but rather need to jump to one of its uses in __intel_displa_wa() :/ I suppose if all of these were functions without the enum step in the middle that problem would be solved. But dunno if we want to have a function per w/a number? -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] drm/i915/fbc: update the impacted platforms in wa_22014263786 2025-10-01 17:19 ` Ville Syrjälä @ 2025-10-01 17:26 ` Ville Syrjälä 0 siblings, 0 replies; 8+ messages in thread From: Ville Syrjälä @ 2025-10-01 17:26 UTC (permalink / raw) To: Govindapillai, Vinod Cc: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, jani.nikula@linux.intel.com, Saarinen, Jani, Joshi, Kunal1, ucas.demarchi@intel.com On Wed, Oct 01, 2025 at 08:19:23PM +0300, Ville Syrjälä wrote: > On Wed, Oct 01, 2025 at 01:20:20PM +0000, Govindapillai, Vinod wrote: > > + I had Lucas' email id wrong. Fixed. > > > > On Wed, 2025-10-01 at 16:10 +0300, Jani Nikula wrote: > > > On Wed, 01 Oct 2025, "Govindapillai, Vinod" <vinod.govindapillai@intel.com> wrote: > > > > On Wed, 2025-10-01 at 13:03 +0300, Jani Nikula wrote: > > > > > On Wed, 01 Oct 2025, Vinod Govindapillai <vinod.govindapillai@intel.com> wrote: > > > > > > wa_22014263786 is not applicable to the BMG and hence exclude it > > > > > > from the wa. > > > > > > > > > > > > v2: Limit this wa to display verion 11 to 14, drop DG2 from the > > > > > > exclusion list, use intel_display_wa (Lucas) > > > > > > > > > > > > Bspec: 74212, 66624 > > > > > > Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com> > > > > > > --- > > > > > > drivers/gpu/drm/i915/display/intel_display_wa.c | 12 ++++++++++++ > > > > > > drivers/gpu/drm/i915/display/intel_display_wa.h | 1 + > > > > > > drivers/gpu/drm/i915/display/intel_fbc.c | 3 +-- > > > > > > 3 files changed, 14 insertions(+), 2 deletions(-) > > > > > > > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.c > > > > > > b/drivers/gpu/drm/i915/display/intel_display_wa.c > > > > > > index 31cd2c9cd488..7ca238725e30 100644 > > > > > > --- a/drivers/gpu/drm/i915/display/intel_display_wa.c > > > > > > +++ b/drivers/gpu/drm/i915/display/intel_display_wa.c > > > > > > @@ -52,6 +52,16 @@ static bool intel_display_needs_wa_16025573575(struct intel_display > > > > > > *display) > > > > > > return DISPLAY_VERx100(display) == 3000 || DISPLAY_VERx100(display) == 3002; > > > > > > } > > > > > > > > > > > > +/* > > > > > > + * Wa_22014263786: > > > > > > + * Fixes: Screen flicker with FBC and Package C state enabled > > > > > > + * Workaround: Forced SLB invalidation before start of new frame. > > > > > > + */ > > > > > > +static bool intel_display_needs_wa_22014263786(struct intel_display *display) > > > > > > +{ > > > > > > + return DISPLAY_VERx100(display) >= 1100 && DISPLAY_VERx100(display) < 1401; > > > > > > > > > > IS_DISPLAY_VERx100(display, 1100, 1400) > > > > > > > > > > Also I'm not sure if we really need separate functions for one-liners > > > > > like this. The documentation could be in the switch case too? *shrug*. > > > > > > > > Thanks. I will update that. I will get rid of the comments. I dont think it adds any extra > > > > information other than what it can be found from wa details. > > > > > > But I did not say we should get rid of the comments! We don't want to > > > make people look up the wa details, because it's not publicly available > > > information. > > > > > > I'm just wondering if we need the separate *function*. > > > > I got that part. I thought I will remove the comments along with that change! Originally this wa > > also did not have much information as comments other than the impacted platforms. > > > > Okay. Will wait for Ville's feedback before floating another version > > I think production w/a should generally be included in the public PRMs. > But I don't enjoy looking them up in either internal or public source. > > What I would like to see described is the symptoms that are getting > fixed, and whther those symptoms occur under specific circumstancs > (esp. if we decided to apply the w/a as a bigger hammer without > actually checking for those specific circumstances). That sort of > information can be very useful when you're seeing some problem and > pondering whether you might be missing some existing w/a. > > Very low level details aren't probably particularly useful even to > us. To really understand those you probably have to trawl the hsd(s) > anyway. > > So after some pondering I'm thinking the explanations should perhaps > still stay where the w/a is implemented, and this w/a list would > _only_ contain the platform checks. And I would also want to be able > to immediately jump from the actual code to the relevant w/a platform > check (as in with cscope/etc). Though that's still a somewhat annoying > extra step or two, esp. since I can't directly jump to the defition of > the enum value but rather need to jump to one of its uses in > __intel_displa_wa() :/ I suppose if all of these were functions without > the enum step in the middle that problem would be solved. But dunno if > we want to have a function per w/a number? The other annoyance is that soemtimes the same w/a lives under a different number for each platform. What should we do with those? Oh, and we do also have the unsolved problem of what to do with w/as that predate the hsd based numbering (either using the skl style w/a numbers or simply no numbers). And we also have some undocumented w/as as well (eg. issues we found long after the hw people had moved on). -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 8+ messages in thread
* ✗ i915.CI.BAT: failure for drm/i915/fbc: update the impacted platforms in wa_22014263786 (rev2) 2025-10-01 8:12 [PATCH v2] drm/i915/fbc: update the impacted platforms in wa_22014263786 Vinod Govindapillai 2025-10-01 10:03 ` Jani Nikula @ 2025-10-01 10:24 ` Patchwork 1 sibling, 0 replies; 8+ messages in thread From: Patchwork @ 2025-10-01 10:24 UTC (permalink / raw) To: Vinod Govindapillai; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 5477 bytes --] == Series Details == Series: drm/i915/fbc: update the impacted platforms in wa_22014263786 (rev2) URL : https://patchwork.freedesktop.org/series/154951/ State : failure == Summary == CI Bug Log - changes from CI_DRM_17293 -> Patchwork_154951v2 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_154951v2 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_154951v2, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154951v2/index.html Participating hosts (44 -> 43) ------------------------------ Missing (1): fi-snb-2520m Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_154951v2: ### IGT changes ### #### Possible regressions #### * igt@core_hotunplug@unbind-rebind: - fi-kbl-8809g: [PASS][1] -> [ABORT][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17293/fi-kbl-8809g/igt@core_hotunplug@unbind-rebind.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154951v2/fi-kbl-8809g/igt@core_hotunplug@unbind-rebind.html Known issues ------------ Here are the changes found in Patchwork_154951v2 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_module_load@load: - bat-mtlp-9: [PASS][3] -> [ABORT][4] ([i915#13494]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17293/bat-mtlp-9/igt@i915_module_load@load.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154951v2/bat-mtlp-9/igt@i915_module_load@load.html * igt@i915_selftest@live: - bat-mtlp-8: [PASS][5] -> [DMESG-FAIL][6] ([i915#12061]) +1 other test dmesg-fail [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17293/bat-mtlp-8/igt@i915_selftest@live.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154951v2/bat-mtlp-8/igt@i915_selftest@live.html - bat-adlp-9: [PASS][7] -> [ABORT][8] ([i915#14365]) +1 other test abort [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17293/bat-adlp-9/igt@i915_selftest@live.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154951v2/bat-adlp-9/igt@i915_selftest@live.html * igt@i915_selftest@live@workarounds: - bat-dg2-9: [PASS][9] -> [DMESG-FAIL][10] ([i915#12061]) +1 other test dmesg-fail [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17293/bat-dg2-9/igt@i915_selftest@live@workarounds.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154951v2/bat-dg2-9/igt@i915_selftest@live@workarounds.html - bat-arls-6: [PASS][11] -> [DMESG-FAIL][12] ([i915#12061]) +1 other test dmesg-fail [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17293/bat-arls-6/igt@i915_selftest@live@workarounds.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154951v2/bat-arls-6/igt@i915_selftest@live@workarounds.html #### Possible fixes #### * igt@i915_selftest@live: - bat-dg2-8: [DMESG-FAIL][13] ([i915#12061]) -> [PASS][14] +1 other test pass [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17293/bat-dg2-8/igt@i915_selftest@live.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154951v2/bat-dg2-8/igt@i915_selftest@live.html * igt@i915_selftest@live@reset: - bat-atsm-1: [ABORT][15] ([i915#14201]) -> [PASS][16] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17293/bat-atsm-1/igt@i915_selftest@live@reset.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154951v2/bat-atsm-1/igt@i915_selftest@live@reset.html #### Warnings #### * igt@i915_selftest@live: - bat-atsm-1: [ABORT][17] ([i915#14201]) -> [DMESG-FAIL][18] ([i915#12061] / [i915#13929]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17293/bat-atsm-1/igt@i915_selftest@live.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154951v2/bat-atsm-1/igt@i915_selftest@live.html * igt@i915_selftest@live@mman: - bat-atsm-1: [DMESG-FAIL][19] ([i915#14204]) -> [DMESG-FAIL][20] ([i915#13929]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17293/bat-atsm-1/igt@i915_selftest@live@mman.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154951v2/bat-atsm-1/igt@i915_selftest@live@mman.html [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061 [i915#13494]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13494 [i915#13929]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13929 [i915#14201]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14201 [i915#14204]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14204 [i915#14365]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14365 Build changes ------------- * Linux: CI_DRM_17293 -> Patchwork_154951v2 CI-20190529: 20190529 CI_DRM_17293: bb42887c28cd6ede2c83547a9afc852a6aed3569 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_8565: 8565 Patchwork_154951v2: bb42887c28cd6ede2c83547a9afc852a6aed3569 @ git://anongit.freedesktop.org/gfx-ci/linux == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154951v2/index.html [-- Attachment #2: Type: text/html, Size: 6734 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-10-01 17:26 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-10-01 8:12 [PATCH v2] drm/i915/fbc: update the impacted platforms in wa_22014263786 Vinod Govindapillai 2025-10-01 10:03 ` Jani Nikula 2025-10-01 12:37 ` Govindapillai, Vinod 2025-10-01 13:10 ` Jani Nikula 2025-10-01 13:20 ` Govindapillai, Vinod 2025-10-01 17:19 ` Ville Syrjälä 2025-10-01 17:26 ` Ville Syrjälä 2025-10-01 10:24 ` ✗ i915.CI.BAT: failure for drm/i915/fbc: update the impacted platforms in wa_22014263786 (rev2) Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox