From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-oi1-f170.google.com (mail-oi1-f170.google.com [209.85.167.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 476038475 for ; Sat, 6 Jan 2024 15:33:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="cYNsodgD" Received: by mail-oi1-f170.google.com with SMTP id 5614622812f47-3bb53e20a43so555648b6e.1 for ; Sat, 06 Jan 2024 07:33:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1704555210; x=1705160010; darn=lists.linux.dev; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=q3T5wprtApMiWljw88MpGG732frIyOF5occnfpC34xI=; b=cYNsodgDgU84LRtfMItzH/7UgU22u37y+m7Qh2+jw2vf/YOn7ZO3+hDYXbSByUPp+l HqNYxtn1ShRb1QUZwNqICh/hdmpQFXY7jx1zhsVACeH8dLwiHo3K2Y6nlHy/HpYL1hPJ cg4d+7TnZjFFaztODUoupsAlrRWDbh3TXrvQJbQQHya5FjzPq5E24WgUZa48fVZSKF5S uzd3K7atiX0O4aEjBxwKll9bpegiEhZ2OXmKNKHVGUqNyHtAYQhPCeLGDBe7hw6b8ZWy pFBbg30q2/TT1NSVSEu91Op7T3xVaJpRqgs4MQgSjJCSJgBVcX/tbeLVP8kq+lIIwmNR 9Beg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704555210; x=1705160010; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=q3T5wprtApMiWljw88MpGG732frIyOF5occnfpC34xI=; b=Wy1uY8W0ocBi98s6ZOO/ro2/A4EcUHWAb4bW6MkBcE4w1WJgt6B6t/AgI3bQXufBwH BhnNKyGOVPxLAzkeTXABsRendICsongEjN22K0eSnucvrXTUliwvD3HJKmqWyh5KNkSK XjeOaJiAgfFuYIwn5aveyWf/DZkC9Uej8RrlSMTPz7Od8T1i65AEyZyb/4vi4Hz3CEpM JMVBZVmXvZGTXDDK8CZJUynr2+T75u3czCvYFhfSz1qCPrPxAAgQmxzS/SkSZkV9mfQ9 La8z3dzn1yq+KWBs2P+8m/Ta++mMWEubM1MdlD0G9GsLJhl1D6Pek/XickTmBrv0Oc6a doRQ== X-Gm-Message-State: AOJu0YxBRSd5g4FfhhNijYfhe7GRaAhizc9XGyg1JfbxiAjXRsj7fnSI 131q1Jc85xi+4tSw4zSYRlGG4qu1Thg7 X-Google-Smtp-Source: AGHT+IE48HfYCoztai176Dl774YuvL1b4vOUtB7GUGBwrM5/DUhrnjx+9q3v/swZZE7n5JBxBFc8wg== X-Received: by 2002:a05:6808:1286:b0:3bb:e0dc:bef8 with SMTP id a6-20020a056808128600b003bbe0dcbef8mr1483126oiw.87.1704555210246; Sat, 06 Jan 2024 07:33:30 -0800 (PST) Received: from thinkpad ([103.197.115.97]) by smtp.gmail.com with ESMTPSA id ey1-20020a056a0038c100b006d9a6039745sm3210137pfb.40.2024.01.06.07.33.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Jan 2024 07:33:29 -0800 (PST) Date: Sat, 6 Jan 2024 21:03:23 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: krzysztof.kozlowski@linaro.org, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: Re: [PATCH v7 02/16] PCI: imx6: Simplify phy handling by using by using IMX6_PCIE_FLAG_HAS_PHY Message-ID: <20240106153323.GE2512@thinkpad> References: <20231227182727.1747435-1-Frank.Li@nxp.com> <20231227182727.1747435-3-Frank.Li@nxp.com> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20231227182727.1747435-3-Frank.Li@nxp.com> On Wed, Dec 27, 2023 at 01:27:13PM -0500, Frank Li wrote: > Refactors the phy handling logic in the imx6 PCI driver by adding > IMX6_PCIE_FLAG_HAS_PHY bitmask define for drvdata::flags. > > The drvdata::flags and a bitmask ensures a cleaner and more scalable > switch-case structure for handling phy. > > Signed-off-by: Frank Li > --- > > Notes: > Change from v4 to v5: > - none, Keep IMX6_PCIE_FLAG_HAS_PHY to indicate dts mismatch when platform > require phy suppport. > > Change from v1 to v3: > - none > > drivers/pci/controller/dwc/pci-imx6.c | 23 ++++++++++++++++------- > 1 file changed, 16 insertions(+), 7 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c > index 50d9faaa17f71..4d620249f3d52 100644 > --- a/drivers/pci/controller/dwc/pci-imx6.c > +++ b/drivers/pci/controller/dwc/pci-imx6.c > @@ -60,6 +60,9 @@ enum imx6_pcie_variants { > #define IMX6_PCIE_FLAG_IMX6_PHY BIT(0) > #define IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE BIT(1) > #define IMX6_PCIE_FLAG_SUPPORTS_SUSPEND BIT(2) > +#define IMX6_PCIE_FLAG_HAS_PHY BIT(3) Every PCIe setup requires PHY for its operation. Perhaps you are referring to external PHY? If so, please rename this to IMX6_PCIE_FLAG_HAS_EXT_PHY. > + > +#define imx6_check_flag(pci, val) (pci->drvdata->flags & val) > > #define IMX6_PCIE_MAX_CLKS 6 > > @@ -1277,6 +1280,13 @@ static int imx6_pcie_probe(struct platform_device *pdev) > if (ret) > return ret; > > + if (imx6_check_flag(imx6_pcie, IMX6_PCIE_FLAG_HAS_PHY)) { IMO, we would not need these kind of checks in the driver if the DT binding is properly validated using schema. But folks always want to validate "broken DT" in the drivers :( But I'm fine with this check for now since not everyone agree with above. - Mani > + imx6_pcie->phy = devm_phy_get(dev, "pcie-phy"); > + if (IS_ERR(imx6_pcie->phy)) > + return dev_err_probe(dev, PTR_ERR(imx6_pcie->phy), > + "failed to get pcie phy\n"); > + } > + > switch (imx6_pcie->drvdata->variant) { > case IMX7D: > if (dbi_base->start == IMX8MQ_PCIE2_BASE_ADDR) > @@ -1306,11 +1316,6 @@ static int imx6_pcie_probe(struct platform_device *pdev) > return dev_err_probe(dev, PTR_ERR(imx6_pcie->apps_reset), > "failed to get pcie apps reset control\n"); > > - imx6_pcie->phy = devm_phy_get(dev, "pcie-phy"); > - if (IS_ERR(imx6_pcie->phy)) > - return dev_err_probe(dev, PTR_ERR(imx6_pcie->phy), > - "failed to get pcie phy\n"); > - > break; > default: > break; > @@ -1444,13 +1449,15 @@ static const struct imx6_pcie_drvdata drvdata[] = { > }, > [IMX8MM] = { > .variant = IMX8MM, > - .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, > + .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND | > + IMX6_PCIE_FLAG_HAS_PHY, > .gpr = "fsl,imx8mm-iomuxc-gpr", > .clk_names = {"pcie_bus", "pcie", "pcie_aux"}, > }, > [IMX8MP] = { > .variant = IMX8MP, > - .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, > + .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND | > + IMX6_PCIE_FLAG_HAS_PHY, > .gpr = "fsl,imx8mp-iomuxc-gpr", > .clk_names = {"pcie_bus", "pcie", "pcie_aux"}, > }, > @@ -1462,12 +1469,14 @@ static const struct imx6_pcie_drvdata drvdata[] = { > }, > [IMX8MM_EP] = { > .variant = IMX8MM_EP, > + .flags = IMX6_PCIE_FLAG_HAS_PHY, > .mode = DW_PCIE_EP_TYPE, > .gpr = "fsl,imx8mm-iomuxc-gpr", > .clk_names = {"pcie_bus", "pcie", "pcie_aux"}, > }, > [IMX8MP_EP] = { > .variant = IMX8MP_EP, > + .flags = IMX6_PCIE_FLAG_HAS_PHY, > .mode = DW_PCIE_EP_TYPE, > .gpr = "fsl,imx8mp-iomuxc-gpr", > .clk_names = {"pcie_bus", "pcie", "pcie_aux"}, > -- > 2.34.1 > -- மணிவண்ணன் சதாசிவம் 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 74223C46CD2 for ; Sat, 6 Jan 2024 15:34:07 +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:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=YbT09JCeE/5CBXVPDrdAL2SGBthclJQ+BR993h0plio=; b=fR5tO/EXi2tqq4 3kFZVdRoFcbp8lxEuFd1ssTwitU3er/u2IuDNK7d+3EfH0Ca3p3WajpeFa+KPFOPxCXqm3BZL8Ccc Jp4MWKUDCkU9REB+eBR01Ehc8spG+hrE5gDyjOxzSXNk+jdoT7+PVoT+QzgKrjB4e+8nQgPrv/Eg5 76hWe7sBAqH0RWP00jSUgZXID/v0rn/uDlRXKloezU7/FF8WjHAa6aYNwG2E8JaXYrw64r8llleJr VW+Y/MUmmzUvw4sFcaEK9q1KHDYLMxgajPBfGjumq+e/Yn3mRvRg/2TvqHOtEK5oUrrAnAibSK3kV qyuZOEtg3WUiLC4xI0TQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rM8gA-001WcO-0Y; Sat, 06 Jan 2024 15:33:42 +0000 Received: from mail-oi1-x22f.google.com ([2607:f8b0:4864:20::22f]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rM8g6-001WbE-2y for linux-arm-kernel@lists.infradead.org; Sat, 06 Jan 2024 15:33:40 +0000 Received: by mail-oi1-x22f.google.com with SMTP id 5614622812f47-3bbd7d60729so562285b6e.0 for ; Sat, 06 Jan 2024 07:33:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1704555210; x=1705160010; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=q3T5wprtApMiWljw88MpGG732frIyOF5occnfpC34xI=; b=GRAxOh5FbpJk9LLeIzVYXc3lMMVnllwMIjdrjVFgnSR6vTRiuf4HNtXoWsyeGq4qbJ +qB6PhQOc27CBN6EIoYNqm2Tgej9Sz/Medr/CpbHKU6/gF2xx0okdelK3dVlPMe1XlpK 5PwnG7xrZBgeOo7yvGqvBTwYRPETsoh/S0jla/Ah6mxcY+DYZq20aiOR9BVzTwap2Co/ 7V6sUiGXfr6ji3fxOH0DuVLA79kD0dqYZ+rjW4+ufhwf96iXvf2kveDGUlNqVDtoSFpI JKlj+kv7R5Gorm2pMFPnh7vpBGH88U0aXcUshy5BNi2SELuF5zBdvnwi4w+jomTLLqDg PjQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704555210; x=1705160010; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=q3T5wprtApMiWljw88MpGG732frIyOF5occnfpC34xI=; b=El9QLMvAdRsO+VS6hCkKAeR4cyPqlimteBJxPoGzKhyjddHRZs1xRPRfXFwyTBat82 hnZLtNH6Odx7KyFJavuyy1tPHjsqpBN2CnThOiw088JMYB+1i4wM4Ta2DHQxZ00PGJmJ c7m/xd3SjhObTF9+fJy86XRapA2+0sRIjo6V5aXJbAOnlcGEvAxweQrgQZvteMNI7JAP rrAzrteslfvW4BVoXzgYkp6uuc9mJdYw3S+2Vn4mafGl7IKDX08iXevLDo3RdlSp31gs vRdPcF8Rj4tEVZZW0UL1evf94YWVMY2vMbK3d7llU/mY4iFh2RUr2uQYO4hCOYN/WPSB c0rQ== X-Gm-Message-State: AOJu0YxE+E7R6/l+1RYJsqdntTNR2y9tcOS1i3tGqHbMsjL/qp2TvBT4 RQvxB5d3VjLEHbW0l7eAnc/txOKZkWGS X-Google-Smtp-Source: AGHT+IE48HfYCoztai176Dl774YuvL1b4vOUtB7GUGBwrM5/DUhrnjx+9q3v/swZZE7n5JBxBFc8wg== X-Received: by 2002:a05:6808:1286:b0:3bb:e0dc:bef8 with SMTP id a6-20020a056808128600b003bbe0dcbef8mr1483126oiw.87.1704555210246; Sat, 06 Jan 2024 07:33:30 -0800 (PST) Received: from thinkpad ([103.197.115.97]) by smtp.gmail.com with ESMTPSA id ey1-20020a056a0038c100b006d9a6039745sm3210137pfb.40.2024.01.06.07.33.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Jan 2024 07:33:29 -0800 (PST) Date: Sat, 6 Jan 2024 21:03:23 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: krzysztof.kozlowski@linaro.org, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: Re: [PATCH v7 02/16] PCI: imx6: Simplify phy handling by using by using IMX6_PCIE_FLAG_HAS_PHY Message-ID: <20240106153323.GE2512@thinkpad> References: <20231227182727.1747435-1-Frank.Li@nxp.com> <20231227182727.1747435-3-Frank.Li@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20231227182727.1747435-3-Frank.Li@nxp.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240106_073338_982228_D90D9754 X-CRM114-Status: GOOD ( 23.38 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gV2VkLCBEZWMgMjcsIDIwMjMgYXQgMDE6Mjc6MTNQTSAtMDUwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gUmVmYWN0b3JzIHRoZSBwaHkgaGFuZGxpbmcgbG9naWMgaW4gdGhlIGlteDYgUENJIGRyaXZl ciBieSBhZGRpbmcKPiBJTVg2X1BDSUVfRkxBR19IQVNfUEhZIGJpdG1hc2sgZGVmaW5lIGZvciBk cnZkYXRhOjpmbGFncy4KPiAKPiBUaGUgZHJ2ZGF0YTo6ZmxhZ3MgYW5kIGEgYml0bWFzayBlbnN1 cmVzIGEgY2xlYW5lciBhbmQgbW9yZSBzY2FsYWJsZQo+IHN3aXRjaC1jYXNlIHN0cnVjdHVyZSBm b3IgaGFuZGxpbmcgcGh5Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEZyYW5rIExpIDxGcmFuay5MaUBu eHAuY29tPgo+IC0tLQo+IAo+IE5vdGVzOgo+ICAgICBDaGFuZ2UgZnJvbSB2NCB0byB2NToKPiAg ICAgLSBub25lLCBLZWVwIElNWDZfUENJRV9GTEFHX0hBU19QSFkgdG8gaW5kaWNhdGUgZHRzIG1p c21hdGNoIHdoZW4gcGxhdGZvcm0KPiAgICAgcmVxdWlyZSBwaHkgc3VwcHBvcnQuCj4gICAgIAo+ ICAgICBDaGFuZ2UgZnJvbSB2MSB0byB2MzoKPiAgICAgLSBub25lCj4gCj4gIGRyaXZlcnMvcGNp L2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMgfCAyMyArKysrKysrKysrKysrKysrLS0tLS0tLQo+ ICAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWlteDYuYyBiL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMKPiBpbmRleCA1MGQ5ZmFhYTE3ZjcxLi40 ZDYyMDI0OWYzZDUyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3Bj aS1pbXg2LmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jCj4g QEAgLTYwLDYgKzYwLDkgQEAgZW51bSBpbXg2X3BjaWVfdmFyaWFudHMgewo+ICAjZGVmaW5lIElN WDZfUENJRV9GTEFHX0lNWDZfUEhZCQkJQklUKDApCj4gICNkZWZpbmUgSU1YNl9QQ0lFX0ZMQUdf SU1YNl9TUEVFRF9DSEFOR0UJQklUKDEpCj4gICNkZWZpbmUgSU1YNl9QQ0lFX0ZMQUdfU1VQUE9S VFNfU1VTUEVORAkJQklUKDIpCj4gKyNkZWZpbmUgSU1YNl9QQ0lFX0ZMQUdfSEFTX1BIWQkJCUJJ VCgzKQoKRXZlcnkgUENJZSBzZXR1cCByZXF1aXJlcyBQSFkgZm9yIGl0cyBvcGVyYXRpb24uIFBl cmhhcHMgeW91IGFyZSByZWZlcnJpbmcgdG8KZXh0ZXJuYWwgUEhZPyBJZiBzbywgcGxlYXNlIHJl bmFtZSB0aGlzIHRvIElNWDZfUENJRV9GTEFHX0hBU19FWFRfUEhZLgoKPiArCj4gKyNkZWZpbmUg aW14Nl9jaGVja19mbGFnKHBjaSwgdmFsKSAgICAgKHBjaS0+ZHJ2ZGF0YS0+ZmxhZ3MgJiB2YWwp Cj4gIAo+ICAjZGVmaW5lIElNWDZfUENJRV9NQVhfQ0xLUyAgICAgICA2Cj4gIAo+IEBAIC0xMjc3 LDYgKzEyODAsMTMgQEAgc3RhdGljIGludCBpbXg2X3BjaWVfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gKwlpZiAo aW14Nl9jaGVja19mbGFnKGlteDZfcGNpZSwgSU1YNl9QQ0lFX0ZMQUdfSEFTX1BIWSkpIHsKCklN Tywgd2Ugd291bGQgbm90IG5lZWQgdGhlc2Uga2luZCBvZiBjaGVja3MgaW4gdGhlIGRyaXZlciBp ZiB0aGUgRFQgYmluZGluZyBpcwpwcm9wZXJseSB2YWxpZGF0ZWQgdXNpbmcgc2NoZW1hLiBCdXQg Zm9sa3MgYWx3YXlzIHdhbnQgdG8gdmFsaWRhdGUgImJyb2tlbiBEVCIKaW4gdGhlIGRyaXZlcnMg OigKCkJ1dCBJJ20gZmluZSB3aXRoIHRoaXMgY2hlY2sgZm9yIG5vdyBzaW5jZSBub3QgZXZlcnlv bmUgYWdyZWUgd2l0aCBhYm92ZS4KCi0gTWFuaQoKPiArCQlpbXg2X3BjaWUtPnBoeSA9IGRldm1f cGh5X2dldChkZXYsICJwY2llLXBoeSIpOwo+ICsJCWlmIChJU19FUlIoaW14Nl9wY2llLT5waHkp KQo+ICsJCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoaW14Nl9wY2llLT5waHkp LAo+ICsJCQkJCSAgICAgImZhaWxlZCB0byBnZXQgcGNpZSBwaHlcbiIpOwo+ICsJfQo+ICsKPiAg CXN3aXRjaCAoaW14Nl9wY2llLT5kcnZkYXRhLT52YXJpYW50KSB7Cj4gIAljYXNlIElNWDdEOgo+ ICAJCWlmIChkYmlfYmFzZS0+c3RhcnQgPT0gSU1YOE1RX1BDSUUyX0JBU0VfQUREUikKPiBAQCAt MTMwNiwxMSArMTMxNiw2IEBAIHN0YXRpYyBpbnQgaW14Nl9wY2llX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAkJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VS UihpbXg2X3BjaWUtPmFwcHNfcmVzZXQpLAo+ICAJCQkJCSAgICAgImZhaWxlZCB0byBnZXQgcGNp ZSBhcHBzIHJlc2V0IGNvbnRyb2xcbiIpOwo+ICAKPiAtCQlpbXg2X3BjaWUtPnBoeSA9IGRldm1f cGh5X2dldChkZXYsICJwY2llLXBoeSIpOwo+IC0JCWlmIChJU19FUlIoaW14Nl9wY2llLT5waHkp KQo+IC0JCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoaW14Nl9wY2llLT5waHkp LAo+IC0JCQkJCSAgICAgImZhaWxlZCB0byBnZXQgcGNpZSBwaHlcbiIpOwo+IC0KPiAgCQlicmVh azsKPiAgCWRlZmF1bHQ6Cj4gIAkJYnJlYWs7Cj4gQEAgLTE0NDQsMTMgKzE0NDksMTUgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBpbXg2X3BjaWVfZHJ2ZGF0YSBkcnZkYXRhW10gPSB7Cj4gIAl9LAo+ ICAJW0lNWDhNTV0gPSB7Cj4gIAkJLnZhcmlhbnQgPSBJTVg4TU0sCj4gLQkJLmZsYWdzID0gSU1Y Nl9QQ0lFX0ZMQUdfU1VQUE9SVFNfU1VTUEVORCwKPiArCQkuZmxhZ3MgPSBJTVg2X1BDSUVfRkxB R19TVVBQT1JUU19TVVNQRU5EIHwKPiArCQkJIElNWDZfUENJRV9GTEFHX0hBU19QSFksCj4gIAkJ LmdwciA9ICJmc2wsaW14OG1tLWlvbXV4Yy1ncHIiLAo+ICAJCS5jbGtfbmFtZXMgPSB7InBjaWVf YnVzIiwgInBjaWUiLCAicGNpZV9hdXgifSwKPiAgCX0sCj4gIAlbSU1YOE1QXSA9IHsKPiAgCQku dmFyaWFudCA9IElNWDhNUCwKPiAtCQkuZmxhZ3MgPSBJTVg2X1BDSUVfRkxBR19TVVBQT1JUU19T VVNQRU5ELAo+ICsJCS5mbGFncyA9IElNWDZfUENJRV9GTEFHX1NVUFBPUlRTX1NVU1BFTkQgfAo+ ICsJCQkgSU1YNl9QQ0lFX0ZMQUdfSEFTX1BIWSwKPiAgCQkuZ3ByID0gImZzbCxpbXg4bXAtaW9t dXhjLWdwciIsCj4gIAkJLmNsa19uYW1lcyA9IHsicGNpZV9idXMiLCAicGNpZSIsICJwY2llX2F1 eCJ9LAo+ICAJfSwKPiBAQCAtMTQ2MiwxMiArMTQ2OSwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGlteDZfcGNpZV9kcnZkYXRhIGRydmRhdGFbXSA9IHsKPiAgCX0sCj4gIAlbSU1YOE1NX0VQXSA9 IHsKPiAgCQkudmFyaWFudCA9IElNWDhNTV9FUCwKPiArCQkuZmxhZ3MgPSBJTVg2X1BDSUVfRkxB R19IQVNfUEhZLAo+ICAJCS5tb2RlID0gRFdfUENJRV9FUF9UWVBFLAo+ICAJCS5ncHIgPSAiZnNs LGlteDhtbS1pb211eGMtZ3ByIiwKPiAgCQkuY2xrX25hbWVzID0geyJwY2llX2J1cyIsICJwY2ll IiwgInBjaWVfYXV4In0sCj4gIAl9LAo+ICAJW0lNWDhNUF9FUF0gPSB7Cj4gIAkJLnZhcmlhbnQg PSBJTVg4TVBfRVAsCj4gKwkJLmZsYWdzID0gSU1YNl9QQ0lFX0ZMQUdfSEFTX1BIWSwKPiAgCQku bW9kZSA9IERXX1BDSUVfRVBfVFlQRSwKPiAgCQkuZ3ByID0gImZzbCxpbXg4bXAtaW9tdXhjLWdw ciIsCj4gIAkJLmNsa19uYW1lcyA9IHsicGNpZV9idXMiLCAicGNpZSIsICJwY2llX2F1eCJ9LAo+ IC0tIAo+IDIuMzQuMQo+IAoKLS0gCuCuruCuo+Cuv+CuteCuo+CvjeCuo+CuqeCvjSDgrprgrqTg rr7grprgrr/grrXgrq7gr40KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK