From: Greg Kroah-Hartman Date: Tue, 3 Apr 2018 17:47:04 +0000 (+0200) Subject: 4.15-stable patches X-Git-Tag: v3.18.103~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9241518691b07662f6f19d13fc7beb220f0e921a;p=thirdparty%2Fkernel%2Fstable-queue.git 4.15-stable patches added patches: drm-i915-dp-write-to-set_power-dpcd-to-enable-mst-hub.patch --- diff --git a/queue-4.15/drm-i915-dp-write-to-set_power-dpcd-to-enable-mst-hub.patch b/queue-4.15/drm-i915-dp-write-to-set_power-dpcd-to-enable-mst-hub.patch new file mode 100644 index 00000000000..3784d3099f7 --- /dev/null +++ b/queue-4.15/drm-i915-dp-write-to-set_power-dpcd-to-enable-mst-hub.patch @@ -0,0 +1,74 @@ +From b1e314462bba76660eec62760bb2e87f28f58866 Mon Sep 17 00:00:00 2001 +From: Dhinakaran Pandiyan +Date: Tue, 13 Mar 2018 22:48:25 -0700 +Subject: drm/i915/dp: Write to SET_POWER dpcd to enable MST hub. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Dhinakaran Pandiyan + +commit b1e314462bba76660eec62760bb2e87f28f58866 upstream. + +If bios sets up an MST output and hardware state readout code sees this is +an SST configuration, when disabling the encoder we end up calling +->post_disable_dp() hook instead of the MST version. Consequently, we write +to the DP_SET_POWER dpcd to set it D3 state. Further along when we try +enable the encoder in MST mode, POWER_UP_PHY transaction fails to power up +the MST hub. This results in continuous link training failures which keep +the system busy delaying boot. We could identify bios MST boot discrepancy +and handle it accordingly but a simple way to solve this is to write to the +DP_SET_POWER dpcd for MST too. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105470 +Cc: Ville Syrjälä +Cc: Jani Nikula +Reviewed-by: Ville Syrjälä +Reported-by: Laura Abbott +Cc: stable@vger.kernel.org +Fixes: 5ea2355a100a ("drm/i915/mst: Use MST sideband message transactions for dpms control") +Tested-by: Laura Abbott +Signed-off-by: Dhinakaran Pandiyan +Signed-off-by: Jani Nikula +Link: https://patchwork.freedesktop.org/patch/msgid/20180314054825.1718-1-dhinakaran.pandiyan@intel.com +(cherry picked from commit ad260ab32a4d94fa974f58262f8000472d34fd5b) +Signed-off-by: Rodrigo Vivi +Signed-off-by: Dhinakaran Pandiyan +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpu/drm/i915/intel_ddi.c | 12 ++---------- + 1 file changed, 2 insertions(+), 10 deletions(-) + +--- a/drivers/gpu/drm/i915/intel_ddi.c ++++ b/drivers/gpu/drm/i915/intel_ddi.c +@@ -2208,8 +2208,7 @@ static void intel_ddi_pre_enable_dp(stru + intel_prepare_dp_ddi_buffers(encoder); + + intel_ddi_init_dp_buf_reg(encoder); +- if (!is_mst) +- intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON); ++ intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON); + intel_dp_start_link_train(intel_dp); + if (port != PORT_A || INTEL_GEN(dev_priv) >= 9) + intel_dp_stop_link_train(intel_dp); +@@ -2294,19 +2293,12 @@ static void intel_ddi_post_disable_dp(st + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); + struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base); + struct intel_dp *intel_dp = &dig_port->dp; +- /* +- * old_crtc_state and old_conn_state are NULL when called from +- * DP_MST. The main connector associated with this port is never +- * bound to a crtc for MST. +- */ +- bool is_mst = !old_crtc_state; + + /* + * Power down sink before disabling the port, otherwise we end + * up getting interrupts from the sink on detecting link loss. + */ +- if (!is_mst) +- intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF); ++ intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF); + + intel_disable_ddi_buf(encoder); + diff --git a/queue-4.15/series b/queue-4.15/series index 45cfcdbb5c6..b4d4f6439a8 100644 --- a/queue-4.15/series +++ b/queue-4.15/series @@ -36,3 +36,4 @@ netfilter-drop-template-ct-when-conntrack-is-skipped.patch netfilter-x_tables-add-and-use-xt_check_proc_name.patch phy-qcom-ufs-add-module_license-tag.patch bluetooth-fix-missing-encryption-refresh-on-security-request.patch +drm-i915-dp-write-to-set_power-dpcd-to-enable-mst-hub.patch