devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Xiangxu Yin <xiangxu.yin@oss.qualcomm.com>
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
	Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	Rob Clark <robdclark@gmail.com>,
	Abhinav Kumar <quic_abhinavk@quicinc.com>,
	Sean Paul <sean@poorly.run>,
	Marijn Suijten <marijn.suijten@somainline.org>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Kuogee Hsieh <quic_khsieh@quicinc.com>,
	Vinod Koul <vkoul@kernel.org>,
	Kishon Vijay Abraham I <kishon@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Bartosz Golaszewski <brgl@bgdev.pl>,
	quic_lliu6@quicinc.com, quic_fangez@quicinc.com,
	linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org,
	freedreno@lists.freedesktop.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org,
	linux-gpio@vger.kernel.org, quic_xiangxuy@quicinc.com
Subject: Re: [PATCH 7/8] drm/msm/dp: Retry Link Training 2 with lower pattern
Date: Mon, 21 Jul 2025 12:18:16 +0800	[thread overview]
Message-ID: <a723b6a6-c70a-442f-9785-9f607548664f@oss.qualcomm.com> (raw)
In-Reply-To: <w66xyhu5w7ajpkennvj24cad4j6izvapsp3reyla7iui2jdgkx@d43b6z3qw5tj>


On 7/19/2025 5:43 PM, Dmitry Baryshkov wrote:
> On Wed, Jul 09, 2025 at 05:16:02PM +0800, Xiangxu Yin wrote:
>>
>> On 5/28/2025 4:49 AM, Konrad Dybcio wrote:
>>> On 12/3/24 3:07 PM, Dmitry Baryshkov wrote:
>>>> On Tue, Dec 03, 2024 at 04:13:22PM +0800, Xiangxu Yin wrote:
>>>>>
>>>>> On 11/29/2024 9:53 PM, Dmitry Baryshkov wrote:
>>>>>> On Fri, 29 Nov 2024 at 09:59, Xiangxu Yin <quic_xiangxuy@quicinc.com> wrote:
>>>>>>> Add a mechanism to retry Link Training 2 by lowering the pattern level
>>>>>>> when the link training #2 first attempt fails. This approach enhances
>>>>>>> compatibility, particularly addressing issues caused by certain hub
>>>>>>> configurations.
>>>>>> Please reference corresponding part of the standard, describing this lowering.
>>>>>>
>>>>> Per DisplayPort 1.4a specification Section 3.5.1.2 and Table 3-10, while the standard doesn't explicitly define a TPS downgrade mechanism, it does specify:
>>>> Anything in DP 2.1?
>>>>
>> In the DP 2.1 spec, mainly on section '3.6.7.2 8b/10b DP Link Layer LTTPR Link Training Mandates', defined 'LTTPR shall support TPS4'.
>> The other parts seems similar to the 1.4 spec.
>>>>> - All devices shall support TPS1 and TPS2
>>>>> - HDR2-capable devices shall support TPS3
>>>>> - HDR3-capable devices shall support TPS4
>>>>> While these capabilities are explicitly defined DPCD for sink devices, source device capabilities are less strictly defined, with the minimum requirement being support for TPS1 and TPS2.
>>>>> In QCS615 DP phy is only supporting to HBR2, we observed a critical interoperability scenario with a DP->HDMI bridge. When link training at TPS4 consistently failed, downgrading to the next lower training pattern successfully established the link and display output successfully.
>>>> Any other driver doing such TPS lowering? Or maybe we should be
>>>> selecting TPS3 for HBR2-only devices?
>> This logic is porting from qualcomm downstream, 
> Hopefully a downstream has some sensible commit message which describes
> the issue and the configuration to reproduce it?

The downstream commit log shows in 2019/08, SM8250 (kernel 4.19) type-c DP meet LT2 failures on Samsung HDR curved monitor, the pattern lowering fix was adopted.
On QCS615, an mDP-to-HDMI adapter cable exhibited similar LT failure pattern, and it's works with this solution.
However, It's rare compatibility case with special device and lowering seems violates protocol standards, maybe not suitable for general deployment.

