From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC14C23D2A0 for ; Thu, 31 Jul 2025 05:07:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753938429; cv=none; b=ibhakrTNqAlm/2Snv1eqAX+JmHLGDRLmRjt9skAcjprxfvibLYdKaXb+RE+9TJ68ezy2po1XJvh9EKxYsj8KnutdwI4NHQAmfVSDB0Llag24lnAVAVr1aw/k81QObh/FO5rReU/KYbtRZDutU8y9kVQe/GtRQ3WUd6yQ9btlUQI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753938429; c=relaxed/simple; bh=oMD9ojuEqSC91r1EtgsZ8m2Uv7me0vD4qN4P4+iAElQ=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=joh4mAZKw+j0PaVaDpW4INg4kUJwGdmuDNY1aunT295GmwC+usGkBw7URrA0J/E/6Rx+NBCbVaoEfvrh2spulA9pNLUyQg+/xwh6b0jp/8QgAC0Nq+RnTDU1zrSrVm3vS/9b4wMN7m3kp5Bg7UZGeqYhyN8vSqPz4Y1DBtGRLTE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=DLURZnli; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="DLURZnli" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56V1fWMv003756 for ; Thu, 31 Jul 2025 05:07:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= fdm4gXLWdVs5flQzM+AWNBlwOFKGXX/VfQzEuW5xlxU=; b=DLURZnli+jI0/Dhh V51nnbO62PvhNn3SwX1zE4K5eq3SRqc6NnfSjPVEGaSC1qcYZl605CqdLO86kJrk H/Ie1UJ+pHXtnj9JsPAQa4IKfOeLW/OWHWl9AdpmBCDRMS3Z8P87JqRD4cLBnwHV DghJ+fJIP4k4epiHkwOXRsQxvZV2NxFRQHGpb6+HWb+LRHgyRoCExby4ASkicpHC ml83szLswhcG182FZFldUX41y34+/uz3+WXL+Du3Nhw0vDbRzAhgpfcDQUpeecUD +I+c9T2iKhbnT2ub4SfX/flAAVNazX+P2ynwcqTJw5D7J7GTaLyIRTByvozD16Bm 4muGbA== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 484pbm67vj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 31 Jul 2025 05:07:06 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-23fe2c31e15so1990515ad.3 for ; Wed, 30 Jul 2025 22:07:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753938425; x=1754543225; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=fdm4gXLWdVs5flQzM+AWNBlwOFKGXX/VfQzEuW5xlxU=; b=iXzLv6dL7RZX1RHyVgU0t8+0bYTCMMNvaayfmPr+l+E4Uqg9a2yHSwnOIz0jgwBWny pUG14bCk5ge+vcwzQv2t8iVkrFrf2gu0ciSxtIvBrPzfbqF8D9v0urHXJwmEhneIgl/O 8hUPKlIRmzKpDSRn10rO36TKRNsfhIRH7bx3dDre5F3YipRoKjnMI8oBVIQh6W5HVl3i ubanIwa4daqHNJHwtqnbhSFVlbwPjJ3PrSniYNFNFxz4Afboqr4q/kI5Yg8hhUetNtwW 12yhtQGEEItUCNx/ajq4J6ns2KtaB9T21hPrqHfO8gpiHGxpm5mjAMPYR3+/w8RerPOb uLmg== X-Forwarded-Encrypted: i=1; AJvYcCVaKp0cGG2Tr5sOYHLwJct1MLt/XqY+8tOB0/B65GtTSrHFlsvKdwEaAQxQgovciDsAVreW4+QGRje34SRK@vger.kernel.org X-Gm-Message-State: AOJu0YwZ4PswnPCQYXqSEUZ+AwDYva1BinNU1tEt25LAHURxe6tYDKn0 QqtMsmD1gMYOlfu6C5i8VCa8cUEsy/BhNjFPBWZB05gQAciGO1iy7vbej2s54VWjr5+iRXz3aFR EiRfRPg4IGqfj9d6pkuOHBD0lZmvb3s4GzrSydvLA5Y9O6v7NdKdBRDm08sZpgnjKyeR2 X-Gm-Gg: ASbGncvRxlE8ldZEU55H+crtVNHlm514eq0yWRznWhzkkJKMrxC0gOW/u2BnriePfGg CZQmHIk/aFpN+mVwDc1vW/4lZWFqpiHZUdjeCNjLlgUSLY8P9qqYIcomaAAgIXu5/eYlMWXfUcN Ul2ytRCU/E5b0nJ7FETbK25zWlqFmMebpBI09lhU0FV1+eH9CKcq6JgMmmRXJdJacl08/sLUOo/ S83RXZFfkeH7L+PJT3Gj6upV+/ObIkJhAvMI2OghmyVz+rni6rNeae1XsdwWBayzbJrlAzH751+ Ouo1ShAgwBXqKvvihlvyynnVO1DmbePlTTYUT4G/WHLj68Z1zYp+qnnjZQ9OU0oNVOjMR1CxAkW +KPQIodt7RQgRqO5y/15LEfGoMfzc2A== X-Received: by 2002:a17:903:1245:b0:240:5bde:5356 with SMTP id d9443c01a7336-24096b43fabmr34301415ad.12.1753938425053; Wed, 30 Jul 2025 22:07:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEpuslh08k6M34ym6YfFcMckHCuWB75owSXY1Cvj445vcdl3T8PffXsxv+Hr0oDFjwXUsQMdg== X-Received: by 2002:a17:903:1245:b0:240:5bde:5356 with SMTP id d9443c01a7336-24096b43fabmr34301165ad.12.1753938424492; Wed, 30 Jul 2025 22:07:04 -0700 (PDT) Received: from [10.133.33.112] (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241e8976cbdsm6670135ad.75.2025.07.30.22.06.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 30 Jul 2025 22:07:04 -0700 (PDT) Message-ID: Date: Thu, 31 Jul 2025 13:06:57 +0800 Precedence: bulk X-Mailing-List: linux-arm-msm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 02/13] dt-bindings: phy: Add binding for QCS615 standalone QMP DP PHY To: Dmitry Baryshkov Cc: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Kuogee Hsieh , Vinod Koul , Kishon Vijay Abraham I , 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, konrad.dybcio@oss.qualcomm.com, fange.zhang@oss.qualcomm.com, quic_lliu6@quicinc.com, quic_yongmou@quicinc.com References: <20250722-add-displayport-support-for-qcs615-platform-v2-0-42b4037171f8@oss.qualcomm.com> <20250722-add-displayport-support-for-qcs615-platform-v2-2-42b4037171f8@oss.qualcomm.com> From: Xiangxu Yin In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Authority-Analysis: v=2.4 cv=LsaSymdc c=1 sm=1 tr=0 ts=688af9fa cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=Oh2cFVv5AAAA:8 a=EUspDBNiAAAA:8 a=mDTR1APp6137iyMtkm8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=7KeoIwV6GZqOttXkcoxL:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzMxMDAzMSBTYWx0ZWRfX3AsetbjQ1pN/ EqHqEVKBQaucI99+G1ISl6RSxgeQkXyvavJouXkOfwK2gZev+BFnsYk9OiBdViPMMsdOdTLoQwm V21MQn8HnSiNrbOaLveIzPk57RJHFfFRlQfVEa3la2FoLMxC/RGj/f8iKAI03QJWMSvBdlkL1me ZhMbxmpBbKbqGM0W6SP0dwIH2t/fPT4LUPGpPpaq1QLvvPsqCNVrKMYLnBu7k0vfVygvgz8XWGy rNG9i64rkDVjIxRBW4Qw4Ako4KNJQQIIe6rQXpkeUomKPpOphYDSc+RFf6100q0x2/vlwDlfKHE y4/qZ5L6ynBullMwnJ+SHqY8XgtcqwmxOBend3TzzAPymmN8L8/9UizmijL/qLpy1Xiwyczpvem Phk8asRKoNf5jJ4WUtQpDsjs3z214uZT1Fd9VCaVgBbKzJb5cs4p6CcYsDRloB+4eU4WEO+q X-Proofpoint-ORIG-GUID: g80WGRBZe3XjVid5frDKFkU4ddxXllKs X-Proofpoint-GUID: g80WGRBZe3XjVid5frDKFkU4ddxXllKs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-07-31_01,2025-07-30_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxlogscore=999 spamscore=0 phishscore=0 suspectscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 mlxscore=0 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507310031 On 7/31/2025 2:35 AM, Dmitry Baryshkov wrote: > On Wed, Jul 30, 2025 at 04:53:16PM +0800, Xiangxu Yin wrote: >> On 7/22/2025 8:41 PM, Dmitry Baryshkov wrote: >>> On Tue, Jul 22, 2025 at 08:05:06PM +0800, Xiangxu Yin wrote: >>>> On 7/22/2025 4:38 PM, Dmitry Baryshkov wrote: >>>>> On Tue, Jul 22, 2025 at 03:22:03PM +0800, Xiangxu Yin wrote: >>>>>> Introduce device tree binding documentation for the Qualcomm QMP DP PHY >>>>>> on QCS615 SoCs. This PHY supports DisplayPort functionality and is >>>>>> designed to operate independently from the USB3 PHY. >>>>>> >>>>>> Unlike combo PHYs found on other platforms, the QCS615 DP PHY is >>>>>> standalone and does not support USB/DP multiplexing. The binding >>>>>> describes the required clocks, resets, TCSR configuration, and clock/PHY >>>>>> cells for proper integration. >>>>> Simply put: no, this is not correct. Even if you go to the SM6150 block >>>>> diagram, it points out that DP uses the USB3 PHY, not a separate DP PHY. >>>>> >>>>> I thought that we have discussed it beforehand. >>>>> >>>>> I can quote my comment from the previous thread: >>>>> >>>>>>> No. It means replacing extending existing entries with bigger reg and >>>>>>> #phy-cells = <1>. The driver must keep working with old node definitions >>>>>>> as is to ensure backwards compatibility. New nodes should make it >>>>>>> register two PHYs (USB3 and DP). On the driver side modify generic code >>>>>>> paths, all platforms supported by the driver should be able to support >>>>>>> USB3+DP combination. >>>>> Looking at the hardware memory maps: >>>>> >>>>> MSM8998: USB3 PHY regs at 0xc010000, DP PHY regs at 0xc011000 >>>>> SDM660: USB3 PHY regs at 0xc010000, DP PHY regs at 0xc011000 >>>>> QCM2290: USB3 PHY regs at 0x1615000, DP PHY regs at 0x1616000 >>>>> SM6115: USB3 PHY regs at 0x1615000, DP PHY regs at 0x1616000 >>>>> >>>>> Now: >>>>> SM6150: USB3 PHY regs at 0x88e6000 >>>>> USB3 PHY regs at 0x88e8000, DP PHY regs at 0x88e9000 >>>>> >>>>> I do not know, why msm-4.14 didn't describe second USB3 PHY. Maybe you >>>>> can comment on it. >>>>> >>>>> But based on that list, the only special case that we need to handle is >>>>> the first USB3 PHY, which doesn't have a corresponding DP PHY block. But >>>>> it will be handled anyway by the code that implements support for the >>>>> existing DT entries. All other hardware blocks are combo USB+DP PHYs. >>>>> >>>>> Having all of that in mind, please, for v3 patchset implement USB+DP >>>>> support in the phy-qcom-qmp-usbc driver and add the following logic >>>>> that also was requested in v1 review: >>>>> >>>>>>> Not quite. Both USB3 and DP drivers should be calling power_on / _off. >>>>>>> If USB3 is on, powering on DP PHY should fail. Vice versa, if DP is on, >>>>>>> powering on USB should fail. >>>>> I think our understanding might not be fully aligned. >>> I did not write this. Please fix your mailer to quote messages properly. >>> As you are using Thunderbird, I'm not sure where the issue comes from. >>> >>> Also please fix it to wrap your responses somwhere logically. >>> >>>>> Perhaps this is because I didn’t accurately update the mutual exclusion relationships and test results for the different PHYs. >>>>> Let me clarify my latest findings and explain why I believe these are separate PHYs that require mutual exclusion via TCSR. >>>>> >>>>> 1. About the TCSR DP_PHYMODE Registers >>>>> >>>>> MSM8998/SDM660: >>>>> Only one TCSR_USB3_DP_PHYMODE register at 0x1FCB248. >>>>> QCM2290/SM6115: >>>>> TCSR_USB3_0_DP_PHYMODE at 0x3CB248 >>>>> TCSR_USB3_1_DP_PHYMODE at 0x3CB24C >>>>> SM6150: >>>>> TCSR_USB3_0_DP_PHYMODE at 0x1FCB248 >>>>> TCSR_USB3_1_DP_PHYMODE at 0x1FCB24C >>> SM6150 has two different sets of output pins, so the first register >>> covers first set of SS lanes (which are routed to the documented SS >>> PHY), the second register covers the second set of SS lanes (which are >>> routed to the DP and secondary USB PHY). >>> >>> I can only assume that the same configuration was supposed to be >>> applicable to QCM2290 / SM6115, but was later removed / disabled, while >>> the registers were kept in the TCSR block. >>> >>>>> Even though MSM8998, SDM660, QCM2290, and SM6115 all have one USB3 PHY and one DP PHY, the TCSR DP_PHYMODE register configuration is different on each platform. >>>>> >>>>> Additionally, I found some interesting register documentation for QCM2290/SM6115: >>>>> TCSR_USB3_0_DP_PHYMODE: “In kamorta this one is for mobile usb. DP not supported.” >>>>> TCSR_USB3_1_DP_PHYMODE: “DP mode supported for Auto usb in kamorta.” >>>>> I think the reason for having two different TCSR registers is to allow both the USB3.0 and DP PHYs to be useds at the same time in certain product configurations. >>> Sure. One for the first PHY (USB), one for the second PHY (USB+DP). >>> If you check the memory map, you will find the second VLS CLAMP register >>> for the second USB PHY. >>> >>>>> 2. SM6150 Test Results >>>>> When TCSR_DP_PHYMODE_0 is switched to DP, the USB3 primary PHY cannot work, and the DP PHY is also not functional (possibly due to clock lack or other configuration mismatch with this TCSR setting). >>>>> When TCSR_DP_PHYMODE_1 is switched to DP, both the USB3 primary PHY and the DP PHY work normally. >>>>> I think "why msm-4.14 didn't describe second USB3 PHY", because TCSR_DP_PHYMODE_1 always works in DP mode. >>>>> https://android.googlesource.com/kernel/msm/+/af03eef7d4c3cbd1fe26c67d4f1915b05d0c1488/drivers/gpu/drm/msm/dp/dp_catalog_v200.c >>> Here it still programs the TCSR register. >>> >>>>> Based on these info, I believe these are separate PHYs, and only the >>>>> TCSR DP_PHYMODE registers determine which USB3/DP PHYs are paired or >>>>> mutually exclusive. This is why I have maintained separate private >>>>> data for each PHY and implemented Power on mutex control via TCSR, >>>>> rather than using a qmp_combo-like structure. >>> Still, no. Check the block diagram of SM6150. >>> >>>>> Given the above, do you think we still need to force USB and DP to be strictly bound together like a combo PHY? >>> Yes. >> I checked the related PHY series and block diagrams again. >> >> PRI and SEC go to different nodes based on the SoC design, and there are two types of configurations: USB3-only and USB3+DP pairing. >> >> Before proceed the v3 patchset, I’d like to double-confirm whether the following structure is what you expect: >> >> usb_qmpphy_1: phy@88e6000 { >>     compatible = "qcom,sm6150-qmp-usb3-prim-phy"; <== rename to PRIM > No, we already have a compatible name and DT schema for this device. Then current compatible name is "qcom,qcs615-qmp-usb3-phy" and shall we need update to "qcom,sm6150-qmp-usb3-phy"? > >>     ... >>     qcom,tcsr-reg = <&tcsr 0xb244>, <&tcsr 0xb248>; >>     qcom,tcsr-names = "vls_clamp", "dp_phy_mode"; > No need for qcom,tcsr-names. Second TCSR register should be optional in > the driver. Ok. > >>      >>     #clock-cells = <1>; >>     #phy-cells = <1>; > #clock-cells = <0>; > #phy-cells = <0>; > >>     ... >> }; >> >> usb_qmpphy_2: phy@88e8000 { >>     compatible = "qcom,sm6150-qmp-usb3dp-sec-phy"; <== SEC SS, use usb3dp to indicate DP capability > qcom,sm6150-qmp-usb3-dp-phy Ok, but for this part, shall we update dt-binding in "qcom,msm8998-qmp-usb3-phy.yaml" or create a new one? > >>     reg = <0x0 0x088e8000 0x0 0x2000>; <== SS2 base address and offset define in driver config >> >>     clocks = <&gcc GCC_AHB2PHY_WEST_CLK>, >>             <&gcc GCC_USB3_SEC_CLKREF_CLK>; <== This SoC has no USB3.0 SEC SS clk >>     clock-names = "cfg_ahb", >>                 "ref"; >>     clock-output-names = "dp_phy_link_clk", >>                     "dp_phy_vco_div_clk"; > No need to, the driver can generate names on its own. Ok. > >>                      >>     resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR >, >>          <&gcc GCC_USB3_DP_PHY_SEC_BCR>; >>     reset-names = "phy", "phy_phy"; > "phy_phy", "dp_phy". Is there no GCC_USB3_PHY_SEC_BCR? There are only GCC_USB2_PHY_SEC_BCR and GCC_USB3PHY_PHY_SEC_BCR, no GCC_USB3_PHY_SEC_BCR. >>     qcom,tcsr-reg = <&tcsr 0xbff0>, <&tcsr 0xb24c>; >>     qcom,tcsr-names = "vls_clamp", "dp_phy_mode"; <== added for backward compatibility with legacy configs that only had vls_clamp > No need for qcom,tcsr-names, correct otherwise. > >>     #clock-cells = <1>; >>     #phy-cells = <1>; >> >>     status = "disabled"; >> }; >> >>>>>> Signed-off-by: Xiangxu Yin >>>>>> --- >>>>>> .../bindings/phy/qcom,qcs615-qmp-dp-phy.yaml | 111 +++++++++++++++++++++ >>>>>> 1 file changed, 111 insertions(+) >>>>>> From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4716FC87FCA for ; Thu, 31 Jul 2025 05:07:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=55r+wJHSrrUsDQWauN1oWkbIWwu24nOeUZu0qhyhsbo=; b=JsAOey5gBw3A48 NkG9O2mS+Jv5e3RmWYAYQqqK/1una37n1CjJN+kFXcUTMm78s1p0YiJVIB3c77WV+h/qZMUSgQU1k MsEZD02oH35xaXfCZ9d/1cpaSJLnlkwQF0CsB5PkwQvv83CRcEEYrwfWmuYQzM50Ai7FZ+AWLutmS RyUc9bDhIPO2tmoCFgAs+hyE55RSdMZEFln0CohJGnXrkyqEonLFfRvWo3bQvZyrjfp5p0aCTC7EJ 9x0cf6nAw2EsCdxvKFfSWyBBclpjyNCQdKqnc9V8vHXG1UTwnXN9GHexJ/aVmMmtDXmkySwWbx4Ha TmxfsSb9onFj2QJ4CbbQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uhLVW-00000002uws-3Kxg; Thu, 31 Jul 2025 05:07:10 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uhLVT-00000002uvl-3waX for linux-phy@lists.infradead.org; Thu, 31 Jul 2025 05:07:09 +0000 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56V1fRic008158 for ; Thu, 31 Jul 2025 05:07:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= fdm4gXLWdVs5flQzM+AWNBlwOFKGXX/VfQzEuW5xlxU=; b=DLURZnli+jI0/Dhh V51nnbO62PvhNn3SwX1zE4K5eq3SRqc6NnfSjPVEGaSC1qcYZl605CqdLO86kJrk H/Ie1UJ+pHXtnj9JsPAQa4IKfOeLW/OWHWl9AdpmBCDRMS3Z8P87JqRD4cLBnwHV DghJ+fJIP4k4epiHkwOXRsQxvZV2NxFRQHGpb6+HWb+LRHgyRoCExby4ASkicpHC ml83szLswhcG182FZFldUX41y34+/uz3+WXL+Du3Nhw0vDbRzAhgpfcDQUpeecUD +I+c9T2iKhbnT2ub4SfX/flAAVNazX+P2ynwcqTJw5D7J7GTaLyIRTByvozD16Bm 4muGbA== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 484pm2p8rb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 31 Jul 2025 05:07:06 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-23ffa62abbcso1064465ad.1 for ; Wed, 30 Jul 2025 22:07:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753938425; x=1754543225; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=fdm4gXLWdVs5flQzM+AWNBlwOFKGXX/VfQzEuW5xlxU=; b=CDJ7AX1QxUc/hi4Yml8cGKa+hE+WIqSBmQhdfUpXr2zEInANrm6lL2uvqihEk1PQYe vdlHoEtnFiO54Yo6sIc50jazKzJnq5bQIU/cawwJpcNmUB9P/cUswyqnV9GtOtlgI/Jj cqvlP8gVkA5fKyDtISv2M3dstHc2Qb3WxWG7CJ4zNkXjYORr4Ckle+SbV235sUzfjK8k TqWRBcYpyxE/zM/sKLE98sKox5a6aWXbi9hNIHaSfUBNovYndQ4+iPRJzPyilUx1yaSv htmMIjtfWWmcVT55+yzDzRNGkOcPP/SCzf+A2jWFji+w8fTBybrjz3xPswQwTi8K46E+ +Rtw== X-Forwarded-Encrypted: i=1; AJvYcCUWOYj18pfZwO9N3EwzanCAfqi3zvnjw+rW7gK6OuRepWcOBUV+XNUP+OkTuD5tHLZpMPUP1UQlIkU=@lists.infradead.org X-Gm-Message-State: AOJu0YwfoDDIdvRL3bGEXydXC6pk6JSgxmwG++qE/a5SAAPHVKpxfDSD rGF/o3WM23F9OLAOPKTMlINOO7oZbzRgNN5CpqPJsSdooitcebH2igJFCDItRqAq7NEgR9b08Gy QObExneJnxWNHq6EZABBFWnHwK22plyPjwagFo5+QE8Wi4WLIOrp9vvA9+CvOKmeGc274 X-Gm-Gg: ASbGncv4WBJn69eS8VzDqfmwJcXgC7OWTXhEOMBt7nsI1VyBm7R3/GudfSTkX5pvvoJ 69AtudM1uHc44i4BSNUTHVLauHQdbgslYafIaGQBiFQHHFQgTaYnC/og66/wLPG9ajjyvPEVrf6 m936b/bTWOo4HwF6Ny3L5gTLmbybm8yC7Mm0z41VL8LmyQ0I7dh+NtgjHQw6qmiwft1+isU2U7X 6VJyyZOpwg8hdVl6eEUtYKts8kpKzmZGsIzSkCHgW7u38PNtPyy4RvNjNnk0nFKL9In+P9eJwFI jyIkBMWRzYveDmAUk6pJHSonIDUurfi7YoFnCoAnHCVPQU1SdXDL7n1TFysTJRFdoSyRxmMmCnW Vg0jiDQZRwS6q2D9M6cmxn3kPC5g49w== X-Received: by 2002:a17:903:1245:b0:240:5bde:5356 with SMTP id d9443c01a7336-24096b43fabmr34301465ad.12.1753938425055; Wed, 30 Jul 2025 22:07:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEpuslh08k6M34ym6YfFcMckHCuWB75owSXY1Cvj445vcdl3T8PffXsxv+Hr0oDFjwXUsQMdg== X-Received: by 2002:a17:903:1245:b0:240:5bde:5356 with SMTP id d9443c01a7336-24096b43fabmr34301165ad.12.1753938424492; Wed, 30 Jul 2025 22:07:04 -0700 (PDT) Received: from [10.133.33.112] (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241e8976cbdsm6670135ad.75.2025.07.30.22.06.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 30 Jul 2025 22:07:04 -0700 (PDT) Message-ID: Date: Thu, 31 Jul 2025 13:06:57 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 02/13] dt-bindings: phy: Add binding for QCS615 standalone QMP DP PHY To: Dmitry Baryshkov Cc: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Kuogee Hsieh , Vinod Koul , Kishon Vijay Abraham I , 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, konrad.dybcio@oss.qualcomm.com, fange.zhang@oss.qualcomm.com, quic_lliu6@quicinc.com, quic_yongmou@quicinc.com References: <20250722-add-displayport-support-for-qcs615-platform-v2-0-42b4037171f8@oss.qualcomm.com> <20250722-add-displayport-support-for-qcs615-platform-v2-2-42b4037171f8@oss.qualcomm.com> From: Xiangxu Yin In-Reply-To: X-Proofpoint-GUID: qfSjGyQdOuKCk2uhZxDJD6usrzJ0XSLz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzMxMDAzMyBTYWx0ZWRfXxuTJsR91nQ0H pyjfJqErRHJpEcCpeyCtbJBafdxdfPm4/PZuOQTO1FsOAQZciFt4miGaFrjazsiGRZkfnE8+3Dj BzYOMdqkIoqWpY1eP7scXLCulIM9U4OG1hxZrxxxymkLBAb37AvuTlk2/gx7c2IYYeryQ43J78n 1rSj1JD9HMN77eCGUYG0TNHgcKnft9SNiOZzxizINzMd6gAzWlRTFFS3r+z1PLnHbRkOsy5313j /qkEE8nF95Y1yjiSbOs6ls0+lka2XPkxGquAhC5dsYs2SCFj5jFiK2xea0WhvH2kzRyiroQKlIH pZhZN0ebYnVstzQoJz+Xu9VWX940bwHhQQauhdY5cG6Ntmsscm9kv05xqvy3RUC3+3TXGUDdiW1 2OZnfT6KYU27BlJqheoknqGIxvhz4/idE3qgwThPytilBfTW/2+xJLBAio6af2lSw9bj43Kf X-Authority-Analysis: v=2.4 cv=HfYUTjE8 c=1 sm=1 tr=0 ts=688af9fa cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=Oh2cFVv5AAAA:8 a=EUspDBNiAAAA:8 a=mDTR1APp6137iyMtkm8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 a=7KeoIwV6GZqOttXkcoxL:22 X-Proofpoint-ORIG-GUID: qfSjGyQdOuKCk2uhZxDJD6usrzJ0XSLz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-07-31_01,2025-07-30_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 clxscore=1015 bulkscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 mlxlogscore=999 phishscore=0 priorityscore=1501 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507310033 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250730_220708_122133_4D85F880 X-CRM114-Status: GOOD ( 35.35 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org Ck9uIDcvMzEvMjAyNSAyOjM1IEFNLCBEbWl0cnkgQmFyeXNoa292IHdyb3RlOgo+IE9uIFdlZCwg SnVsIDMwLCAyMDI1IGF0IDA0OjUzOjE2UE0gKzA4MDAsIFhpYW5neHUgWWluIHdyb3RlOgo+PiBP biA3LzIyLzIwMjUgODo0MSBQTSwgRG1pdHJ5IEJhcnlzaGtvdiB3cm90ZToKPj4+IE9uIFR1ZSwg SnVsIDIyLCAyMDI1IGF0IDA4OjA1OjA2UE0gKzA4MDAsIFhpYW5neHUgWWluIHdyb3RlOgo+Pj4+ IE9uIDcvMjIvMjAyNSA0OjM4IFBNLCBEbWl0cnkgQmFyeXNoa292IHdyb3RlOgo+Pj4+PiBPbiBU dWUsIEp1bCAyMiwgMjAyNSBhdCAwMzoyMjowM1BNICswODAwLCBYaWFuZ3h1IFlpbiB3cm90ZToK Pj4+Pj4+IEludHJvZHVjZSBkZXZpY2UgdHJlZSBiaW5kaW5nIGRvY3VtZW50YXRpb24gZm9yIHRo ZSBRdWFsY29tbSBRTVAgRFAgUEhZCj4+Pj4+PiBvbiBRQ1M2MTUgU29Dcy4gVGhpcyBQSFkgc3Vw cG9ydHMgRGlzcGxheVBvcnQgZnVuY3Rpb25hbGl0eSBhbmQgaXMKPj4+Pj4+IGRlc2lnbmVkIHRv IG9wZXJhdGUgaW5kZXBlbmRlbnRseSBmcm9tIHRoZSBVU0IzIFBIWS4KPj4+Pj4+Cj4+Pj4+PiBV bmxpa2UgY29tYm8gUEhZcyBmb3VuZCBvbiBvdGhlciBwbGF0Zm9ybXMsIHRoZSBRQ1M2MTUgRFAg UEhZIGlzCj4+Pj4+PiBzdGFuZGFsb25lIGFuZCBkb2VzIG5vdCBzdXBwb3J0IFVTQi9EUCBtdWx0 aXBsZXhpbmcuIFRoZSBiaW5kaW5nCj4+Pj4+PiBkZXNjcmliZXMgdGhlIHJlcXVpcmVkIGNsb2Nr cywgcmVzZXRzLCBUQ1NSIGNvbmZpZ3VyYXRpb24sIGFuZCBjbG9jay9QSFkKPj4+Pj4+IGNlbGxz IGZvciBwcm9wZXIgaW50ZWdyYXRpb24uCj4+Pj4+IFNpbXBseSBwdXQ6IG5vLCB0aGlzIGlzIG5v dCBjb3JyZWN0LiBFdmVuIGlmIHlvdSBnbyB0byB0aGUgU002MTUwIGJsb2NrCj4+Pj4+IGRpYWdy YW0sIGl0IHBvaW50cyBvdXQgdGhhdCBEUCB1c2VzIHRoZSBVU0IzIFBIWSwgbm90IGEgc2VwYXJh dGUgRFAgUEhZLgo+Pj4+Pgo+Pj4+PiBJIHRob3VnaHQgdGhhdCB3ZSBoYXZlIGRpc2N1c3NlZCBp dCBiZWZvcmVoYW5kLgo+Pj4+Pgo+Pj4+PiBJIGNhbiBxdW90ZSBteSBjb21tZW50IGZyb20gdGhl IHByZXZpb3VzIHRocmVhZDoKPj4+Pj4KPj4+Pj4+PiBOby4gSXQgbWVhbnMgcmVwbGFjaW5nIGV4 dGVuZGluZyBleGlzdGluZyBlbnRyaWVzIHdpdGggYmlnZ2VyIHJlZyBhbmQKPj4+Pj4+PiAjcGh5 LWNlbGxzID0gPDE+LiBUaGUgZHJpdmVyIG11c3Qga2VlcCB3b3JraW5nIHdpdGggb2xkIG5vZGUg ZGVmaW5pdGlvbnMKPj4+Pj4+PiBhcyBpcyB0byBlbnN1cmUgYmFja3dhcmRzIGNvbXBhdGliaWxp dHkuIE5ldyBub2RlcyBzaG91bGQgbWFrZSBpdAo+Pj4+Pj4+IHJlZ2lzdGVyIHR3byBQSFlzIChV U0IzIGFuZCBEUCkuIE9uIHRoZSBkcml2ZXIgc2lkZSBtb2RpZnkgZ2VuZXJpYyBjb2RlCj4+Pj4+ Pj4gcGF0aHMsIGFsbCBwbGF0Zm9ybXMgc3VwcG9ydGVkIGJ5IHRoZSBkcml2ZXIgc2hvdWxkIGJl IGFibGUgdG8gc3VwcG9ydAo+Pj4+Pj4+IFVTQjMrRFAgY29tYmluYXRpb24uCj4+Pj4+IExvb2tp bmcgYXQgdGhlIGhhcmR3YXJlIG1lbW9yeSBtYXBzOgo+Pj4+Pgo+Pj4+PiBNU004OTk4OiBVU0Iz IFBIWSByZWdzIGF0IDB4YzAxMDAwMCwgRFAgUEhZIHJlZ3MgYXQgMHhjMDExMDAwCj4+Pj4+IFNE TTY2MDogVVNCMyBQSFkgcmVncyBhdCAweGMwMTAwMDAsIERQIFBIWSByZWdzIGF0IDB4YzAxMTAw MAo+Pj4+PiBRQ00yMjkwOiBVU0IzIFBIWSByZWdzIGF0IDB4MTYxNTAwMCwgRFAgUEhZIHJlZ3Mg YXQgMHgxNjE2MDAwCj4+Pj4+IFNNNjExNTogVVNCMyBQSFkgcmVncyBhdCAweDE2MTUwMDAsIERQ IFBIWSByZWdzIGF0IDB4MTYxNjAwMAo+Pj4+Pgo+Pj4+PiBOb3c6Cj4+Pj4+IFNNNjE1MDogVVNC MyBQSFkgcmVncyBhdCAweDg4ZTYwMDAKPj4+Pj4gICAgICAgICBVU0IzIFBIWSByZWdzIGF0IDB4 ODhlODAwMCwgRFAgUEhZIHJlZ3MgYXQgMHg4OGU5MDAwCj4+Pj4+Cj4+Pj4+IEkgZG8gbm90IGtu b3csIHdoeSBtc20tNC4xNCBkaWRuJ3QgZGVzY3JpYmUgc2Vjb25kIFVTQjMgUEhZLiBNYXliZSB5 b3UKPj4+Pj4gY2FuIGNvbW1lbnQgb24gaXQuCj4+Pj4+Cj4+Pj4+IEJ1dCBiYXNlZCBvbiB0aGF0 IGxpc3QsIHRoZSBvbmx5IHNwZWNpYWwgY2FzZSB0aGF0IHdlIG5lZWQgdG8gaGFuZGxlIGlzCj4+ Pj4+IHRoZSBmaXJzdCBVU0IzIFBIWSwgd2hpY2ggZG9lc24ndCBoYXZlIGEgY29ycmVzcG9uZGlu ZyBEUCBQSFkgYmxvY2suIEJ1dAo+Pj4+PiBpdCB3aWxsIGJlIGhhbmRsZWQgYW55d2F5IGJ5IHRo ZSBjb2RlIHRoYXQgaW1wbGVtZW50cyBzdXBwb3J0IGZvciB0aGUKPj4+Pj4gZXhpc3RpbmcgRFQg ZW50cmllcy4gQWxsIG90aGVyIGhhcmR3YXJlIGJsb2NrcyBhcmUgY29tYm8gVVNCK0RQIFBIWXMu Cj4+Pj4+Cj4+Pj4+IEhhdmluZyBhbGwgb2YgdGhhdCBpbiBtaW5kLCBwbGVhc2UsIGZvciB2MyBw YXRjaHNldCBpbXBsZW1lbnQgVVNCK0RQCj4+Pj4+IHN1cHBvcnQgaW4gdGhlIHBoeS1xY29tLXFt cC11c2JjIGRyaXZlciBhbmQgYWRkIHRoZSBmb2xsb3dpbmcgbG9naWMKPj4+Pj4gdGhhdCBhbHNv IHdhcyByZXF1ZXN0ZWQgaW4gdjEgcmV2aWV3Ogo+Pj4+Pgo+Pj4+Pj4+IE5vdCBxdWl0ZS4gQm90 aCBVU0IzIGFuZCBEUCBkcml2ZXJzIHNob3VsZCBiZSBjYWxsaW5nIHBvd2VyX29uIC8gX29mZi4K Pj4+Pj4+PiBJZiBVU0IzIGlzIG9uLCBwb3dlcmluZyBvbiBEUCBQSFkgc2hvdWxkIGZhaWwuIFZp Y2UgdmVyc2EsIGlmIERQIGlzIG9uLAo+Pj4+Pj4+IHBvd2VyaW5nIG9uIFVTQiBzaG91bGQgZmFp bC4KPj4+Pj4gSSB0aGluayBvdXIgdW5kZXJzdGFuZGluZyBtaWdodCBub3QgYmUgZnVsbHkgYWxp Z25lZC4gCj4+PiBJIGRpZCBub3Qgd3JpdGUgdGhpcy4gUGxlYXNlIGZpeCB5b3VyIG1haWxlciB0 byBxdW90ZSBtZXNzYWdlcyBwcm9wZXJseS4KPj4+IEFzIHlvdSBhcmUgdXNpbmcgVGh1bmRlcmJp cmQsIEknbSBub3Qgc3VyZSB3aGVyZSB0aGUgaXNzdWUgY29tZXMgZnJvbS4KPj4+Cj4+PiBBbHNv IHBsZWFzZSBmaXggaXQgdG8gd3JhcCB5b3VyIHJlc3BvbnNlcyBzb213aGVyZSBsb2dpY2FsbHku Cj4+Pgo+Pj4+PiBQZXJoYXBzIHRoaXMgaXMgYmVjYXVzZSBJIGRpZG7igJl0IGFjY3VyYXRlbHkg dXBkYXRlIHRoZSBtdXR1YWwgZXhjbHVzaW9uIHJlbGF0aW9uc2hpcHMgYW5kIHRlc3QgcmVzdWx0 cyBmb3IgdGhlIGRpZmZlcmVudCBQSFlzLiAKPj4+Pj4gTGV0IG1lIGNsYXJpZnkgbXkgbGF0ZXN0 IGZpbmRpbmdzIGFuZCBleHBsYWluIHdoeSBJIGJlbGlldmUgdGhlc2UgYXJlIHNlcGFyYXRlIFBI WXMgdGhhdCByZXF1aXJlIG11dHVhbCBleGNsdXNpb24gdmlhIFRDU1IuCj4+Pj4+Cj4+Pj4+IDEu IEFib3V0IHRoZSBUQ1NSIERQX1BIWU1PREUgUmVnaXN0ZXJzCj4+Pj4+Cj4+Pj4+IE1TTTg5OTgv U0RNNjYwOgo+Pj4+PiAJT25seSBvbmUgVENTUl9VU0IzX0RQX1BIWU1PREUgcmVnaXN0ZXIgYXQg MHgxRkNCMjQ4Lgo+Pj4+PiBRQ00yMjkwL1NNNjExNToKPj4+Pj4gCVRDU1JfVVNCM18wX0RQX1BI WU1PREUgYXQgMHgzQ0IyNDgKPj4+Pj4gCVRDU1JfVVNCM18xX0RQX1BIWU1PREUgYXQgMHgzQ0Iy NEMKPj4+Pj4gU002MTUwOgo+Pj4+PiAJVENTUl9VU0IzXzBfRFBfUEhZTU9ERSBhdCAweDFGQ0Iy NDgKPj4+Pj4gCVRDU1JfVVNCM18xX0RQX1BIWU1PREUgYXQgMHgxRkNCMjRDCj4+PiBTTTYxNTAg aGFzIHR3byBkaWZmZXJlbnQgc2V0cyBvZiBvdXRwdXQgcGlucywgc28gdGhlIGZpcnN0IHJlZ2lz dGVyCj4+PiBjb3ZlcnMgZmlyc3Qgc2V0IG9mIFNTIGxhbmVzICh3aGljaCBhcmUgcm91dGVkIHRv IHRoZSBkb2N1bWVudGVkIFNTCj4+PiBQSFkpLCB0aGUgc2Vjb25kIHJlZ2lzdGVyIGNvdmVycyB0 aGUgc2Vjb25kIHNldCBvZiBTUyBsYW5lcyAod2hpY2ggYXJlCj4+PiByb3V0ZWQgdG8gdGhlIERQ IGFuZCBzZWNvbmRhcnkgVVNCIFBIWSkuCj4+Pgo+Pj4gSSBjYW4gb25seSBhc3N1bWUgdGhhdCB0 aGUgc2FtZSBjb25maWd1cmF0aW9uIHdhcyBzdXBwb3NlZCB0byBiZQo+Pj4gYXBwbGljYWJsZSB0 byBRQ00yMjkwIC8gU002MTE1LCBidXQgd2FzIGxhdGVyIHJlbW92ZWQgLyBkaXNhYmxlZCwgd2hp bGUKPj4+IHRoZSByZWdpc3RlcnMgd2VyZSBrZXB0IGluIHRoZSBUQ1NSIGJsb2NrLgo+Pj4KPj4+ Pj4gRXZlbiB0aG91Z2ggTVNNODk5OCwgU0RNNjYwLCBRQ00yMjkwLCBhbmQgU002MTE1IGFsbCBo YXZlIG9uZSBVU0IzIFBIWSBhbmQgb25lIERQIFBIWSwgdGhlIFRDU1IgRFBfUEhZTU9ERSByZWdp c3RlciBjb25maWd1cmF0aW9uIGlzIGRpZmZlcmVudCBvbiBlYWNoIHBsYXRmb3JtLgo+Pj4+Pgo+ Pj4+PiBBZGRpdGlvbmFsbHksIEkgZm91bmQgc29tZSBpbnRlcmVzdGluZyByZWdpc3RlciBkb2N1 bWVudGF0aW9uIGZvciBRQ00yMjkwL1NNNjExNToKPj4+Pj4gCVRDU1JfVVNCM18wX0RQX1BIWU1P REU6IOKAnEluIGthbW9ydGEgdGhpcyBvbmUgaXMgZm9yIG1vYmlsZSB1c2IuIERQIG5vdCBzdXBw b3J0ZWQu4oCdCj4+Pj4+IAlUQ1NSX1VTQjNfMV9EUF9QSFlNT0RFOiDigJxEUCBtb2RlIHN1cHBv cnRlZCBmb3IgQXV0byB1c2IgaW4ga2Ftb3J0YS7igJ0KPj4+Pj4gSSB0aGluayB0aGUgcmVhc29u IGZvciBoYXZpbmcgdHdvIGRpZmZlcmVudCBUQ1NSIHJlZ2lzdGVycyBpcyB0byBhbGxvdyBib3Ro IHRoZSBVU0IzLjAgYW5kIERQIFBIWXMgdG8gYmUgdXNlZHMgYXQgdGhlIHNhbWUgdGltZSBpbiBj ZXJ0YWluIHByb2R1Y3QgY29uZmlndXJhdGlvbnMuCj4+PiBTdXJlLiBPbmUgZm9yIHRoZSBmaXJz dCBQSFkgKFVTQiksIG9uZSBmb3IgdGhlIHNlY29uZCBQSFkgKFVTQitEUCkuCj4+PiBJZiB5b3Ug Y2hlY2sgdGhlIG1lbW9yeSBtYXAsIHlvdSB3aWxsIGZpbmQgdGhlIHNlY29uZCBWTFMgQ0xBTVAg cmVnaXN0ZXIKPj4+IGZvciB0aGUgc2Vjb25kIFVTQiBQSFkuCj4+Pgo+Pj4+PiAyLiBTTTYxNTAg VGVzdCBSZXN1bHRzCj4+Pj4+IFdoZW4gVENTUl9EUF9QSFlNT0RFXzAgaXMgc3dpdGNoZWQgdG8g RFAsIHRoZSBVU0IzIHByaW1hcnkgUEhZIGNhbm5vdCB3b3JrLCBhbmQgdGhlIERQIFBIWSBpcyBh bHNvIG5vdCBmdW5jdGlvbmFsIChwb3NzaWJseSBkdWUgdG8gY2xvY2sgbGFjayBvciBvdGhlciBj b25maWd1cmF0aW9uIG1pc21hdGNoIHdpdGggdGhpcyBUQ1NSIHNldHRpbmcpLgo+Pj4+PiBXaGVu IFRDU1JfRFBfUEhZTU9ERV8xIGlzIHN3aXRjaGVkIHRvIERQLCBib3RoIHRoZSBVU0IzIHByaW1h cnkgUEhZIGFuZCB0aGUgRFAgUEhZIHdvcmsgbm9ybWFsbHkuCj4+Pj4+IEkgdGhpbmsgIndoeSBt c20tNC4xNCBkaWRuJ3QgZGVzY3JpYmUgc2Vjb25kIFVTQjMgUEhZIiwgYmVjYXVzZSBUQ1NSX0RQ X1BIWU1PREVfMSBhbHdheXMgd29ya3MgaW4gRFAgbW9kZS4KPj4+Pj4gaHR0cHM6Ly9hbmRyb2lk Lmdvb2dsZXNvdXJjZS5jb20va2VybmVsL21zbS8rL2FmMDNlZWY3ZDRjM2NiZDFmZTI2YzY3ZDRm MTkxNWIwNWQwYzE0ODgvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jYXRhbG9nX3YyMDAuYwo+ Pj4gSGVyZSBpdCBzdGlsbCBwcm9ncmFtcyB0aGUgVENTUiByZWdpc3Rlci4KPj4+Cj4+Pj4+IEJh c2VkIG9uIHRoZXNlIGluZm8sIEkgYmVsaWV2ZSB0aGVzZSBhcmUgc2VwYXJhdGUgUEhZcywgYW5k IG9ubHkgdGhlCj4+Pj4+IFRDU1IgRFBfUEhZTU9ERSByZWdpc3RlcnMgZGV0ZXJtaW5lIHdoaWNo IFVTQjMvRFAgUEhZcyBhcmUgcGFpcmVkIG9yCj4+Pj4+IG11dHVhbGx5IGV4Y2x1c2l2ZS4gVGhp cyBpcyB3aHkgSSBoYXZlIG1haW50YWluZWQgc2VwYXJhdGUgcHJpdmF0ZQo+Pj4+PiBkYXRhIGZv ciBlYWNoIFBIWSBhbmQgaW1wbGVtZW50ZWQgUG93ZXIgb24gbXV0ZXggY29udHJvbCB2aWEgVENT UiwKPj4+Pj4gcmF0aGVyIHRoYW4gdXNpbmcgYSBxbXBfY29tYm8tbGlrZSBzdHJ1Y3R1cmUuCj4+ PiBTdGlsbCwgbm8uIENoZWNrIHRoZSBibG9jayBkaWFncmFtIG9mIFNNNjE1MC4KPj4+Cj4+Pj4+ IEdpdmVuIHRoZSBhYm92ZSwgZG8geW91IHRoaW5rIHdlIHN0aWxsIG5lZWQgdG8gZm9yY2UgVVNC IGFuZCBEUCB0byBiZSBzdHJpY3RseSBib3VuZCB0b2dldGhlciBsaWtlIGEgY29tYm8gUEhZPwo+ Pj4gWWVzLgo+PiBJIGNoZWNrZWQgdGhlIHJlbGF0ZWQgUEhZIHNlcmllcyBhbmQgYmxvY2sgZGlh Z3JhbXMgYWdhaW4uCj4+Cj4+IFBSSSBhbmQgU0VDIGdvIHRvIGRpZmZlcmVudCBub2RlcyBiYXNl ZCBvbiB0aGUgU29DIGRlc2lnbiwgYW5kIHRoZXJlIGFyZSB0d28gdHlwZXMgb2YgY29uZmlndXJh dGlvbnM6IFVTQjMtb25seSBhbmQgVVNCMytEUCBwYWlyaW5nLgo+Pgo+PiBCZWZvcmUgcHJvY2Vl ZCB0aGUgdjMgcGF0Y2hzZXQsIEnigJlkIGxpa2UgdG8gZG91YmxlLWNvbmZpcm0gd2hldGhlciB0 aGUgZm9sbG93aW5nIHN0cnVjdHVyZSBpcyB3aGF0IHlvdSBleHBlY3Q6Cj4+Cj4+IHVzYl9xbXBw aHlfMTogcGh5QDg4ZTYwMDAgewo+PiDCoMKgwqAgY29tcGF0aWJsZSA9ICJxY29tLHNtNjE1MC1x bXAtdXNiMy1wcmltLXBoeSI7IDw9PSByZW5hbWUgdG8gUFJJTQo+IE5vLCB3ZSBhbHJlYWR5IGhh dmUgYSBjb21wYXRpYmxlIG5hbWUgYW5kIERUIHNjaGVtYSBmb3IgdGhpcyBkZXZpY2UuClRoZW4g Y3VycmVudCBjb21wYXRpYmxlIG5hbWUgaXMgInFjb20scWNzNjE1LXFtcC11c2IzLXBoeSIgYW5k IHNoYWxsIHdlIG5lZWQgdXBkYXRlIHRvICJxY29tLHNtNjE1MC1xbXAtdXNiMy1waHkiPwo+Cj4+ IMKgwqDCoCAuLi4KPj4gwqDCoMKgIHFjb20sdGNzci1yZWcgPSA8JnRjc3IgMHhiMjQ0PiwgPCZ0 Y3NyIDB4YjI0OD47Cj4+IMKgwqDCoCBxY29tLHRjc3ItbmFtZXMgPSAidmxzX2NsYW1wIiwgImRw X3BoeV9tb2RlIjsKPiBObyBuZWVkIGZvciBxY29tLHRjc3ItbmFtZXMuIFNlY29uZCBUQ1NSIHJl Z2lzdGVyIHNob3VsZCBiZSBvcHRpb25hbCBpbgo+IHRoZSBkcml2ZXIuCk9rLgo+Cj4+IMKgwqAg wqAKPj4gwqDCoMKgICNjbG9jay1jZWxscyA9IDwxPjsKPj4gwqDCoMKgICNwaHktY2VsbHMgPSA8 MT47Cj4gI2Nsb2NrLWNlbGxzID0gPDA+Owo+ICNwaHktY2VsbHMgPSA8MD47Cj4KPj4gwqDCoMKg IC4uLgo+PiB9Owo+Pgo+PiB1c2JfcW1wcGh5XzI6IHBoeUA4OGU4MDAwIHsKPj4gwqDCoMKgIGNv bXBhdGlibGUgPSAicWNvbSxzbTYxNTAtcW1wLXVzYjNkcC1zZWMtcGh5IjsgPD09IFNFQyBTUywg dXNlIHVzYjNkcCB0byBpbmRpY2F0ZSBEUCBjYXBhYmlsaXR5Cj4gcWNvbSxzbTYxNTAtcW1wLXVz YjMtZHAtcGh5Ck9rLCBidXQgZm9yIHRoaXMgcGFydCwgc2hhbGwgd2UgdXBkYXRlIGR0LWJpbmRp bmcgaW4gInFjb20sbXNtODk5OC1xbXAtdXNiMy1waHkueWFtbCIgb3IgY3JlYXRlIGEgbmV3IG9u ZT8KPgo+PiDCoMKgwqAgcmVnID0gPDB4MCAweDA4OGU4MDAwIDB4MCAweDIwMDA+OyA8PT0gU1My IGJhc2UgYWRkcmVzcyBhbmQgb2Zmc2V0IGRlZmluZSBpbiBkcml2ZXIgY29uZmlnCj4+Cj4+IMKg wqDCoCBjbG9ja3MgPSA8JmdjYyBHQ0NfQUhCMlBIWV9XRVNUX0NMSz4sCj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgPCZnY2MgR0NDX1VTQjNfU0VDX0NMS1JFRl9DTEs+OyA8PT0gVGhpcyBTb0Mg aGFzIG5vIFVTQjMuMCBTRUMgU1MgY2xrCj4+IMKgwqDCoCBjbG9jay1uYW1lcyA9ICJjZmdfYWhi IiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJyZWYiOwo+PiDCoMKgwqAgY2xv Y2stb3V0cHV0LW5hbWVzID0gImRwX3BoeV9saW5rX2NsayIsCj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICJkcF9waHlfdmNvX2Rpdl9jbGsiOwo+IE5vIG5lZWQgdG8s IHRoZSBkcml2ZXIgY2FuIGdlbmVyYXRlIG5hbWVzIG9uIGl0cyBvd24uCk9rLgo+Cj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoAo+PiDCoMKgwqAgcmVzZXRzID0gPCZn Y2MgR0NDX1VTQjNQSFlfUEhZX1NFQ19CQ1IgPiwKPj4gwqDCoMKgwqDCoMKgwqDCoCA8JmdjYyBH Q0NfVVNCM19EUF9QSFlfU0VDX0JDUj47Cj4+IMKgwqDCoCByZXNldC1uYW1lcyA9ICJwaHkiLCAi cGh5X3BoeSI7Cj4gInBoeV9waHkiLCAiZHBfcGh5Ii4gSXMgdGhlcmUgbm8gR0NDX1VTQjNfUEhZ X1NFQ19CQ1I/ClRoZXJlIGFyZSBvbmx5IEdDQ19VU0IyX1BIWV9TRUNfQkNSIGFuZCBHQ0NfVVNC M1BIWV9QSFlfU0VDX0JDUiwgbm8gR0NDX1VTQjNfUEhZX1NFQ19CQ1IuCj4+IMKgwqDCoCBxY29t LHRjc3ItcmVnID0gPCZ0Y3NyIDB4YmZmMD4sIDwmdGNzciAweGIyNGM+Owo+PiDCoMKgwqAgcWNv bSx0Y3NyLW5hbWVzID0gInZsc19jbGFtcCIsICJkcF9waHlfbW9kZSI7IDw9PSBhZGRlZCBmb3Ig YmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIGxlZ2FjeSBjb25maWdzIHRoYXQgb25seSBoYWQg dmxzX2NsYW1wCj4gTm8gbmVlZCBmb3IgcWNvbSx0Y3NyLW5hbWVzLCBjb3JyZWN0IG90aGVyd2lz ZS4KPgo+PiDCoMKgwqAgI2Nsb2NrLWNlbGxzID0gPDE+Owo+PiDCoMKgwqAgI3BoeS1jZWxscyA9 IDwxPjsKPj4KPj4gwqDCoMKgIHN0YXR1cyA9ICJkaXNhYmxlZCI7Cj4+IH07Cj4+Cj4+Pj4+PiBT aWduZWQtb2ZmLWJ5OiBYaWFuZ3h1IFlpbiA8eGlhbmd4dS55aW5Ab3NzLnF1YWxjb21tLmNvbT4K Pj4+Pj4+IC0tLQo+Pj4+Pj4gIC4uLi9iaW5kaW5ncy9waHkvcWNvbSxxY3M2MTUtcW1wLWRwLXBo eS55YW1sICAgICAgIHwgMTExICsrKysrKysrKysrKysrKysrKysrKwo+Pj4+Pj4gIDEgZmlsZSBj aGFuZ2VkLCAxMTEgaW5zZXJ0aW9ucygrKQo+Pj4+Pj4KCi0tIApsaW51eC1waHkgbWFpbGluZyBs aXN0CmxpbnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHBzOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXBoeQo=