]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Apr 2018 12:45:56 +0000 (14:45 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Apr 2018 12:45:56 +0000 (14:45 +0200)
added patches:
drm-i915-edp-do-not-do-link-training-fallback-or-prune-modes-on-edp.patch

queue-4.14/drm-i915-edp-do-not-do-link-training-fallback-or-prune-modes-on-edp.patch [new file with mode: 0644]
queue-4.14/series [new file with mode: 0644]
queue-4.15/series [new file with mode: 0644]
queue-4.16/series [new file with mode: 0644]

diff --git a/queue-4.14/drm-i915-edp-do-not-do-link-training-fallback-or-prune-modes-on-edp.patch b/queue-4.14/drm-i915-edp-do-not-do-link-training-fallback-or-prune-modes-on-edp.patch
new file mode 100644 (file)
index 0000000..d50b542
--- /dev/null
@@ -0,0 +1,79 @@
+From a306343bcd7df89d9d45a601929e26866e7b7a81 Mon Sep 17 00:00:00 2001
+From: Manasi Navare <manasi.d.navare@intel.com>
+Date: Thu, 12 Oct 2017 12:13:38 -0700
+Subject: drm/i915/edp: Do not do link training fallback or prune modes on EDP
+
+From: Manasi Navare <manasi.d.navare@intel.com>
+
+commit a306343bcd7df89d9d45a601929e26866e7b7a81 upstream.
+
+In case of eDP because the panel has a fixed mode, the link rate
+and lane count at which it is trained corresponds to the link BW
+required to support the native resolution of the panel. In case of
+panles with lower resolutions where fewer lanes are hooked up internally,
+that number is reflected in the MAX_LANE_COUNT DPCD register of the panel.
+So it is pointless to fallback to lower link rate/lane count in case
+of link training failure on eDP connector since the lower link BW
+will not support the native resolution of the panel and we cannot
+prune the preferred mode on the eDP connector.
+
+In case of Link training failure on the eDP panel, something is wrong
+in the HW internally and hence driver errors out with a loud
+and clear DRM_ERROR message.
+
+v2:
+* Fix the DEBUG_ERROR and add {} in else (Ville Syrjala)
+
+Cc: Clinton Taylor <clinton.a.taylor@intel.com>
+Cc: Jim Bride <jim.bride@linux.intel.com>
+Cc: Jani Nikula <jani.nikula@linux.intel.com>
+Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
+Cc: Dave Airlie <airlied@redhat.com>
+Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
+Reviewed-by: Ville Syrjala <ville.syrjala@linux.intel.com>
+Reference: https://bugs.freedesktop.org/show_bug.cgi?id=103369
+Signed-off-by: Imre Deak <imre.deak@intel.com>
+Link: https://patchwork.freedesktop.org/patch/msgid/1507835618-23051-1-git-send-email-manasi.d.navare@intel.com
+(cherry picked from commit c0cfb10d9e1de490e36d3b9d4228c0ea0ca30677)
+Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_dp_link_training.c |   26 +++++++++++++++++---------
+ 1 file changed, 17 insertions(+), 9 deletions(-)
+
+--- a/drivers/gpu/drm/i915/intel_dp_link_training.c
++++ b/drivers/gpu/drm/i915/intel_dp_link_training.c
+@@ -328,14 +328,22 @@ intel_dp_start_link_train(struct intel_d
+       return;
+  failure_handling:
+-      DRM_DEBUG_KMS("[CONNECTOR:%d:%s] Link Training failed at link rate = %d, lane count = %d",
+-                    intel_connector->base.base.id,
+-                    intel_connector->base.name,
+-                    intel_dp->link_rate, intel_dp->lane_count);
+-      if (!intel_dp_get_link_train_fallback_values(intel_dp,
+-                                                   intel_dp->link_rate,
+-                                                   intel_dp->lane_count))
+-              /* Schedule a Hotplug Uevent to userspace to start modeset */
+-              schedule_work(&intel_connector->modeset_retry_work);
++      /* Dont fallback and prune modes if its eDP */
++      if (!intel_dp_is_edp(intel_dp)) {
++              DRM_DEBUG_KMS("[CONNECTOR:%d:%s] Link Training failed at link rate = %d, lane count = %d",
++                            intel_connector->base.base.id,
++                            intel_connector->base.name,
++                            intel_dp->link_rate, intel_dp->lane_count);
++              if (!intel_dp_get_link_train_fallback_values(intel_dp,
++                                                           intel_dp->link_rate,
++                                                           intel_dp->lane_count))
++                      /* Schedule a Hotplug Uevent to userspace to start modeset */
++                      schedule_work(&intel_connector->modeset_retry_work);
++      } else {
++              DRM_ERROR("[CONNECTOR:%d:%s] Link Training failed at link rate = %d, lane count = %d",
++                        intel_connector->base.base.id,
++                        intel_connector->base.name,
++                        intel_dp->link_rate, intel_dp->lane_count);
++      }
+       return;
+ }
diff --git a/queue-4.14/series b/queue-4.14/series
new file mode 100644 (file)
index 0000000..b44edfb
--- /dev/null
@@ -0,0 +1 @@
+drm-i915-edp-do-not-do-link-training-fallback-or-prune-modes-on-edp.patch
diff --git a/queue-4.15/series b/queue-4.15/series
new file mode 100644 (file)
index 0000000..b44edfb
--- /dev/null
@@ -0,0 +1 @@
+drm-i915-edp-do-not-do-link-training-fallback-or-prune-modes-on-edp.patch
diff --git a/queue-4.16/series b/queue-4.16/series
new file mode 100644 (file)
index 0000000..e69de29