aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaulo Zanoni <paulo.r.zanoni@intel.com>2013-11-03 00:07:37 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-11-08 12:09:53 -0500
commitc7670b1098b1a05c5266a7d3d2f07165621e7de9 (patch)
treea88a25c83489914734e956971c2601178da450ee
parent018f52c9c3c40b5ba22586b6ced6c3f5339848d6 (diff)
drm/i915/bdw: on Broadwell, the panel fitter is on the pipe
So you can use the panel fitter while the power well is disabled and you also don't need to set the "pipe" bit. v2: Rebased on top of Jesse's pfit refactor, which moved pfit state into the pipe_config. v3: Rebase on top of the latest Haswell/panel fitter rework, which neatly resolves a FIXME we have in this patch here: v4: Rebase on top of the new power domain framework. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> (v1) Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_ddi.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 31f4fe271388..0598669f84e8 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -756,7 +756,8 @@ void intel_ddi_enable_transcoder_func(struct drm_crtc *crtc)
756 struct intel_crtc *intel_crtc = to_intel_crtc(crtc); 756 struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
757 struct intel_encoder *intel_encoder = intel_ddi_get_crtc_encoder(crtc); 757 struct intel_encoder *intel_encoder = intel_ddi_get_crtc_encoder(crtc);
758 struct drm_encoder *encoder = &intel_encoder->base; 758 struct drm_encoder *encoder = &intel_encoder->base;
759 struct drm_i915_private *dev_priv = crtc->dev->dev_private; 759 struct drm_device *dev = crtc->dev;
760 struct drm_i915_private *dev_priv = dev->dev_private;
760 enum pipe pipe = intel_crtc->pipe; 761 enum pipe pipe = intel_crtc->pipe;
761 enum transcoder cpu_transcoder = intel_crtc->config.cpu_transcoder; 762 enum transcoder cpu_transcoder = intel_crtc->config.cpu_transcoder;
762 enum port port = intel_ddi_get_encoder_port(intel_encoder); 763 enum port port = intel_ddi_get_encoder_port(intel_encoder);
@@ -792,10 +793,11 @@ void intel_ddi_enable_transcoder_func(struct drm_crtc *crtc)
792 if (cpu_transcoder == TRANSCODER_EDP) { 793 if (cpu_transcoder == TRANSCODER_EDP) {
793 switch (pipe) { 794 switch (pipe) {
794 case PIPE_A: 795 case PIPE_A:
795 /* Can only use the always-on power well for eDP when 796 /* On Haswell, can only use the always-on power well for
796 * not using the panel fitter, and when not using motion 797 * eDP when not using the panel fitter, and when not
797 * blur mitigation (which we don't support). */ 798 * using motion blur mitigation (which we don't
798 if (intel_crtc->config.pch_pfit.enabled) 799 * support). */
800 if (IS_HASWELL(dev) && intel_crtc->config.pch_pfit.enabled)
799 temp |= TRANS_DDI_EDP_INPUT_A_ONOFF; 801 temp |= TRANS_DDI_EDP_INPUT_A_ONOFF;
800 else 802 else
801 temp |= TRANS_DDI_EDP_INPUT_A_ON; 803 temp |= TRANS_DDI_EDP_INPUT_A_ON;