Commit 6a6d914d authored by Ville Syrjälä's avatar Ville Syrjälä

drm/i915: Clean up PIPECONF bit defines

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