From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 CE66E2F3C08; Thu, 9 Oct 2025 16:00:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760025602; cv=none; b=kstXCsMfVLTT2m7cgkYl+UpDUjp4BQwXgQszkGOTZ/u+DPX60FSszKZ5VKkulsbvKN6B8d91CqygUeBiVvqEEHAiYaWbYEmpEl/WteeaoV5sJ6lManVRD1rBbwdnmit6mFRFY+u6ZVKEVN0OWfFzWvMSbrnJBbG+4NOu2F9XERc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760025602; c=relaxed/simple; bh=F1FqzWXtuPtaRyeU2V6dAFIZKGQOW+Hcqx9BB7Zc0sY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CvJC0fB+cqIS5cw22NuXW3+eTD6mZldt8jtuNLRJ4siC1ads8sAoD5GBSI+I8OoCFDdtYfRiSo60piKWZPPGkEWwR5T16TX9qkwIiniIzYzpBFCIRKxFJlJwiKTUHQiCCVXuz36o6Xw5N31MW+3Dno17bLiyjQ9Mwbx0jO8cz9w= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cCFAq3nX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cCFAq3nX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4520DC4CEFE; Thu, 9 Oct 2025 16:00:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1760025602; bh=F1FqzWXtuPtaRyeU2V6dAFIZKGQOW+Hcqx9BB7Zc0sY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cCFAq3nX4HfpIwfR9bjnkCRThrt8pYALPlzrJPtbt+uIVr+OkcGxS0Los4Tv6Ld3B GpfNBVBVNM0N0j6+tqETTemwg25JuSwQmAB9odN52E4qEtodCuS4hwutzJaU+h01vZ od54biIaiv8wXZRcCv+HFUXwZ1JWYe2hBfaM3nI1txtzHI0R3NTi5rfsrq4xLm7lHZ umOsAHY9ZImhJx11e3tTyZ97YRFYljrMQjgyhjiY/ChnQUYM5quNZDi7ewc/M87qMa cX5RW7QelqNTXwDH0yzPCD+br+Y4aWjGWCKJEufB7YEQMGOK0+0H+k+5oht65Ug36W hYrk4Dww1SNug== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Icenowy Zheng , Ulf Hansson , Sasha Levin , fustini@kernel.org, guoren@kernel.org, wefu@redhat.com, linux-riscv@lists.infradead.org Subject: [PATCH AUTOSEL 6.17] pmdomain: thead: create auxiliary device for rebooting Date: Thu, 9 Oct 2025 11:55:35 -0400 Message-ID: <20251009155752.773732-69-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251009155752.773732-1-sashal@kernel.org> References: <20251009155752.773732-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.17.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Icenowy Zheng [ Upstream commit 64581f41f4c4aa1845edeee6bb0c8f2a7103d9aa ] The reboot / power off operations require communication with the AON firmware too. As the driver is already present, create an auxiliary device with name "reboot" to match that driver, and pass the AON channel by using platform_data. Signed-off-by: Icenowy Zheng Signed-off-by: Ulf Hansson Signed-off-by: Sasha Levin --- LLM Generated explanations, may be completely bogus: YES - User-visible bugfix: Without this, TH1520 systems cannot register platform reboot/poweroff handlers via the AON firmware, so reboot/poweroff won’t work even though the AON protocol and the reboot driver exist. This commit wires them up by instantiating the auxiliary device that the reboot driver matches on. - Small and contained: Adds a tiny helper and one call in the TH1520 PM domain driver; no architectural changes. - Specific code changes - Adds `th1520_pd_reboot_init()` which creates an auxiliary device named `reboot` and passes the AON channel through `platform_data` so the reboot driver can use it: drivers/pmdomain/thead/th1520-pm- domains.c:176 - `adev = devm_auxiliary_device_create(dev, "reboot", aon_chan);` - Hooks it into probe after setting up PM domains and the optional GPU pwrseq: drivers/pmdomain/thead/th1520-pm-domains.c:250 - `ret = th1520_pd_reboot_init(dev, aon_chan);` - Error path is correctly routed back to the provider cleanup. - Correct driver pairing: The created device name matches the existing driver’s ID table - Reboot driver expects `th1520_pm_domains.reboot` and consumes `adev->dev.platform_data` as the `th1520_aon_chan` to issue AON RPCs for poweroff/restart: drivers/power/reset/th1520-aon-reboot.c:51 and drivers/power/reset/th1520-aon-reboot.c:82 - Risk and scope: - TH1520-specific; no impact on other platforms. - Only instantiates an auxiliary device; safe if the reboot driver isn’t present. - No ABI/uAPI changes. - Important follow-up fix to include: The original change used `PTR_ERR_OR_ZERO(adev)` with `devm_auxiliary_device_create()`, which returns NULL on failure (not an error pointer). That was fixed by “pmdomain: thead: Fix error pointer vs NULL bug in th1520_pd_reboot_init()” (bbc3110823eca), which changes the return to `-ENODEV` on NULL and returns 0 otherwise: drivers/pmdomain/thead/th1520-pm-domains.c:181. For stable backporting, include this fix alongside the main commit to avoid silently succeeding when the aux device creation fails. - Stable policy fit: - Fixes a real functionality gap (reboot/poweroff) for TH1520 users. - Minimal code, clear intent, and contained to the TH1520 PM domain driver. - No feature creep or architectural refactoring. Recommendation: Backport this commit together with the follow-up fix bbc3110823eca to ensure correct error handling. drivers/pmdomain/thead/th1520-pm-domains.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/pmdomain/thead/th1520-pm-domains.c b/drivers/pmdomain/thead/th1520-pm-domains.c index 9040b698e7f7f..5213994101a59 100644 --- a/drivers/pmdomain/thead/th1520-pm-domains.c +++ b/drivers/pmdomain/thead/th1520-pm-domains.c @@ -173,6 +173,16 @@ static int th1520_pd_pwrseq_gpu_init(struct device *dev) adev); } +static int th1520_pd_reboot_init(struct device *dev, + struct th1520_aon_chan *aon_chan) +{ + struct auxiliary_device *adev; + + adev = devm_auxiliary_device_create(dev, "reboot", aon_chan); + + return PTR_ERR_OR_ZERO(adev); +} + static int th1520_pd_probe(struct platform_device *pdev) { struct generic_pm_domain **domains; @@ -235,6 +245,10 @@ static int th1520_pd_probe(struct platform_device *pdev) if (ret) goto err_clean_provider; + ret = th1520_pd_reboot_init(dev, aon_chan); + if (ret) + goto err_clean_provider; + return 0; err_clean_provider: -- 2.51.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 C5DE4CCD183 for ; Thu, 9 Oct 2025 16:00:12 +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:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=h+9klJBNL8qqPlGbrdB+iMAy+OHzF9czjHvg/StVpiY=; b=PL4ox60yiXItH/ T/+GkMEEODOF/O+anVQzvUQGkMIIB07Hauvoe9CaSyYzClBbmgM0EY4+yeHhWTROJl2Gx0hYC26+a 4MNF2StJo/fo49xmcg5L+T8Mo4uw8vNDGhhUyorsC+dgTXY2MFu00mGUgcPol0gllyhsL+nYHRU1w pFfBeHi99KuuZEvEY0dWTUiymLbjdRtR44sPIO1XeD9Po/xd9ZaW65ftmhUo0JoNFuCj6nDFOMKy8 v9YBV8pWcAE74WIRm2JGE8TOWotquuW9MDIS2rRjLegQP8M0iieXc9ZBxr092enpJeLaGrcof+3Wj 1PpwMSaSGHZLaFVEUBSQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1v6t3m-00000006bmg-2kPY; Thu, 09 Oct 2025 16:00:06 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1v6t3j-00000006bin-38aa for linux-riscv@lists.infradead.org; Thu, 09 Oct 2025 16:00:03 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 0E9146236C; Thu, 9 Oct 2025 16:00:03 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4520DC4CEFE; Thu, 9 Oct 2025 16:00:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1760025602; bh=F1FqzWXtuPtaRyeU2V6dAFIZKGQOW+Hcqx9BB7Zc0sY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cCFAq3nX4HfpIwfR9bjnkCRThrt8pYALPlzrJPtbt+uIVr+OkcGxS0Los4Tv6Ld3B GpfNBVBVNM0N0j6+tqETTemwg25JuSwQmAB9odN52E4qEtodCuS4hwutzJaU+h01vZ od54biIaiv8wXZRcCv+HFUXwZ1JWYe2hBfaM3nI1txtzHI0R3NTi5rfsrq4xLm7lHZ umOsAHY9ZImhJx11e3tTyZ97YRFYljrMQjgyhjiY/ChnQUYM5quNZDi7ewc/M87qMa cX5RW7QelqNTXwDH0yzPCD+br+Y4aWjGWCKJEufB7YEQMGOK0+0H+k+5oht65Ug36W hYrk4Dww1SNug== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Subject: [PATCH AUTOSEL 6.17] pmdomain: thead: create auxiliary device for rebooting Date: Thu, 9 Oct 2025 11:55:35 -0400 Message-ID: <20251009155752.773732-69-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251009155752.773732-1-sashal@kernel.org> References: <20251009155752.773732-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.17.1 X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sasha Levin , fustini@kernel.org, Ulf Hansson , guoren@kernel.org, linux-riscv@lists.infradead.org, wefu@redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org RnJvbTogSWNlbm93eSBaaGVuZyA8dXd1QGljZW5vd3kubWU+CgpbIFVwc3RyZWFtIGNvbW1pdCA2 NDU4MWY0MWY0YzRhYTE4NDVlZGVlZTZiYjBjOGYyYTcxMDNkOWFhIF0KClRoZSByZWJvb3QgLyBw b3dlciBvZmYgb3BlcmF0aW9ucyByZXF1aXJlIGNvbW11bmljYXRpb24gd2l0aCB0aGUgQU9OCmZp cm13YXJlIHRvby4KCkFzIHRoZSBkcml2ZXIgaXMgYWxyZWFkeSBwcmVzZW50LCBjcmVhdGUgYW4g YXV4aWxpYXJ5IGRldmljZSB3aXRoIG5hbWUKInJlYm9vdCIgdG8gbWF0Y2ggdGhhdCBkcml2ZXIs IGFuZCBwYXNzIHRoZSBBT04gY2hhbm5lbCBieSB1c2luZwpwbGF0Zm9ybV9kYXRhLgoKU2lnbmVk LW9mZi1ieTogSWNlbm93eSBaaGVuZyA8dXd1QGljZW5vd3kubWU+ClNpZ25lZC1vZmYtYnk6IFVs ZiBIYW5zc29uIDx1bGYuaGFuc3NvbkBsaW5hcm8ub3JnPgpTaWduZWQtb2ZmLWJ5OiBTYXNoYSBM ZXZpbiA8c2FzaGFsQGtlcm5lbC5vcmc+Ci0tLQoKTExNIEdlbmVyYXRlZCBleHBsYW5hdGlvbnMs IG1heSBiZSBjb21wbGV0ZWx5IGJvZ3VzOgoKWUVTCgotIFVzZXItdmlzaWJsZSBidWdmaXg6IFdp dGhvdXQgdGhpcywgVEgxNTIwIHN5c3RlbXMgY2Fubm90IHJlZ2lzdGVyCiAgcGxhdGZvcm0gcmVi b290L3Bvd2Vyb2ZmIGhhbmRsZXJzIHZpYSB0aGUgQU9OIGZpcm13YXJlLCBzbwogIHJlYm9vdC9w b3dlcm9mZiB3b27igJl0IHdvcmsgZXZlbiB0aG91Z2ggdGhlIEFPTiBwcm90b2NvbCBhbmQgdGhl IHJlYm9vdAogIGRyaXZlciBleGlzdC4gVGhpcyBjb21taXQgd2lyZXMgdGhlbSB1cCBieSBpbnN0 YW50aWF0aW5nIHRoZSBhdXhpbGlhcnkKICBkZXZpY2UgdGhhdCB0aGUgcmVib290IGRyaXZlciBt YXRjaGVzIG9uLgotIFNtYWxsIGFuZCBjb250YWluZWQ6IEFkZHMgYSB0aW55IGhlbHBlciBhbmQg b25lIGNhbGwgaW4gdGhlIFRIMTUyMCBQTQogIGRvbWFpbiBkcml2ZXI7IG5vIGFyY2hpdGVjdHVy YWwgY2hhbmdlcy4KLSBTcGVjaWZpYyBjb2RlIGNoYW5nZXMKICAtIEFkZHMgYHRoMTUyMF9wZF9y ZWJvb3RfaW5pdCgpYCB3aGljaCBjcmVhdGVzIGFuIGF1eGlsaWFyeSBkZXZpY2UKICAgIG5hbWVk IGByZWJvb3RgIGFuZCBwYXNzZXMgdGhlIEFPTiBjaGFubmVsIHRocm91Z2ggYHBsYXRmb3JtX2Rh dGFgIHNvCiAgICB0aGUgcmVib290IGRyaXZlciBjYW4gdXNlIGl0OiBkcml2ZXJzL3BtZG9tYWlu L3RoZWFkL3RoMTUyMC1wbS0KICAgIGRvbWFpbnMuYzoxNzYKICAgIC0gYGFkZXYgPSBkZXZtX2F1 eGlsaWFyeV9kZXZpY2VfY3JlYXRlKGRldiwgInJlYm9vdCIsIGFvbl9jaGFuKTtgCiAgLSBIb29r cyBpdCBpbnRvIHByb2JlIGFmdGVyIHNldHRpbmcgdXAgUE0gZG9tYWlucyBhbmQgdGhlIG9wdGlv bmFsIEdQVQogICAgcHdyc2VxOiBkcml2ZXJzL3BtZG9tYWluL3RoZWFkL3RoMTUyMC1wbS1kb21h aW5zLmM6MjUwCiAgICAtIGByZXQgPSB0aDE1MjBfcGRfcmVib290X2luaXQoZGV2LCBhb25fY2hh bik7YAogIC0gRXJyb3IgcGF0aCBpcyBjb3JyZWN0bHkgcm91dGVkIGJhY2sgdG8gdGhlIHByb3Zp ZGVyIGNsZWFudXAuCi0gQ29ycmVjdCBkcml2ZXIgcGFpcmluZzogVGhlIGNyZWF0ZWQgZGV2aWNl IG5hbWUgbWF0Y2hlcyB0aGUgZXhpc3RpbmcKICBkcml2ZXLigJlzIElEIHRhYmxlCiAgLSBSZWJv b3QgZHJpdmVyIGV4cGVjdHMgYHRoMTUyMF9wbV9kb21haW5zLnJlYm9vdGAgYW5kIGNvbnN1bWVz CiAgICBgYWRldi0+ZGV2LnBsYXRmb3JtX2RhdGFgIGFzIHRoZSBgdGgxNTIwX2Fvbl9jaGFuYCB0 byBpc3N1ZSBBT04gUlBDcwogICAgZm9yIHBvd2Vyb2ZmL3Jlc3RhcnQ6IGRyaXZlcnMvcG93ZXIv cmVzZXQvdGgxNTIwLWFvbi1yZWJvb3QuYzo1MSBhbmQKICAgIGRyaXZlcnMvcG93ZXIvcmVzZXQv dGgxNTIwLWFvbi1yZWJvb3QuYzo4MgotIFJpc2sgYW5kIHNjb3BlOgogIC0gVEgxNTIwLXNwZWNp ZmljOyBubyBpbXBhY3Qgb24gb3RoZXIgcGxhdGZvcm1zLgogIC0gT25seSBpbnN0YW50aWF0ZXMg YW4gYXV4aWxpYXJ5IGRldmljZTsgc2FmZSBpZiB0aGUgcmVib290IGRyaXZlcgogICAgaXNu4oCZ dCBwcmVzZW50LgogIC0gTm8gQUJJL3VBUEkgY2hhbmdlcy4KLSBJbXBvcnRhbnQgZm9sbG93LXVw IGZpeCB0byBpbmNsdWRlOiBUaGUgb3JpZ2luYWwgY2hhbmdlIHVzZWQKICBgUFRSX0VSUl9PUl9a RVJPKGFkZXYpYCB3aXRoIGBkZXZtX2F1eGlsaWFyeV9kZXZpY2VfY3JlYXRlKClgLCB3aGljaAog IHJldHVybnMgTlVMTCBvbiBmYWlsdXJlIChub3QgYW4gZXJyb3IgcG9pbnRlcikuIFRoYXQgd2Fz IGZpeGVkIGJ5CiAg4oCccG1kb21haW46IHRoZWFkOiBGaXggZXJyb3IgcG9pbnRlciB2cyBOVUxM IGJ1ZyBpbgogIHRoMTUyMF9wZF9yZWJvb3RfaW5pdCgp4oCdIChiYmMzMTEwODIzZWNhKSwgd2hp Y2ggY2hhbmdlcyB0aGUgcmV0dXJuIHRvCiAgYC1FTk9ERVZgIG9uIE5VTEwgYW5kIHJldHVybnMg MCBvdGhlcndpc2U6CiAgZHJpdmVycy9wbWRvbWFpbi90aGVhZC90aDE1MjAtcG0tZG9tYWlucy5j OjE4MS4gRm9yIHN0YWJsZQogIGJhY2twb3J0aW5nLCBpbmNsdWRlIHRoaXMgZml4IGFsb25nc2lk ZSB0aGUgbWFpbiBjb21taXQgdG8gYXZvaWQKICBzaWxlbnRseSBzdWNjZWVkaW5nIHdoZW4gdGhl IGF1eCBkZXZpY2UgY3JlYXRpb24gZmFpbHMuCi0gU3RhYmxlIHBvbGljeSBmaXQ6CiAgLSBGaXhl cyBhIHJlYWwgZnVuY3Rpb25hbGl0eSBnYXAgKHJlYm9vdC9wb3dlcm9mZikgZm9yIFRIMTUyMCB1 c2Vycy4KICAtIE1pbmltYWwgY29kZSwgY2xlYXIgaW50ZW50LCBhbmQgY29udGFpbmVkIHRvIHRo ZSBUSDE1MjAgUE0gZG9tYWluCiAgICBkcml2ZXIuCiAgLSBObyBmZWF0dXJlIGNyZWVwIG9yIGFy Y2hpdGVjdHVyYWwgcmVmYWN0b3JpbmcuCgpSZWNvbW1lbmRhdGlvbjogQmFja3BvcnQgdGhpcyBj b21taXQgdG9nZXRoZXIgd2l0aCB0aGUgZm9sbG93LXVwIGZpeApiYmMzMTEwODIzZWNhIHRvIGVu c3VyZSBjb3JyZWN0IGVycm9yIGhhbmRsaW5nLgoKIGRyaXZlcnMvcG1kb21haW4vdGhlYWQvdGgx NTIwLXBtLWRvbWFpbnMuYyB8IDE0ICsrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTQg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG1kb21haW4vdGhlYWQvdGgxNTIw LXBtLWRvbWFpbnMuYyBiL2RyaXZlcnMvcG1kb21haW4vdGhlYWQvdGgxNTIwLXBtLWRvbWFpbnMu YwppbmRleCA5MDQwYjY5OGU3ZjdmLi41MjEzOTk0MTAxYTU5IDEwMDY0NAotLS0gYS9kcml2ZXJz L3BtZG9tYWluL3RoZWFkL3RoMTUyMC1wbS1kb21haW5zLmMKKysrIGIvZHJpdmVycy9wbWRvbWFp bi90aGVhZC90aDE1MjAtcG0tZG9tYWlucy5jCkBAIC0xNzMsNiArMTczLDE2IEBAIHN0YXRpYyBp bnQgdGgxNTIwX3BkX3B3cnNlcV9ncHVfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJCQkJCWFk ZXYpOwogfQogCitzdGF0aWMgaW50IHRoMTUyMF9wZF9yZWJvb3RfaW5pdChzdHJ1Y3QgZGV2aWNl ICpkZXYsCisJCQkJIHN0cnVjdCB0aDE1MjBfYW9uX2NoYW4gKmFvbl9jaGFuKQoreworCXN0cnVj dCBhdXhpbGlhcnlfZGV2aWNlICphZGV2OworCisJYWRldiA9IGRldm1fYXV4aWxpYXJ5X2Rldmlj ZV9jcmVhdGUoZGV2LCAicmVib290IiwgYW9uX2NoYW4pOworCisJcmV0dXJuIFBUUl9FUlJfT1Jf WkVSTyhhZGV2KTsKK30KKwogc3RhdGljIGludCB0aDE1MjBfcGRfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgZ2VuZXJpY19wbV9kb21haW4gKipkb21haW5z OwpAQCAtMjM1LDYgKzI0NSwxMCBAQCBzdGF0aWMgaW50IHRoMTUyMF9wZF9wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmIChyZXQpCiAJCWdvdG8gZXJyX2NsZWFuX3Byb3Zp ZGVyOwogCisJcmV0ID0gdGgxNTIwX3BkX3JlYm9vdF9pbml0KGRldiwgYW9uX2NoYW4pOworCWlm IChyZXQpCisJCWdvdG8gZXJyX2NsZWFuX3Byb3ZpZGVyOworCiAJcmV0dXJuIDA7CiAKIGVycl9j bGVhbl9wcm92aWRlcjoKLS0gCjIuNTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtcmlzY3YK