From: Greg Kroah-Hartman Date: Tue, 20 Sep 2022 14:20:44 +0000 (+0200) Subject: drop queue-5.4/drm-i915-implement-waedplinkratedatareload.patch X-Git-Tag: v5.19.11~40 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=23fca469f3fd766fb682a2b2d2360e03bc324f74;p=thirdparty%2Fkernel%2Fstable-queue.git drop queue-5.4/drm-i915-implement-waedplinkratedatareload.patch It broke the build --- diff --git a/queue-5.4/drm-i915-implement-waedplinkratedatareload.patch b/queue-5.4/drm-i915-implement-waedplinkratedatareload.patch deleted file mode 100644 index 2f5b846f80a..00000000000 --- a/queue-5.4/drm-i915-implement-waedplinkratedatareload.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 36c9ca7e117d715e270e5151e4c9ecf97f565e6e Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 2 Sep 2022 10:03:18 +0300 -Subject: drm/i915: Implement WaEdpLinkRateDataReload -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Ville Syrjälä - -[ Upstream commit 672d6ca758651f0ec12cd0d59787067a5bde1c96 ] - -A lot of modern laptops use the Parade PS8461E MUX for eDP -switching. The MUX can operate in jitter cleaning mode or -redriver mode, the first one resulting in higher link -quality. The jitter cleaning mode needs to know the link -rate used and the MUX achieves this by snooping the -LINK_BW_SET, LINK_RATE_SELECT and SUPPORTED_LINK_RATES -DPCD accesses. - -When the MUX is powered down (seems this can happen whenever -the display is turned off) it loses track of the snooped -link rates so when we do the LINK_RATE_SELECT write it no -longer knowns which link rate we're selecting, and thus it -falls back to the lower quality redriver mode. This results -in unstable high link rates (eg. usually 8.1Gbps link rate -no longer works correctly). - -In order to avoid all that let's re-snoop SUPPORTED_LINK_RATES -from the sink at the start of every link training. - -Unfortunately we don't have a way to detect the presence of -the MUX. It looks like the set of laptops equipped with this -MUX is fairly large and contains devices from multiple -manufacturers. It may also still be growing with new models. -So a quirk doesn't seem like a very easily maintainable -option, thus we shall attempt to do this unconditionally on -all machines that use LINK_RATE_SELECT. Hopefully this extra -DPCD read doesn't cause issues for any unaffected machine. -If that turns out to be the case we'll need to convert this -into a quirk in the future. - -Cc: stable@vger.kernel.org -Cc: Jason A. Donenfeld -Cc: Ankit Nautiyal -Cc: Jani Nikula -Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/6205 -Signed-off-by: Ville Syrjälä -Link: https://patchwork.freedesktop.org/patch/msgid/20220902070319.15395-1-ville.syrjala@linux.intel.com -Tested-by: Aaron Ma -Tested-by: Jason A. Donenfeld -Reviewed-by: Jani Nikula -(cherry picked from commit 25899c590cb5ba9b9f284c6ca8e7e9086793d641) -Signed-off-by: Rodrigo Vivi -Signed-off-by: Sasha Levin ---- - .../drm/i915/display/intel_dp_link_training.c | 22 +++++++++++++++++++ - 1 file changed, 22 insertions(+) - -diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c b/drivers/gpu/drm/i915/display/intel_dp_link_training.c -index 2a1130dd1ad0..774f910364ab 100644 ---- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c -+++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c -@@ -142,6 +142,28 @@ intel_dp_link_training_clock_recovery(struct intel_dp *intel_dp) - intel_dp_compute_rate(intel_dp, intel_dp->link_rate, - &link_bw, &rate_select); - -+ /* -+ * WaEdpLinkRateDataReload -+ * -+ * Parade PS8461E MUX (used on varius TGL+ laptops) needs -+ * to snoop the link rates reported by the sink when we -+ * use LINK_RATE_SET in order to operate in jitter cleaning -+ * mode (as opposed to redriver mode). Unfortunately it -+ * loses track of the snooped link rates when powered down, -+ * so we need to make it re-snoop often. Without this high -+ * link rates are not stable. -+ */ -+ if (!link_bw) { -+ struct intel_connector *connector = intel_dp->attached_connector; -+ __le16 sink_rates[DP_MAX_SUPPORTED_RATES]; -+ -+ drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] Reloading eDP link rates\n", -+ connector->base.base.id, connector->base.name); -+ -+ drm_dp_dpcd_read(&intel_dp->aux, DP_SUPPORTED_LINK_RATES, -+ sink_rates, sizeof(sink_rates)); -+ } -+ - if (link_bw) - DRM_DEBUG_KMS("Using LINK_BW_SET value %02x\n", link_bw); - else --- -2.35.1 - diff --git a/queue-5.4/series b/queue-5.4/series index 4e01c43a3ed..fee155f86d9 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -7,6 +7,5 @@ parisc-ccio-dma-add-missing-iounmap-in-error-path-in.patch efi-libstub-disable-shadow-call-stack.patch efi-libstub-disable-struct-randomization.patch alsa-pcm-oss-fix-race-at-sndctl_dsp_sync.patch -drm-i915-implement-waedplinkratedatareload.patch task_stack-x86-cea-force-inline-stack-helpers.patch tracing-hold-caller_addr-to-hardirq_-enable-disable-.patch