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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F1A22C77B6F for ; Tue, 11 Apr 2023 11:20:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229608AbjDKLUD (ORCPT ); Tue, 11 Apr 2023 07:20:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58898 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229676AbjDKLUB (ORCPT ); Tue, 11 Apr 2023 07:20:01 -0400 Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CBD5A3596 for ; Tue, 11 Apr 2023 04:19:59 -0700 (PDT) Received: by mail-pj1-x1035.google.com with SMTP id c10-20020a17090abf0a00b0023d1bbd9f9eso10599175pjs.0 for ; Tue, 11 Apr 2023 04:19:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1681211999; 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=wBQKs0yhrvEAfRkMdCXLMJEOrscAPx9qxfkvCvvtvfA=; b=De8rEAx354hB6hCSAFG7oboildxqBheGwOenVHFkWMblMsEkD/+0eXo3/mG3rs50An kWw6C+C1M0ZQYjSdptI7/XL7b7De17BuGhpwihSva0I7dBeuWkopYTYE5YknBky9lh6V ZYPYPdkcmyCoZ2cpaG00j0m4uJVD7j/GBY62PsI0WbCEOLfOGRAd5wlMGbodFnIsUBB6 LZgDClnNxNxLNRQD5aZTK9Y7wFJte8LGWQ3fFk5wg0M4DXT+7IBWF7Vz0HQKcQ1qaMjc ghgexkw/J/rpGBBEFFmi3kOC02bR2+0PlHaur/1EpYHt5InoQ74/wSO1TDtSZarYDx40 qrtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1681211999; 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=wBQKs0yhrvEAfRkMdCXLMJEOrscAPx9qxfkvCvvtvfA=; b=OnmNV2QFg611yfiKTsorJ7DxSpq2wtkXcjplVeQdKIw9T0fBJQ2U3g/XJC0oCBcEBE ugiOnmKTMA2ix1zPOCzLQLPkjxXjXCkwEANnb50cy7wozt/4EPoPXw6TQRSPYFPyO8m9 X48+ndE8/+EGQe2zOrOV3pmYqi3EJ0DL1lZa1G+nFm9LJAEU51fN93TfeRMZEzJzp2wQ wON5h1AXuPeFRhNwnNUUI02XZxEnjB6mFMo3RUmji3MwZQGfYZegTBRXBEdrXUnXNdZD Zn3jliBGmVfOZhuDSVTYXavF4XyXFMTwm7DRnxHceYyIg788qLZw2n9l8EmCEY74X2/0 fNSw== X-Gm-Message-State: AAQBX9eoUXMnXmA0gLl7Qq9OjUJ3mR9U6g2C6XBgkqZBeUwflWtYs6tm siHTbfrAJFOg3lRZkIAz1yP4 X-Google-Smtp-Source: AKy350ZLs5F0geBGQzE6rxmOTmSs4MmcKy9zI+Tw9XY3R2ci0J/2ubUrzPs0XDNuJTJil32p2+2knQ== X-Received: by 2002:a17:902:cec1:b0:19e:ad18:da5c with SMTP id d1-20020a170902cec100b0019ead18da5cmr3463701plg.37.1681211999280; Tue, 11 Apr 2023 04:19:59 -0700 (PDT) Received: from thinkpad ([117.216.120.128]) by smtp.gmail.com with ESMTPSA id jw23-20020a170903279700b0019e60c645b1sm3539765plb.305.2023.04.11.04.19.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Apr 2023 04:19:58 -0700 (PDT) Date: Tue, 11 Apr 2023 16:49:47 +0530 From: Manivannan Sadhasivam To: Serge Semin , g@thinkpad Cc: Bjorn Helgaas , Lorenzo Pieralisi , Cai Huoqing , Jingoo Han , Gustavo Pimentel , Vinod Koul , Yoshihiro Shimoda , Rob Herring , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Nobuhiro Iwamatsu , Serge Semin , Alexey Malahov , Pavel Parkhomenko , linux-pci@vger.kernel.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Bjorn Helgaas , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH RESEND v3 07/10] PCI: visconti: Convert to using generic resources getter Message-ID: <20230411111947.GI5333@thinkpad> References: <20230411033928.30397-1-Sergey.Semin@baikalelectronics.ru> <20230411033928.30397-8-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20230411033928.30397-8-Sergey.Semin@baikalelectronics.ru> Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org On Tue, Apr 11, 2023 at 06:39:25AM +0300, Serge Semin wrote: > The generic resources request infrastructure has been recently added to > the DW PCIe core driver. Since the DT-bindings of the Toshibo Visconti > PCIe Host controller is fully compatible with the generic names set let's > convert the driver to using that infrastructure. It won't take much effort > since the low-level device driver implies the resources request only with > no additional manipulations involving them. So just drop the locally > defined clocks request procedures, activate the generic resources request > capability and make sure the mandatory resources have been requested by > the DW PCIe core driver. > > Suggested-by: Bjorn Helgaas > Signed-off-by: Serge Semin > --- > drivers/pci/controller/dwc/pcie-visconti.c | 37 ++++++++++------------ > 1 file changed, 17 insertions(+), 20 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pcie-visconti.c b/drivers/pci/controller/dwc/pcie-visconti.c > index 71026fefa366..ae1517b52c58 100644 > --- a/drivers/pci/controller/dwc/pcie-visconti.c > +++ b/drivers/pci/controller/dwc/pcie-visconti.c > @@ -29,9 +29,6 @@ struct visconti_pcie { > void __iomem *ulreg_base; > void __iomem *smu_base; > void __iomem *mpu_base; > - struct clk *refclk; > - struct clk *coreclk; > - struct clk *auxclk; > }; > > #define PCIE_UL_REG_S_PCIE_MODE 0x00F4 > @@ -198,6 +195,21 @@ static int visconti_pcie_host_init(struct dw_pcie_rp *pp) > int err; > u32 val; > > + if (!pcie->pci.core_clks[DW_PCIE_REF_CLK].clk) { > + dev_err(pci->dev, "Missing ref clock source\n"); > + return -ENOENT; > + } > + > + if (!pcie->pci.core_clks[DW_PCIE_CORE_CLK].clk) { > + dev_err(pci->dev, "Missing core clock source\n"); > + return -ENOENT; > + } > + > + if (!pcie->pci.core_clks[DW_PCIE_AUX_CLK].clk) { > + dev_err(pci->dev, "Missing aux clock source\n"); > + return -ENOENT; > + } > + Looking at the driver, I could see no call to clk_prepare_enable() for these clocks. So from kernel's PoV these are not used at all. So either these clocks are not required (unlikely) or enabled by the bootloader so kernel just uses it. In that case, the driver should handle these clocks properly. @Nobuhiro-San, can you please comment? - Mani > visconti_smu_writel(pcie, > PISMU_CKON_PCIE_AUX_CLK | PISMU_CKON_PCIE_MSTR_ACLK, > PISMU_CKON_PCIE); > @@ -242,8 +254,6 @@ static const struct dw_pcie_host_ops visconti_pcie_host_ops = { > static int visconti_get_resources(struct platform_device *pdev, > struct visconti_pcie *pcie) > { > - struct device *dev = &pdev->dev; > - > pcie->ulreg_base = devm_platform_ioremap_resource_byname(pdev, "ulreg"); > if (IS_ERR(pcie->ulreg_base)) > return PTR_ERR(pcie->ulreg_base); > @@ -256,21 +266,6 @@ static int visconti_get_resources(struct platform_device *pdev, > if (IS_ERR(pcie->mpu_base)) > return PTR_ERR(pcie->mpu_base); > > - pcie->refclk = devm_clk_get(dev, "ref"); > - if (IS_ERR(pcie->refclk)) > - return dev_err_probe(dev, PTR_ERR(pcie->refclk), > - "Failed to get ref clock\n"); > - > - pcie->coreclk = devm_clk_get(dev, "core"); > - if (IS_ERR(pcie->coreclk)) > - return dev_err_probe(dev, PTR_ERR(pcie->coreclk), > - "Failed to get core clock\n"); > - > - pcie->auxclk = devm_clk_get(dev, "aux"); > - if (IS_ERR(pcie->auxclk)) > - return dev_err_probe(dev, PTR_ERR(pcie->auxclk), > - "Failed to get aux clock\n"); > - > return 0; > } > > @@ -304,6 +299,8 @@ static int visconti_pcie_probe(struct platform_device *pdev) > pci->dev = dev; > pci->ops = &dw_pcie_ops; > > + dw_pcie_cap_set(pci, REQ_RES); > + > ret = visconti_get_resources(pdev, pcie); > if (ret) > return ret; > -- > 2.40.0 > > -- மணிவண்ணன் சதாசிவம் 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 722E3C7619A for ; Tue, 11 Apr 2023 11:21:00 +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=b63dM5WZFGOK/nE5sjeXWXt6L9nn/xmTzpogPFGjcUo=; b=WqxaBrN75+8uVT Hrq/S0RAI/zQZXDlbVrQwsg94CSzIZwzbTZZd6paLOjSkidgtdF7hGzpofHptOmUkWSGDZMOwJF6n 4eyWhK0SvwOnIYHuHtkUCsB+E8W4lv6g7feDDCMIE+8L+L9q2AEvxPkfPcmc19BK/4IGxfLooAkIs 4fK6mXmmnRj6pNBqK16pthhvQ9EcksAjATGhXxpcoe/fu/oggTtv5DrGHzfPvCv9nvxjrqc0zKaW0 +nG7T6+sPIMMLglHJ0g//xJWLJ+uvo54I/JNVtWXXkMyOJ1xvTHwE1XJ9YDGOJDrpNs1MNx9/hfvA UofNZZThL2caP3ZEYitQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pmC2g-00HQmW-2F; Tue, 11 Apr 2023 11:20:06 +0000 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pmC2b-00HQls-0C for linux-arm-kernel@lists.infradead.org; Tue, 11 Apr 2023 11:20:02 +0000 Received: by mail-pj1-x1035.google.com with SMTP id j8so6058350pjy.4 for ; Tue, 11 Apr 2023 04:19:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1681211999; 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=wBQKs0yhrvEAfRkMdCXLMJEOrscAPx9qxfkvCvvtvfA=; b=De8rEAx354hB6hCSAFG7oboildxqBheGwOenVHFkWMblMsEkD/+0eXo3/mG3rs50An kWw6C+C1M0ZQYjSdptI7/XL7b7De17BuGhpwihSva0I7dBeuWkopYTYE5YknBky9lh6V ZYPYPdkcmyCoZ2cpaG00j0m4uJVD7j/GBY62PsI0WbCEOLfOGRAd5wlMGbodFnIsUBB6 LZgDClnNxNxLNRQD5aZTK9Y7wFJte8LGWQ3fFk5wg0M4DXT+7IBWF7Vz0HQKcQ1qaMjc ghgexkw/J/rpGBBEFFmi3kOC02bR2+0PlHaur/1EpYHt5InoQ74/wSO1TDtSZarYDx40 qrtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1681211999; 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=wBQKs0yhrvEAfRkMdCXLMJEOrscAPx9qxfkvCvvtvfA=; b=v5kv33A3Tafblun2/3KjkPoA+Ci0LGKndVV1F1krJRnqpISZD5GSQDFVT5yMqxy9P5 Lc5D7gJ3PmQBrTGCgq29tczq0RhjN8XyPBSdPYoPZfZYVXVFnzYWJSUuhL0LI1SEPtNG Du4VNf/9fvc0i/2qF9r+HPopg5C6SmBOjyPFC8+DZuNatfpvcTROfT1jrr1wtS+UzLjc uuHPVQG65NQvV4VTL1YIZFC+p2MuJH9UTmayO2diS63aVKkEe/7BwBp+1deXxs2YW1PB 7rqDrZTEwUAyYfpmmWTf4CMldbF35Gsq6UOeL9QMWGdIaAN8TZAmJSeEaU80eQFKaq6W /CZg== X-Gm-Message-State: AAQBX9e8+IVsXBmVT7BR4LX73hT6EENA2yoBTAXeDclVOJFi6baANKnC 8O8WZdyx1G2hBMSiGolidlCY X-Google-Smtp-Source: AKy350ZLs5F0geBGQzE6rxmOTmSs4MmcKy9zI+Tw9XY3R2ci0J/2ubUrzPs0XDNuJTJil32p2+2knQ== X-Received: by 2002:a17:902:cec1:b0:19e:ad18:da5c with SMTP id d1-20020a170902cec100b0019ead18da5cmr3463701plg.37.1681211999280; Tue, 11 Apr 2023 04:19:59 -0700 (PDT) Received: from thinkpad ([117.216.120.128]) by smtp.gmail.com with ESMTPSA id jw23-20020a170903279700b0019e60c645b1sm3539765plb.305.2023.04.11.04.19.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Apr 2023 04:19:58 -0700 (PDT) Date: Tue, 11 Apr 2023 16:49:47 +0530 From: Manivannan Sadhasivam To: Serge Semin , g@thinkpad Cc: Bjorn Helgaas , Lorenzo Pieralisi , Cai Huoqing , Jingoo Han , Gustavo Pimentel , Vinod Koul , Yoshihiro Shimoda , Rob Herring , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Nobuhiro Iwamatsu , Serge Semin , Alexey Malahov , Pavel Parkhomenko , linux-pci@vger.kernel.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Bjorn Helgaas , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH RESEND v3 07/10] PCI: visconti: Convert to using generic resources getter Message-ID: <20230411111947.GI5333@thinkpad> References: <20230411033928.30397-1-Sergey.Semin@baikalelectronics.ru> <20230411033928.30397-8-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230411033928.30397-8-Sergey.Semin@baikalelectronics.ru> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230411_042001_132674_8D1B5AE3 X-CRM114-Status: GOOD ( 26.87 ) 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 T24gVHVlLCBBcHIgMTEsIDIwMjMgYXQgMDY6Mzk6MjVBTSArMDMwMCwgU2VyZ2UgU2VtaW4gd3Jv dGU6Cj4gVGhlIGdlbmVyaWMgcmVzb3VyY2VzIHJlcXVlc3QgaW5mcmFzdHJ1Y3R1cmUgaGFzIGJl ZW4gcmVjZW50bHkgYWRkZWQgdG8KPiB0aGUgRFcgUENJZSBjb3JlIGRyaXZlci4gU2luY2UgdGhl IERULWJpbmRpbmdzIG9mIHRoZSBUb3NoaWJvIFZpc2NvbnRpCj4gUENJZSBIb3N0IGNvbnRyb2xs ZXIgaXMgZnVsbHkgY29tcGF0aWJsZSB3aXRoIHRoZSBnZW5lcmljIG5hbWVzIHNldCBsZXQncwo+ IGNvbnZlcnQgdGhlIGRyaXZlciB0byB1c2luZyB0aGF0IGluZnJhc3RydWN0dXJlLiBJdCB3b24n dCB0YWtlIG11Y2ggZWZmb3J0Cj4gc2luY2UgdGhlIGxvdy1sZXZlbCBkZXZpY2UgZHJpdmVyIGlt cGxpZXMgdGhlIHJlc291cmNlcyByZXF1ZXN0IG9ubHkgd2l0aAo+IG5vIGFkZGl0aW9uYWwgbWFu aXB1bGF0aW9ucyBpbnZvbHZpbmcgdGhlbS4gU28ganVzdCBkcm9wIHRoZSBsb2NhbGx5Cj4gZGVm aW5lZCBjbG9ja3MgcmVxdWVzdCBwcm9jZWR1cmVzLCBhY3RpdmF0ZSB0aGUgZ2VuZXJpYyByZXNv dXJjZXMgcmVxdWVzdAo+IGNhcGFiaWxpdHkgYW5kIG1ha2Ugc3VyZSB0aGUgbWFuZGF0b3J5IHJl c291cmNlcyBoYXZlIGJlZW4gcmVxdWVzdGVkIGJ5Cj4gdGhlIERXIFBDSWUgY29yZSBkcml2ZXIu Cj4gCj4gU3VnZ2VzdGVkLWJ5OiBCam9ybiBIZWxnYWFzIDxoZWxnYWFzQGtlcm5lbC5vcmc+Cj4g U2lnbmVkLW9mZi1ieTogU2VyZ2UgU2VtaW4gPFNlcmdleS5TZW1pbkBiYWlrYWxlbGVjdHJvbmlj cy5ydT4KPiAtLS0KPiAgZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS12aXNjb250aS5j IHwgMzcgKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0 aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaWUtdmlzY29udGkuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdj L3BjaWUtdmlzY29udGkuYwo+IGluZGV4IDcxMDI2ZmVmYTM2Ni4uYWUxNTE3YjUyYzU4IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtdmlzY29udGkuYwo+ICsr KyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtdmlzY29udGkuYwo+IEBAIC0yOSw5 ICsyOSw2IEBAIHN0cnVjdCB2aXNjb250aV9wY2llIHsKPiAgCXZvaWQgX19pb21lbSAqdWxyZWdf YmFzZTsKPiAgCXZvaWQgX19pb21lbSAqc211X2Jhc2U7Cj4gIAl2b2lkIF9faW9tZW0gKm1wdV9i YXNlOwo+IC0Jc3RydWN0IGNsayAqcmVmY2xrOwo+IC0Jc3RydWN0IGNsayAqY29yZWNsazsKPiAt CXN0cnVjdCBjbGsgKmF1eGNsazsKPiAgfTsKPiAgCj4gICNkZWZpbmUgUENJRV9VTF9SRUdfU19Q Q0lFX01PREUJCTB4MDBGNAo+IEBAIC0xOTgsNiArMTk1LDIxIEBAIHN0YXRpYyBpbnQgdmlzY29u dGlfcGNpZV9ob3N0X2luaXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICAJaW50IGVycjsKPiAg CXUzMiB2YWw7Cj4gIAo+ICsJaWYgKCFwY2llLT5wY2kuY29yZV9jbGtzW0RXX1BDSUVfUkVGX0NM S10uY2xrKSB7Cj4gKwkJZGV2X2VycihwY2ktPmRldiwgIk1pc3NpbmcgcmVmIGNsb2NrIHNvdXJj ZVxuIik7Cj4gKwkJcmV0dXJuIC1FTk9FTlQ7Cj4gKwl9Cj4gKwo+ICsJaWYgKCFwY2llLT5wY2ku Y29yZV9jbGtzW0RXX1BDSUVfQ09SRV9DTEtdLmNsaykgewo+ICsJCWRldl9lcnIocGNpLT5kZXYs ICJNaXNzaW5nIGNvcmUgY2xvY2sgc291cmNlXG4iKTsKPiArCQlyZXR1cm4gLUVOT0VOVDsKPiAr CX0KPiArCj4gKwlpZiAoIXBjaWUtPnBjaS5jb3JlX2Nsa3NbRFdfUENJRV9BVVhfQ0xLXS5jbGsp IHsKPiArCQlkZXZfZXJyKHBjaS0+ZGV2LCAiTWlzc2luZyBhdXggY2xvY2sgc291cmNlXG4iKTsK PiArCQlyZXR1cm4gLUVOT0VOVDsKPiArCX0KPiArCgpMb29raW5nIGF0IHRoZSBkcml2ZXIsIEkg Y291bGQgc2VlIG5vIGNhbGwgdG8gY2xrX3ByZXBhcmVfZW5hYmxlKCkgZm9yIHRoZXNlCmNsb2Nr cy4gU28gZnJvbSBrZXJuZWwncyBQb1YgdGhlc2UgYXJlIG5vdCB1c2VkIGF0IGFsbC4gU28gZWl0 aGVyIHRoZXNlIGNsb2NrcwphcmUgbm90IHJlcXVpcmVkICh1bmxpa2VseSkgb3IgZW5hYmxlZCBi eSB0aGUgYm9vdGxvYWRlciBzbyBrZXJuZWwganVzdCB1c2VzIGl0LgoKSW4gdGhhdCBjYXNlLCB0 aGUgZHJpdmVyIHNob3VsZCBoYW5kbGUgdGhlc2UgY2xvY2tzIHByb3Blcmx5LgoKQE5vYnVoaXJv LVNhbiwgY2FuIHlvdSBwbGVhc2UgY29tbWVudD8KCi0gTWFuaQoKPiAgCXZpc2NvbnRpX3NtdV93 cml0ZWwocGNpZSwKPiAgCQkJICAgIFBJU01VX0NLT05fUENJRV9BVVhfQ0xLIHwgUElTTVVfQ0tP Tl9QQ0lFX01TVFJfQUNMSywKPiAgCQkJICAgIFBJU01VX0NLT05fUENJRSk7Cj4gQEAgLTI0Miw4 ICsyNTQsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGR3X3BjaWVfaG9zdF9vcHMgdmlzY29udGlf cGNpZV9ob3N0X29wcyA9IHsKPiAgc3RhdGljIGludCB2aXNjb250aV9nZXRfcmVzb3VyY2VzKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gIAkJCQkgIHN0cnVjdCB2aXNjb250aV9wY2ll ICpwY2llKQo+ICB7Cj4gLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+IC0KPiAg CXBjaWUtPnVscmVnX2Jhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2VfYnluYW1l KHBkZXYsICJ1bHJlZyIpOwo+ICAJaWYgKElTX0VSUihwY2llLT51bHJlZ19iYXNlKSkKPiAgCQly ZXR1cm4gUFRSX0VSUihwY2llLT51bHJlZ19iYXNlKTsKPiBAQCAtMjU2LDIxICsyNjYsNiBAQCBz dGF0aWMgaW50IHZpc2NvbnRpX2dldF9yZXNvdXJjZXMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldiwKPiAgCWlmIChJU19FUlIocGNpZS0+bXB1X2Jhc2UpKQo+ICAJCXJldHVybiBQVFJfRVJS KHBjaWUtPm1wdV9iYXNlKTsKPiAgCj4gLQlwY2llLT5yZWZjbGsgPSBkZXZtX2Nsa19nZXQoZGV2 LCAicmVmIik7Cj4gLQlpZiAoSVNfRVJSKHBjaWUtPnJlZmNsaykpCj4gLQkJcmV0dXJuIGRldl9l cnJfcHJvYmUoZGV2LCBQVFJfRVJSKHBjaWUtPnJlZmNsayksCj4gLQkJCQkgICAgICJGYWlsZWQg dG8gZ2V0IHJlZiBjbG9ja1xuIik7Cj4gLQo+IC0JcGNpZS0+Y29yZWNsayA9IGRldm1fY2xrX2dl dChkZXYsICJjb3JlIik7Cj4gLQlpZiAoSVNfRVJSKHBjaWUtPmNvcmVjbGspKQo+IC0JCXJldHVy biBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihwY2llLT5jb3JlY2xrKSwKPiAtCQkJCSAgICAg IkZhaWxlZCB0byBnZXQgY29yZSBjbG9ja1xuIik7Cj4gLQo+IC0JcGNpZS0+YXV4Y2xrID0gZGV2 bV9jbGtfZ2V0KGRldiwgImF1eCIpOwo+IC0JaWYgKElTX0VSUihwY2llLT5hdXhjbGspKQo+IC0J CXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihwY2llLT5hdXhjbGspLAo+IC0JCQkJ ICAgICAiRmFpbGVkIHRvIGdldCBhdXggY2xvY2tcbiIpOwo+IC0KPiAgCXJldHVybiAwOwo+ICB9 Cj4gIAo+IEBAIC0zMDQsNiArMjk5LDggQEAgc3RhdGljIGludCB2aXNjb250aV9wY2llX3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAlwY2ktPmRldiA9IGRldjsKPiAgCXBj aS0+b3BzID0gJmR3X3BjaWVfb3BzOwo+ICAKPiArCWR3X3BjaWVfY2FwX3NldChwY2ksIFJFUV9S RVMpOwo+ICsKPiAgCXJldCA9IHZpc2NvbnRpX2dldF9yZXNvdXJjZXMocGRldiwgcGNpZSk7Cj4g IAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gLS0gCj4gMi40MC4wCj4gCj4gCgotLSAK4K6u 4K6j4K6/4K614K6j4K+N4K6j4K6p4K+NIOCumuCupOCuvuCumuCuv+CuteCuruCvjQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=