diff options
author | Paulo Zanoni <paulo.r.zanoni@intel.com> | 2013-11-03 00:07:37 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-11-08 12:09:53 -0500 |
commit | c7670b1098b1a05c5266a7d3d2f07165621e7de9 (patch) | |
tree | a88a25c83489914734e956971c2601178da450ee | |
parent | 018f52c9c3c40b5ba22586b6ced6c3f5339848d6 (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.c | 12 |
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; |