diff options
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 17 |
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; |