]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.15-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Apr 2018 17:47:04 +0000 (19:47 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Apr 2018 17:47:04 +0000 (19:47 +0200)
added patches:
drm-i915-dp-write-to-set_power-dpcd-to-enable-mst-hub.patch

queue-4.15/drm-i915-dp-write-to-set_power-dpcd-to-enable-mst-hub.patch [new file with mode: 0644]
queue-4.15/series

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 (file)
index 0000000..3784d30
--- /dev/null
@@ -0,0 +1,74 @@
+From b1e314462bba76660eec62760bb2e87f28f58866 Mon Sep 17 00:00:00 2001
+From: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
+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 <dhinakaran.pandiyan@intel.com>
+
+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ä <ville.syrjala@linux.intel.com>
+Cc: Jani Nikula <jani.nikula@intel.com>
+Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+Reported-by: Laura Abbott <labbott@redhat.com>
+Cc: stable@vger.kernel.org
+Fixes: 5ea2355a100a ("drm/i915/mst: Use MST sideband message transactions for dpms control")
+Tested-by: Laura Abbott <labbott@redhat.com>
+Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Link: https://patchwork.freedesktop.org/patch/msgid/20180314054825.1718-1-dhinakaran.pandiyan@intel.com
+(cherry picked from commit ad260ab32a4d94fa974f58262f8000472d34fd5b)
+Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
+Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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);
index 45cfcdbb5c6225b05a6b3a34b42483bfa6b874e6..b4d4f6439a87fa3c610a191a98f74cc155cf4408 100644 (file)
@@ -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