diff options
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index f51b5eee30c5..d89dda02777b 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -8690,6 +8690,31 @@ void intel_modeset_setup_hw_state(struct drm_device *dev) | |||
8690 | struct intel_encoder *encoder; | 8690 | struct intel_encoder *encoder; |
8691 | struct intel_connector *connector; | 8691 | struct intel_connector *connector; |
8692 | 8692 | ||
8693 | if (IS_HASWELL(dev)) { | ||
8694 | tmp = I915_READ(TRANS_DDI_FUNC_CTL(TRANSCODER_EDP)); | ||
8695 | |||
8696 | if (tmp & TRANS_DDI_FUNC_ENABLE) { | ||
8697 | switch (tmp & TRANS_DDI_EDP_INPUT_MASK) { | ||
8698 | case TRANS_DDI_EDP_INPUT_A_ON: | ||
8699 | case TRANS_DDI_EDP_INPUT_A_ONOFF: | ||
8700 | pipe = PIPE_A; | ||
8701 | break; | ||
8702 | case TRANS_DDI_EDP_INPUT_B_ONOFF: | ||
8703 | pipe = PIPE_B; | ||
8704 | break; | ||
8705 | case TRANS_DDI_EDP_INPUT_C_ONOFF: | ||
8706 | pipe = PIPE_C; | ||
8707 | break; | ||
8708 | } | ||
8709 | |||
8710 | crtc = to_intel_crtc(dev_priv->pipe_to_crtc_mapping[pipe]); | ||
8711 | crtc->cpu_transcoder = TRANSCODER_EDP; | ||
8712 | |||
8713 | DRM_DEBUG_KMS("Pipe %c using transcoder EDP\n", | ||
8714 | pipe_name(pipe)); | ||
8715 | } | ||
8716 | } | ||
8717 | |||
8693 | for_each_pipe(pipe) { | 8718 | for_each_pipe(pipe) { |
8694 | crtc = to_intel_crtc(dev_priv->pipe_to_crtc_mapping[pipe]); | 8719 | crtc = to_intel_crtc(dev_priv->pipe_to_crtc_mapping[pipe]); |
8695 | 8720 | ||