drm/i915: eDP mode set sequence corrections

We should disable the panel first when shutting down an eDP link. And
when turning one on, the panel needs to be enabled before link training
or eDP I/O won't be enabled.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

+8 -9
+8 -9
drivers/gpu/drm/i915/intel_dp.c
··· 840 uint32_t dp_reg = I915_READ(intel_dp->output_reg); 841 842 if (mode != DRM_MODE_DPMS_ON) { 843 - if (dp_reg & DP_PORT_EN) { 844 - intel_dp_link_down(intel_dp); 845 - if (IS_eDP(intel_dp) || IS_PCH_eDP(intel_dp)) { 846 - ironlake_edp_backlight_off(dev); 847 - ironlake_edp_panel_off(dev); 848 - } 849 } 850 } else { 851 if (!(dp_reg & DP_PORT_EN)) { 852 - intel_dp_link_train(intel_dp); 853 - if (IS_eDP(intel_dp) || IS_PCH_eDP(intel_dp)) { 854 ironlake_edp_panel_on(dev); 855 ironlake_edp_backlight_on(dev); 856 - } 857 } 858 } 859 intel_dp->dpms_mode = mode;
··· 840 uint32_t dp_reg = I915_READ(intel_dp->output_reg); 841 842 if (mode != DRM_MODE_DPMS_ON) { 843 + if (IS_eDP(intel_dp) || IS_PCH_eDP(intel_dp)) { 844 + ironlake_edp_backlight_off(dev); 845 + ironlake_edp_panel_off(dev); 846 } 847 + if (dp_reg & DP_PORT_EN) 848 + intel_dp_link_down(intel_dp); 849 } else { 850 if (!(dp_reg & DP_PORT_EN)) { 851 + if (IS_eDP(intel_dp) || IS_PCH_eDP(intel_dp)) 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); 856 } 857 } 858 intel_dp->dpms_mode = mode;