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 D2B18C64ED6 for ; Tue, 28 Feb 2023 09:07:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230312AbjB1JHF (ORCPT ); Tue, 28 Feb 2023 04:07:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48234 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229612AbjB1JHE (ORCPT ); Tue, 28 Feb 2023 04:07:04 -0500 Received: from mx1.tq-group.com (mx1.tq-group.com [93.104.207.81]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A8B4F21975; Tue, 28 Feb 2023 01:07:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tq-group.com; i=@tq-group.com; q=dns/txt; s=key1; t=1677575221; x=1709111221; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=bxt5CH6QgERxy6SjGNvJyG5D7z0B+YVQ2jZsCLQY1mM=; b=QRsRs1HAe7B1Bdv53cVX0dQuDu17+G4LE/Ptywnyu0KAVpihIstMe38Z gYfscLpmRLhQIDYhvVq+a59k7mlLCJQHm6XTsSm53y/7gvX/kQrKdncM2 KYYV/1Hy8kCDiGPoi3CFRqfLDyP7rU4lBk5M/wu6ZaEoMJhu+hzoykGU3 SQ55oLRaVkTsH3rbGG748oQCk1zwjgHab4ClYZR8/rfTSznSupsMZp3Yj WLfEq1jFaUzqTU/DSRGEZsky2JmA9O8FtTOCDbLwcvXNuksKc4j+9Yfry EitfQtoVP6fsSooPmO03jGGH+GmVLYV/RpIp//55D8pKOSfC+/ASmWH3l A==; X-IronPort-AV: E=Sophos;i="5.98,221,1673910000"; d="scan'208";a="29358856" Received: from unknown (HELO tq-pgp-pr1.tq-net.de) ([192.168.6.15]) by mx1-pgp.tq-group.com with ESMTP; 28 Feb 2023 10:06:58 +0100 Received: from mx1.tq-group.com ([192.168.6.7]) by tq-pgp-pr1.tq-net.de (PGP Universal service); Tue, 28 Feb 2023 10:06:58 +0100 X-PGP-Universal: processed; by tq-pgp-pr1.tq-net.de on Tue, 28 Feb 2023 10:06:58 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tq-group.com; i=@tq-group.com; q=dns/txt; s=key1; t=1677575218; x=1709111218; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=bxt5CH6QgERxy6SjGNvJyG5D7z0B+YVQ2jZsCLQY1mM=; b=fnpj9xCdyc3yGhZ+1YNVpPKqLy1U6Jhl+KbA6rubYHo6pV4qzyBcTsJ8 PmglVV54BVrBAP1Tya7ElnMhbR3Oppva6O5AAPZYQYD9NnsV6UhhH6Lix bCRW5YSNhKPALf4kQrPmsFv1exMDc1v+IidHhY54FSW5ecdmZ899gHe/n H7MI8Lks5sDlrKY5yVyy0VpS6MBtHH7rW3Rsk6Lmjeqy6QSeekCrtF73Q V9KeOEsVkOmcgCxxk9GVBPwloLJy2wIQBpWp+2EKBVZ1jYXqPbtCZSwb5 I2kCesoGJr0TbTyncRmgsl2VqmhZWKp3aM1QHV5ETgzw/Tlp7DNgBqFvK w==; X-IronPort-AV: E=Sophos;i="5.98,221,1673910000"; d="scan'208";a="29358855" Received: from vtuxmail01.tq-net.de ([10.115.0.20]) by mx1.tq-group.com with ESMTP; 28 Feb 2023 10:06:58 +0100 Received: from steina-w.localnet (unknown [10.123.53.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by vtuxmail01.tq-net.de (Postfix) with ESMTPSA id 67718280056; Tue, 28 Feb 2023 10:06:58 +0100 (CET) From: Alexander Stein To: Dario Binacchi , Marco Felsch Cc: Stefan Wahren , Sascha Hauer , Shawn Guo , Bartosz Golaszewski , linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, NXP Linux Team , Pengutronix Kernel Team , Fabio Estevam , Linus Walleij , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH] gpio: mxs: use dynamic allocation of base Date: Tue, 28 Feb 2023 10:06:56 +0100 Message-ID: <1900599.taCxCBeP46@steina-w> Organization: TQ-Systems GmbH In-Reply-To: <20230228084627.e3afg3tp6tzpepb4@pengutronix.de> References: <20230226205357.1013504-1-dario.binacchi@amarulasolutions.com> <20230228084627.e3afg3tp6tzpepb4@pengutronix.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Hi everyone, Am Dienstag, 28. Februar 2023, 09:46:27 CET schrieb Marco Felsch: > Hi Dario, >=20 > On 23-02-28, Dario Binacchi wrote: > > Hi Stefan, > >=20 > > On Mon, Feb 27, 2023 at 6:52=E2=80=AFPM Stefan Wahren =20 wrote: > > > Hi Dario, > > >=20 > > > Am 26.02.23 um 21:53 schrieb Dario Binacchi: > > > > Since commit 502df79b860563d7 ("gpiolib: Warn on drivers still using > > > > static > > > > gpiobase allocation"), one or more warnings are printed during boot= on > > > > systems where static allocation of GPIO base is used: > > > >=20 > > > > [ 0.136834] gpio gpiochip0: Static allocation of GPIO base is > > > > deprecated, use dynamic allocation. [ 0.142753] gpio gpiochip1: > > > > Static allocation of GPIO base is deprecated, use dynamic allocatio= n. > > > > [ 0.148452] gpio gpiochip2: Static allocation of GPIO base is > > > > deprecated, use dynamic allocation. [ 0.154341] gpio gpiochip3: > > > > Static allocation of GPIO base is deprecated, use dynamic allocatio= n. > > > > [ 0.160097] gpio gpiochip4: Static allocation of GPIO base is > > > > deprecated, use dynamic allocation. > > > >=20 > > > > So let's follow the suggestion and use dynamic allocation. > > >=20 > > > i understand the motivation of avoiding these warnings. > > >=20 > > > AFAIK the MXS platform is older than the dynamic allocation of GPIO > > > base. In the perfect world all applications has been migrated to > > > libgpiod / chardev GPIO. But i'm really concerned this hasn't happend > > > yet, at least for this platform. So i believe this change break > > > applications, since it affects userspace. > >=20 > > Thanks for your explanations. >=20 > There was also a lengthly discussion here: >=20 > https://lore.kernel.org/all/20230120104647.nwki4silrtd7bt3w@pengutronix.d= e/ >=20 > > Do you think it makes sense to use a Kconfig option to enable/disable > > the dynamic allocation of GPIO base? >=20 > What we could do is to check the GPIO_SYSFS kconfig symbol. If this is > enabled we should keep the current behaviour to not break the uAPI else > we can go with the dynamic numbering. What we should avoid is a new > Kconfig symbol. Even that is only half of the truth. Apparently this is crucial for=20 GPIO_SYSFS, but even without sysfs it affects the order of the character=20 devices, which might break userspace. The main open issue is, whether GPIO= =20 aliases shall be supported or not, see see [1] and [2]. Once this is clear, the switch to dynamic base can be done. Best regards, Alexander [1] https://lore.kernel.org/linux-gpio/20230215092421.143199-1-alexander.st= ein@ew.tq-group.com/T/#u [2] https://lore.kernel.org/linux-gpio/5941337.lOV4Wx5bFT@steina-w/T/ #m2a74777fc4031b7f6f30ac1dcf65b20e7d3f8f12 > Regards, > Marco >=20 > > As done, if I'm not mistaken, in commit 80d34260f36c6 ("pinctrl: > > renesas: gpio: Use dynamic GPIO base if no function GPIOs")? > > With legacy support enabled by default, but the ability to try out the > > latest dynamic allocation functionality. > >=20 > > Thanks and regards, > > Dario > >=20 > > > Best regards > > >=20 > > > > Signed-off-by: Dario Binacchi > > > > --- > > > >=20 > > > > drivers/gpio/gpio-mxs.c | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > >=20 > > > > diff --git a/drivers/gpio/gpio-mxs.c b/drivers/gpio/gpio-mxs.c > > > > index 7f59e5d936c2..b48a7c1fb7c1 100644 > > > > --- a/drivers/gpio/gpio-mxs.c > > > > +++ b/drivers/gpio/gpio-mxs.c > > > > @@ -330,7 +330,7 @@ static int mxs_gpio_probe(struct platform_device > > > > *pdev) > > > >=20 > > > > port->gc.to_irq =3D mxs_gpio_to_irq; > > > > port->gc.get_direction =3D mxs_gpio_get_direction; > > > >=20 > > > > - port->gc.base =3D port->id * 32; > > > > + port->gc.base =3D -1; > > > >=20 > > > > err =3D gpiochip_add_data(&port->gc, port); > > > > if (err) =2D-=20 TQ-Systems GmbH | M=C3=BChlstra=C3=9Fe 2, Gut Delling | 82229 Seefeld, Germ= any Amtsgericht M=C3=BCnchen, HRB 105018 Gesch=C3=A4ftsf=C3=BChrer: Detlef Schneider, R=C3=BCdiger Stahl, Stefan Sch= neider http://www.tq-group.com/ 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 A85CAC64ED6 for ; Tue, 28 Feb 2023 09:08:06 +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:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=EtoriB1rQV6aTAz1VwlEFnlH3y2cK3igkOIelT2kn2U=; b=h0MeHh250QnRG5 4wMwwTED8TE+0nV2ibvxl8oCS+4PQHRlNTcjQP6NmWyidMs1GswNsbjT5zZu03IFzG5qFdGWUXqBT 0Zoj0hPNcjYC3RmEt8TBeVxRNui6I7lMITXno8yKE/aoxaJqZZs+cOdqR2LuyicHg3pFsrQs5tGX3 +0wC6lUcqdwVvvZqaJ9+SiUTYkb7cRp/0Ur8GAIQ6wJfsQMPGLcSpZGZMR4Un2PNYyBdUsunRcdKV PMgCgvmo3Z6q8g1cVmfSUxvO9FqbmEz9jeFazb7KrCufmnF/rl9xn7oIOK6IbHRJU+SeKe87Cpsf1 7cTEbvMbZX8Lc3N7r+Pw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pWvwz-00CSvv-PV; Tue, 28 Feb 2023 09:07:09 +0000 Received: from mx1.tq-group.com ([93.104.207.81]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pWvwv-00CStq-VH for linux-arm-kernel@lists.infradead.org; Tue, 28 Feb 2023 09:07:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tq-group.com; i=@tq-group.com; q=dns/txt; s=key1; t=1677575226; x=1709111226; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=bxt5CH6QgERxy6SjGNvJyG5D7z0B+YVQ2jZsCLQY1mM=; b=RZWTB5nh0VvtOqsce/DSFw/KVXcWVEB6GBT4X7fwcepaq3+BOY1iEEqW dbYZsd0U8WbrHJV3mfMsg9Vg59FQyCBs1Pcag8IoZ5ZXMfE07j/72145j i7DSMyCYp3lE5GQ5bGPddMrgFgDvX6P6i/Oh6blbUP57e2h45WbUwu81+ vzfBnwh9On9OLJ1pS2HIc6nc6KHI3DkyQ86uCTrZH4AYIfYlI5bcwF4cf 7i3hjpw1JLnURAT3/V/CUsx1JhsAkfdGdGKW89WE9rKNshJGH1QGo/oLP ocJhmtUYR3au3GIrKprXG74AqYyZjx+hwv4n7qQcDNgQ8JFLMEc15K8eu g==; X-IronPort-AV: E=Sophos;i="5.98,221,1673910000"; d="scan'208";a="29358856" Received: from unknown (HELO tq-pgp-pr1.tq-net.de) ([192.168.6.15]) by mx1-pgp.tq-group.com with ESMTP; 28 Feb 2023 10:06:58 +0100 Received: from mx1.tq-group.com ([192.168.6.7]) by tq-pgp-pr1.tq-net.de (PGP Universal service); Tue, 28 Feb 2023 10:06:58 +0100 X-PGP-Universal: processed; by tq-pgp-pr1.tq-net.de on Tue, 28 Feb 2023 10:06:58 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tq-group.com; i=@tq-group.com; q=dns/txt; s=key1; t=1677575218; x=1709111218; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=bxt5CH6QgERxy6SjGNvJyG5D7z0B+YVQ2jZsCLQY1mM=; b=fnpj9xCdyc3yGhZ+1YNVpPKqLy1U6Jhl+KbA6rubYHo6pV4qzyBcTsJ8 PmglVV54BVrBAP1Tya7ElnMhbR3Oppva6O5AAPZYQYD9NnsV6UhhH6Lix bCRW5YSNhKPALf4kQrPmsFv1exMDc1v+IidHhY54FSW5ecdmZ899gHe/n H7MI8Lks5sDlrKY5yVyy0VpS6MBtHH7rW3Rsk6Lmjeqy6QSeekCrtF73Q V9KeOEsVkOmcgCxxk9GVBPwloLJy2wIQBpWp+2EKBVZ1jYXqPbtCZSwb5 I2kCesoGJr0TbTyncRmgsl2VqmhZWKp3aM1QHV5ETgzw/Tlp7DNgBqFvK w==; X-IronPort-AV: E=Sophos;i="5.98,221,1673910000"; d="scan'208";a="29358855" Received: from vtuxmail01.tq-net.de ([10.115.0.20]) by mx1.tq-group.com with ESMTP; 28 Feb 2023 10:06:58 +0100 Received: from steina-w.localnet (unknown [10.123.53.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by vtuxmail01.tq-net.de (Postfix) with ESMTPSA id 67718280056; Tue, 28 Feb 2023 10:06:58 +0100 (CET) From: Alexander Stein To: Dario Binacchi , Marco Felsch Cc: Stefan Wahren , Sascha Hauer , Shawn Guo , Bartosz Golaszewski , linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, NXP Linux Team , Pengutronix Kernel Team , Fabio Estevam , Linus Walleij , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH] gpio: mxs: use dynamic allocation of base Date: Tue, 28 Feb 2023 10:06:56 +0100 Message-ID: <1900599.taCxCBeP46@steina-w> Organization: TQ-Systems GmbH In-Reply-To: <20230228084627.e3afg3tp6tzpepb4@pengutronix.de> References: <20230226205357.1013504-1-dario.binacchi@amarulasolutions.com> <20230228084627.e3afg3tp6tzpepb4@pengutronix.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230228_010706_433294_4BCC1769 X-CRM114-Status: GOOD ( 37.41 ) 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 SGkgZXZlcnlvbmUsCgpBbSBEaWVuc3RhZywgMjguIEZlYnJ1YXIgMjAyMywgMDk6NDY6MjcgQ0VU IHNjaHJpZWIgTWFyY28gRmVsc2NoOgo+IEhpIERhcmlvLAo+IAo+IE9uIDIzLTAyLTI4LCBEYXJp byBCaW5hY2NoaSB3cm90ZToKPiA+IEhpIFN0ZWZhbiwKPiA+IAo+ID4gT24gTW9uLCBGZWIgMjcs IDIwMjMgYXQgNjo1MuKAr1BNIFN0ZWZhbiBXYWhyZW4gPHN0ZWZhbi53YWhyZW5AaTJzZS5jb20+ IAp3cm90ZToKPiA+ID4gSGkgRGFyaW8sCj4gPiA+IAo+ID4gPiBBbSAyNi4wMi4yMyB1bSAyMTo1 MyBzY2hyaWViIERhcmlvIEJpbmFjY2hpOgo+ID4gPiA+IFNpbmNlIGNvbW1pdCA1MDJkZjc5Yjg2 MDU2M2Q3ICgiZ3Bpb2xpYjogV2FybiBvbiBkcml2ZXJzIHN0aWxsIHVzaW5nCj4gPiA+ID4gc3Rh dGljCj4gPiA+ID4gZ3Bpb2Jhc2UgYWxsb2NhdGlvbiIpLCBvbmUgb3IgbW9yZSB3YXJuaW5ncyBh cmUgcHJpbnRlZCBkdXJpbmcgYm9vdCBvbgo+ID4gPiA+IHN5c3RlbXMgd2hlcmUgc3RhdGljIGFs bG9jYXRpb24gb2YgR1BJTyBiYXNlIGlzIHVzZWQ6Cj4gPiA+ID4gCj4gPiA+ID4gWyAgICAwLjEz NjgzNF0gZ3BpbyBncGlvY2hpcDA6IFN0YXRpYyBhbGxvY2F0aW9uIG9mIEdQSU8gYmFzZSBpcwo+ ID4gPiA+IGRlcHJlY2F0ZWQsIHVzZSBkeW5hbWljIGFsbG9jYXRpb24uIFsgICAgMC4xNDI3NTNd IGdwaW8gZ3Bpb2NoaXAxOgo+ID4gPiA+IFN0YXRpYyBhbGxvY2F0aW9uIG9mIEdQSU8gYmFzZSBp cyBkZXByZWNhdGVkLCB1c2UgZHluYW1pYyBhbGxvY2F0aW9uLgo+ID4gPiA+IFsgICAgMC4xNDg0 NTJdIGdwaW8gZ3Bpb2NoaXAyOiBTdGF0aWMgYWxsb2NhdGlvbiBvZiBHUElPIGJhc2UgaXMKPiA+ ID4gPiBkZXByZWNhdGVkLCB1c2UgZHluYW1pYyBhbGxvY2F0aW9uLiBbICAgIDAuMTU0MzQxXSBn cGlvIGdwaW9jaGlwMzoKPiA+ID4gPiBTdGF0aWMgYWxsb2NhdGlvbiBvZiBHUElPIGJhc2UgaXMg ZGVwcmVjYXRlZCwgdXNlIGR5bmFtaWMgYWxsb2NhdGlvbi4KPiA+ID4gPiBbICAgIDAuMTYwMDk3 XSBncGlvIGdwaW9jaGlwNDogU3RhdGljIGFsbG9jYXRpb24gb2YgR1BJTyBiYXNlIGlzCj4gPiA+ ID4gZGVwcmVjYXRlZCwgdXNlIGR5bmFtaWMgYWxsb2NhdGlvbi4KPiA+ID4gPiAKPiA+ID4gPiBT byBsZXQncyBmb2xsb3cgdGhlIHN1Z2dlc3Rpb24gYW5kIHVzZSBkeW5hbWljIGFsbG9jYXRpb24u Cj4gPiA+IAo+ID4gPiBpIHVuZGVyc3RhbmQgdGhlIG1vdGl2YXRpb24gb2YgYXZvaWRpbmcgdGhl c2Ugd2FybmluZ3MuCj4gPiA+IAo+ID4gPiBBRkFJSyB0aGUgTVhTIHBsYXRmb3JtIGlzIG9sZGVy IHRoYW4gdGhlIGR5bmFtaWMgYWxsb2NhdGlvbiBvZiBHUElPCj4gPiA+IGJhc2UuIEluIHRoZSBw ZXJmZWN0IHdvcmxkIGFsbCBhcHBsaWNhdGlvbnMgaGFzIGJlZW4gbWlncmF0ZWQgdG8KPiA+ID4g bGliZ3Bpb2QgLyBjaGFyZGV2IEdQSU8uIEJ1dCBpJ20gcmVhbGx5IGNvbmNlcm5lZCB0aGlzIGhh c24ndCBoYXBwZW5kCj4gPiA+IHlldCwgYXQgbGVhc3QgZm9yIHRoaXMgcGxhdGZvcm0uIFNvIGkg YmVsaWV2ZSB0aGlzIGNoYW5nZSBicmVhawo+ID4gPiBhcHBsaWNhdGlvbnMsIHNpbmNlIGl0IGFm ZmVjdHMgdXNlcnNwYWNlLgo+ID4gCj4gPiBUaGFua3MgZm9yIHlvdXIgZXhwbGFuYXRpb25zLgo+ IAo+IFRoZXJlIHdhcyBhbHNvIGEgbGVuZ3RobHkgZGlzY3Vzc2lvbiBoZXJlOgo+IAo+IGh0dHBz Oi8vbG9yZS5rZXJuZWwub3JnL2FsbC8yMDIzMDEyMDEwNDY0Ny5ud2tpNHNpbHJ0ZDdidDN3QHBl bmd1dHJvbml4LmRlLwo+IAo+ID4gRG8geW91IHRoaW5rIGl0IG1ha2VzIHNlbnNlIHRvIHVzZSBh IEtjb25maWcgb3B0aW9uIHRvIGVuYWJsZS9kaXNhYmxlCj4gPiB0aGUgZHluYW1pYyBhbGxvY2F0 aW9uIG9mIEdQSU8gYmFzZT8KPiAKPiBXaGF0IHdlIGNvdWxkIGRvIGlzIHRvIGNoZWNrIHRoZSBH UElPX1NZU0ZTIGtjb25maWcgc3ltYm9sLiBJZiB0aGlzIGlzCj4gZW5hYmxlZCB3ZSBzaG91bGQg a2VlcCB0aGUgY3VycmVudCBiZWhhdmlvdXIgdG8gbm90IGJyZWFrIHRoZSB1QVBJIGVsc2UKPiB3 ZSBjYW4gZ28gd2l0aCB0aGUgZHluYW1pYyBudW1iZXJpbmcuIFdoYXQgd2Ugc2hvdWxkIGF2b2lk IGlzIGEgbmV3Cj4gS2NvbmZpZyBzeW1ib2wuCgpFdmVuIHRoYXQgaXMgb25seSBoYWxmIG9mIHRo ZSB0cnV0aC4gQXBwYXJlbnRseSB0aGlzIGlzIGNydWNpYWwgZm9yIApHUElPX1NZU0ZTLCBidXQg ZXZlbiB3aXRob3V0IHN5c2ZzIGl0IGFmZmVjdHMgdGhlIG9yZGVyIG9mIHRoZSBjaGFyYWN0ZXIg CmRldmljZXMsIHdoaWNoIG1pZ2h0IGJyZWFrIHVzZXJzcGFjZS4gVGhlIG1haW4gb3BlbiBpc3N1 ZSBpcywgd2hldGhlciBHUElPIAphbGlhc2VzIHNoYWxsIGJlIHN1cHBvcnRlZCBvciBub3QsIHNl ZSBzZWUgWzFdIGFuZCBbMl0uCk9uY2UgdGhpcyBpcyBjbGVhciwgdGhlIHN3aXRjaCB0byBkeW5h bWljIGJhc2UgY2FuIGJlIGRvbmUuCgpCZXN0IHJlZ2FyZHMsCkFsZXhhbmRlcgoKWzFdIGh0dHBz Oi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWdwaW8vMjAyMzAyMTUwOTI0MjEuMTQzMTk5LTEtYWxl eGFuZGVyLnN0ZWluQGV3LnRxLWdyb3VwLmNvbS9ULyN1ClsyXSBodHRwczovL2xvcmUua2VybmVs Lm9yZy9saW51eC1ncGlvLzU5NDEzMzcubE9WNFd4NWJGVEBzdGVpbmEtdy9ULwojbTJhNzQ3Nzdm YzQwMzFiN2Y2ZjMwYWMxZGNmNjViMjBlN2QzZjhmMTIKCj4gUmVnYXJkcywKPiAgIE1hcmNvCj4g Cj4gPiBBcyBkb25lLCBpZiBJJ20gbm90IG1pc3Rha2VuLCBpbiBjb21taXQgODBkMzQyNjBmMzZj NiAoInBpbmN0cmw6Cj4gPiByZW5lc2FzOiBncGlvOiBVc2UgZHluYW1pYyBHUElPIGJhc2UgaWYg bm8gZnVuY3Rpb24gR1BJT3MiKT8KPiA+IFdpdGggbGVnYWN5IHN1cHBvcnQgZW5hYmxlZCBieSBk ZWZhdWx0LCBidXQgdGhlIGFiaWxpdHkgdG8gdHJ5IG91dCB0aGUKPiA+IGxhdGVzdCBkeW5hbWlj IGFsbG9jYXRpb24gZnVuY3Rpb25hbGl0eS4KPiA+IAo+ID4gVGhhbmtzIGFuZCByZWdhcmRzLAo+ ID4gRGFyaW8KPiA+IAo+ID4gPiBCZXN0IHJlZ2FyZHMKPiA+ID4gCj4gPiA+ID4gU2lnbmVkLW9m Zi1ieTogRGFyaW8gQmluYWNjaGkgPGRhcmlvLmJpbmFjY2hpQGFtYXJ1bGFzb2x1dGlvbnMuY29t Pgo+ID4gPiA+IC0tLQo+ID4gPiA+IAo+ID4gPiA+ICAgZHJpdmVycy9ncGlvL2dwaW8tbXhzLmMg fCAyICstCj4gPiA+ID4gICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKPiA+ID4gPiAKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncGlvL2dwaW8tbXhz LmMgYi9kcml2ZXJzL2dwaW8vZ3Bpby1teHMuYwo+ID4gPiA+IGluZGV4IDdmNTllNWQ5MzZjMi4u YjQ4YTdjMWZiN2MxIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3Bpby9ncGlvLW14cy5j Cj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncGlvL2dwaW8tbXhzLmMKPiA+ID4gPiBAQCAtMzMwLDcg KzMzMCw3IEBAIHN0YXRpYyBpbnQgbXhzX2dwaW9fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZQo+ID4gPiA+ICpwZGV2KQo+ID4gPiA+IAo+ID4gPiA+ICAgICAgIHBvcnQtPmdjLnRvX2lycSA9 IG14c19ncGlvX3RvX2lycTsKPiA+ID4gPiAgICAgICBwb3J0LT5nYy5nZXRfZGlyZWN0aW9uID0g bXhzX2dwaW9fZ2V0X2RpcmVjdGlvbjsKPiA+ID4gPiAKPiA+ID4gPiAtICAgICBwb3J0LT5nYy5i YXNlID0gcG9ydC0+aWQgKiAzMjsKPiA+ID4gPiArICAgICBwb3J0LT5nYy5iYXNlID0gLTE7Cj4g PiA+ID4gCj4gPiA+ID4gICAgICAgZXJyID0gZ3Bpb2NoaXBfYWRkX2RhdGEoJnBvcnQtPmdjLCBw b3J0KTsKPiA+ID4gPiAgICAgICBpZiAoZXJyKQoKCi0tIApUUS1TeXN0ZW1zIEdtYkggfCBNw7xo bHN0cmHDn2UgMiwgR3V0IERlbGxpbmcgfCA4MjIyOSBTZWVmZWxkLCBHZXJtYW55CkFtdHNnZXJp Y2h0IE3DvG5jaGVuLCBIUkIgMTA1MDE4Ckdlc2Now6RmdHNmw7xocmVyOiBEZXRsZWYgU2NobmVp ZGVyLCBSw7xkaWdlciBTdGFobCwgU3RlZmFuIFNjaG5laWRlcgpodHRwOi8vd3d3LnRxLWdyb3Vw LmNvbS8KCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo=