From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.44]) (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 F2EE245C0C for ; Sun, 17 Dec 2023 17:18:21 +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="w2DWBvTa" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7b7c33eb6ceso54481139f.3 for ; Sun, 17 Dec 2023 09:18:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1702833501; x=1703438301; 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=yvzvPPOvURo9eUay1zjag8iF5jEJZnvBduw4ZeL4Nkg=; b=w2DWBvTaPy+QBHTy5ykQsazjXtMl8cY/rQZYQsBp6X2+veui5qVQ0dVafSI3mqBUqh 5MoW8cIs8lGbqsqP+6R3O09oXhb7PSGdWUPFWygr16wjUgOwmVU1BPL2ko/s9gPDOfxB cKoGbd+IeFfeg7pXnYHl9GRtjsxan1wT1s3MmLcA18iEA93JSnIZZ8+I0w+XQNJNyljn Ahmu33Eix2W6A6ddVoxxdJ5wFQnXOZjGG5vs+yclYcqHs3GSCynHS6zPzEgxECjjGvyE 77lOCkyZUYrq33n0rtm91Wfp6NotvcT2VBP0xTJaezDGVhL7n4O5InuQ85fP5b4IeRMu ZBmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702833501; x=1703438301; 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=yvzvPPOvURo9eUay1zjag8iF5jEJZnvBduw4ZeL4Nkg=; b=LIGsa/1B5yRfXcgomPZtdtyTgk9fx7LSWsNDGwtfZfOcC+jfNH6Nh47M2fkInczJZz CDqCXl1i6zVm7nkrikyyPONFNjCJ4cxkEiwoxtalPl1afayWDDiy8NoWXgFd45Yk4aDJ AkSWwKfS4cb02jYzkBxV266AG/G0EwuEhPGWkaocaG/6XiNB6oZWTOmaO7/kMV1BZtbb k6X4H0MuTAlxy3wzuwAV1zOjBv3fjkXJQ52YEuNxvJW2oEMl1YJ+FloUhyWU5kSrI/Ay gHcQlPm9nouMmDnbNO9oD+QMk+Xc94apYuIwz0LSsPpg3ILuswYG+z2M00heFN2fPLQr tUDw== X-Gm-Message-State: AOJu0YxVi0XB8X1s//mI0Z8EyA8sEaWp22hVyhKPYS7y4ohffGNJewoB Kyzs678s4/3QL3trXr1SDfjt X-Google-Smtp-Source: AGHT+IG3iO9wwq2fHlKI2rNEIawMaBY13xkH+6DklBN+WvV2sdv33dbHZONs8rR6f4Lcf7btRm5LJw== X-Received: by 2002:a05:6602:4902:b0:7b6:fc2d:6b52 with SMTP id ef2-20020a056602490200b007b6fc2d6b52mr17463986iob.4.1702833501039; Sun, 17 Dec 2023 09:18:21 -0800 (PST) Received: from thinkpad ([103.28.246.178]) by smtp.gmail.com with ESMTPSA id q18-20020a17090311d200b001d3867b6424sm4383852plh.113.2023.12.17.09.18.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Dec 2023 09:18:20 -0800 (PST) Date: Sun, 17 Dec 2023 22:48:11 +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 v4 02/15] PCI: imx6: Simplify phy handling by using by using IMX6_PCIE_FLAG_HAS_PHY Message-ID: <20231217171811.GD6748@thinkpad> References: <20231217051210.754832-1-Frank.Li@nxp.com> <20231217051210.754832-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: <20231217051210.754832-3-Frank.Li@nxp.com> On Sun, Dec 17, 2023 at 12:11:57AM -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 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 2086214345e9a..91ba26a4b4c3d 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) > + > +#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)) { > + imx6_pcie->phy = devm_phy_get(dev, "pcie-phy"); Can't you use devm_phy_optional_get()? This will return NULL if the PHY is not defined in DT. So you can use IS_ERR() to catch error if there are issues in acquiring PHY if defined and NULL can be safely passed to other PHY APIs like phy_init() as well. With this, you won't need a flag in drv_data and can also get rid of the condition around PHY APIs. - Mani > + 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; > @@ -1447,13 +1452,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 = {IMX6_CLKS_COMMON, "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 = {IMX6_CLKS_COMMON, "pcie_aux"}, > }, > @@ -1465,12 +1472,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 = {IMX6_CLKS_COMMON, "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 = {IMX6_CLKS_COMMON, "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 7C310C3DA6E for ; Sun, 17 Dec 2023 17:18:57 +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=EjAMoC4veCUm31S8VzO0gI/SS63BRujGOzqUPv5VNBU=; b=3ypIWHf1rPlV/A wUt7UfI6/HMvk+mUXuyLyNmLCA7esgvGKF7QAsjmr2cPbt72OZEQ8HCAJS5pWpOSKkCY3AOXTi5wC BZ+rFc8BInckwkItBXbS/FysK/dFE0QT5xodwFigTjn6bWDKVMRhw8WukIRU33mrqrtOMd/0/qW17 Zqy3AcHWzPiaKHyb/p7q82PZugyR7gYMPTE1QOgnBDH9NvjO1z5S5eqt9Ll4fKVGobPwlQ7XgmSzf uB6/rEnXV7rJca+J45EuElHKZLnCZ8+agrjLAilTbG6QtyZkWkAgWaYMHKX4OOV7EN5w0w1dL26z9 hYcASYkN94uq80u1EUkQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rEumb-008BZq-1l; Sun, 17 Dec 2023 17:18:29 +0000 Received: from mail-io1-xd30.google.com ([2607:f8b0:4864:20::d30]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rEumZ-008BZK-11 for linux-arm-kernel@lists.infradead.org; Sun, 17 Dec 2023 17:18:28 +0000 Received: by mail-io1-xd30.google.com with SMTP id ca18e2360f4ac-7b798e6f702so118893239f.2 for ; Sun, 17 Dec 2023 09:18:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1702833501; x=1703438301; 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=yvzvPPOvURo9eUay1zjag8iF5jEJZnvBduw4ZeL4Nkg=; b=EOmVZhbvVnYch9kccnvZOow1QDhSCxEMIfrgPnAHe1QdTkC8TTgzFl5IZTqb5A+EmD Z3XUcD1xCpMg6SRP0oPs50QEPwtYPDPcHeu9dVTw+44Qdud1yesXh1VUokvjFJqGZB8Y gcOE5OTbb/COqPR9ft0TKnhjFo1XPvRHamAP0W6v//qBFXxDLiULBdFlFLzwYUIO9RIK 3olBnT2GFHMfhdhbFkRDzmytduQ+GrGwg+sslCgZ/HX6VDD3/MjHavxLtkl0Db+v0b6F GDPjCSy0/1mPqJzVzrfb671rIXpcMB3hixvw7t1BfhzHGMv7hFpe7DsMw2gC5TneryUK vAvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702833501; x=1703438301; 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=yvzvPPOvURo9eUay1zjag8iF5jEJZnvBduw4ZeL4Nkg=; b=dc3KTByL4Upp/Bx/Es/ZNsVEIYBSZKm5Bxd3oeMfpAFpsZjovUAyEZ3DTz4Z+hETeO JOEeaftZJiy3fnZVDEybUBavDhQPqjBzH2LzYEf5NCYnMMyhcX518srLT/82VnO7hZwl cRHPYML3vl1hD9oFMJ9EBKnTSI+TQbwNJRSn0QKtXYbcqd4jSCO2auA5EMZV8ELN2dGg EhozcbOnrEJAnnvui6aph3ypL8XEHc30DYmB/iN4uXxP+UX3Z7sNQorV/cCtUAdJwitT dEWFhC/nmTcxBbePhyaH1NJ0etI/dsodyjr/AeRp8pE/4aGw32wlqfOg/MgbqJ7m8dNV E3aA== X-Gm-Message-State: AOJu0YxuRR9zk+RphOP8HhTR9bFCEzOnsmrxxBRXcPBw1rPNaHz75oXj aIgEUDDgkAjJiVhOmWv+5MHD X-Google-Smtp-Source: AGHT+IG3iO9wwq2fHlKI2rNEIawMaBY13xkH+6DklBN+WvV2sdv33dbHZONs8rR6f4Lcf7btRm5LJw== X-Received: by 2002:a05:6602:4902:b0:7b6:fc2d:6b52 with SMTP id ef2-20020a056602490200b007b6fc2d6b52mr17463986iob.4.1702833501039; Sun, 17 Dec 2023 09:18:21 -0800 (PST) Received: from thinkpad ([103.28.246.178]) by smtp.gmail.com with ESMTPSA id q18-20020a17090311d200b001d3867b6424sm4383852plh.113.2023.12.17.09.18.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Dec 2023 09:18:20 -0800 (PST) Date: Sun, 17 Dec 2023 22:48:11 +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 v4 02/15] PCI: imx6: Simplify phy handling by using by using IMX6_PCIE_FLAG_HAS_PHY Message-ID: <20231217171811.GD6748@thinkpad> References: <20231217051210.754832-1-Frank.Li@nxp.com> <20231217051210.754832-3-Frank.Li@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20231217051210.754832-3-Frank.Li@nxp.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231217_091827_358229_E4D49424 X-CRM114-Status: GOOD ( 22.48 ) 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 T24gU3VuLCBEZWMgMTcsIDIwMjMgYXQgMTI6MTE6NTdBTSAtMDUwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gUmVmYWN0b3JzIHRoZSBwaHkgaGFuZGxpbmcgbG9naWMgaW4gdGhlIGlteDYgUENJIGRyaXZl ciBieSBhZGRpbmcKPiBJTVg2X1BDSUVfRkxBR19IQVNfUEhZIGJpdG1hc2sgZGVmaW5lIGZvciBk cnZkYXRhOjpmbGFncy4KPiAKPiBUaGUgZHJ2ZGF0YTo6ZmxhZ3MgYW5kIGEgYml0bWFzayBlbnN1 cmVzIGEgY2xlYW5lciBhbmQgbW9yZSBzY2FsYWJsZQo+IHN3aXRjaC1jYXNlIHN0cnVjdHVyZSBm b3IgaGFuZGxpbmcgcGh5Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEZyYW5rIExpIDxGcmFuay5MaUBu eHAuY29tPgo+IC0tLQo+IAo+IE5vdGVzOgo+ICAgICBDaGFuZ2UgZnJvbSB2MSB0byB2MzoKPiAg ICAgLSBub25lCj4gCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMgfCAy MyArKysrKysrKysrKysrKysrLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9u cygrKSwgNyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJv bGxlci9kd2MvcGNpLWlteDYuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2 LmMKPiBpbmRleCAyMDg2MjE0MzQ1ZTlhLi45MWJhMjZhNGI0YzNkIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMKPiArKysgYi9kcml2ZXJzL3BjaS9j b250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jCj4gQEAgLTYwLDYgKzYwLDkgQEAgZW51bSBpbXg2X3Bj aWVfdmFyaWFudHMgewo+ICAjZGVmaW5lIElNWDZfUENJRV9GTEFHX0lNWDZfUEhZCQkJQklUKDAp Cj4gICNkZWZpbmUgSU1YNl9QQ0lFX0ZMQUdfSU1YNl9TUEVFRF9DSEFOR0UJQklUKDEpCj4gICNk ZWZpbmUgSU1YNl9QQ0lFX0ZMQUdfU1VQUE9SVFNfU1VTUEVORAkJQklUKDIpCj4gKyNkZWZpbmUg SU1YNl9QQ0lFX0ZMQUdfSEFTX1BIWQkJCUJJVCgzKQo+ICsKPiArI2RlZmluZSBpbXg2X2NoZWNr X2ZsYWcocGNpLCB2YWwpICAgICAocGNpLT5kcnZkYXRhLT5mbGFncyAmIHZhbCkKPiAgCj4gICNk ZWZpbmUgSU1YNl9QQ0lFX01BWF9DTEtTICAgICAgIDYKPiAgCj4gQEAgLTEyNzcsNiArMTI4MCwx MyBAQCBzdGF0aWMgaW50IGlteDZfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiArCWlmIChpbXg2X2NoZWNr X2ZsYWcoaW14Nl9wY2llLCBJTVg2X1BDSUVfRkxBR19IQVNfUEhZKSkgewo+ICsJCWlteDZfcGNp ZS0+cGh5ID0gZGV2bV9waHlfZ2V0KGRldiwgInBjaWUtcGh5Iik7CgpDYW4ndCB5b3UgdXNlIGRl dm1fcGh5X29wdGlvbmFsX2dldCgpPyBUaGlzIHdpbGwgcmV0dXJuIE5VTEwgaWYgdGhlIFBIWSBp cyBub3QKZGVmaW5lZCBpbiBEVC4gU28geW91IGNhbiB1c2UgSVNfRVJSKCkgdG8gY2F0Y2ggZXJy b3IgaWYgdGhlcmUgYXJlIGlzc3VlcyBpbgphY3F1aXJpbmcgUEhZIGlmIGRlZmluZWQgYW5kIE5V TEwgY2FuIGJlIHNhZmVseSBwYXNzZWQgdG8gb3RoZXIgUEhZIEFQSXMgbGlrZQpwaHlfaW5pdCgp IGFzIHdlbGwuCgpXaXRoIHRoaXMsIHlvdSB3b24ndCBuZWVkIGEgZmxhZyBpbiBkcnZfZGF0YSBh bmQgY2FuIGFsc28gZ2V0IHJpZCBvZiB0aGUKY29uZGl0aW9uIGFyb3VuZCBQSFkgQVBJcy4KCi0g TWFuaQoKPiArCQlpZiAoSVNfRVJSKGlteDZfcGNpZS0+cGh5KSkKPiArCQkJcmV0dXJuIGRldl9l cnJfcHJvYmUoZGV2LCBQVFJfRVJSKGlteDZfcGNpZS0+cGh5KSwKPiArCQkJCQkgICAgICJmYWls ZWQgdG8gZ2V0IHBjaWUgcGh5XG4iKTsKPiArCX0KPiArCj4gIAlzd2l0Y2ggKGlteDZfcGNpZS0+ ZHJ2ZGF0YS0+dmFyaWFudCkgewo+ICAJY2FzZSBJTVg3RDoKPiAgCQlpZiAoZGJpX2Jhc2UtPnN0 YXJ0ID09IElNWDhNUV9QQ0lFMl9CQVNFX0FERFIpCj4gQEAgLTEzMDYsMTEgKzEzMTYsNiBAQCBz dGF0aWMgaW50IGlteDZfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ ICAJCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoaW14Nl9wY2llLT5hcHBzX3Jl c2V0KSwKPiAgCQkJCQkgICAgICJmYWlsZWQgdG8gZ2V0IHBjaWUgYXBwcyByZXNldCBjb250cm9s XG4iKTsKPiAgCj4gLQkJaW14Nl9wY2llLT5waHkgPSBkZXZtX3BoeV9nZXQoZGV2LCAicGNpZS1w aHkiKTsKPiAtCQlpZiAoSVNfRVJSKGlteDZfcGNpZS0+cGh5KSkKPiAtCQkJcmV0dXJuIGRldl9l cnJfcHJvYmUoZGV2LCBQVFJfRVJSKGlteDZfcGNpZS0+cGh5KSwKPiAtCQkJCQkgICAgICJmYWls ZWQgdG8gZ2V0IHBjaWUgcGh5XG4iKTsKPiAtCj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+ICAJ CWJyZWFrOwo+IEBAIC0xNDQ3LDEzICsxNDUyLDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW14 Nl9wY2llX2RydmRhdGEgZHJ2ZGF0YVtdID0gewo+ICAJfSwKPiAgCVtJTVg4TU1dID0gewo+ICAJ CS52YXJpYW50ID0gSU1YOE1NLAo+IC0JCS5mbGFncyA9IElNWDZfUENJRV9GTEFHX1NVUFBPUlRT X1NVU1BFTkQsCj4gKwkJLmZsYWdzID0gSU1YNl9QQ0lFX0ZMQUdfU1VQUE9SVFNfU1VTUEVORCB8 Cj4gKwkJCSBJTVg2X1BDSUVfRkxBR19IQVNfUEhZLAo+ICAJCS5ncHIgPSAiZnNsLGlteDhtbS1p b211eGMtZ3ByIiwKPiAgCQkuY2xrX25hbWVzID0ge0lNWDZfQ0xLU19DT01NT04sICJwY2llX2F1 eCJ9LAo+ICAJfSwKPiAgCVtJTVg4TVBdID0gewo+ICAJCS52YXJpYW50ID0gSU1YOE1QLAo+IC0J CS5mbGFncyA9IElNWDZfUENJRV9GTEFHX1NVUFBPUlRTX1NVU1BFTkQsCj4gKwkJLmZsYWdzID0g SU1YNl9QQ0lFX0ZMQUdfU1VQUE9SVFNfU1VTUEVORCB8Cj4gKwkJCSBJTVg2X1BDSUVfRkxBR19I QVNfUEhZLAo+ICAJCS5ncHIgPSAiZnNsLGlteDhtcC1pb211eGMtZ3ByIiwKPiAgCQkuY2xrX25h bWVzID0ge0lNWDZfQ0xLU19DT01NT04sICJwY2llX2F1eCJ9LAo+ICAJfSwKPiBAQCAtMTQ2NSwx MiArMTQ3MiwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlteDZfcGNpZV9kcnZkYXRhIGRydmRh dGFbXSA9IHsKPiAgCX0sCj4gIAlbSU1YOE1NX0VQXSA9IHsKPiAgCQkudmFyaWFudCA9IElNWDhN TV9FUCwKPiArCQkuZmxhZ3MgPSBJTVg2X1BDSUVfRkxBR19IQVNfUEhZLAo+ICAJCS5tb2RlID0g RFdfUENJRV9FUF9UWVBFLAo+ICAJCS5ncHIgPSAiZnNsLGlteDhtbS1pb211eGMtZ3ByIiwKPiAg CQkuY2xrX25hbWVzID0ge0lNWDZfQ0xLU19DT01NT04sICJwY2llX2F1eCJ9LAo+ICAJfSwKPiAg CVtJTVg4TVBfRVBdID0gewo+ICAJCS52YXJpYW50ID0gSU1YOE1QX0VQLAo+ICsJCS5mbGFncyA9 IElNWDZfUENJRV9GTEFHX0hBU19QSFksCj4gIAkJLm1vZGUgPSBEV19QQ0lFX0VQX1RZUEUsCj4g IAkJLmdwciA9ICJmc2wsaW14OG1wLWlvbXV4Yy1ncHIiLAo+ICAJCS5jbGtfbmFtZXMgPSB7SU1Y Nl9DTEtTX0NPTU1PTiwgInBjaWVfYXV4In0sCj4gLS0gCj4gMi4zNC4xCj4gCgotLSAK4K6u4K6j 4K6/4K614K6j4K+N4K6j4K6p4K+NIOCumuCupOCuvuCumuCuv+CuteCuruCvjQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBt YWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=