[PATCH 1/7] drm/i915: Drop PIPEDMC faults from the fault mask on LNL+
Ville Syrjälä
ville.syrjala at linux.intel.com
Tue May 13 10:05:34 UTC 2025
On Tue, May 13, 2025 at 12:47:59PM +0300, Luca Coelho wrote:
> On Mon, 2025-05-12 at 13:33 +0300, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> >
> > On LNL+ PIPEDMC faults are reported via PIPEDMC interrupts
> > instead of the direct DE_PIPE_* reporting used on earlier
> > platforms. Drop the relevant bits from the fault mask.
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_display_irq.c | 10 +++++++++-
> > drivers/gpu/drm/i915/i915_reg.h | 4 ++--
> > 2 files changed, 11 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drivers/gpu/drm/i915/display/intel_display_irq.c
> > index 3e73832e5e81..a7130b14aace 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_irq.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
> > @@ -1016,7 +1016,15 @@ static u32 gen8_de_port_aux_mask(struct intel_display *display)
> >
> > static u32 gen8_de_pipe_fault_mask(struct intel_display *display)
> > {
> > - if (DISPLAY_VER(display) >= 14)
> > + if (DISPLAY_VER(display) >= 20)
> > + return MTL_PLANE_ATS_FAULT |
> > + GEN9_PIPE_CURSOR_FAULT |
> > + GEN11_PIPE_PLANE5_FAULT |
> > + GEN9_PIPE_PLANE4_FAULT |
> > + GEN9_PIPE_PLANE3_FAULT |
> > + GEN9_PIPE_PLANE2_FAULT |
> > + GEN9_PIPE_PLANE1_FAULT;
> > + else if (DISPLAY_VER(display) >= 14)
> > return MTL_PIPEDMC_ATS_FAULT |
> > MTL_PLANE_ATS_FAULT |
> > GEN12_PIPEDMC_FAULT |
> > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> > index 2e4190da3e0d..2d0e04eae763 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -2126,8 +2126,8 @@
> > #define GEN8_PIPE_CDCLK_CRC_ERROR REG_BIT(29)
> > #define GEN8_PIPE_CDCLK_CRC_DONE REG_BIT(28)
> > #define GEN12_PIPEDMC_INTERRUPT REG_BIT(26) /* tgl+ */
> > -#define GEN12_PIPEDMC_FAULT REG_BIT(25) /* tgl+ */
> > -#define MTL_PIPEDMC_ATS_FAULT REG_BIT(24) /* mtl+ */
> > +#define GEN12_PIPEDMC_FAULT REG_BIT(25) /* tgl-mtl */
> > +#define MTL_PIPEDMC_ATS_FAULT REG_BIT(24) /* mtl */
> > #define GEN11_PIPE_PLANE7_FAULT REG_BIT(22) /* icl/tgl */
> > #define GEN11_PIPE_PLANE6_FAULT REG_BIT(21) /* icl/tgl */
> > #define GEN11_PIPE_PLANE5_FAULT REG_BIT(20) /* icl+ */
>
> Out of curiosity, what happens without this patch? Is there going to be
> possible garbage in those bits?
They seem to be unused and tied to zero. So no garbage.
> If so, isn't that an actual bug in the
> current LNL implementation and unrelated to your flip queue preparation
> work?
I noticed the issue when I was hooking up the PIPEDMC interrupts.
>
> Reviewed-by: Luca Coelho <luciano.coelho at intel.com>
>
> --
> Cheers,
> Luca.
--
Ville Syrjälä
Intel
More information about the Intel-gfx
mailing list