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 F25EB23E358 for ; Thu, 31 Jul 2025 17:13:51 +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=1753982033; cv=none; b=leDuHN3n08l8196a633pDy+hcUZWd1ARcxGslCj08DXKSjz5qSxryy4CXd2aiCztz66EnVxWIP5OxymRn7wbx4W3Pen/PAAP4d/v5QxUyCiQyoUiv9tWERP8oKP7Yp0MuW857Tq3sRj/2WCjr9qGqZ6fVfPnUMF7wvaUmAEkNKw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753982033; c=relaxed/simple; bh=a+1MxP7PV6NBX20myqQzV9CxQLsJH6x27V4zi00BF3E=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=Zs0C2reiUNPUthxRSGIjHf8CeGXx1dSoQfDm2edL7Knc9HE3t5OorycfLdVwuMS8hspgYaouStezLgxFkg/bt/ot0DvqtOMUjC1Cqvz3o03eFmTBtfEwPSt2LiGWDMiaDGnoQQme3tkCW6jT4WjS3eJkRO4BZjVvgnnZzMqVIcw= 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=WX50MObl; 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="WX50MObl" 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 56VDf8hf002387 for ; Thu, 31 Jul 2025 17:13:51 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= ofCj3+DeUV/y5WrDcns9NIGKwdDXCv8HNiS6UfKisRo=; b=WX50MObla3mMccxm ttNOLrjiWUwAoWZTPwT3Xm72rI/wWRFztiSINDhCfV6JHIRCl3nw2WezEn0CFkdS E5PT3RTxlkhUBTGnaCFvvWKTXTY62EomlWlz8LvGu+98SKu7Xe2iC9bKh82+VLF8 m3pC2BYM4lpNU4tPE8ZDEuo3s30YUZyJpwtY/CxKGak/1KZSd96kHEE9ZraMuWP7 doiTPmL/J7FkQ1+f/+PfhnsZEZ7UKRXcX4j73mnpQSZ0grapCtxkj9gfV9lzeeLN oB2qciirDcHaZqxLDTYWmblraG5PKBoUP3zG5CvzVh3NCPf4whRh2zwzi+vSc5I1 jGpXNA== Received: from mail-ua1-f70.google.com (mail-ua1-f70.google.com [209.85.222.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 484pbm8gd4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 31 Jul 2025 17:13:50 +0000 (GMT) Received: by mail-ua1-f70.google.com with SMTP id a1e0cc1a2514c-886df024fd5so1967642241.0 for ; Thu, 31 Jul 2025 10:13:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753982030; x=1754586830; h=content-transfer-encoding:in-reply-to:from:content-language :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=ofCj3+DeUV/y5WrDcns9NIGKwdDXCv8HNiS6UfKisRo=; b=lYzFUfFZuAop+qK7uC0Puv4UjCfRQycwNfWA/qp7RGo9TdsQsMqUHU+ibjB28Kbv7u qeXB9ULYOOJhYzXh3h6ZVwnlWTXFiHFnz9Cd+udXt/q6Pw9qWWHWxYq+fq/Q0AkBr3al eZWDsHovUmFP9xYrnQvb7ZjUZmJUorILgCusJ1RJqBbYkpEgBRrUHlG0QlLUmdgl8jTQ pJ9TJgF/fJni4sjlkhpRODIxTp1m/MW57+J3JDVPgGQ6Q0eQX1mzCOYcSWkRF7Adhbpm UpRIe5c3NQI0VAobSsVgf6hnluZQcnCzea/ULdnJXvdQfrSdjdmhsj9m5IJUJAZun5lZ bEAg== X-Forwarded-Encrypted: i=1; AJvYcCUFAWcLgpChbsjEFN9D4YMTsLub8G4PYNDAu8hksyIijryc+GlDznY2t+Vf8s2wDkI4mWyUFjTdH4g7nw/a@vger.kernel.org X-Gm-Message-State: AOJu0YwcT71dw1J9B+wHfoKHoEjbq4YmsulQ1UVJYub2nNQuRAJ6CnPR NlQptb14aHWwfNjHZivJsRw4nm9jR/316k7lj1QVeMplAhlC0rpGgPauvGZBqyeE4Wo6yPOY8hE 02nHrh6QD+fTYMkbMKK1Df0fWchzDZF2N+PYov1jbqK62HhRfVc4okXMbeYyC8joi+Q8A X-Gm-Gg: ASbGncvZQUVmXaRGk1mEm6IRj2SU8qIEYBgFujAqe3GYl6DbPpAWQ4Dj1k3XU7wNZKs lfL0PYPNb8ZS2Z9Rf+HrcT+3SdEi1KqFgEnOZOwdXma/pGetZ/UGISFYeBFzip1o3MwzqGQ4QTF aIa8f/Zo/XukQyqtwrv2djzs+Dv5Ci3zQgjN4r74K0mwX3+B8lwpeOvIGpCqKzenpSCoiSgBflT BbCLDiLGeEccSCKhEoMafuPu8/L7VS0CahagS6Ae2ahIJNAqruWRaIY1wHxvESAngADX5iX2mYZ oUGaUaGjjo3y13npikL69Uyx/E7ac7DeooD6vrrW+7Dxqdzcu9DWf5J81VQavKhn7pHEp6MaXOm XL0l/GkPmbpq0Yw== X-Received: by 2002:a05:6122:62ca:b0:538:e454:ea8e with SMTP id 71dfb90a1353d-53938905a99mr1857781e0c.7.1753982029396; Thu, 31 Jul 2025 10:13:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF52dzZur4u5mVprmHH1cNIiS5IST4nNlWgeTkq324s1h1QrAG/Kd+PfkF4M7ViNxObk+iijw== X-Received: by 2002:a05:6122:62ca:b0:538:e454:ea8e with SMTP id 71dfb90a1353d-53938905a99mr1857741e0c.7.1753982028845; Thu, 31 Jul 2025 10:13:48 -0700 (PDT) Received: from [10.148.43.238] (87-95-32-33.bb.dnainternet.fi. [87.95.32.33]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-33238272963sm2983111fa.14.2025.07.31.10.13.46 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 31 Jul 2025 10:13:47 -0700 (PDT) Message-ID: Date: Thu, 31 Jul 2025 20:13:46 +0300 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: Xiangxu Yin 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> Content-Language: en-US From: Dmitry Baryshkov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Authority-Analysis: v=2.4 cv=LsaSymdc c=1 sm=1 tr=0 ts=688ba44e cx=c_pps a=R6oCqFB+Yf/t2GF8e0/dFg==:117 a=H8T8cKqSsIHj2cBiWKmgXw==:17 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=Oh2cFVv5AAAA:8 a=EUspDBNiAAAA:8 a=74qhCITlYKpdjXRJ2hIA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=TD8TdBvy0hsOASGTdmB-:22 a=7KeoIwV6GZqOttXkcoxL:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzMxMDExOSBTYWx0ZWRfX8/6gm0YDtFuq X6pY0WmfN6+BYXaYjI5OuOWEZQuuDiydL1m2gRbMkqp4v/F+cy7yFAz/8Pfvi01r3Eg0cHxafR6 exk0ZJlJT4efkfherQ2FgAy1y5EPs15yxgbus0+k3BODpogkMyAj5liAMnYww4yP9a1avG1Fb1x lC8kyYPFNNiXGbkOIlzx9C2aG8ZCNFKbUYbyhTq4myewYbwYqyxDaaKcU171xhcS75KlYk1+rTc TtKzgkRJNpThGGdA1WSIiEOoFcRVRbF1R/YA2/CGTwDJRyTJ65PHNAzDyeWndWi2/RmBnwRLWgi eKE5Z9p1M6uTJdrJCZ7JiUaow2U5NvSOuc9BASKPJMkQYTmLxIKXnP38aEhYEjwf/bBmV+DRvND sHEG4X16KhG0VzhL0M96Pzt3RoiWDDW1LiVIpxxrHxQwU0wOPxgbONONolRI0xK/XJj2BU6R X-Proofpoint-ORIG-GUID: Q2tcui_IBVZGgxFMJEjClJtCbP7mELfB X-Proofpoint-GUID: Q2tcui_IBVZGgxFMJEjClJtCbP7mELfB 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_03,2025-07-31_03,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-2507310119 On 31/07/2025 08:06, Xiangxu Yin wrote: > > 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"? Why? You _already_ have a compatible string. You don't need to change it just to follow the SoC name. >> >>>     ... >>>     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? I think (I might be wrong here) new ones is a better fit. We'll migrate the rest of PHYs to new bindings later on. >> >>>     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. Ack. >>>     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(+) >>>>>>> -- With best wishes Dmitry 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 C9570C87FCA for ; Thu, 31 Jul 2025 17:13:55 +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-Type: Content-Transfer-Encoding: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=0giNHYa2YlWSgFmyaeC8BoCl/9aEkYNm/KIEJOL2KKM=; b=0L8bWL//TZwsiY tO09jJ9NAUJ0TVdDGENfyzggollmW4Nt5AqENWxLCupEe5KpUj7Eb6lCZV2ui/6O0SlHZ6xowpeFf Y+ava46QKRuXyRr55PIfpX9csN+/k79rMgBj2oDjxT0f8xuwZluxM16pxaZpoDc6Pm2+Vbpt+mNhV rIn8m/MhcpnJ+XLIjQ1JhNLorbAPuqLE/zTWq3sptpkkj5c1KPmReYFUbgJO7OHYoMM6ENx8R2HJo ms5+qgFAZY6Qrn+T33XRZQTuV0103c/ppdEGSIlvZgLvbjs2uLatFEGWU/vKPS85MwYFlxhBZ9TTI 9VJEGmkSfoy4Dx+MsU/g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uhWqo-000000049Pv-1Zjq; Thu, 31 Jul 2025 17:13:55 +0000 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uhWql-000000049PW-2zGb for linux-phy@lists.infradead.org; Thu, 31 Jul 2025 17:13:53 +0000 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56VDfOnY018750 for ; Thu, 31 Jul 2025 17:13:51 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= ofCj3+DeUV/y5WrDcns9NIGKwdDXCv8HNiS6UfKisRo=; b=WX50MObla3mMccxm ttNOLrjiWUwAoWZTPwT3Xm72rI/wWRFztiSINDhCfV6JHIRCl3nw2WezEn0CFkdS E5PT3RTxlkhUBTGnaCFvvWKTXTY62EomlWlz8LvGu+98SKu7Xe2iC9bKh82+VLF8 m3pC2BYM4lpNU4tPE8ZDEuo3s30YUZyJpwtY/CxKGak/1KZSd96kHEE9ZraMuWP7 doiTPmL/J7FkQ1+f/+PfhnsZEZ7UKRXcX4j73mnpQSZ0grapCtxkj9gfV9lzeeLN oB2qciirDcHaZqxLDTYWmblraG5PKBoUP3zG5CvzVh3NCPf4whRh2zwzi+vSc5I1 jGpXNA== Received: from mail-ua1-f70.google.com (mail-ua1-f70.google.com [209.85.222.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 487jwgd6ud-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 31 Jul 2025 17:13:51 +0000 (GMT) Received: by mail-ua1-f70.google.com with SMTP id a1e0cc1a2514c-88bad6865baso1576930241.1 for ; Thu, 31 Jul 2025 10:13:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753982030; x=1754586830; h=content-transfer-encoding:in-reply-to:from:content-language :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=ofCj3+DeUV/y5WrDcns9NIGKwdDXCv8HNiS6UfKisRo=; b=okHJCr36ygbCblp0jiD7j+yJzIIt0gNQEhrmpwmthImNdBiUmMqovDiAZ17ljTEuHZ 8yfl+C9zY761lNaDXnV6SSbNqTAgIbmju3m3wEhETC2atdJCmV92t4ifnKNM4rIdn02R uREIhG9nv6k7Cjs7lM1QALOMgx19efLrfjZV0m17NjZz/j0bMmPc434/fzruxoxM50vl pblUZ+NEKFM/kDUjftYnoSK66OlFN5GNDfCHFlwBQj2yhvLxrwD2pKt5w4Xw0NQWXVDG E/lTErlym1kEbCmkGwHTOUiLrBBivHc7qNuMEXGs1RxycJLitf8wyxKMw7nWuBDQznvg Kkkw== X-Forwarded-Encrypted: i=1; AJvYcCXgLbWjsdeNrRV1YLrrCmRCNeAr06dv68F9U91j6jLjiegLFMfBiwMESaWGfHElqJPQR08JXdem8C4=@lists.infradead.org X-Gm-Message-State: AOJu0YyGrXmnvtXMwyYgD10VpT7/uq5ecZAOwm47WAYM5GPUtozakwc/ PJ4yLtoqbJll3ILsyLEmk601xaUS+8O+BEu6rTRcmUwhPOGL0y16CeRlqvJOVPQnWxWIDshtiYl 6yjZYoJfcNl/Z75jZEpcgpKeGiAzOo5XqJEX9z//L12EPMm+TFuossDtRKEJCnjZH8kQw X-Gm-Gg: ASbGncu+vjunEw1BNycNlGZXnqPWsIUPaIXB4SK4oKPy8MOGFpMkbuTBS5koJkMlFjO Cqhz1N5ftlTZ3i48VeldA4tkMsQiGtcABh53lxZjX96zxaMlIPVCGBCWt6htVATuiVT0Wljafe0 zqHYcOaE98UzJH3upK9ndmUmDKQlO1vfTpyxczACZCcaF6VUMwSfjluA7f2q6ls4sWtsF9EnODn eya/HfNVxe4QNa5TzGGqT+LmBHrsVLpfuU5Z9sgkITeXpDXQNqiIl+6dFOmti0Gy2dBd8MXUUwD 3Y7e4cpzeTXLm/r4hnrmtmHeKd8NxEGDOpZYA8m/aJoPHzXkJBERdJMXz7gSQZMwvj2QlAsSOG7 bOHRlORUs+feMHA== X-Received: by 2002:a05:6122:62ca:b0:538:e454:ea8e with SMTP id 71dfb90a1353d-53938905a99mr1857792e0c.7.1753982029446; Thu, 31 Jul 2025 10:13:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF52dzZur4u5mVprmHH1cNIiS5IST4nNlWgeTkq324s1h1QrAG/Kd+PfkF4M7ViNxObk+iijw== X-Received: by 2002:a05:6122:62ca:b0:538:e454:ea8e with SMTP id 71dfb90a1353d-53938905a99mr1857741e0c.7.1753982028845; Thu, 31 Jul 2025 10:13:48 -0700 (PDT) Received: from [10.148.43.238] (87-95-32-33.bb.dnainternet.fi. [87.95.32.33]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-33238272963sm2983111fa.14.2025.07.31.10.13.46 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 31 Jul 2025 10:13:47 -0700 (PDT) Message-ID: Date: Thu, 31 Jul 2025 20:13:46 +0300 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: Xiangxu Yin 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> Content-Language: en-US From: Dmitry Baryshkov In-Reply-To: X-Authority-Analysis: v=2.4 cv=WvgrMcfv c=1 sm=1 tr=0 ts=688ba44f cx=c_pps a=R6oCqFB+Yf/t2GF8e0/dFg==:117 a=H8T8cKqSsIHj2cBiWKmgXw==:17 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=Oh2cFVv5AAAA:8 a=EUspDBNiAAAA:8 a=74qhCITlYKpdjXRJ2hIA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=TD8TdBvy0hsOASGTdmB-:22 a=7KeoIwV6GZqOttXkcoxL:22 X-Proofpoint-ORIG-GUID: iaPHY39Z9WJn5ahi5UFTCKKKVbTWG4qe X-Proofpoint-GUID: iaPHY39Z9WJn5ahi5UFTCKKKVbTWG4qe X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzMxMDExOCBTYWx0ZWRfX7sRfpm5mMH5k dvh3xXIDSNxFv/pnrEPhAXSHCCX2q2SmU4ZddqfZgMOwAHisT7Om229sRfTiv8DaHfGmnkAsaLx M0pMXtQYLgNdhXh5Q79lQADr/S0uW4sdyvTuCVB5qm4GUAhoJMKh65P0Gll6KfHs2g7IBWuZE0J PQuY71H0TwzjpeVjd8fObN/vFGhPAem0rusbNoSl34kjEFHjj4ZV5opff7EXjL6L0TKGTDRogTv 3M8Ln+Uyrx3orcIWDTqWiyYl3a9d4WvzcqhODbr9pM9Vem16enhArYbTX+riSAMqnG1/bfP+hqR nMAfYXcb+jUg7J2Qchhn5sKO2Lb3/kvyWBL2AnhinNc0mi/SWQr0wV1KYCKXApuTRFOwYkQcy2d ERHxKrnV0avZW8x+9ZToLy2WcTPqq9BQ7/0gE4ZDeQsLAW5DqYgmm2eDWcgDAUi2XHQlUSP5 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_03,2025-07-31_03,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 spamscore=0 mlxscore=0 impostorscore=0 adultscore=0 malwarescore=0 priorityscore=1501 mlxlogscore=999 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507310118 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250731_101351_762746_419822CC X-CRM114-Status: GOOD ( 35.61 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org T24gMzEvMDcvMjAyNSAwODowNiwgWGlhbmd4dSBZaW4gd3JvdGU6Cj4gCj4gT24gNy8zMS8yMDI1 IDI6MzUgQU0sIERtaXRyeSBCYXJ5c2hrb3Ygd3JvdGU6Cj4+IE9uIFdlZCwgSnVsIDMwLCAyMDI1 IGF0IDA0OjUzOjE2UE0gKzA4MDAsIFhpYW5neHUgWWluIHdyb3RlOgo+Pj4gT24gNy8yMi8yMDI1 IDg6NDEgUE0sIERtaXRyeSBCYXJ5c2hrb3Ygd3JvdGU6Cj4+Pj4gT24gVHVlLCBKdWwgMjIsIDIw MjUgYXQgMDg6MDU6MDZQTSArMDgwMCwgWGlhbmd4dSBZaW4gd3JvdGU6Cj4+Pj4+IE9uIDcvMjIv MjAyNSA0OjM4IFBNLCBEbWl0cnkgQmFyeXNoa292IHdyb3RlOgo+Pj4+Pj4gT24gVHVlLCBKdWwg MjIsIDIwMjUgYXQgMDM6MjI6MDNQTSArMDgwMCwgWGlhbmd4dSBZaW4gd3JvdGU6Cj4+Pj4+Pj4g SW50cm9kdWNlIGRldmljZSB0cmVlIGJpbmRpbmcgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIFF1YWxj b21tIFFNUCBEUCBQSFkKPj4+Pj4+PiBvbiBRQ1M2MTUgU29Dcy4gVGhpcyBQSFkgc3VwcG9ydHMg RGlzcGxheVBvcnQgZnVuY3Rpb25hbGl0eSBhbmQgaXMKPj4+Pj4+PiBkZXNpZ25lZCB0byBvcGVy YXRlIGluZGVwZW5kZW50bHkgZnJvbSB0aGUgVVNCMyBQSFkuCj4+Pj4+Pj4KPj4+Pj4+PiBVbmxp a2UgY29tYm8gUEhZcyBmb3VuZCBvbiBvdGhlciBwbGF0Zm9ybXMsIHRoZSBRQ1M2MTUgRFAgUEhZ IGlzCj4+Pj4+Pj4gc3RhbmRhbG9uZSBhbmQgZG9lcyBub3Qgc3VwcG9ydCBVU0IvRFAgbXVsdGlw bGV4aW5nLiBUaGUgYmluZGluZwo+Pj4+Pj4+IGRlc2NyaWJlcyB0aGUgcmVxdWlyZWQgY2xvY2tz LCByZXNldHMsIFRDU1IgY29uZmlndXJhdGlvbiwgYW5kIGNsb2NrL1BIWQo+Pj4+Pj4+IGNlbGxz IGZvciBwcm9wZXIgaW50ZWdyYXRpb24uCj4+Pj4+PiBTaW1wbHkgcHV0OiBubywgdGhpcyBpcyBu b3QgY29ycmVjdC4gRXZlbiBpZiB5b3UgZ28gdG8gdGhlIFNNNjE1MCBibG9jawo+Pj4+Pj4gZGlh Z3JhbSwgaXQgcG9pbnRzIG91dCB0aGF0IERQIHVzZXMgdGhlIFVTQjMgUEhZLCBub3QgYSBzZXBh cmF0ZSBEUCBQSFkuCj4+Pj4+Pgo+Pj4+Pj4gSSB0aG91Z2h0IHRoYXQgd2UgaGF2ZSBkaXNjdXNz ZWQgaXQgYmVmb3JlaGFuZC4KPj4+Pj4+Cj4+Pj4+PiBJIGNhbiBxdW90ZSBteSBjb21tZW50IGZy b20gdGhlIHByZXZpb3VzIHRocmVhZDoKPj4+Pj4+Cj4+Pj4+Pj4+IE5vLiBJdCBtZWFucyByZXBs YWNpbmcgZXh0ZW5kaW5nIGV4aXN0aW5nIGVudHJpZXMgd2l0aCBiaWdnZXIgcmVnIGFuZAo+Pj4+ Pj4+PiAjcGh5LWNlbGxzID0gPDE+LiBUaGUgZHJpdmVyIG11c3Qga2VlcCB3b3JraW5nIHdpdGgg b2xkIG5vZGUgZGVmaW5pdGlvbnMKPj4+Pj4+Pj4gYXMgaXMgdG8gZW5zdXJlIGJhY2t3YXJkcyBj b21wYXRpYmlsaXR5LiBOZXcgbm9kZXMgc2hvdWxkIG1ha2UgaXQKPj4+Pj4+Pj4gcmVnaXN0ZXIg dHdvIFBIWXMgKFVTQjMgYW5kIERQKS4gT24gdGhlIGRyaXZlciBzaWRlIG1vZGlmeSBnZW5lcmlj IGNvZGUKPj4+Pj4+Pj4gcGF0aHMsIGFsbCBwbGF0Zm9ybXMgc3VwcG9ydGVkIGJ5IHRoZSBkcml2 ZXIgc2hvdWxkIGJlIGFibGUgdG8gc3VwcG9ydAo+Pj4+Pj4+PiBVU0IzK0RQIGNvbWJpbmF0aW9u Lgo+Pj4+Pj4gTG9va2luZyBhdCB0aGUgaGFyZHdhcmUgbWVtb3J5IG1hcHM6Cj4+Pj4+Pgo+Pj4+ Pj4gTVNNODk5ODogVVNCMyBQSFkgcmVncyBhdCAweGMwMTAwMDAsIERQIFBIWSByZWdzIGF0IDB4 YzAxMTAwMAo+Pj4+Pj4gU0RNNjYwOiBVU0IzIFBIWSByZWdzIGF0IDB4YzAxMDAwMCwgRFAgUEhZ IHJlZ3MgYXQgMHhjMDExMDAwCj4+Pj4+PiBRQ00yMjkwOiBVU0IzIFBIWSByZWdzIGF0IDB4MTYx NTAwMCwgRFAgUEhZIHJlZ3MgYXQgMHgxNjE2MDAwCj4+Pj4+PiBTTTYxMTU6IFVTQjMgUEhZIHJl Z3MgYXQgMHgxNjE1MDAwLCBEUCBQSFkgcmVncyBhdCAweDE2MTYwMDAKPj4+Pj4+Cj4+Pj4+PiBO b3c6Cj4+Pj4+PiBTTTYxNTA6IFVTQjMgUEhZIHJlZ3MgYXQgMHg4OGU2MDAwCj4+Pj4+PiAgICAg ICAgICBVU0IzIFBIWSByZWdzIGF0IDB4ODhlODAwMCwgRFAgUEhZIHJlZ3MgYXQgMHg4OGU5MDAw Cj4+Pj4+Pgo+Pj4+Pj4gSSBkbyBub3Qga25vdywgd2h5IG1zbS00LjE0IGRpZG4ndCBkZXNjcmli ZSBzZWNvbmQgVVNCMyBQSFkuIE1heWJlIHlvdQo+Pj4+Pj4gY2FuIGNvbW1lbnQgb24gaXQuCj4+ Pj4+Pgo+Pj4+Pj4gQnV0IGJhc2VkIG9uIHRoYXQgbGlzdCwgdGhlIG9ubHkgc3BlY2lhbCBjYXNl IHRoYXQgd2UgbmVlZCB0byBoYW5kbGUgaXMKPj4+Pj4+IHRoZSBmaXJzdCBVU0IzIFBIWSwgd2hp Y2ggZG9lc24ndCBoYXZlIGEgY29ycmVzcG9uZGluZyBEUCBQSFkgYmxvY2suIEJ1dAo+Pj4+Pj4g aXQgd2lsbCBiZSBoYW5kbGVkIGFueXdheSBieSB0aGUgY29kZSB0aGF0IGltcGxlbWVudHMgc3Vw cG9ydCBmb3IgdGhlCj4+Pj4+PiBleGlzdGluZyBEVCBlbnRyaWVzLiBBbGwgb3RoZXIgaGFyZHdh cmUgYmxvY2tzIGFyZSBjb21ibyBVU0IrRFAgUEhZcy4KPj4+Pj4+Cj4+Pj4+PiBIYXZpbmcgYWxs IG9mIHRoYXQgaW4gbWluZCwgcGxlYXNlLCBmb3IgdjMgcGF0Y2hzZXQgaW1wbGVtZW50IFVTQitE UAo+Pj4+Pj4gc3VwcG9ydCBpbiB0aGUgcGh5LXFjb20tcW1wLXVzYmMgZHJpdmVyIGFuZCBhZGQg dGhlIGZvbGxvd2luZyBsb2dpYwo+Pj4+Pj4gdGhhdCBhbHNvIHdhcyByZXF1ZXN0ZWQgaW4gdjEg cmV2aWV3Ogo+Pj4+Pj4KPj4+Pj4+Pj4gTm90IHF1aXRlLiBCb3RoIFVTQjMgYW5kIERQIGRyaXZl cnMgc2hvdWxkIGJlIGNhbGxpbmcgcG93ZXJfb24gLyBfb2ZmLgo+Pj4+Pj4+PiBJZiBVU0IzIGlz IG9uLCBwb3dlcmluZyBvbiBEUCBQSFkgc2hvdWxkIGZhaWwuIFZpY2UgdmVyc2EsIGlmIERQIGlz IG9uLAo+Pj4+Pj4+PiBwb3dlcmluZyBvbiBVU0Igc2hvdWxkIGZhaWwuCj4+Pj4+PiBJIHRoaW5r IG91ciB1bmRlcnN0YW5kaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBhbGlnbmVkLgo+Pj4+IEkgZGlk IG5vdCB3cml0ZSB0aGlzLiBQbGVhc2UgZml4IHlvdXIgbWFpbGVyIHRvIHF1b3RlIG1lc3NhZ2Vz IHByb3Blcmx5Lgo+Pj4+IEFzIHlvdSBhcmUgdXNpbmcgVGh1bmRlcmJpcmQsIEknbSBub3Qgc3Vy ZSB3aGVyZSB0aGUgaXNzdWUgY29tZXMgZnJvbS4KPj4+Pgo+Pj4+IEFsc28gcGxlYXNlIGZpeCBp dCB0byB3cmFwIHlvdXIgcmVzcG9uc2VzIHNvbXdoZXJlIGxvZ2ljYWxseS4KPj4+Pgo+Pj4+Pj4g UGVyaGFwcyB0aGlzIGlzIGJlY2F1c2UgSSBkaWRu4oCZdCBhY2N1cmF0ZWx5IHVwZGF0ZSB0aGUg bXV0dWFsIGV4Y2x1c2lvbiByZWxhdGlvbnNoaXBzIGFuZCB0ZXN0IHJlc3VsdHMgZm9yIHRoZSBk aWZmZXJlbnQgUEhZcy4KPj4+Pj4+IExldCBtZSBjbGFyaWZ5IG15IGxhdGVzdCBmaW5kaW5ncyBh bmQgZXhwbGFpbiB3aHkgSSBiZWxpZXZlIHRoZXNlIGFyZSBzZXBhcmF0ZSBQSFlzIHRoYXQgcmVx dWlyZSBtdXR1YWwgZXhjbHVzaW9uIHZpYSBUQ1NSLgo+Pj4+Pj4KPj4+Pj4+IDEuIEFib3V0IHRo ZSBUQ1NSIERQX1BIWU1PREUgUmVnaXN0ZXJzCj4+Pj4+Pgo+Pj4+Pj4gTVNNODk5OC9TRE02NjA6 Cj4+Pj4+PiAJT25seSBvbmUgVENTUl9VU0IzX0RQX1BIWU1PREUgcmVnaXN0ZXIgYXQgMHgxRkNC MjQ4Lgo+Pj4+Pj4gUUNNMjI5MC9TTTYxMTU6Cj4+Pj4+PiAJVENTUl9VU0IzXzBfRFBfUEhZTU9E RSBhdCAweDNDQjI0OAo+Pj4+Pj4gCVRDU1JfVVNCM18xX0RQX1BIWU1PREUgYXQgMHgzQ0IyNEMK Pj4+Pj4+IFNNNjE1MDoKPj4+Pj4+IAlUQ1NSX1VTQjNfMF9EUF9QSFlNT0RFIGF0IDB4MUZDQjI0 OAo+Pj4+Pj4gCVRDU1JfVVNCM18xX0RQX1BIWU1PREUgYXQgMHgxRkNCMjRDCj4+Pj4gU002MTUw IGhhcyB0d28gZGlmZmVyZW50IHNldHMgb2Ygb3V0cHV0IHBpbnMsIHNvIHRoZSBmaXJzdCByZWdp c3Rlcgo+Pj4+IGNvdmVycyBmaXJzdCBzZXQgb2YgU1MgbGFuZXMgKHdoaWNoIGFyZSByb3V0ZWQg dG8gdGhlIGRvY3VtZW50ZWQgU1MKPj4+PiBQSFkpLCB0aGUgc2Vjb25kIHJlZ2lzdGVyIGNvdmVy cyB0aGUgc2Vjb25kIHNldCBvZiBTUyBsYW5lcyAod2hpY2ggYXJlCj4+Pj4gcm91dGVkIHRvIHRo ZSBEUCBhbmQgc2Vjb25kYXJ5IFVTQiBQSFkpLgo+Pj4+Cj4+Pj4gSSBjYW4gb25seSBhc3N1bWUg dGhhdCB0aGUgc2FtZSBjb25maWd1cmF0aW9uIHdhcyBzdXBwb3NlZCB0byBiZQo+Pj4+IGFwcGxp Y2FibGUgdG8gUUNNMjI5MCAvIFNNNjExNSwgYnV0IHdhcyBsYXRlciByZW1vdmVkIC8gZGlzYWJs ZWQsIHdoaWxlCj4+Pj4gdGhlIHJlZ2lzdGVycyB3ZXJlIGtlcHQgaW4gdGhlIFRDU1IgYmxvY2su Cj4+Pj4KPj4+Pj4+IEV2ZW4gdGhvdWdoIE1TTTg5OTgsIFNETTY2MCwgUUNNMjI5MCwgYW5kIFNN NjExNSBhbGwgaGF2ZSBvbmUgVVNCMyBQSFkgYW5kIG9uZSBEUCBQSFksIHRoZSBUQ1NSIERQX1BI WU1PREUgcmVnaXN0ZXIgY29uZmlndXJhdGlvbiBpcyBkaWZmZXJlbnQgb24gZWFjaCBwbGF0Zm9y bS4KPj4+Pj4+Cj4+Pj4+PiBBZGRpdGlvbmFsbHksIEkgZm91bmQgc29tZSBpbnRlcmVzdGluZyBy ZWdpc3RlciBkb2N1bWVudGF0aW9uIGZvciBRQ00yMjkwL1NNNjExNToKPj4+Pj4+IAlUQ1NSX1VT QjNfMF9EUF9QSFlNT0RFOiDigJxJbiBrYW1vcnRhIHRoaXMgb25lIGlzIGZvciBtb2JpbGUgdXNi LiBEUCBub3Qgc3VwcG9ydGVkLuKAnQo+Pj4+Pj4gCVRDU1JfVVNCM18xX0RQX1BIWU1PREU6IOKA nERQIG1vZGUgc3VwcG9ydGVkIGZvciBBdXRvIHVzYiBpbiBrYW1vcnRhLuKAnQo+Pj4+Pj4gSSB0 aGluayB0aGUgcmVhc29uIGZvciBoYXZpbmcgdHdvIGRpZmZlcmVudCBUQ1NSIHJlZ2lzdGVycyBp cyB0byBhbGxvdyBib3RoIHRoZSBVU0IzLjAgYW5kIERQIFBIWXMgdG8gYmUgdXNlZHMgYXQgdGhl IHNhbWUgdGltZSBpbiBjZXJ0YWluIHByb2R1Y3QgY29uZmlndXJhdGlvbnMuCj4+Pj4gU3VyZS4g T25lIGZvciB0aGUgZmlyc3QgUEhZIChVU0IpLCBvbmUgZm9yIHRoZSBzZWNvbmQgUEhZIChVU0Ir RFApLgo+Pj4+IElmIHlvdSBjaGVjayB0aGUgbWVtb3J5IG1hcCwgeW91IHdpbGwgZmluZCB0aGUg c2Vjb25kIFZMUyBDTEFNUCByZWdpc3Rlcgo+Pj4+IGZvciB0aGUgc2Vjb25kIFVTQiBQSFkuCj4+ Pj4KPj4+Pj4+IDIuIFNNNjE1MCBUZXN0IFJlc3VsdHMKPj4+Pj4+IFdoZW4gVENTUl9EUF9QSFlN T0RFXzAgaXMgc3dpdGNoZWQgdG8gRFAsIHRoZSBVU0IzIHByaW1hcnkgUEhZIGNhbm5vdCB3b3Jr LCBhbmQgdGhlIERQIFBIWSBpcyBhbHNvIG5vdCBmdW5jdGlvbmFsIChwb3NzaWJseSBkdWUgdG8g Y2xvY2sgbGFjayBvciBvdGhlciBjb25maWd1cmF0aW9uIG1pc21hdGNoIHdpdGggdGhpcyBUQ1NS IHNldHRpbmcpLgo+Pj4+Pj4gV2hlbiBUQ1NSX0RQX1BIWU1PREVfMSBpcyBzd2l0Y2hlZCB0byBE UCwgYm90aCB0aGUgVVNCMyBwcmltYXJ5IFBIWSBhbmQgdGhlIERQIFBIWSB3b3JrIG5vcm1hbGx5 Lgo+Pj4+Pj4gSSB0aGluayAid2h5IG1zbS00LjE0IGRpZG4ndCBkZXNjcmliZSBzZWNvbmQgVVNC MyBQSFkiLCBiZWNhdXNlIFRDU1JfRFBfUEhZTU9ERV8xIGFsd2F5cyB3b3JrcyBpbiBEUCBtb2Rl Lgo+Pj4+Pj4gaHR0cHM6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20va2VybmVsL21zbS8rL2Fm MDNlZWY3ZDRjM2NiZDFmZTI2YzY3ZDRmMTkxNWIwNWQwYzE0ODgvZHJpdmVycy9ncHUvZHJtL21z bS9kcC9kcF9jYXRhbG9nX3YyMDAuYwo+Pj4+IEhlcmUgaXQgc3RpbGwgcHJvZ3JhbXMgdGhlIFRD U1IgcmVnaXN0ZXIuCj4+Pj4KPj4+Pj4+IEJhc2VkIG9uIHRoZXNlIGluZm8sIEkgYmVsaWV2ZSB0 aGVzZSBhcmUgc2VwYXJhdGUgUEhZcywgYW5kIG9ubHkgdGhlCj4+Pj4+PiBUQ1NSIERQX1BIWU1P REUgcmVnaXN0ZXJzIGRldGVybWluZSB3aGljaCBVU0IzL0RQIFBIWXMgYXJlIHBhaXJlZCBvcgo+ Pj4+Pj4gbXV0dWFsbHkgZXhjbHVzaXZlLiBUaGlzIGlzIHdoeSBJIGhhdmUgbWFpbnRhaW5lZCBz ZXBhcmF0ZSBwcml2YXRlCj4+Pj4+PiBkYXRhIGZvciBlYWNoIFBIWSBhbmQgaW1wbGVtZW50ZWQg UG93ZXIgb24gbXV0ZXggY29udHJvbCB2aWEgVENTUiwKPj4+Pj4+IHJhdGhlciB0aGFuIHVzaW5n IGEgcW1wX2NvbWJvLWxpa2Ugc3RydWN0dXJlLgo+Pj4+IFN0aWxsLCBuby4gQ2hlY2sgdGhlIGJs b2NrIGRpYWdyYW0gb2YgU002MTUwLgo+Pj4+Cj4+Pj4+PiBHaXZlbiB0aGUgYWJvdmUsIGRvIHlv dSB0aGluayB3ZSBzdGlsbCBuZWVkIHRvIGZvcmNlIFVTQiBhbmQgRFAgdG8gYmUgc3RyaWN0bHkg Ym91bmQgdG9nZXRoZXIgbGlrZSBhIGNvbWJvIFBIWT8KPj4+PiBZZXMuCj4+PiBJIGNoZWNrZWQg dGhlIHJlbGF0ZWQgUEhZIHNlcmllcyBhbmQgYmxvY2sgZGlhZ3JhbXMgYWdhaW4uCj4+Pgo+Pj4g UFJJIGFuZCBTRUMgZ28gdG8gZGlmZmVyZW50IG5vZGVzIGJhc2VkIG9uIHRoZSBTb0MgZGVzaWdu LCBhbmQgdGhlcmUgYXJlIHR3byB0eXBlcyBvZiBjb25maWd1cmF0aW9uczogVVNCMy1vbmx5IGFu ZCBVU0IzK0RQIHBhaXJpbmcuCj4+Pgo+Pj4gQmVmb3JlIHByb2NlZWQgdGhlIHYzIHBhdGNoc2V0 LCBJ4oCZZCBsaWtlIHRvIGRvdWJsZS1jb25maXJtIHdoZXRoZXIgdGhlIGZvbGxvd2luZyBzdHJ1 Y3R1cmUgaXMgd2hhdCB5b3UgZXhwZWN0Ogo+Pj4KPj4+IHVzYl9xbXBwaHlfMTogcGh5QDg4ZTYw MDAgewo+Pj4gIMKgwqDCoCBjb21wYXRpYmxlID0gInFjb20sc202MTUwLXFtcC11c2IzLXByaW0t cGh5IjsgPD09IHJlbmFtZSB0byBQUklNCj4+IE5vLCB3ZSBhbHJlYWR5IGhhdmUgYSBjb21wYXRp YmxlIG5hbWUgYW5kIERUIHNjaGVtYSBmb3IgdGhpcyBkZXZpY2UuCj4gVGhlbiBjdXJyZW50IGNv bXBhdGlibGUgbmFtZSBpcyAicWNvbSxxY3M2MTUtcW1wLXVzYjMtcGh5IiBhbmQgc2hhbGwgd2Ug bmVlZCB1cGRhdGUgdG8gInFjb20sc202MTUwLXFtcC11c2IzLXBoeSI/CgpXaHk/IFlvdSBfYWxy ZWFkeV8gaGF2ZSBhIGNvbXBhdGlibGUgc3RyaW5nLiBZb3UgZG9uJ3QgbmVlZCB0byBjaGFuZ2Ug aXQgCmp1c3QgdG8gZm9sbG93IHRoZSBTb0MgbmFtZS4KCj4+Cj4+PiAgwqDCoMKgIC4uLgo+Pj4g IMKgwqDCoCBxY29tLHRjc3ItcmVnID0gPCZ0Y3NyIDB4YjI0ND4sIDwmdGNzciAweGIyNDg+Owo+ Pj4gIMKgwqDCoCBxY29tLHRjc3ItbmFtZXMgPSAidmxzX2NsYW1wIiwgImRwX3BoeV9tb2RlIjsK Pj4gTm8gbmVlZCBmb3IgcWNvbSx0Y3NyLW5hbWVzLiBTZWNvbmQgVENTUiByZWdpc3RlciBzaG91 bGQgYmUgb3B0aW9uYWwgaW4KPj4gdGhlIGRyaXZlci4KPiBPay4KPj4KPj4+ICAgICAgCj4+PiAg wqDCoMKgICNjbG9jay1jZWxscyA9IDwxPjsKPj4+ICDCoMKgwqAgI3BoeS1jZWxscyA9IDwxPjsK Pj4gI2Nsb2NrLWNlbGxzID0gPDA+Owo+PiAjcGh5LWNlbGxzID0gPDA+Owo+Pgo+Pj4gIMKgwqDC oCAuLi4KPj4+IH07Cj4+Pgo+Pj4gdXNiX3FtcHBoeV8yOiBwaHlAODhlODAwMCB7Cj4+PiAgwqDC oMKgIGNvbXBhdGlibGUgPSAicWNvbSxzbTYxNTAtcW1wLXVzYjNkcC1zZWMtcGh5IjsgPD09IFNF QyBTUywgdXNlIHVzYjNkcCB0byBpbmRpY2F0ZSBEUCBjYXBhYmlsaXR5Cj4+IHFjb20sc202MTUw LXFtcC11c2IzLWRwLXBoeQo+IE9rLCBidXQgZm9yIHRoaXMgcGFydCwgc2hhbGwgd2UgdXBkYXRl IGR0LWJpbmRpbmcgaW4gInFjb20sbXNtODk5OC1xbXAtdXNiMy1waHkueWFtbCIgb3IgY3JlYXRl IGEgbmV3IG9uZT8KCkkgdGhpbmsgKEkgbWlnaHQgYmUgd3JvbmcgaGVyZSkgbmV3IG9uZXMgaXMg YSBiZXR0ZXIgZml0LiBXZSdsbCBtaWdyYXRlIAp0aGUgcmVzdCBvZiBQSFlzIHRvIG5ldyBiaW5k aW5ncyBsYXRlciBvbi4KCj4+Cj4+PiAgwqDCoMKgIHJlZyA9IDwweDAgMHgwODhlODAwMCAweDAg MHgyMDAwPjsgPD09IFNTMiBiYXNlIGFkZHJlc3MgYW5kIG9mZnNldCBkZWZpbmUgaW4gZHJpdmVy IGNvbmZpZwo+Pj4KPj4+ICDCoMKgwqAgY2xvY2tzID0gPCZnY2MgR0NDX0FIQjJQSFlfV0VTVF9D TEs+LAo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPCZnY2MgR0NDX1VTQjNfU0VDX0NMS1JF Rl9DTEs+OyA8PT0gVGhpcyBTb0MgaGFzIG5vIFVTQjMuMCBTRUMgU1MgY2xrCj4+PiAgwqDCoMKg IGNsb2NrLW5hbWVzID0gImNmZ19haGIiLAo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAicmVmIjsKPj4+ICDCoMKgwqAgY2xvY2stb3V0cHV0LW5hbWVzID0gImRwX3BoeV9saW5r X2NsayIsCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgImRwX3Bo eV92Y29fZGl2X2NsayI7Cj4+IE5vIG5lZWQgdG8sIHRoZSBkcml2ZXIgY2FuIGdlbmVyYXRlIG5h bWVzIG9uIGl0cyBvd24uCj4gT2suCj4+Cj4+PiAgICAgICAgICAgICAgICAgICAgICAKPj4+ICDC oMKgwqAgcmVzZXRzID0gPCZnY2MgR0NDX1VTQjNQSFlfUEhZX1NFQ19CQ1IgPiwKPj4+ICDCoMKg wqDCoMKgwqDCoMKgIDwmZ2NjIEdDQ19VU0IzX0RQX1BIWV9TRUNfQkNSPjsKPj4+ICDCoMKgwqAg cmVzZXQtbmFtZXMgPSAicGh5IiwgInBoeV9waHkiOwo+PiAicGh5X3BoeSIsICJkcF9waHkiLiBJ cyB0aGVyZSBubyBHQ0NfVVNCM19QSFlfU0VDX0JDUj8KPiBUaGVyZSBhcmUgb25seSBHQ0NfVVNC Ml9QSFlfU0VDX0JDUiBhbmQgR0NDX1VTQjNQSFlfUEhZX1NFQ19CQ1IsIG5vIEdDQ19VU0IzX1BI WV9TRUNfQkNSLgoKQWNrLgoKPj4+ICDCoMKgwqAgcWNvbSx0Y3NyLXJlZyA9IDwmdGNzciAweGJm ZjA+LCA8JnRjc3IgMHhiMjRjPjsKPj4+ICDCoMKgwqAgcWNvbSx0Y3NyLW5hbWVzID0gInZsc19j bGFtcCIsICJkcF9waHlfbW9kZSI7IDw9PSBhZGRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0 eSB3aXRoIGxlZ2FjeSBjb25maWdzIHRoYXQgb25seSBoYWQgdmxzX2NsYW1wCj4+IE5vIG5lZWQg Zm9yIHFjb20sdGNzci1uYW1lcywgY29ycmVjdCBvdGhlcndpc2UuCj4+Cj4+PiAgwqDCoMKgICNj bG9jay1jZWxscyA9IDwxPjsKPj4+ICDCoMKgwqAgI3BoeS1jZWxscyA9IDwxPjsKPj4+Cj4+PiAg wqDCoMKgIHN0YXR1cyA9ICJkaXNhYmxlZCI7Cj4+PiB9Owo+Pj4KPj4+Pj4+PiBTaWduZWQtb2Zm LWJ5OiBYaWFuZ3h1IFlpbiA8eGlhbmd4dS55aW5Ab3NzLnF1YWxjb21tLmNvbT4KPj4+Pj4+PiAt LS0KPj4+Pj4+PiAgIC4uLi9iaW5kaW5ncy9waHkvcWNvbSxxY3M2MTUtcW1wLWRwLXBoeS55YW1s ICAgICAgIHwgMTExICsrKysrKysrKysrKysrKysrKysrKwo+Pj4+Pj4+ICAgMSBmaWxlIGNoYW5n ZWQsIDExMSBpbnNlcnRpb25zKCspCj4+Pj4+Pj4KCgotLSAKV2l0aCBiZXN0IHdpc2hlcwpEbWl0 cnkKCi0tIApsaW51eC1waHkgbWFpbGluZyBsaXN0CmxpbnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHBzOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXBo eQo=