mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 00:45:13 +07:00
drm/i915: Flatten and rename haswell_set_pipemisc()
Move the platform checks out from haswell_set_pipemisc() and rename it to bdw_set_pipemisc() to make it clear when to call it. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190412183009.8237-1-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
8a9b36e258
commit
9b11215e40
@ -126,7 +126,7 @@ static void intel_cpu_transcoder_set_m_n(const struct intel_crtc_state *crtc_sta
|
|||||||
static void i9xx_set_pipeconf(const struct intel_crtc_state *crtc_state);
|
static void i9xx_set_pipeconf(const struct intel_crtc_state *crtc_state);
|
||||||
static void ironlake_set_pipeconf(const struct intel_crtc_state *crtc_state);
|
static void ironlake_set_pipeconf(const struct intel_crtc_state *crtc_state);
|
||||||
static void haswell_set_pipeconf(const struct intel_crtc_state *crtc_state);
|
static void haswell_set_pipeconf(const struct intel_crtc_state *crtc_state);
|
||||||
static void haswell_set_pipemisc(const struct intel_crtc_state *crtc_state);
|
static void bdw_set_pipemisc(const struct intel_crtc_state *crtc_state);
|
||||||
static void vlv_prepare_pll(struct intel_crtc *crtc,
|
static void vlv_prepare_pll(struct intel_crtc *crtc,
|
||||||
const struct intel_crtc_state *pipe_config);
|
const struct intel_crtc_state *pipe_config);
|
||||||
static void chv_prepare_pll(struct intel_crtc *crtc,
|
static void chv_prepare_pll(struct intel_crtc *crtc,
|
||||||
@ -6043,7 +6043,8 @@ static void haswell_crtc_enable(struct intel_crtc_state *pipe_config,
|
|||||||
if (!transcoder_is_dsi(cpu_transcoder))
|
if (!transcoder_is_dsi(cpu_transcoder))
|
||||||
haswell_set_pipeconf(pipe_config);
|
haswell_set_pipeconf(pipe_config);
|
||||||
|
|
||||||
haswell_set_pipemisc(pipe_config);
|
if (INTEL_GEN(dev_priv) >= 9 || IS_BROADWELL(dev_priv))
|
||||||
|
bdw_set_pipemisc(pipe_config);
|
||||||
|
|
||||||
intel_crtc->active = true;
|
intel_crtc->active = true;
|
||||||
|
|
||||||
@ -8890,45 +8891,42 @@ static void haswell_set_pipeconf(const struct intel_crtc_state *crtc_state)
|
|||||||
POSTING_READ(PIPECONF(cpu_transcoder));
|
POSTING_READ(PIPECONF(cpu_transcoder));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void haswell_set_pipemisc(const struct intel_crtc_state *crtc_state)
|
static void bdw_set_pipemisc(const struct intel_crtc_state *crtc_state)
|
||||||
{
|
{
|
||||||
struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->base.crtc);
|
struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
|
||||||
struct drm_i915_private *dev_priv = to_i915(intel_crtc->base.dev);
|
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
|
||||||
|
u32 val = 0;
|
||||||
|
|
||||||
if (IS_BROADWELL(dev_priv) || INTEL_GEN(dev_priv) >= 9) {
|
switch (crtc_state->pipe_bpp) {
|
||||||
u32 val = 0;
|
case 18:
|
||||||
|
val |= PIPEMISC_DITHER_6_BPC;
|
||||||
switch (crtc_state->pipe_bpp) {
|
break;
|
||||||
case 18:
|
case 24:
|
||||||
val |= PIPEMISC_DITHER_6_BPC;
|
val |= PIPEMISC_DITHER_8_BPC;
|
||||||
break;
|
break;
|
||||||
case 24:
|
case 30:
|
||||||
val |= PIPEMISC_DITHER_8_BPC;
|
val |= PIPEMISC_DITHER_10_BPC;
|
||||||
break;
|
break;
|
||||||
case 30:
|
case 36:
|
||||||
val |= PIPEMISC_DITHER_10_BPC;
|
val |= PIPEMISC_DITHER_12_BPC;
|
||||||
break;
|
break;
|
||||||
case 36:
|
default:
|
||||||
val |= PIPEMISC_DITHER_12_BPC;
|
MISSING_CASE(crtc_state->pipe_bpp);
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
/* Case prevented by pipe_config_set_bpp. */
|
|
||||||
BUG();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (crtc_state->dither)
|
|
||||||
val |= PIPEMISC_DITHER_ENABLE | PIPEMISC_DITHER_TYPE_SP;
|
|
||||||
|
|
||||||
if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 ||
|
|
||||||
crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR444)
|
|
||||||
val |= PIPEMISC_OUTPUT_COLORSPACE_YUV;
|
|
||||||
|
|
||||||
if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420)
|
|
||||||
val |= PIPEMISC_YUV420_ENABLE |
|
|
||||||
PIPEMISC_YUV420_MODE_FULL_BLEND;
|
|
||||||
|
|
||||||
I915_WRITE(PIPEMISC(intel_crtc->pipe), val);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (crtc_state->dither)
|
||||||
|
val |= PIPEMISC_DITHER_ENABLE | PIPEMISC_DITHER_TYPE_SP;
|
||||||
|
|
||||||
|
if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 ||
|
||||||
|
crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR444)
|
||||||
|
val |= PIPEMISC_OUTPUT_COLORSPACE_YUV;
|
||||||
|
|
||||||
|
if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420)
|
||||||
|
val |= PIPEMISC_YUV420_ENABLE |
|
||||||
|
PIPEMISC_YUV420_MODE_FULL_BLEND;
|
||||||
|
|
||||||
|
I915_WRITE(PIPEMISC(crtc->pipe), val);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ironlake_get_lanes_required(int target_clock, int link_bw, int bpp)
|
int ironlake_get_lanes_required(int target_clock, int link_bw, int bpp)
|
||||||
|
Loading…
Reference in New Issue
Block a user