From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) (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 3C41F4D5BC for ; Mon, 29 Jan 2024 06:59:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706511542; cv=none; b=ZQ1nXXkJn92y83gwVnOsy+y95k7sV32TZK/Zrzk5Rnnl2SGMQTF6Fmbep6xlTJSU1erZBjG+JUVlVJgIDFjBS3Tg7GZ0RAxTaAWvCBlWdsWUZKb4cKZvI5yAVDd/JNbJ4RSMtGp+pPtVX7H/CxXm9+WnheD8G3x0HNkWUgqOgG4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706511542; c=relaxed/simple; bh=OXQjh4lioyfB8StO1nZmX9WLl+HFNIwwqGc1GR4QKLo=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=NgsItphQeNjV8v89i7pPluaCzUeaiDc+NQEvRJ4y82VQ4op3xtCOJAkp/aAiDZCz5n8qyP3/df9lY5gvAtpP8kgCP3tkXbHonlsx73t2cYC8NU5j7prHgzvp6fBMyP5j5ujVBrN5HKtehOn+oZzRI8vLUemlidCzH99WMQQEY/M= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=opHhLT04; arc=none smtp.client-ip=209.85.219.47 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="opHhLT04" Received: by mail-qv1-f47.google.com with SMTP id 6a1803df08f44-6818a9fe380so20363706d6.2 for ; Sun, 28 Jan 2024 22:59:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1706511539; x=1707116339; darn=vger.kernel.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=FwYcxzBqqOvegvaMhu9gdP9KfDlhUbugGliFvDojZT0=; b=opHhLT04j6jEhDUQl0KHkf/NtUUOganAu5SufZ4EcaVb+b1qeUJESAkdFv4DLoQXKf nGENClORkAfKnCFlaDfPbwhGyoDNk6S3CKnBqXRPDs2MnftDOVSW3Gu54rCH08NyGJnr o6aoTsEPfcew7aMpO/LS1OFOMIoaZJ4D+Gkb+3lsgQh4oPMw0HSXtbKi12aJuX8Mu2Ob 0GwFpz9lJgHUOI1BrYyizJH5pThiOfwuvpRDYbumyJ8e31jQbmSgyHbwSsBYcJHPoeUq 9PyivYDtgOk5KHMPuDV1s+e5/LLpdXJcvnO6ruYxXGbruETOcXxtJ2gxoS4N7VWWzLKy Kd0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706511539; x=1707116339; 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=FwYcxzBqqOvegvaMhu9gdP9KfDlhUbugGliFvDojZT0=; b=g59kl3+ZrxfyCBrHs5YAHt+psHHhC6MQgPqo8n+CZFO1bk4ChLdxsOhZB0r/YVIejT jqi3iPQtKVK9zn0QsiXNM7Hqj+8RALLOc3U3ixROXko2pa8LXVkDzCxv5W0Z/wsAt7RL r5UlRzQgEOKiy2brm14gFJLYAcb8iCmdXAhxUnCJWsiNGSJHtNi7gLD2jsU65ZJ10+bj LDrzQj/DJK28ShegfDlC6SCPdrEd2JRDDq5dqkpnoYu2NctFWihsWktf9adbD4Ag/17M JxLU4yqL8cMQkNFM3oIUKvrG1vjPyvCFWI4ROFc4j7fb6675u6Qd8hnSeoMt+FydeVRl W7iA== X-Gm-Message-State: AOJu0Yw1UcLbhhAHzTFWQdt4tHJKXRCXn8zSMEVMVVtDvTUnXBtPt0m+ 9bRuu/+z737q9V4cW5V/8WByDeicNDyXYdsc3vwKiQyIxqP5x7v0YJ373WYs2g== X-Google-Smtp-Source: AGHT+IH5SRvoNClvm0mfYs/inH/IxKkrY8a8G5cj2l07JgqvnKPSvqgPdo+o6ckTisfvK8pj9GlW0g== X-Received: by 2002:ad4:5c47:0:b0:686:acd7:ea95 with SMTP id a7-20020ad45c47000000b00686acd7ea95mr7107306qva.71.1706511539120; Sun, 28 Jan 2024 22:58:59 -0800 (PST) Received: from thinkpad ([117.193.214.109]) by smtp.gmail.com with ESMTPSA id h4-20020a0cd804000000b006869dae6edbsm3124426qvj.77.2024.01.28.22.58.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jan 2024 22:58:58 -0800 (PST) Date: Mon, 29 Jan 2024 12:28:46 +0530 From: Manivannan Sadhasivam To: Shradha Todi Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, mturquette@baylibre.com, sboyd@kernel.org, jingoohan1@gmail.com, lpieralisi@kernel.org, kw@linux.com, robh@kernel.org, bhelgaas@google.com, krzysztof.kozlowski@linaro.org, alim.akhtar@samsung.com, linux@armlinux.org.uk, m.szyprowski@samsung.com, pankaj.dubey@samsung.com Subject: Re: [PATCH v4 2/2] PCI: exynos: Adapt to clk_bulk_* APIs Message-ID: <20240129065846.GD2971@thinkpad> References: <20240124103838.32478-1-shradha.t@samsung.com> <20240124103838.32478-3-shradha.t@samsung.com> Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org 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: <20240124103838.32478-3-shradha.t@samsung.com> On Wed, Jan 24, 2024 at 04:08:38PM +0530, Shradha Todi wrote: > There is no need to hardcode the clock info in the driver as driver can > rely on the devicetree to supply the clocks required for the functioning > of the peripheral. Get rid of the static clock info and obtain the > platform supplied clocks. All the clocks supplied is obtained and enabled > using the devm_clk_bulk_get_all_enable() API. > > Signed-off-by: Shradha Todi Reviewed-by: Manivannan Sadhasivam - Mani > --- > drivers/pci/controller/dwc/pci-exynos.c | 54 ++----------------------- > 1 file changed, 4 insertions(+), 50 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pci-exynos.c b/drivers/pci/controller/dwc/pci-exynos.c > index ec5611005566..3234eb5be1fb 100644 > --- a/drivers/pci/controller/dwc/pci-exynos.c > +++ b/drivers/pci/controller/dwc/pci-exynos.c > @@ -54,43 +54,11 @@ > struct exynos_pcie { > struct dw_pcie pci; > void __iomem *elbi_base; > - struct clk *clk; > - struct clk *bus_clk; > + struct clk_bulk_data *clks; > struct phy *phy; > struct regulator_bulk_data supplies[2]; > }; > > -static int exynos_pcie_init_clk_resources(struct exynos_pcie *ep) > -{ > - struct device *dev = ep->pci.dev; > - int ret; > - > - ret = clk_prepare_enable(ep->clk); > - if (ret) { > - dev_err(dev, "cannot enable pcie rc clock"); > - return ret; > - } > - > - ret = clk_prepare_enable(ep->bus_clk); > - if (ret) { > - dev_err(dev, "cannot enable pcie bus clock"); > - goto err_bus_clk; > - } > - > - return 0; > - > -err_bus_clk: > - clk_disable_unprepare(ep->clk); > - > - return ret; > -} > - > -static void exynos_pcie_deinit_clk_resources(struct exynos_pcie *ep) > -{ > - clk_disable_unprepare(ep->bus_clk); > - clk_disable_unprepare(ep->clk); > -} > - > static void exynos_pcie_writel(void __iomem *base, u32 val, u32 reg) > { > writel(val, base + reg); > @@ -332,17 +300,9 @@ static int exynos_pcie_probe(struct platform_device *pdev) > if (IS_ERR(ep->elbi_base)) > return PTR_ERR(ep->elbi_base); > > - ep->clk = devm_clk_get(dev, "pcie"); > - if (IS_ERR(ep->clk)) { > - dev_err(dev, "Failed to get pcie rc clock\n"); > - return PTR_ERR(ep->clk); > - } > - > - ep->bus_clk = devm_clk_get(dev, "pcie_bus"); > - if (IS_ERR(ep->bus_clk)) { > - dev_err(dev, "Failed to get pcie bus clock\n"); > - return PTR_ERR(ep->bus_clk); > - } > + ret = devm_clk_bulk_get_all_enable(dev, &ep->clks); > + if (ret < 0) > + return ret; > > ep->supplies[0].supply = "vdd18"; > ep->supplies[1].supply = "vdd10"; > @@ -351,10 +311,6 @@ static int exynos_pcie_probe(struct platform_device *pdev) > if (ret) > return ret; > > - ret = exynos_pcie_init_clk_resources(ep); > - if (ret) > - return ret; > - > ret = regulator_bulk_enable(ARRAY_SIZE(ep->supplies), ep->supplies); > if (ret) > return ret; > @@ -369,7 +325,6 @@ static int exynos_pcie_probe(struct platform_device *pdev) > > fail_probe: > phy_exit(ep->phy); > - exynos_pcie_deinit_clk_resources(ep); > regulator_bulk_disable(ARRAY_SIZE(ep->supplies), ep->supplies); > > return ret; > @@ -383,7 +338,6 @@ static int __exit exynos_pcie_remove(struct platform_device *pdev) > exynos_pcie_assert_core_reset(ep); > phy_power_off(ep->phy); > phy_exit(ep->phy); > - exynos_pcie_deinit_clk_resources(ep); > regulator_bulk_disable(ARRAY_SIZE(ep->supplies), ep->supplies); > > return 0; > -- > 2.17.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 406E1C47422 for ; Mon, 29 Jan 2024 06:59:13 +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=Ph0KLJnmaYlqXP3IBcldbVAirN+7loXs9x8MiKPx1+4=; b=rSpwkem2c0Ih54 XbaSkn5kmiISE8s0pTKF99+C6d7wheMlV/mdbUmCDtSJz8zs1RPWHpNWlZTpQn28dAizaxNWZBPJ9 jgkqN1ybV1vrrjFFwJR3uQopwmI6NnYTtp5r7lm/V600Sz9l4glGEp+H5ZtMS0+N1vh5yAIv7Hmbi ZgXXnEXAQIkBVF5FUVxQ86Rls34l95gRsRs9FXccsH7hosqnN2vOhedDB5W2thJ7jztt/cxw/149K ktcYKfq+GpBKrGaleRjT0gVeTp0otZ10e/bW1O/7kusnokaKFf+8vLH1SykFDwHpT7O6oXQmG9Gs7 ujH6EUy1Pk8kuGf8+E4g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rULbj-0000000BZFt-2cal; Mon, 29 Jan 2024 06:59:03 +0000 Received: from mail-qv1-xf31.google.com ([2607:f8b0:4864:20::f31]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rULbh-0000000BZFR-0ioH for linux-arm-kernel@lists.infradead.org; Mon, 29 Jan 2024 06:59:02 +0000 Received: by mail-qv1-xf31.google.com with SMTP id 6a1803df08f44-68c4300518bso9585726d6.3 for ; Sun, 28 Jan 2024 22:58:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1706511539; x=1707116339; 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=FwYcxzBqqOvegvaMhu9gdP9KfDlhUbugGliFvDojZT0=; b=GoTvdQ9AFyw71q8Tg9VkHIg00hzj3dL4ZvvsyEgNvtInekq2yWg2Th64sSj22a9h/R Z2iYGtwqFKq+JGuIqEo74iMfelBElMy9HQYXFaTqmKGfXjnhxNpk1gbZQrPsy0i9NUG5 ZeQlpfETieJ8Blz60nFyhPy6lC7BppRyHFyrOxsaVpG08ORPNNeGFeQV04Rxyxaqdo7h cs66G5zRlpvA6PSRCIPP/G74Vf/QApg6hjRjywtjFsxsI4GfXQiuOMjQVduHWwFi4XWD QjovKJBbzoRhS5i0LvK2jk39TzW1eV1dNN0ZKCJJCmigebXHdcGDI/ZyCgagZfizHsQV ffiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706511539; x=1707116339; 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=FwYcxzBqqOvegvaMhu9gdP9KfDlhUbugGliFvDojZT0=; b=Llxiq62YLwXUYio4Ozjtwn/yDNHQV40O32KzECFZS9n/uWtV4TphbomIMCu0m1dRhU uHahyHoUcoKJlZv/16oJhg65LKrs7c3/kKS0kGi9oHcefQQBl6Kl3agh0GNkf12gQEbc IMoEm4keA01Jb/uiKXhKXnixpnhEy6Rc4vyhXXa+MHaaeQRPVe2BkWMQhDm2mE3X0NuT zJndCPeFuGqqaIr/qWk88cQRRFAFNYEdC7DJPnPEHoQOiSX0f+kBov/hq+MgbVIfewR+ Ra+rGY+TVPTFz3Bf/65lwyHmW5VDN3xsUPGpjNd1F7aghtv24NZazy7ffqMkBtb6FS4+ KJJg== X-Gm-Message-State: AOJu0YwatAV1z1ZeIDCHcexy52LZbZf2dovZQjFdQP+4YZBMIFDaLHnN S+31zDIZccPaFNBSj7A+Inh+92fAXSym6S0HWANx59zUUlNrIpcvTeUq9EwdTQ== X-Google-Smtp-Source: AGHT+IH5SRvoNClvm0mfYs/inH/IxKkrY8a8G5cj2l07JgqvnKPSvqgPdo+o6ckTisfvK8pj9GlW0g== X-Received: by 2002:ad4:5c47:0:b0:686:acd7:ea95 with SMTP id a7-20020ad45c47000000b00686acd7ea95mr7107306qva.71.1706511539120; Sun, 28 Jan 2024 22:58:59 -0800 (PST) Received: from thinkpad ([117.193.214.109]) by smtp.gmail.com with ESMTPSA id h4-20020a0cd804000000b006869dae6edbsm3124426qvj.77.2024.01.28.22.58.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jan 2024 22:58:58 -0800 (PST) Date: Mon, 29 Jan 2024 12:28:46 +0530 From: Manivannan Sadhasivam To: Shradha Todi Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, mturquette@baylibre.com, sboyd@kernel.org, jingoohan1@gmail.com, lpieralisi@kernel.org, kw@linux.com, robh@kernel.org, bhelgaas@google.com, krzysztof.kozlowski@linaro.org, alim.akhtar@samsung.com, linux@armlinux.org.uk, m.szyprowski@samsung.com, pankaj.dubey@samsung.com Subject: Re: [PATCH v4 2/2] PCI: exynos: Adapt to clk_bulk_* APIs Message-ID: <20240129065846.GD2971@thinkpad> References: <20240124103838.32478-1-shradha.t@samsung.com> <20240124103838.32478-3-shradha.t@samsung.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240124103838.32478-3-shradha.t@samsung.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240128_225901_263334_A0F56BB7 X-CRM114-Status: GOOD ( 24.20 ) 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 T24gV2VkLCBKYW4gMjQsIDIwMjQgYXQgMDQ6MDg6MzhQTSArMDUzMCwgU2hyYWRoYSBUb2RpIHdy b3RlOgo+IFRoZXJlIGlzIG5vIG5lZWQgdG8gaGFyZGNvZGUgdGhlIGNsb2NrIGluZm8gaW4gdGhl IGRyaXZlciBhcyBkcml2ZXIgY2FuCj4gcmVseSBvbiB0aGUgZGV2aWNldHJlZSB0byBzdXBwbHkg dGhlIGNsb2NrcyByZXF1aXJlZCBmb3IgdGhlIGZ1bmN0aW9uaW5nCj4gb2YgdGhlIHBlcmlwaGVy YWwuIEdldCByaWQgb2YgdGhlIHN0YXRpYyBjbG9jayBpbmZvIGFuZCBvYnRhaW4gdGhlCj4gcGxh dGZvcm0gc3VwcGxpZWQgY2xvY2tzLiBBbGwgdGhlIGNsb2NrcyBzdXBwbGllZCBpcyBvYnRhaW5l ZCBhbmQgZW5hYmxlZAo+IHVzaW5nIHRoZSBkZXZtX2Nsa19idWxrX2dldF9hbGxfZW5hYmxlKCkg QVBJLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNocmFkaGEgVG9kaSA8c2hyYWRoYS50QHNhbXN1bmcu Y29tPgoKUmV2aWV3ZWQtYnk6IE1hbml2YW5uYW4gU2FkaGFzaXZhbSA8bWFuaXZhbm5hbi5zYWRo YXNpdmFtQGxpbmFyby5vcmc+CgotIE1hbmkKCj4gLS0tCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvZHdjL3BjaS1leHlub3MuYyB8IDU0ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgMSBm aWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1leHlub3MuYyBiL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1leHlub3MuYwo+IGluZGV4IGVjNTYxMTAwNTU2Ni4uMzIz NGViNWJlMWZiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1l eHlub3MuYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1leHlub3MuYwo+ IEBAIC01NCw0MyArNTQsMTEgQEAKPiAgc3RydWN0IGV4eW5vc19wY2llIHsKPiAgCXN0cnVjdCBk d19wY2llCQkJcGNpOwo+ICAJdm9pZCBfX2lvbWVtCQkJKmVsYmlfYmFzZTsKPiAtCXN0cnVjdCBj bGsJCQkqY2xrOwo+IC0Jc3RydWN0IGNsawkJCSpidXNfY2xrOwo+ICsJc3RydWN0IGNsa19idWxr X2RhdGEJCSpjbGtzOwo+ICAJc3RydWN0IHBoeQkJCSpwaHk7Cj4gIAlzdHJ1Y3QgcmVndWxhdG9y X2J1bGtfZGF0YQlzdXBwbGllc1syXTsKPiAgfTsKPiAgCj4gLXN0YXRpYyBpbnQgZXh5bm9zX3Bj aWVfaW5pdF9jbGtfcmVzb3VyY2VzKHN0cnVjdCBleHlub3NfcGNpZSAqZXApCj4gLXsKPiAtCXN0 cnVjdCBkZXZpY2UgKmRldiA9IGVwLT5wY2kuZGV2Owo+IC0JaW50IHJldDsKPiAtCj4gLQlyZXQg PSBjbGtfcHJlcGFyZV9lbmFibGUoZXAtPmNsayk7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJZGV2X2Vy cihkZXYsICJjYW5ub3QgZW5hYmxlIHBjaWUgcmMgY2xvY2siKTsKPiAtCQlyZXR1cm4gcmV0Owo+ IC0JfQo+IC0KPiAtCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShlcC0+YnVzX2Nsayk7Cj4gLQlp ZiAocmV0KSB7Cj4gLQkJZGV2X2VycihkZXYsICJjYW5ub3QgZW5hYmxlIHBjaWUgYnVzIGNsb2Nr Iik7Cj4gLQkJZ290byBlcnJfYnVzX2NsazsKPiAtCX0KPiAtCj4gLQlyZXR1cm4gMDsKPiAtCj4g LWVycl9idXNfY2xrOgo+IC0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGVwLT5jbGspOwo+IC0KPiAt CXJldHVybiByZXQ7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGV4eW5vc19wY2llX2RlaW5pdF9j bGtfcmVzb3VyY2VzKHN0cnVjdCBleHlub3NfcGNpZSAqZXApCj4gLXsKPiAtCWNsa19kaXNhYmxl X3VucHJlcGFyZShlcC0+YnVzX2Nsayk7Cj4gLQljbGtfZGlzYWJsZV91bnByZXBhcmUoZXAtPmNs ayk7Cj4gLX0KPiAtCj4gIHN0YXRpYyB2b2lkIGV4eW5vc19wY2llX3dyaXRlbCh2b2lkIF9faW9t ZW0gKmJhc2UsIHUzMiB2YWwsIHUzMiByZWcpCj4gIHsKPiAgCXdyaXRlbCh2YWwsIGJhc2UgKyBy ZWcpOwo+IEBAIC0zMzIsMTcgKzMwMCw5IEBAIHN0YXRpYyBpbnQgZXh5bm9zX3BjaWVfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCWlmIChJU19FUlIoZXAtPmVsYmlfYmFz ZSkpCj4gIAkJcmV0dXJuIFBUUl9FUlIoZXAtPmVsYmlfYmFzZSk7Cj4gIAo+IC0JZXAtPmNsayA9 IGRldm1fY2xrX2dldChkZXYsICJwY2llIik7Cj4gLQlpZiAoSVNfRVJSKGVwLT5jbGspKSB7Cj4g LQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IHBjaWUgcmMgY2xvY2tcbiIpOwo+IC0JCXJl dHVybiBQVFJfRVJSKGVwLT5jbGspOwo+IC0JfQo+IC0KPiAtCWVwLT5idXNfY2xrID0gZGV2bV9j bGtfZ2V0KGRldiwgInBjaWVfYnVzIik7Cj4gLQlpZiAoSVNfRVJSKGVwLT5idXNfY2xrKSkgewo+ IC0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBwY2llIGJ1cyBjbG9ja1xuIik7Cj4gLQkJ cmV0dXJuIFBUUl9FUlIoZXAtPmJ1c19jbGspOwo+IC0JfQo+ICsJcmV0ID0gZGV2bV9jbGtfYnVs a19nZXRfYWxsX2VuYWJsZShkZXYsICZlcC0+Y2xrcyk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQly ZXR1cm4gcmV0Owo+ICAKPiAgCWVwLT5zdXBwbGllc1swXS5zdXBwbHkgPSAidmRkMTgiOwo+ICAJ ZXAtPnN1cHBsaWVzWzFdLnN1cHBseSA9ICJ2ZGQxMCI7Cj4gQEAgLTM1MSwxMCArMzExLDYgQEAg c3RhdGljIGludCBleHlub3NfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAtCXJldCA9IGV4eW5vc19wY2ll X2luaXRfY2xrX3Jlc291cmNlcyhlcCk7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4g LQo+ICAJcmV0ID0gcmVndWxhdG9yX2J1bGtfZW5hYmxlKEFSUkFZX1NJWkUoZXAtPnN1cHBsaWVz KSwgZXAtPnN1cHBsaWVzKTsKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiBAQCAtMzY5 LDcgKzMyNSw2IEBAIHN0YXRpYyBpbnQgZXh5bm9zX3BjaWVfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKPiAgCj4gIGZhaWxfcHJvYmU6Cj4gIAlwaHlfZXhpdChlcC0+cGh5KTsK PiAtCWV4eW5vc19wY2llX2RlaW5pdF9jbGtfcmVzb3VyY2VzKGVwKTsKPiAgCXJlZ3VsYXRvcl9i dWxrX2Rpc2FibGUoQVJSQVlfU0laRShlcC0+c3VwcGxpZXMpLCBlcC0+c3VwcGxpZXMpOwo+ICAK PiAgCXJldHVybiByZXQ7Cj4gQEAgLTM4Myw3ICszMzgsNiBAQCBzdGF0aWMgaW50IF9fZXhpdCBl eHlub3NfcGNpZV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCWV4eW5v c19wY2llX2Fzc2VydF9jb3JlX3Jlc2V0KGVwKTsKPiAgCXBoeV9wb3dlcl9vZmYoZXAtPnBoeSk7 Cj4gIAlwaHlfZXhpdChlcC0+cGh5KTsKPiAtCWV4eW5vc19wY2llX2RlaW5pdF9jbGtfcmVzb3Vy Y2VzKGVwKTsKPiAgCXJlZ3VsYXRvcl9idWxrX2Rpc2FibGUoQVJSQVlfU0laRShlcC0+c3VwcGxp ZXMpLCBlcC0+c3VwcGxpZXMpOwo+ICAKPiAgCXJldHVybiAwOwo+IC0tIAo+IDIuMTcuMQo+IAoK LS0gCuCuruCuo+Cuv+CuteCuo+CvjeCuo+CuqeCvjSDgrprgrqTgrr7grprgrr/grrXgrq7gr40K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFy bS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1r ZXJuZWwK