drm/i915: Turn on panel power before doing aux transfers
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 18 Aug 2014 19:16:07 +0000 (22:16 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 4 Sep 2014 13:00:18 +0000 (15:00 +0200)
On VLV/CHV the panel power sequencer may need to be "kicked" a bit to
lock onto the new port, and that needs to happen before any aux
transfers are attempted if we want the aux transfers to actaully
succeed. So turn on panel power (part of the "kick") before aux
transfers (DPMS_ON + link training).

This also matches the documented modeset sequence better for pch
platforms. The documentation doesn't explicitly state anything about the
DPMS or link training DPCD writes, but the panel power on step is
always listed before link training is mentioned.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=70117
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_dp.c

index b036465e3aa2721fea0aa3846d57bba0f6b0b921..8935c5113ea71f7841a2ba0fb29ec8b1c4a50f35 100644 (file)
@@ -2374,10 +2374,10 @@ static void intel_enable_dp(struct intel_encoder *encoder)
                return;
 
        intel_edp_panel_vdd_on(intel_dp);
-       intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
-       intel_dp_start_link_train(intel_dp);
        intel_edp_panel_on(intel_dp);
        intel_edp_panel_vdd_off(intel_dp, true);
+       intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
+       intel_dp_start_link_train(intel_dp);
        intel_dp_complete_link_train(intel_dp);
        intel_dp_stop_link_train(intel_dp);
 }