aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index d1b4ece4df00..8061a48804a3 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -840,20 +840,19 @@ intel_dp_dpms(struct drm_encoder *encoder, int mode)
840 uint32_t dp_reg = I915_READ(intel_dp->output_reg); 840 uint32_t dp_reg = I915_READ(intel_dp->output_reg);
841 841
842 if (mode != DRM_MODE_DPMS_ON) { 842 if (mode != DRM_MODE_DPMS_ON) {
843 if (dp_reg & DP_PORT_EN) { 843 if (IS_eDP(intel_dp) || IS_PCH_eDP(intel_dp)) {
844 intel_dp_link_down(intel_dp); 844 ironlake_edp_backlight_off(dev);
845 if (IS_eDP(intel_dp) || IS_PCH_eDP(intel_dp)) { 845 ironlake_edp_panel_off(dev);
846 ironlake_edp_backlight_off(dev);
847 ironlake_edp_panel_off(dev);
848 }
849 } 846 }
847 if (dp_reg & DP_PORT_EN)
848 intel_dp_link_down(intel_dp);
850 } else { 849 } else {
851 if (!(dp_reg & DP_PORT_EN)) { 850 if (!(dp_reg & DP_PORT_EN)) {
852 intel_dp_link_train(intel_dp); 851 if (IS_eDP(intel_dp) || IS_PCH_eDP(intel_dp))
853 if (IS_eDP(intel_dp) || IS_PCH_eDP(intel_dp)) {
854 ironlake_edp_panel_on(dev); 852 ironlake_edp_panel_on(dev);
853 intel_dp_link_train(intel_dp);
854 if (IS_eDP(intel_dp) || IS_PCH_eDP(intel_dp))
855 ironlake_edp_backlight_on(dev); 855 ironlake_edp_backlight_on(dev);
856 }
857 } 856 }
858 } 857 }
859 intel_dp->dpms_mode = mode; 858 intel_dp->dpms_mode = mode;