]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915: Enable pipeDMC fault interrupts on tgl+
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 5 Jun 2024 11:18:31 +0000 (14:18 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 19 Jun 2024 17:05:12 +0000 (20:05 +0300)
PipeDMC has its own fault interrupt. Enable that so that
we can know if things are failing.

While at it, define the other pipeDMC interrupt as well, even
though we're not currently using it.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240605111832.21373-7-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_display_irq.c
drivers/gpu/drm/i915/i915_reg.h

index 2b1aaf5c715bd65a5f03f12613bb77b9a8be794a..e255b4fdd37ded3e96fabc0301cf763595674c48 100644 (file)
@@ -837,13 +837,24 @@ static u32 gen8_de_port_aux_mask(struct drm_i915_private *dev_priv)
 static u32 gen8_de_pipe_fault_mask(struct drm_i915_private *dev_priv)
 {
        if (DISPLAY_VER(dev_priv) >= 13 || HAS_D12_PLANE_MINIMIZATION(dev_priv))
-               return GEN9_PIPE_CURSOR_FAULT |
+               return GEN12_PIPEDMC_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(dev_priv) == 12)
+               return GEN12_PIPEDMC_FAULT |
+                       GEN9_PIPE_CURSOR_FAULT |
+                       GEN11_PIPE_PLANE7_FAULT |
+                       GEN11_PIPE_PLANE6_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(dev_priv) >= 11)
+       else if (DISPLAY_VER(dev_priv) == 11)
                return GEN9_PIPE_CURSOR_FAULT |
                        GEN11_PIPE_PLANE7_FAULT |
                        GEN11_PIPE_PLANE6_FAULT |
index 6b4ab3ccc3e068722fa0dd90c87a3035b3c773c9..bc838ecbbf8a1103608331e5ac576223b9a47a53 100644 (file)
 #define  GEN8_PIPE_FIFO_UNDERRUN       REG_BIT(31)
 #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  XELPD_PIPE_SOFT_UNDERRUN      REG_BIT(22) /* adl/dg2+ */
 #define  GEN11_PIPE_PLANE7_FAULT       REG_BIT(22) /* icl/tgl */
 #define  XELPD_PIPE_HARD_UNDERRUN      REG_BIT(21) /* adl/dg2+ */