Commit 5448f53f authored by Ville Syrjälä's avatar Ville Syrjälä

drm/i915: Don't use encoder->type in intel_ddi_set_pipe_settings()

encoder->type isn't reliable for DP/HDMI so instead extract the correct
type from the crtc state in intel_ddi_set_pipe_settings().
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171019133721.11794-2-ville.syrjala@linux.intel.comReviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
parent 547da76b
...@@ -1504,33 +1504,34 @@ void intel_ddi_set_pipe_settings(const struct intel_crtc_state *crtc_state) ...@@ -1504,33 +1504,34 @@ void intel_ddi_set_pipe_settings(const struct intel_crtc_state *crtc_state)
{ {
struct intel_crtc *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(crtc->base.dev); struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
struct intel_encoder *encoder = intel_ddi_get_crtc_encoder(crtc);
enum transcoder cpu_transcoder = crtc_state->cpu_transcoder; enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
int type = encoder->type; u32 temp;
uint32_t temp;
if (type == INTEL_OUTPUT_DP || type == INTEL_OUTPUT_EDP || type == INTEL_OUTPUT_DP_MST) { if (!intel_crtc_has_dp_encoder(crtc_state))
WARN_ON(transcoder_is_dsi(cpu_transcoder)); return;
temp = TRANS_MSA_SYNC_CLK; WARN_ON(transcoder_is_dsi(cpu_transcoder));
switch (crtc_state->pipe_bpp) {
case 18: temp = TRANS_MSA_SYNC_CLK;
temp |= TRANS_MSA_6_BPC; switch (crtc_state->pipe_bpp) {
break; case 18:
case 24: temp |= TRANS_MSA_6_BPC;
temp |= TRANS_MSA_8_BPC; break;
break; case 24:
case 30: temp |= TRANS_MSA_8_BPC;
temp |= TRANS_MSA_10_BPC; break;
break; case 30:
case 36: temp |= TRANS_MSA_10_BPC;
temp |= TRANS_MSA_12_BPC; break;
break; case 36:
default: temp |= TRANS_MSA_12_BPC;
BUG(); break;
} default:
I915_WRITE(TRANS_MSA_MISC(cpu_transcoder), temp); MISSING_CASE(crtc_state->pipe_bpp);
break;
} }
I915_WRITE(TRANS_MSA_MISC(cpu_transcoder), temp);
} }
void intel_ddi_set_vc_payload_alloc(const struct intel_crtc_state *crtc_state, void intel_ddi_set_vc_payload_alloc(const struct intel_crtc_state *crtc_state,
......
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