From: Greg Kroah-Hartman Date: Thu, 12 Apr 2018 12:45:56 +0000 (+0200) Subject: 4.14-stable patches X-Git-Tag: v4.9.94~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bcb4724bdddb761b5b027402cc6fd2fb80f38142;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: drm-i915-edp-do-not-do-link-training-fallback-or-prune-modes-on-edp.patch --- 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 index 00000000000..d50b5421b16 --- /dev/null +++ b/queue-4.14/drm-i915-edp-do-not-do-link-training-fallback-or-prune-modes-on-edp.patch @@ -0,0 +1,79 @@ +From a306343bcd7df89d9d45a601929e26866e7b7a81 Mon Sep 17 00:00:00 2001 +From: Manasi Navare +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 + +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 +Cc: Jim Bride +Cc: Jani Nikula +Cc: Ville Syrjala +Cc: Dave Airlie +Cc: Daniel Vetter +Signed-off-by: Manasi Navare +Reviewed-by: Ville Syrjala +Reference: https://bugs.freedesktop.org/show_bug.cgi?id=103369 +Signed-off-by: Imre Deak +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..b44edfb0595 --- /dev/null +++ b/queue-4.14/series @@ -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 index 00000000000..b44edfb0595 --- /dev/null +++ b/queue-4.15/series @@ -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 index 00000000000..e69de29bb2d