drm/i915: Clean up PIPECONF bit defines
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 12 Nov 2021 19:38:08 +0000 (21:38 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 26 Jan 2022 19:28:42 +0000 (21:28 +0200)
Use REG_BIT() & co. for PIPECONF bits, and adjust the
naming of various bits to be more consistent.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211112193813.8224-5-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/icl_dsi.c
drivers/gpu/drm/i915/display/intel_display.c
drivers/gpu/drm/i915/display/intel_pch_display.c
drivers/gpu/drm/i915/gvt/display.c
drivers/gpu/drm/i915/gvt/handlers.c
drivers/gpu/drm/i915/i915_reg.h

index 16a611f..2d5bb91 100644 (file)
@@ -1051,7 +1051,7 @@ static void gen11_dsi_enable_transcoder(struct intel_encoder *encoder)
 
                /* wait for transcoder to be enabled */
                if (intel_de_wait_for_set(dev_priv, PIPECONF(dsi_trans),
-                                         I965_PIPECONF_ACTIVE, 10))
+                                         PIPECONF_STATE_ENABLE, 10))
                        drm_err(&dev_priv->drm,
                                "DSI transcoder not enabled\n");
        }
@@ -1319,7 +1319,7 @@ static void gen11_dsi_disable_transcoder(struct intel_encoder *encoder)
 
                /* wait for transcoder to be disabled */
                if (intel_de_wait_for_clear(dev_priv, PIPECONF(dsi_trans),
-                                           I965_PIPECONF_ACTIVE, 50))
+                                           PIPECONF_STATE_ENABLE, 50))
                        drm_err(&dev_priv->drm,
                                "DSI trancoder not disabled\n");
        }
index 5d4f189..e485dd0 100644 (file)
@@ -391,13 +391,11 @@ intel_wait_for_pipe_off(const struct intel_crtc_state *old_crtc_state)
 
        if (DISPLAY_VER(dev_priv) >= 4) {
                enum transcoder cpu_transcoder = old_crtc_state->cpu_transcoder;
-               i915_reg_t reg = PIPECONF(cpu_transcoder);
 
                /* Wait for the Pipe State to go off */
-               if (intel_de_wait_for_clear(dev_priv, reg,
-                                           I965_PIPECONF_ACTIVE, 100))
-                       drm_WARN(&dev_priv->drm, 1,
-                                "pipe_off wait timed out\n");
+               if (intel_de_wait_for_clear(dev_priv, PIPECONF(cpu_transcoder),
+                                           PIPECONF_STATE_ENABLE, 100))
+                       drm_WARN(&dev_priv->drm, 1, "pipe_off wait timed out\n");
        } else {
                intel_wait_for_pipe_scanline_stopped(crtc);
        }
