From ed5acece6ae9164d3b03b96fac1c1cee86e7e055 Mon Sep 17 00:00:00 2001 From: Imre Deak Date: Tue, 28 Jan 2014 10:11:40 +0200 Subject: [PATCH] drm/i915: vlv: force panel power sequencing for DP Signed-off-by: Imre Deak --- drivers/gpu/drm/i915/intel_dp.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 4b6ad6a..05eaf03 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -1142,7 +1142,7 @@ static void edp_panel_vdd_on(struct intel_dp *intel_dp) u32 pp; u32 pp_stat_reg, pp_ctrl_reg; - if (!is_edp(intel_dp)) + if (!is_edp(intel_dp) && !IS_VALLEYVIEW(dev)) return; WARN(intel_dp->want_panel_vdd, @@ -1224,7 +1224,9 @@ static void edp_panel_vdd_work(struct work_struct *__work) static void edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync) { - if (!is_edp(intel_dp)) + struct drm_device *dev = intel_dp_to_dev(intel_dp); + + if (!is_edp(intel_dp) && !IS_VALLEYVIEW(dev)) return; WARN(!intel_dp->want_panel_vdd, "eDP VDD not forced on"); @@ -1251,7 +1253,7 @@ void intel_edp_panel_on(struct intel_dp *intel_dp) u32 pp; u32 pp_ctrl_reg; - if (!is_edp(intel_dp)) + if (!is_edp(intel_dp) && !IS_VALLEYVIEW(dev)) return; DRM_DEBUG_KMS("Turn eDP power on\n"); @@ -1296,7 +1298,7 @@ void intel_edp_panel_off(struct intel_dp *intel_dp) u32 pp; u32 pp_ctrl_reg; - if (!is_edp(intel_dp)) + if (!is_edp(intel_dp) && !IS_VALLEYVIEW(dev)) return; DRM_DEBUG_KMS("Turn eDP power off\n"); @@ -1877,9 +1879,9 @@ static void intel_enable_dp(struct intel_encoder *encoder) intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON); intel_dp_start_link_train(intel_dp); intel_edp_panel_on(intel_dp); - edp_panel_vdd_off(intel_dp, true); intel_dp_complete_link_train(intel_dp); intel_dp_stop_link_train(intel_dp); + edp_panel_vdd_off(intel_dp, true); } static void g4x_enable_dp(struct intel_encoder *encoder) -- 1.8.4