aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2016-08-23 10:18:08 -0400
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2016-08-24 03:49:10 -0400
commitb70765463665e26cfc44359547923fdfd1d75b62 (patch)
tree3c7805ec9f4ed16969160635d36e4e54ffd5c216 /drivers/gpu/drm/i915/intel_display.c
parent496b0fc370caaf4072c19ac9120bf5c58f057d59 (diff)
drm/i915: Cleanup crt disable sequence on hsw+
Instead of iterating overthe connectors manually, run the last part of DDI disabling inside the crt post disable function. This was meant to be addressed before submitting the other commit, but I missed the review comments. Fixes: fd6bbda9c7a4 ("drm/i915: Pass crtc_state and connector_state to encoder functions") Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1471961888-10771-2-git-send-email-maarten.lankhorst@linux.intel.com Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> [mlankhorst: Fix extra whitespace between functions.]
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c25
1 files changed, 3 insertions, 22 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index b747402ab310..6684099d49c6 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1907,7 +1907,7 @@ static void ironlake_disable_pch_transcoder(struct drm_i915_private *dev_priv,
1907 } 1907 }
1908} 1908}
1909 1909
1910static void lpt_disable_pch_transcoder(struct drm_i915_private *dev_priv) 1910void lpt_disable_pch_transcoder(struct drm_i915_private *dev_priv)
1911{ 1911{
1912 u32 val; 1912 u32 val;
1913 1913
@@ -4292,7 +4292,7 @@ static int intel_crtc_wait_for_pending_flips(struct drm_crtc *crtc)
4292 return 0; 4292 return 0;
4293} 4293}
4294 4294
4295static void lpt_disable_iclkip(struct drm_i915_private *dev_priv) 4295void lpt_disable_iclkip(struct drm_i915_private *dev_priv)
4296{ 4296{
4297 u32 temp; 4297 u32 temp;
4298 4298
@@ -5606,28 +5606,9 @@ static void haswell_crtc_disable(struct intel_crtc_state *old_crtc_state,
5606 5606
5607 intel_encoders_post_disable(crtc, old_crtc_state, old_state); 5607 intel_encoders_post_disable(crtc, old_crtc_state, old_state);
5608 5608
5609 if (intel_crtc->config->has_pch_encoder) { 5609 if (old_crtc_state->has_pch_encoder)
5610 struct drm_connector_state *old_conn_state;
5611 struct drm_connector *conn;
5612 int i;
5613
5614 lpt_disable_pch_transcoder(dev_priv);
5615 lpt_disable_iclkip(dev_priv);
5616
5617 for_each_connector_in_state(old_state, conn, old_conn_state, i)
5618 if (old_conn_state->crtc == crtc) {
5619 struct intel_encoder *encoder =
5620 to_intel_encoder(old_conn_state->best_encoder);
5621
5622 intel_ddi_fdi_disable(encoder,
5623 old_crtc_state,
5624 old_conn_state);
5625 break;
5626 }
5627
5628 intel_set_pch_fifo_underrun_reporting(dev_priv, TRANSCODER_A, 5610 intel_set_pch_fifo_underrun_reporting(dev_priv, TRANSCODER_A,
5629 true); 5611 true);
5630 }
5631} 5612}
5632 5613
5633static void i9xx_pfit_enable(struct intel_crtc *crtc) 5614static void i9xx_pfit_enable(struct intel_crtc *crtc)