>> For other device, only found in some older Tx chips like i915(intel_dp_training_pattern) used the maximum hardware-supported patterns, but not lowering.
>>
>> According to the description in DPCD table 2-232 003h, From the DP spec perspective, it appears that all supported cases should preferably adopt TPS4, as it is more robust.
> If other drivers don't perform this kind of lowering, I'd prefer if we
> don't perform it too.
Agree,  I'll remove this patch in an upcoming version soon.
>
>> 'DPRXs should support TPS4 and set this bit, regardless of whether the DPRX supports HBR3 because TPS4 is more conducive to robust link establishment than TPS2 and TPS3.
>> 0 = TPS4 is not supported.
>> 1 = TPS4 is supported (shall be supported for downstream devices with DPCD r1.4, except for eDPRXs).'
>>
>> Although maximum capability of QCS615 is HBR2, but the actual pattern supports TPS4. 
>> From pure design perspective, it would be cleaner to drop this lowering in next patch. 
>>> Bump, this patch looks interesting and I'd like to see it revisited if
>>> it's correct
>>>
>>> Konrad
>>

  reply	other threads:[~2025-07-21  4:18 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-29  7:57 [PATCH 0/8] Add DisplayPort support for QCS615 platform Xiangxu Yin
2024-11-29  7:57 ` [PATCH 1/8] dt-bindings: display/msm: Document DP on QCS615 Xiangxu Yin
2024-11-29  8:11   ` Krzysztof Kozlowski
2024-11-29  7:57 ` [PATCH 2/8] dt-bindings: phy: qcom,msm8998-qmp-usb3-phy: Add DP support for QCS615 Xiangxu Yin
2024-11-29  8:14   ` Krzysztof Kozlowski
2024-11-29  7:57 ` [PATCH 3/8] phy: qcom: qmp-usbc: Add DP phy mode support on QCS615 Xiangxu Yin
2024-11-29  8:18   ` Krzysztof Kozlowski
2024-12-02 10:31     ` Xiangxu Yin
2024-12-02 15:48       ` Dmitry Baryshkov
2024-11-29 12:12   ` kernel test robot
2024-11-29 14:33   ` Dmitry Baryshkov
2024-12-05 13:26     ` Xiangxu Yin
2024-12-05 18:31       ` Dmitry Baryshkov
2024-12-10 15:09         ` Dmitry Baryshkov
2024-12-11  0:46           ` Xiangxu Yin
2024-12-11  9:46             ` Dmitry Baryshkov
2024-12-11 12:50               ` Xiangxu Yin
2024-12-11 19:15                 ` Dmitry Baryshkov
2024-12-18 12:55                   ` Xiangxu Yin
2024-12-19 21:38                     ` Dmitry Baryshkov
2024-12-20  0:01                     ` Dmitry Baryshkov
2025-03-05 10:20                       ` Xiangxu Yin
2025-03-05 21:25                         ` Dmitry Baryshkov
2025-03-21 10:17                           ` Xiangxu Yin
2025-03-21 12:19                             ` Dmitry Baryshkov
2024-11-29  7:57 ` [PATCH 4/8] drm/msm/dp: Add DisplayPort support for QCS615 Xiangxu Yin
2024-11-29 13:54   ` Dmitry Baryshkov
2024-11-29  7:57 ` [PATCH 5/8] drm/msm/dp: Add support for lane mapping configuration Xiangxu Yin
2024-11-29 13:50   ` Dmitry Baryshkov
2024-12-02  8:40     ` Xiangxu Yin
2024-12-02 10:46       ` Dmitry Baryshkov
2024-12-05 11:28         ` Xiangxu Yin
2024-12-05 11:40           ` Dmitry Baryshkov
2024-12-19 10:36             ` Xiangxu Yin
2024-12-19 21:45               ` Dmitry Baryshkov
2025-03-05 10:16                 ` Xiangxu Yin
2025-03-05 21:14                   ` Dmitry Baryshkov
2025-05-19  8:20                     ` Xiangxu Yin
2025-05-19  9:58                       ` Dmitry Baryshkov
2024-11-29  7:57 ` [PATCH 6/8] drm/msm/dp: Add maximum width limitation for modes Xiangxu Yin
2024-11-29 13:52   ` Dmitry Baryshkov
2024-12-02  9:05     ` Xiangxu Yin
2024-12-02  9:32       ` Dmitry Baryshkov
2024-12-03  7:41         ` Xiangxu Yin
2024-12-03 13:58           ` Dmitry Baryshkov
2024-12-06 20:13             ` Abhinav Kumar
2024-12-09  1:57               ` Xiangxu Yin
2024-12-09 20:18                 ` Abhinav Kumar
2024-11-29  7:57 ` [PATCH 7/8] drm/msm/dp: Retry Link Training 2 with lower pattern Xiangxu Yin
2024-11-29 13:53   ` Dmitry Baryshkov
2024-12-03  8:13     ` Xiangxu Yin
2024-12-03 14:07       ` Dmitry Baryshkov
2025-05-27 20:49         ` Konrad Dybcio
2025-07-09  9:16           ` Xiangxu Yin
2025-07-19  9:43             ` Dmitry Baryshkov
2025-07-21  4:18               ` Xiangxu Yin [this message]
2024-11-29  7:57 ` [PATCH 8/8] drm/msm/dp: Support external GPIO HPD with 3rd pinctrl chip Xiangxu Yin
2024-11-29  8:21   ` Krzysztof Kozlowski
2024-11-29 13:45   ` Dmitry Baryshkov
2024-11-29 13:54   ` neil.armstrong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a723b6a6-c70a-442f-9785-9f607548664f@oss.qualcomm.com \
    --to=xiangxu.yin@oss.qualcomm.com \
    --cc=airlied@gmail.com \
    --cc=brgl@bgdev.pl \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=dmitry.baryshkov@oss.qualcomm.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=kishon@kernel.org \
    --cc=konrad.dybcio@oss.qualcomm.com \
    --cc=krzk+dt@kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=marijn.suijten@somainline.org \
    --cc=mripard@kernel.org \
    --cc=quic_abhinavk@quicinc.com \
    --cc=quic_fangez@quicinc.com \
    --cc=quic_khsieh@quicinc.com \
    --cc=quic_lliu6@quicinc.com \
    --cc=quic_xiangxuy@quicinc.com \
    --cc=robdclark@gmail.com \
    --cc=robh@kernel.org \
    --cc=sean@poorly.run \
    --cc=simona@ffwll.ch \
    --cc=tzimmermann@suse.de \
    --cc=vkoul@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).