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 X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 697B4C64E7A for ; Tue, 24 Nov 2020 10:57:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CD91B208FE for ; Tue, 24 Nov 2020 10:57:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="c6L310/W" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732336AbgKXK53 (ORCPT ); Tue, 24 Nov 2020 05:57:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38428 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725786AbgKXK51 (ORCPT ); Tue, 24 Nov 2020 05:57:27 -0500 Received: from mail-ua1-x942.google.com (mail-ua1-x942.google.com [IPv6:2607:f8b0:4864:20::942]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A2DE5C0613D6 for ; Tue, 24 Nov 2020 02:57:26 -0800 (PST) Received: by mail-ua1-x942.google.com with SMTP id k12so6672220uae.13 for ; Tue, 24 Nov 2020 02:57:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=tAqRwMIUc4klvn6SlWKiHlnSYstEpCnu5WY0StL4rIg=; b=c6L310/W9WuE8LB46O3wjlbd018o8ulm2iLbojt9gyOYQg4urHc++08p+8PrDXShzC LaOwqqkOxEJyb698vzU4tJqPs8BGFNA0PKcz+7OIXhEwMN5VbqZF9ReQGuDAKiFshKtt lQDRLr6+MVw0K6PZTEufSYpKISykVqRKrB0g67/a7ys9SFYSQljZRENbZHmY/rp4Hdho FBUV0qxk1OZ/NINxs7JFiOhilRwxNzqzC7NqHOuAP2EkRApk8RXbymnlqo9RfaBQORqr J0+rbPvDS8Iq3+WpNH43WjU1YtArB/+j1o/eYEmCqFBcO4gxZeqWm8KMaUj/Luj0K5UN XQVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=tAqRwMIUc4klvn6SlWKiHlnSYstEpCnu5WY0StL4rIg=; b=uRrpHh9X5ZKoiikR4BSLARufvrKgolHyrqKv8fRWfnoMcAJY1bT335bTnKkROh9wp2 pumtumyg6+drsV9MPUo9AzBYR9AjnbHgDjYGVxYxo1DsCTo5la2/vtylszSBs+rvyooS PflPoSNPNQeNn1tEOov9pTpc33u0HoLB8w1xLpK8dhLcD8x7w8Z+bsdoEfzoEnnb6BkH QZgw4QTe7WulbQEbtWvGCFq6v7E4MPwVMstV17LqE4ygvJ77sXWaLDbY8X2WLxCLJAQB Hg6LKZEt1YhVDJ4mNk89Ifny7JAR8c532j4yCHLNqmWAhsTP1lKFZg6Row8kiVbw+a4O Kp8Q== X-Gm-Message-State: AOAM531WwhK5yKYlJcr3jQXhAjFWUUkMbUYT6Ae6INJ/VFQOs7LmY+A4 R7ci8ER+sqpAkE88dVHk3KXCAB1v7/Zod/89Fk+pVNaTByvLBA== X-Google-Smtp-Source: ABdhPJxun6aRfYnOh6ghQOI8l08zLoxFL3CrTRWgv/cTKSlHzOkwdsJZum/AIzXFUEL6LVPKACWhojs0DTxBno1GZzM= X-Received: by 2002:ab0:c12:: with SMTP id a18mr2538453uak.19.1606215445865; Tue, 24 Nov 2020 02:57:25 -0800 (PST) MIME-Version: 1.0 References: <20201124103242.2971199-1-u.kleine-koenig@pengutronix.de> In-Reply-To: <20201124103242.2971199-1-u.kleine-koenig@pengutronix.de> From: Ulf Hansson Date: Tue, 24 Nov 2020 11:56:49 +0100 Message-ID: Subject: Re: [PATCH 1/4] amba: reorder functions To: =?UTF-8?Q?Uwe_Kleine=2DK=C3=B6nig?= Cc: Russell King , Greg Kroah-Hartman , Arnd Bergmann , Linus Walleij , Rob Herring , Sascha Hauer , Linux ARM , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 24 Nov 2020 at 11:33, Uwe Kleine-K=C3=B6nig wrote: > > Put helpers (here: amba_get_enable_pclk and amba_put_disable_pclk) at > the top of the file and then define callbacks directly before the > structs they are used in; in the same order. > > Signed-off-by: Uwe Kleine-K=C3=B6nig Reviewed-by: Ulf Hansson > --- > drivers/amba/bus.c | 77 +++++++++++++++++++++++----------------------- > 1 file changed, 39 insertions(+), 38 deletions(-) > > diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c > index ecc304149067..8658e0533b67 100644 > --- a/drivers/amba/bus.c > +++ b/drivers/amba/bus.c > @@ -56,31 +56,28 @@ amba_lookup(const struct amba_id *table, struct amba_= device *dev) > return NULL; > } > > -static int amba_match(struct device *dev, struct device_driver *drv) > +static int amba_get_enable_pclk(struct amba_device *pcdev) > { > - struct amba_device *pcdev =3D to_amba_device(dev); > - struct amba_driver *pcdrv =3D to_amba_driver(drv); > + int ret; > > - /* When driver_override is set, only bind to the matching driver = */ > - if (pcdev->driver_override) > - return !strcmp(pcdev->driver_override, drv->name); > + pcdev->pclk =3D clk_get(&pcdev->dev, "apb_pclk"); > + if (IS_ERR(pcdev->pclk)) > + return PTR_ERR(pcdev->pclk); > > - return amba_lookup(pcdrv->id_table, pcdev) !=3D NULL; > + ret =3D clk_prepare_enable(pcdev->pclk); > + if (ret) > + clk_put(pcdev->pclk); > + > + return ret; > } > > -static int amba_uevent(struct device *dev, struct kobj_uevent_env *env) > +static void amba_put_disable_pclk(struct amba_device *pcdev) > { > - struct amba_device *pcdev =3D to_amba_device(dev); > - int retval =3D 0; > - > - retval =3D add_uevent_var(env, "AMBA_ID=3D%08x", pcdev->periphid)= ; > - if (retval) > - return retval; > - > - retval =3D add_uevent_var(env, "MODALIAS=3Damba:d%08X", pcdev->pe= riphid); > - return retval; > + clk_disable_unprepare(pcdev->pclk); > + clk_put(pcdev->pclk); > } > > + > static ssize_t driver_override_show(struct device *_dev, > struct device_attribute *attr, char *= buf) > { > @@ -152,6 +149,31 @@ static struct attribute *amba_dev_attrs[] =3D { > }; > ATTRIBUTE_GROUPS(amba_dev); > > +static int amba_match(struct device *dev, struct device_driver *drv) > +{ > + struct amba_device *pcdev =3D to_amba_device(dev); > + struct amba_driver *pcdrv =3D to_amba_driver(drv); > + > + /* When driver_override is set, only bind to the matching driver = */ > + if (pcdev->driver_override) > + return !strcmp(pcdev->driver_override, drv->name); > + > + return amba_lookup(pcdrv->id_table, pcdev) !=3D NULL; > +} > + > +static int amba_uevent(struct device *dev, struct kobj_uevent_env *env) > +{ > + struct amba_device *pcdev =3D to_amba_device(dev); > + int retval =3D 0; > + > + retval =3D add_uevent_var(env, "AMBA_ID=3D%08x", pcdev->periphid)= ; > + if (retval) > + return retval; > + > + retval =3D add_uevent_var(env, "MODALIAS=3Damba:d%08X", pcdev->pe= riphid); > + return retval; > +} > + > #ifdef CONFIG_PM > /* > * Hooks to provide runtime PM of the pclk (bus clock). It is safe to > @@ -229,27 +251,6 @@ static int __init amba_init(void) > > postcore_initcall(amba_init); > > -static int amba_get_enable_pclk(struct amba_device *pcdev) > -{ > - int ret; > - > - pcdev->pclk =3D clk_get(&pcdev->dev, "apb_pclk"); > - if (IS_ERR(pcdev->pclk)) > - return PTR_ERR(pcdev->pclk); > - > - ret =3D clk_prepare_enable(pcdev->pclk); > - if (ret) > - clk_put(pcdev->pclk); > - > - return ret; > -} > - > -static void amba_put_disable_pclk(struct amba_device *pcdev) > -{ > - clk_disable_unprepare(pcdev->pclk); > - clk_put(pcdev->pclk); > -} > - > /* > * These are the device model conversion veneers; they convert the > * device model structures to our more specific structures. > > base-commit: 95065cb54210eba86bed10cb2118041524d54573 > -- > 2.29.2 > 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 X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B3B62C2D0E4 for ; Tue, 24 Nov 2020 10:58:04 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3301420663 for ; Tue, 24 Nov 2020 10:58:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="J8fmhgCL"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="c6L310/W" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3301420663 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Q6Miy5NquuTAMIz1QGbV7vuL6vbYpW7W9aUgYgAWdt8=; b=J8fmhgCL0EvvBgPm+NajFDkSp 8eRmYypYbsHNqMzDCOaQW+yaoZsX+bc/br3Qn1lKGrIRiVZ5RbjAsGExDvV4WCS/njm2XR22DqeYt BThsuMt4iqbseEqvBJrKNkPGaeMkBLqc/2gMQlCR/h2Bg0xX4M2ooN3pRRuo2+5iUFy68oqX8rfX8 0VtJccv/WX8F9iIq7EHGSiaxyxahJ1ykRRHdiiIVIBzShf3r0UBKVgbPrtNatlUYqwNur2QGrjjae rsArz3ngtg1WJK4mAiIyWCzUKPEn8vvZVenEL34NghQJtXLhvnqfi5rE6bVqJVSHUo7sPQWrQtQ6q aSKmIYWMQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1khW0u-0004w0-Jy; Tue, 24 Nov 2020 10:57:36 +0000 Received: from mail-ua1-x941.google.com ([2607:f8b0:4864:20::941]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1khW0l-0004se-TJ for linux-arm-kernel@lists.infradead.org; Tue, 24 Nov 2020 10:57:29 +0000 Received: by mail-ua1-x941.google.com with SMTP id a10so6683254uan.12 for ; Tue, 24 Nov 2020 02:57:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=tAqRwMIUc4klvn6SlWKiHlnSYstEpCnu5WY0StL4rIg=; b=c6L310/W9WuE8LB46O3wjlbd018o8ulm2iLbojt9gyOYQg4urHc++08p+8PrDXShzC LaOwqqkOxEJyb698vzU4tJqPs8BGFNA0PKcz+7OIXhEwMN5VbqZF9ReQGuDAKiFshKtt lQDRLr6+MVw0K6PZTEufSYpKISykVqRKrB0g67/a7ys9SFYSQljZRENbZHmY/rp4Hdho FBUV0qxk1OZ/NINxs7JFiOhilRwxNzqzC7NqHOuAP2EkRApk8RXbymnlqo9RfaBQORqr J0+rbPvDS8Iq3+WpNH43WjU1YtArB/+j1o/eYEmCqFBcO4gxZeqWm8KMaUj/Luj0K5UN XQVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=tAqRwMIUc4klvn6SlWKiHlnSYstEpCnu5WY0StL4rIg=; b=KT1pFZl7LuDWKs3EQyCMVz3OZ9tQxzWpWltK2NfxF7XywF7BsFvu3lfQUpIMgK/O0J 8g6L6v35dx/ooSwKflWVIv03WZ/KcF2PhUeNI4gQvdIvvBIwrk2NH9YgxAhgml1UGD8P P7LcdjixKta9AbxagcpyXKQ79eXybm/UbVkbiqrKaFyrG8R2WmjQOlZikMkhouCGhEdN JNkiczn/mSosMN/3ThCQvfZdmEtE+PasX1ct02bVmdEngTbimuxMReZYYiLDYkvZOWwB 6Noegbg4JBJv5vBnaXaENGu8YfA4BRQiZKuYIUFal+nWaq7wYE/3ceoYqyQH4S5F2NxP ASpA== X-Gm-Message-State: AOAM533T3JZjlqFWhurue3qbRam5Di0h2JcfPCJgxrjhdsW4vkONZ4mG kOyG742D+LgF1M7XKe7rk0HyCIFxaXphF7CHznJrRg== X-Google-Smtp-Source: ABdhPJxun6aRfYnOh6ghQOI8l08zLoxFL3CrTRWgv/cTKSlHzOkwdsJZum/AIzXFUEL6LVPKACWhojs0DTxBno1GZzM= X-Received: by 2002:ab0:c12:: with SMTP id a18mr2538453uak.19.1606215445865; Tue, 24 Nov 2020 02:57:25 -0800 (PST) MIME-Version: 1.0 References: <20201124103242.2971199-1-u.kleine-koenig@pengutronix.de> In-Reply-To: <20201124103242.2971199-1-u.kleine-koenig@pengutronix.de> From: Ulf Hansson Date: Tue, 24 Nov 2020 11:56:49 +0100 Message-ID: Subject: Re: [PATCH 1/4] amba: reorder functions To: =?UTF-8?Q?Uwe_Kleine=2DK=C3=B6nig?= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201124_055728_047534_DD0E01DD X-CRM114-Status: GOOD ( 24.43 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Herring , Arnd Bergmann , Greg Kroah-Hartman , Linus Walleij , Russell King , Linux Kernel Mailing List , Sascha Hauer , Linux ARM 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 T24gVHVlLCAyNCBOb3YgMjAyMCBhdCAxMTozMywgVXdlIEtsZWluZS1Lw7ZuaWcKPHUua2xlaW5l LWtvZW5pZ0BwZW5ndXRyb25peC5kZT4gd3JvdGU6Cj4KPiBQdXQgaGVscGVycyAoaGVyZTogYW1i YV9nZXRfZW5hYmxlX3BjbGsgYW5kIGFtYmFfcHV0X2Rpc2FibGVfcGNsaykgYXQKPiB0aGUgdG9w IG9mIHRoZSBmaWxlIGFuZCB0aGVuIGRlZmluZSBjYWxsYmFja3MgZGlyZWN0bHkgYmVmb3JlIHRo ZQo+IHN0cnVjdHMgdGhleSBhcmUgdXNlZCBpbjsgaW4gdGhlIHNhbWUgb3JkZXIuCj4KPiBTaWdu ZWQtb2ZmLWJ5OiBVd2UgS2xlaW5lLUvDtm5pZyA8dS5rbGVpbmUta29lbmlnQHBlbmd1dHJvbml4 LmRlPgoKUmV2aWV3ZWQtYnk6IFVsZiBIYW5zc29uIDx1bGYuaGFuc3NvbkBsaW5hcm8ub3JnPgoK Cj4gLS0tCj4gIGRyaXZlcnMvYW1iYS9idXMuYyB8IDc3ICsrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDM5IGluc2VydGlvbnMo KyksIDM4IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYW1iYS9idXMuYyBi L2RyaXZlcnMvYW1iYS9idXMuYwo+IGluZGV4IGVjYzMwNDE0OTA2Ny4uODY1OGUwNTMzYjY3IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvYW1iYS9idXMuYwo+ICsrKyBiL2RyaXZlcnMvYW1iYS9idXMu Ywo+IEBAIC01NiwzMSArNTYsMjggQEAgYW1iYV9sb29rdXAoY29uc3Qgc3RydWN0IGFtYmFfaWQg KnRhYmxlLCBzdHJ1Y3QgYW1iYV9kZXZpY2UgKmRldikKPiAgICAgICAgIHJldHVybiBOVUxMOwo+ ICB9Cj4KPiAtc3RhdGljIGludCBhbWJhX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0 IGRldmljZV9kcml2ZXIgKmRydikKPiArc3RhdGljIGludCBhbWJhX2dldF9lbmFibGVfcGNsayhz dHJ1Y3QgYW1iYV9kZXZpY2UgKnBjZGV2KQo+ICB7Cj4gLSAgICAgICBzdHJ1Y3QgYW1iYV9kZXZp Y2UgKnBjZGV2ID0gdG9fYW1iYV9kZXZpY2UoZGV2KTsKPiAtICAgICAgIHN0cnVjdCBhbWJhX2Ry aXZlciAqcGNkcnYgPSB0b19hbWJhX2RyaXZlcihkcnYpOwo+ICsgICAgICAgaW50IHJldDsKPgo+ IC0gICAgICAgLyogV2hlbiBkcml2ZXJfb3ZlcnJpZGUgaXMgc2V0LCBvbmx5IGJpbmQgdG8gdGhl IG1hdGNoaW5nIGRyaXZlciAqLwo+IC0gICAgICAgaWYgKHBjZGV2LT5kcml2ZXJfb3ZlcnJpZGUp Cj4gLSAgICAgICAgICAgICAgIHJldHVybiAhc3RyY21wKHBjZGV2LT5kcml2ZXJfb3ZlcnJpZGUs IGRydi0+bmFtZSk7Cj4gKyAgICAgICBwY2Rldi0+cGNsayA9IGNsa19nZXQoJnBjZGV2LT5kZXYs ICJhcGJfcGNsayIpOwo+ICsgICAgICAgaWYgKElTX0VSUihwY2Rldi0+cGNsaykpCj4gKyAgICAg ICAgICAgICAgIHJldHVybiBQVFJfRVJSKHBjZGV2LT5wY2xrKTsKPgo+IC0gICAgICAgcmV0dXJu IGFtYmFfbG9va3VwKHBjZHJ2LT5pZF90YWJsZSwgcGNkZXYpICE9IE5VTEw7Cj4gKyAgICAgICBy ZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUocGNkZXYtPnBjbGspOwo+ICsgICAgICAgaWYgKHJldCkK PiArICAgICAgICAgICAgICAgY2xrX3B1dChwY2Rldi0+cGNsayk7Cj4gKwo+ICsgICAgICAgcmV0 dXJuIHJldDsKPiAgfQo+Cj4gLXN0YXRpYyBpbnQgYW1iYV91ZXZlbnQoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYpCj4gK3N0YXRpYyB2b2lkIGFtYmFfcHV0 X2Rpc2FibGVfcGNsayhzdHJ1Y3QgYW1iYV9kZXZpY2UgKnBjZGV2KQo+ICB7Cj4gLSAgICAgICBz dHJ1Y3QgYW1iYV9kZXZpY2UgKnBjZGV2ID0gdG9fYW1iYV9kZXZpY2UoZGV2KTsKPiAtICAgICAg IGludCByZXR2YWwgPSAwOwo+IC0KPiAtICAgICAgIHJldHZhbCA9IGFkZF91ZXZlbnRfdmFyKGVu diwgIkFNQkFfSUQ9JTA4eCIsIHBjZGV2LT5wZXJpcGhpZCk7Cj4gLSAgICAgICBpZiAocmV0dmFs KQo+IC0gICAgICAgICAgICAgICByZXR1cm4gcmV0dmFsOwo+IC0KPiAtICAgICAgIHJldHZhbCA9 IGFkZF91ZXZlbnRfdmFyKGVudiwgIk1PREFMSUFTPWFtYmE6ZCUwOFgiLCBwY2Rldi0+cGVyaXBo aWQpOwo+IC0gICAgICAgcmV0dXJuIHJldHZhbDsKPiArICAgICAgIGNsa19kaXNhYmxlX3VucHJl cGFyZShwY2Rldi0+cGNsayk7Cj4gKyAgICAgICBjbGtfcHV0KHBjZGV2LT5wY2xrKTsKPiAgfQo+ Cj4gKwo+ICBzdGF0aWMgc3NpemVfdCBkcml2ZXJfb3ZlcnJpZGVfc2hvdyhzdHJ1Y3QgZGV2aWNl ICpfZGV2LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkZXZp Y2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCj4gIHsKPiBAQCAtMTUyLDYgKzE0OSwzMSBA QCBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYW1iYV9kZXZfYXR0cnNbXSA9IHsKPiAgfTsKPiAg QVRUUklCVVRFX0dST1VQUyhhbWJhX2Rldik7Cj4KPiArc3RhdGljIGludCBhbWJhX21hdGNoKHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydikKPiArewo+ICsgICAg ICAgc3RydWN0IGFtYmFfZGV2aWNlICpwY2RldiA9IHRvX2FtYmFfZGV2aWNlKGRldik7Cj4gKyAg ICAgICBzdHJ1Y3QgYW1iYV9kcml2ZXIgKnBjZHJ2ID0gdG9fYW1iYV9kcml2ZXIoZHJ2KTsKPiAr Cj4gKyAgICAgICAvKiBXaGVuIGRyaXZlcl9vdmVycmlkZSBpcyBzZXQsIG9ubHkgYmluZCB0byB0 aGUgbWF0Y2hpbmcgZHJpdmVyICovCj4gKyAgICAgICBpZiAocGNkZXYtPmRyaXZlcl9vdmVycmlk ZSkKPiArICAgICAgICAgICAgICAgcmV0dXJuICFzdHJjbXAocGNkZXYtPmRyaXZlcl9vdmVycmlk ZSwgZHJ2LT5uYW1lKTsKPiArCj4gKyAgICAgICByZXR1cm4gYW1iYV9sb29rdXAocGNkcnYtPmlk X3RhYmxlLCBwY2RldikgIT0gTlVMTDsKPiArfQo+ICsKPiArc3RhdGljIGludCBhbWJhX3VldmVu dChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBrb2JqX3VldmVudF9lbnYgKmVudikKPiArewo+ ICsgICAgICAgc3RydWN0IGFtYmFfZGV2aWNlICpwY2RldiA9IHRvX2FtYmFfZGV2aWNlKGRldik7 Cj4gKyAgICAgICBpbnQgcmV0dmFsID0gMDsKPiArCj4gKyAgICAgICByZXR2YWwgPSBhZGRfdWV2 ZW50X3ZhcihlbnYsICJBTUJBX0lEPSUwOHgiLCBwY2Rldi0+cGVyaXBoaWQpOwo+ICsgICAgICAg aWYgKHJldHZhbCkKPiArICAgICAgICAgICAgICAgcmV0dXJuIHJldHZhbDsKPiArCj4gKyAgICAg ICByZXR2YWwgPSBhZGRfdWV2ZW50X3ZhcihlbnYsICJNT0RBTElBUz1hbWJhOmQlMDhYIiwgcGNk ZXYtPnBlcmlwaGlkKTsKPiArICAgICAgIHJldHVybiByZXR2YWw7Cj4gK30KPiArCj4gICNpZmRl ZiBDT05GSUdfUE0KPiAgLyoKPiAgICogSG9va3MgdG8gcHJvdmlkZSBydW50aW1lIFBNIG9mIHRo ZSBwY2xrIChidXMgY2xvY2spLiAgSXQgaXMgc2FmZSB0bwo+IEBAIC0yMjksMjcgKzI1MSw2IEBA IHN0YXRpYyBpbnQgX19pbml0IGFtYmFfaW5pdCh2b2lkKQo+Cj4gIHBvc3Rjb3JlX2luaXRjYWxs KGFtYmFfaW5pdCk7Cj4KPiAtc3RhdGljIGludCBhbWJhX2dldF9lbmFibGVfcGNsayhzdHJ1Y3Qg YW1iYV9kZXZpY2UgKnBjZGV2KQo+IC17Cj4gLSAgICAgICBpbnQgcmV0Owo+IC0KPiAtICAgICAg IHBjZGV2LT5wY2xrID0gY2xrX2dldCgmcGNkZXYtPmRldiwgImFwYl9wY2xrIik7Cj4gLSAgICAg ICBpZiAoSVNfRVJSKHBjZGV2LT5wY2xrKSkKPiAtICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9F UlIocGNkZXYtPnBjbGspOwo+IC0KPiAtICAgICAgIHJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShw Y2Rldi0+cGNsayk7Cj4gLSAgICAgICBpZiAocmV0KQo+IC0gICAgICAgICAgICAgICBjbGtfcHV0 KHBjZGV2LT5wY2xrKTsKPiAtCj4gLSAgICAgICByZXR1cm4gcmV0Owo+IC19Cj4gLQo+IC1zdGF0 aWMgdm9pZCBhbWJhX3B1dF9kaXNhYmxlX3BjbGsoc3RydWN0IGFtYmFfZGV2aWNlICpwY2RldikK PiAtewo+IC0gICAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBjZGV2LT5wY2xrKTsKPiAtICAg ICAgIGNsa19wdXQocGNkZXYtPnBjbGspOwo+IC19Cj4gLQo+ICAvKgo+ICAgKiBUaGVzZSBhcmUg dGhlIGRldmljZSBtb2RlbCBjb252ZXJzaW9uIHZlbmVlcnM7IHRoZXkgY29udmVydCB0aGUKPiAg ICogZGV2aWNlIG1vZGVsIHN0cnVjdHVyZXMgdG8gb3VyIG1vcmUgc3BlY2lmaWMgc3RydWN0dXJl cy4KPgo+IGJhc2UtY29tbWl0OiA5NTA2NWNiNTQyMTBlYmE4NmJlZDEwY2IyMTE4MDQxNTI0ZDU0 NTczCj4gLS0KPiAyLjI5LjIKPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5l bEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=