@@ -3378,13 +3376,13 @@ static void i9xx_set_pipeconf(const struct intel_crtc_state *crtc_state)
 
                switch (crtc_state->pipe_bpp) {
                case 18:
-                       pipeconf |= PIPECONF_6BPC;
+                       pipeconf |= PIPECONF_BPC_6;
                        break;
                case 24:
-                       pipeconf |= PIPECONF_8BPC;
+                       pipeconf |= PIPECONF_BPC_8;
                        break;
                case 30:
-                       pipeconf |= PIPECONF_10BPC;
+                       pipeconf |= PIPECONF_BPC_10;
                        break;
                default:
                        /* Case prevented by intel_choose_pipe_bpp_dither. */
@@ -3399,7 +3397,7 @@ static void i9xx_set_pipeconf(const struct intel_crtc_state *crtc_state)
                else
                        pipeconf |= PIPECONF_INTERLACE_W_SYNC_SHIFT;
        } else {
-               pipeconf |= PIPECONF_PROGRESSIVE;
+               pipeconf |= PIPECONF_INTERLACE_PROGRESSIVE;
        }
 
        if ((IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) &&
@@ -3577,16 +3575,17 @@ static bool i9xx_get_pipe_config(struct intel_crtc *crtc,
        if (IS_G4X(dev_priv) || IS_VALLEYVIEW(dev_priv) ||
            IS_CHERRYVIEW(dev_priv)) {
                switch (tmp & PIPECONF_BPC_MASK) {
-               case PIPECONF_6BPC:
+               case PIPECONF_BPC_6:
                        pipe_config->pipe_bpp = 18;
                        break;
-               case PIPECONF_8BPC:
+               case PIPECONF_BPC_8:
                        pipe_config->pipe_bpp = 24;
                        break;
-               case PIPECONF_10BPC:
+               case PIPECONF_BPC_10:
                        pipe_config->pipe_bpp = 30;
                        break;
                default:
+                       MISSING_CASE(tmp);
                        break;
                }
        }
@@ -3595,8 +3594,7 @@ static bool i9xx_get_pipe_config(struct intel_crtc *crtc,
            (tmp & PIPECONF_COLOR_RANGE_SELECT))
                pipe_config->limited_color_range = true;
 
-       pipe_config->gamma_mode = (tmp & PIPECONF_GAMMA_MODE_MASK_I9XX) >>
-               PIPECONF_GAMMA_MODE_SHIFT;
+       pipe_config->gamma_mode = REG_FIELD_GET(PIPECONF_GAMMA_MODE_MASK_I9XX, tmp);
 
        if (IS_CHERRYVIEW(dev_priv))
                pipe_config->cgm_mode = intel_de_read(dev_priv,
@@ -3683,16 +3681,16 @@ static void ilk_set_pipeconf(const struct intel_crtc_state *crtc_state)
 
        switch (crtc_state->pipe_bpp) {
        case 18:
-               val |= PIPECONF_6BPC;
+               val |= PIPECONF_BPC_6;
                break;
        case 24:
-               val |= PIPECONF_8BPC;
+               val |= PIPECONF_BPC_8;
                break;
        case 30:
-               val |= PIPECONF_10BPC;
+               val |= PIPECONF_BPC_10;
                break;
        case 36:
-               val |= PIPECONF_12BPC;
+               val |= PIPECONF_BPC_12;
                break;
        default:
                /* Case prevented by intel_choose_pipe_bpp_dither. */
@@ -3700,12 +3698,12 @@ static void ilk_set_pipeconf(const struct intel_crtc_state *crtc_state)
        }
 
        if (crtc_state->dither)
-               val |= (PIPECONF_DITHER_EN | PIPECONF_DITHER_TYPE_SP);
+               val |= PIPECONF_DITHER_EN | PIPECONF_DITHER_TYPE_SP;
 
        if (crtc_state->hw.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE)
-               val |= PIPECONF_INTERLACED_ILK;
+               val |= PIPECONF_INTERLACE_IF_ID_ILK;
        else
-               val |= PIPECONF_PROGRESSIVE;
+               val |= PIPECONF_INTERLACE_PF_PD_ILK;
 
        /*
         * This would end up with an odd purple hue over
@@ -3737,12 +3735,12 @@ static void hsw_set_transconf(const struct intel_crtc_state *crtc_state)
        u32 val = 0;
 
        if (IS_HASWELL(dev_priv) && crtc_state->dither)
-               val |= (PIPECONF_DITHER_EN | PIPECONF_DITHER_TYPE_SP);
+               val |= PIPECONF_DITHER_EN | PIPECONF_DITHER_TYPE_SP;
 
        if (crtc_state->hw.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE)
-               val |= PIPECONF_INTERLACED_ILK;
+               val |= PIPECONF_INTERLACE_IF_ID_ILK;
        else
-               val |= PIPECONF_PROGRESSIVE;
+               val |= PIPECONF_INTERLACE_PF_PD_ILK;
 
        if (IS_HASWELL(dev_priv) &&
            crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB)
@@ -4036,16 +4034,16 @@ static bool ilk_get_pipe_config(struct intel_crtc *crtc,
                goto out;
 
        switch (tmp & PIPECONF_BPC_MASK) {
-       case PIPECONF_6BPC:
+       case PIPECONF_BPC_6:
                pipe_config->pipe_bpp = 18;
                break;
-       case PIPECONF_8BPC:
+       case PIPECONF_BPC_8:
                pipe_config->pipe_bpp = 24;
                break;
-       case PIPECONF_10BPC:
+       case PIPECONF_BPC_10:
                pipe_config->pipe_bpp = 30;
                break;
-       case PIPECONF_12BPC:
+       case PIPECONF_BPC_12:
                pipe_config->pipe_bpp = 36;
                break;
        default:
@@ -4065,8 +4063,7 @@ static bool ilk_get_pipe_config(struct intel_crtc *crtc,
                break;
        }
 
-       pipe_config->gamma_mode = (tmp & PIPECONF_GAMMA_MODE_MASK_ILK) >>
-               PIPECONF_GAMMA_MODE_SHIFT;
+       pipe_config->gamma_mode = REG_FIELD_GET(PIPECONF_GAMMA_MODE_MASK_ILK, tmp);
 
        pipe_config->csc_mode = intel_de_read(dev_priv,
                                              PIPE_CSC_MODE(crtc->pipe));
@@ -10008,8 +10005,7 @@ void i830_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
                udelay(150); /* wait for warmup */
        }
 
-       intel_de_write(dev_priv, PIPECONF(pipe),
-                      PIPECONF_ENABLE | PIPECONF_PROGRESSIVE);
+       intel_de_write(dev_priv, PIPECONF(pipe), PIPECONF_ENABLE);
        intel_de_posting_read(dev_priv, PIPECONF(pipe));
 
        intel_wait_for_pipe_scanline_moving(crtc);
index 0c528c6..657e904 100644 (file)
@@ -157,13 +157,13 @@ static void ilk_enable_pch_transcoder(const struct intel_crtc_state *crtc_state)
                 */
                val &= ~PIPECONF_BPC_MASK;
                if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
-                       val |= PIPECONF_8BPC;
+                       val |= PIPECONF_BPC_8;
                else
                        val |= pipeconf_val & PIPECONF_BPC_MASK;
        }
 
        val &= ~TRANS_INTERLACE_MASK;
-       if ((pipeconf_val & PIPECONF_INTERLACE_MASK) == PIPECONF_INTERLACED_ILK) {
+       if ((pipeconf_val & PIPECONF_INTERLACE_MASK_ILK) == PIPECONF_INTERLACE_IF_ID_ILK) {
                if (HAS_PCH_IBX(dev_priv) &&
                    intel_crtc_has_type(crtc_state, INTEL_OUTPUT_SDVO))
                        val |= TRANS_LEGACY_INTERLACED_ILK;
@@ -436,8 +436,7 @@ static void lpt_enable_pch_transcoder(struct drm_i915_private *dev_priv,
        val = TRANS_ENABLE;
        pipeconf_val = intel_de_read(dev_priv, PIPECONF(cpu_transcoder));
 
-       if ((pipeconf_val & PIPECONF_INTERLACE_MASK_HSW) ==
-           PIPECONF_INTERLACED_ILK)
+       if ((pipeconf_val & PIPECONF_INTERLACE_MASK_HSW) == PIPECONF_INTERLACE_IF_ID_ILK)
                val |= TRANS_INTERLACED;
        else
                val |= TRANS_PROGRESSIVE;
index 4d66fb5..7198d02 100644 (file)
@@ -184,7 +184,7 @@ static void emulate_monitor_status_change(struct intel_vgpu *vgpu)
 
                for_each_pipe(dev_priv, pipe) {
                        vgpu_vreg_t(vgpu, PIPECONF(pipe)) &=
-                               ~(PIPECONF_ENABLE | I965_PIPECONF_ACTIVE);
+                               ~(PIPECONF_ENABLE | PIPECONF_STATE_ENABLE);
                        vgpu_vreg_t(vgpu, DSPCNTR(pipe)) &= ~DISP_ENABLE;
                        vgpu_vreg_t(vgpu, SPRCTL(pipe)) &= ~SPRITE_ENABLE;
                        vgpu_vreg_t(vgpu, CURCNTR(pipe)) &= ~MCURSOR_MODE_MASK;
@@ -245,7 +245,7 @@ static void emulate_monitor_status_change(struct intel_vgpu *vgpu)
                 *   setup_virtual_dp_monitor.
                 */
                vgpu_vreg_t(vgpu, PIPECONF(PIPE_A)) |= PIPECONF_ENABLE;
-               vgpu_vreg_t(vgpu, PIPECONF(PIPE_A)) |= I965_PIPECONF_ACTIVE;
+               vgpu_vreg_t(vgpu, PIPECONF(PIPE_A)) |= PIPECONF_STATE_ENABLE;
 
                /*
                 * Golden M/N are calculated based on:
index 9f8ae67..a1f9ab4 100644 (file)
@@ -702,11 +702,11 @@ static int pipeconf_mmio_write(struct intel_vgpu *vgpu, unsigned int offset,
        data = vgpu_vreg(vgpu, offset);
 
        if (data & PIPECONF_ENABLE) {
-               vgpu_vreg(vgpu, offset) |= I965_PIPECONF_ACTIVE;
+               vgpu_vreg(vgpu, offset) |= PIPECONF_STATE_ENABLE;
                vgpu_update_refresh_rate(vgpu);
                vgpu_update_vblank_emulation(vgpu, true);
        } else {
-               vgpu_vreg(vgpu, offset) &= ~I965_PIPECONF_ACTIVE;
+               vgpu_vreg(vgpu, offset) &= ~PIPECONF_STATE_ENABLE;
                vgpu_update_vblank_emulation(vgpu, false);
        }
        return 0;
index 7ce837e..c1b9c45 100644 (file)
@@ -5168,62 +5168,58 @@ enum {
 #define   PIPEDSL_CURR_FIELD   REG_BIT(31) /* ctg+ */
 #define   PIPEDSL_LINE_MASK    REG_GENMASK(19, 0)
 #define _PIPEACONF             0x70008
-#define   PIPECONF_ENABLE      (1 << 31)
-#define   PIPECONF_DISABLE     0
-#define   PIPECONF_DOUBLE_WIDE (1 << 30)
-#define   I965_PIPECONF_ACTIVE (1 << 30)
-#define   PIPECONF_DSI_PLL_LOCKED      (1 << 29) /* vlv & pipe A only */
-#define   PIPECONF_FRAME_START_DELAY_MASK      (3 << 27) /* pre-hsw */
-#define   PIPECONF_FRAME_START_DELAY(x)                ((x) << 27) /* pre-hsw: 0-3 */
-#define   PIPECONF_SINGLE_WIDE 0
-#define   PIPECONF_PIPE_UNLOCKED 0
-#define   PIPECONF_PIPE_LOCKED (1 << 25)
-#define   PIPECONF_FORCE_BORDER        (1 << 25)
-#define   PIPECONF_GAMMA_MODE_MASK_I9XX        (1 << 24) /* gmch */
-#define   PIPECONF_GAMMA_MODE_MASK_ILK (3 << 24) /* ilk-ivb */
-#define   PIPECONF_GAMMA_MODE_8BIT     (0 << 24) /* gmch,ilk-ivb */
-#define   PIPECONF_GAMMA_MODE_10BIT    (1 << 24) /* gmch,ilk-ivb */
-#define   PIPECONF_GAMMA_MODE_12BIT    (2 << 24) /* ilk-ivb */
-#define   PIPECONF_GAMMA_MODE_SPLIT    (3 << 24) /* ivb */
-#define   PIPECONF_GAMMA_MODE(x)       ((x) << 24) /* pass in GAMMA_MODE_MODE_* */
-#define   PIPECONF_GAMMA_MODE_SHIFT    24
-#define   PIPECONF_INTERLACE_MASK      (7 << 21)
-#define   PIPECONF_INTERLACE_MASK_HSW  (3 << 21)
-/* Note that pre-gen3 does not support interlaced display directly. Panel
- * fitting must be disabled on pre-ilk for interlaced. */
-#define   PIPECONF_PROGRESSIVE                 (0 << 21)
-#define   PIPECONF_INTERLACE_W_SYNC_SHIFT_PANEL        (4 << 21) /* gen4 only */
-#define   PIPECONF_INTERLACE_W_SYNC_SHIFT      (5 << 21) /* gen4 only */
-#define   PIPECONF_INTERLACE_W_FIELD_INDICATION        (6 << 21)
-#define   PIPECONF_INTERLACE_FIELD_0_ONLY      (7 << 21) /* gen3 only */
-/* Ironlake and later have a complete new set of values for interlaced. PFIT
- * means panel fitter required, PF means progressive fetch, DBL means power
- * saving pixel doubling. */
-#define   PIPECONF_PFIT_PF_INTERLACED_ILK      (1 << 21)
-#define   PIPECONF_INTERLACED_ILK              (3 << 21)
-#define   PIPECONF_INTERLACED_DBL_ILK          (4 << 21) /* ilk/snb only */
-#define   PIPECONF_PFIT_PF_INTERLACED_DBL_ILK  (5 << 21) /* ilk/snb only */
-#define   PIPECONF_INTERLACE_MODE_MASK         (7 << 21)
-#define   PIPECONF_EDP_RR_MODE_SWITCH          (1 << 20)
-#define   PIPECONF_CXSR_DOWNCLOCK      (1 << 16)
-#define   PIPECONF_EDP_RR_MODE_SWITCH_VLV      (1 << 14)
-#define   PIPECONF_COLOR_RANGE_SELECT  (1 << 13)
-#define   PIPECONF_OUTPUT_COLORSPACE_MASK      (3 << 11) /* ilk-ivb */
-#define   PIPECONF_OUTPUT_COLORSPACE_RGB       (0 << 11) /* ilk-ivb */
-#define   PIPECONF_OUTPUT_COLORSPACE_YUV601    (1 << 11) /* ilk-ivb */
-#define   PIPECONF_OUTPUT_COLORSPACE_YUV709    (2 << 11) /* ilk-ivb */
-#define   PIPECONF_OUTPUT_COLORSPACE_YUV_HSW   (1 << 11) /* hsw only */
-#define   PIPECONF_BPC_MASK    (0x7 << 5)
-#define   PIPECONF_8BPC                (0 << 5)
-#define   PIPECONF_10BPC       (1 << 5)
-#define   PIPECONF_6BPC                (2 << 5)
-#define   PIPECONF_12BPC       (3 << 5)
-#define   PIPECONF_DITHER_EN   (1 << 4)
-#define   PIPECONF_DITHER_TYPE_MASK (0x0000000c)
-#define   PIPECONF_DITHER_TYPE_SP (0 << 2)
-#define   PIPECONF_DITHER_TYPE_ST1 (1 << 2)
-#define   PIPECONF_DITHER_TYPE_ST2 (2 << 2)
-#define   PIPECONF_DITHER_TYPE_TEMP (3 << 2)
+#define   PIPECONF_ENABLE                      REG_BIT(31)
+#define   PIPECONF_DOUBLE_WIDE                 REG_BIT(30) /* pre-i965 */
+#define   PIPECONF_STATE_ENABLE                        REG_BIT(30) /* i965+ */
+#define   PIPECONF_DSI_PLL_LOCKED              REG_BIT(29) /* vlv & pipe A only */
+#define   PIPECONF_FRAME_START_DELAY_MASK      REG_GENMASK(28, 27) /* pre-hsw */
+#define   PIPECONF_FRAME_START_DELAY(x)                REG_FIELD_PREP(PIPECONF_FRAME_START_DELAY_MASK, (x)) /* pre-hsw: 0-3 */
+#define   PIPECONF_PIPE_LOCKED                 REG_BIT(25)
+#define   PIPECONF_FORCE_BORDER                        REG_BIT(25)
+#define   PIPECONF_GAMMA_MODE_MASK_I9XX                REG_BIT(24) /* gmch */
+#define   PIPECONF_GAMMA_MODE_MASK_ILK         REG_GENMASK(25, 24) /* ilk-ivb */
+#define   PIPECONF_GAMMA_MODE_8BIT             REG_FIELD_PREP(PIPECONF_GAMMA_MODE_MASK, 0)
+#define   PIPECONF_GAMMA_MODE_10BIT            REG_FIELD_PREP(PIPECONF_GAMMA_MODE_MASK, 1)
+#define   PIPECONF_GAMMA_MODE_12BIT            REG_FIELD_PREP(PIPECONF_GAMMA_MODE_MASK_ILK, 2) /* ilk-ivb */
+#define   PIPECONF_GAMMA_MODE_SPLIT            REG_FIELD_PREP(PIPECONF_GAMMA_MODE_MASK_ILK, 3) /* ivb */
+#define   PIPECONF_GAMMA_MODE(x)               REG_FIELD_PREP(PIPECONF_GAMMA_MODE_MASK_ILK, (x)) /* pass in GAMMA_MODE_MODE_* */
+#define   PIPECONF_INTERLACE_MASK              REG_GENMASK(23, 21) /* gen3+ */
+#define   PIPECONF_INTERLACE_PROGRESSIVE       REG_FIELD_PREP(PIPECONF_INTERLACE_MASK, 0)
+#define   PIPECONF_INTERLACE_W_SYNC_SHIFT_PANEL        REG_FIELD_PREP(PIPECONF_INTERLACE_MASK, 4) /* gen4 only */
+#define   PIPECONF_INTERLACE_W_SYNC_SHIFT      REG_FIELD_PREP(PIPECONF_INTERLACE_MASK, 5) /* gen4 only */
+#define   PIPECONF_INTERLACE_W_FIELD_INDICATION        REG_FIELD_PREP(PIPECONF_INTERLACE_MASK, 6)
+#define   PIPECONF_INTERLACE_FIELD_0_ONLY      REG_FIELD_PREP(PIPECONF_INTERLACE_MASK, 7) /* gen3 only */
+/*
+ * ilk+: PF/D=progressive fetch/display, IF/D=interlaced fetch/display,
+ * DBL=power saving pixel doubling, PF-ID* requires panel fitter
+ */
+#define   PIPECONF_INTERLACE_MASK_ILK          REG_GENMASK(23, 21) /* ilk+ */
+#define   PIPECONF_INTERLACE_MASK_HSW          REG_GENMASK(22, 21) /* hsw+ */
+#define   PIPECONF_INTERLACE_PF_PD_ILK         REG_FIELD_PREP(PIPECONF_INTERLACE_MASK_ILK, 0)
+#define   PIPECONF_INTERLACE_PF_ID_ILK         REG_FIELD_PREP(PIPECONF_INTERLACE_MASK_ILK, 1)
+#define   PIPECONF_INTERLACE_IF_ID_ILK         REG_FIELD_PREP(PIPECONF_INTERLACE_MASK_ILK, 3)
+#define   PIPECONF_INTERLACE_IF_ID_DBL_ILK     REG_FIELD_PREP(PIPECONF_INTERLACE_MASK_ILK, 4) /* ilk/snb only */
+#define   PIPECONF_INTERLACE_PF_ID_DBL_ILK     REG_FIELD_PREP(PIPECONF_INTERLACE_MASK_ILK, 5) /* ilk/snb only */
+#define   PIPECONF_EDP_RR_MODE_SWITCH          REG_BIT(20)
+#define   PIPECONF_CXSR_DOWNCLOCK              REG_BIT(16)
+#define   PIPECONF_EDP_RR_MODE_SWITCH_VLV      REG_BIT(14)
+#define   PIPECONF_COLOR_RANGE_SELECT          REG_BIT(13)
+#define   PIPECONF_OUTPUT_COLORSPACE_MASK      REG_GENMASK(12, 11) /* ilk-ivb */
+#define   PIPECONF_OUTPUT_COLORSPACE_RGB       REG_FIELD_PREP(PIPECONF_OUTPUT_COLORSPACE_MASK, 0) /* ilk-ivb */
+#define   PIPECONF_OUTPUT_COLORSPACE_YUV601    REG_FIELD_PREP(PIPECONF_OUTPUT_COLORSPACE_MASK, 1) /* ilk-ivb */
+#define   PIPECONF_OUTPUT_COLORSPACE_YUV709    REG_FIELD_PREP(PIPECONF_OUTPUT_COLORSPACE_MASK, 2) /* ilk-ivb */
+#define   PIPECONF_OUTPUT_COLORSPACE_YUV_HSW   REG_BIT(11) /* hsw only */
+#define   PIPECONF_BPC_MASK                    REG_GENMASK(7, 5) /* ctg-ivb */
+#define   PIPECONF_BPC_8                       REG_FIELD_PREP(PIPECONF_BPC_MASK, 0)
+#define   PIPECONF_BPC_10                      REG_FIELD_PREP(PIPECONF_BPC_MASK, 1)
+#define   PIPECONF_BPC_6                       REG_FIELD_PREP(PIPECONF_BPC_MASK, 2)
+#define   PIPECONF_BPC_12                      REG_FIELD_PREP(PIPECONF_BPC_MASK, 3)
+#define   PIPECONF_DITHER_EN                   REG_BIT(4)
+#define   PIPECONF_DITHER_TYPE_MASK            REG_GENMASK(3, 2)
+#define   PIPECONF_DITHER_TYPE_SP              REG_FIELD_PREP(PIPECONF_DITHER_TYPE_MASK, 0)
+#define   PIPECONF_DITHER_TYPE_ST1             REG_FIELD_PREP(PIPECONF_DITHER_TYPE_MASK, 1)
+#define   PIPECONF_DITHER_TYPE_ST2             REG_FIELD_PREP(PIPECONF_DITHER_TYPE_MASK, 2)
+#define   PIPECONF_DITHER_TYPE_TEMP            REG_FIELD_PREP(PIPECONF_DITHER_TYPE_MASK, 3)
 #define _PIPEASTAT             0x70024
 #define   PIPE_FIFO_UNDERRUN_STATUS            (1UL << 31)
 #define   SPRITE1_FLIP_DONE_INT_EN_VLV         (1UL << 30)