From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp16.bhosted.nl (smtp16.bhosted.nl [94.124.121.27]) (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 D00B61877 for ; Wed, 23 Nov 2022 08:08:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonic.nl; s=202111; h=content-transfer-encoding:content-type:mime-version:references:in-reply-to: message-id:subject:cc:to:from:date:from; bh=v9PgXhCmqI29ZYXgPAHvSLye931Cpyl30FyKc9Ddc2c=; b=vjVzBjygmhEML8xNq9QcJpmvcDo3ZOZR1fV/x8cyhVzf3AGz8IW8jLZiBinQVwVRAMlaDfvVn0krX 7AEsk4YiFydMiFHx8BZYmJrLV9qXpy3I6HHZgOL6zkdHI+pTIEqBWJDvOeVtZp5z8sQZKk9KGQULSp 8Bsnuq1lD8hseLGSCVe+/37Sm77B/IXH9tQl2FaIBZeMNQHZsp79+Y/VgZ7vhlS8If8kBW9WZiDNrO OpQ8m5GjwGrj9XcvFOA7rFg5J/TA4VXKuaTx2h2hLtnSTJZ/P8hfLY/+mwSGXQQHdUibtiGifGvipb +onxPL61agKTdKwUE/zJDaYF4LJzAPQ== X-MSG-ID: d324982c-6b05-11ed-a7cd-0050569d2c73 Date: Wed, 23 Nov 2022 09:07:07 +0100 From: David Jander To: Quentin Schulz Cc: Robin Murphy , Fabio Estevam , Quentin Schulz , "Angus Ainslie (Purism)" , Shawn Guo , Krzysztof Kozlowski , Heiko Stuebner , Samuel Holland , Bjorn Andersson , Konrad Dybcio , Jernej Skrabec , Bastien Nocera , Chen-Yu Tsai , Sascha Hauer , Pengutronix Kernel Team , Hans de Goede , Andy Gross , Rob Herring , NXP Linux Team , Dmitry Torokhov , linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-input@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, devicetree@vger.kernel.org Subject: Re: [PATCH RFC v2 5/7] arm64: dts: imx: fix touchscreen reset GPIO polarity Message-ID: <20221123090707.128c7b4d@erd992> In-Reply-To: <84af9a9e-5d82-7420-e72c-4d984135f2d6@theobroma-systems.com> References: <20221103-upstream-goodix-reset-v2-0-2c38fb03a300@theobroma-systems.com> <20221103-upstream-goodix-reset-v2-5-2c38fb03a300@theobroma-systems.com> <20221122081851.6cb762d8@erd992> <907b9321-14dc-dc99-80fc-e1a20ee33a1e@theobroma-systems.com> <916a6953-d9b4-c257-c08b-f5277ead71af@arm.com> <84af9a9e-5d82-7420-e72c-4d984135f2d6@theobroma-systems.com> Organization: Protonic Holland X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Tue, 22 Nov 2022 17:22:45 +0100 Quentin Schulz wrote: > Hi Robin, >=20 > On 11/22/22 13:46, Robin Murphy wrote: > > On 2022-11-22 09:58, Quentin Schulz wrote: =20 > >> Hi David, > >> > >> Thanks Fabio for the Cc. > >> > >> On 11/22/22 08:18, David Jander wrote: =20 > >>> On Mon, 21 Nov 2022 15:18:32 -0300 > >>> Fabio Estevam wrote: > >>> =20 > >>>> [Adding Angus and David] =20 > >>> > >>> Thanks. This was apparently necessary ;-) > >>> =20 > >>>> On Mon, Nov 21, 2022 at 3:12 PM Quentin Schulz=20 > >>>> wrote: =20 > >>>>> > >>>>> From: Quentin Schulz > >>>>> > >>>>> The reset line is active low for the Goodix touchscreen controller = so > >>>>> let's fix the polarity in the Device Tree node. > >>>>> > >>>>> Signed-off-by: Quentin Schulz > >>>>> --- > >>>>> =C2=A0 arch/arm64/boot/dts/freescale/imx8mm-prt8mm.dts=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 2 +- > >>>>> =C2=A0 arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts | 2 = +- > >>>>> =C2=A0 2 files changed, 2 insertions(+), 2 deletions(-) > >>>>> > >>>>> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-prt8mm.dts=20 > >>>>> b/arch/arm64/boot/dts/freescale/imx8mm-prt8mm.dts > >>>>> index 9fbbbb556c0b3..df7e5ae9698e1 100644 > >>>>> --- a/arch/arm64/boot/dts/freescale/imx8mm-prt8mm.dts > >>>>> +++ b/arch/arm64/boot/dts/freescale/imx8mm-prt8mm.dts > >>>>> @@ -107,7 +107,7 @@ touchscreeen@5d { > >>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 interrupt-parent =3D <&gpio1>; > >>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 interrupts =3D <8 IRQ_TYPE_NONE>; > >>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 irq-gpios =3D <&gpio1 8 GPIO_ACTIVE_HIGH>; > >>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0 reset-gpios =3D <&gpio1 9 GPIO_ACTIVE_HIGH>; > >>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0 reset-gpios =3D <&gpio1 9 GPIO_ACTIVE_LOW>; =20 > >>> > >>> NACK! > >>> > >>> The PRT8MM has an inverter in the reset line. The reason for that is= =20 > >>> that the > >>> reset line needs to be inactive when the driving side is unpowered. > >>> The DT was correct, this change will break it. > >>> =20 > >> > >> The DT was correct. The implementation in the driver is changed (the=20 > >> polarity is swapped) in this patch series, therefore the DT isn't=20 > >> correct anymore, hence this patch. =20 > >=20 > > I'm not sure it's quite that simple... FWIW I'm using an add-on LCD=20 > > module with a GT9271[1] (and I won't be the only one - Raspberry Pi and= =20 > > other SBC users using DT overlays or custom-built DTBs are a whole othe= r=20 > > can of worms here), where GPIO_ACTIVE_LOW is correctly specified per th= e=20 > > schematics, thus "wrong" for the current driver behaviour, yet it *is*= =20 > > working OK as-is. I guess that's because /RSTB ends up driven low for=20 > > long enough between the current "deassertion" by=20 > > gpiod_direction_output(1) and gpiod_direction_input() allowing the=20 > > external pull-up to take it high again. > > =20 >=20 > Correct, that seems like it is the case for "current-wrong" GPIO level,=20 > provided you have a pull-up on the RESET line (as recommended in the=20 > datasheet). >=20 > c.f.=20 > https://github.com/hadess/gt9xx/blob/master/specifications/GT9271%20Datas= heet.pdf >=20 > with the current driver, what I assume we should get is: > ___________________ > INT _______| |___________ >=20 > ____________ __________________ > RST |_________| >=20 > ^ > L__ pull-up on RST so high by default > ^ > L___ gpiod_direction_output(0) (deassert GPIO active-low, so hig= h) > ^ > L____ goodix_irq_direction_output > ^ > L___ gpiod_direction_output(1) (assert GPIO active-low,= =20 > so low) > ^ > L____ gpiod_direction_input() (floating,=20 > pull-up on RST so high) >=20 > This works because of the pull-up on RST and that what matters is that=20 > the INT lane is configured 100=C2=B5s before a rising edge on RST line (f= or=20 > at least 5ms). However, the init sequence is not properly followed and=20 > might get broken in the future since it is not something that we=20 > explicitly support. >=20 > With the proposed patch: > ___________________ > INT _______| |___________ >=20 > ____ __________________ > RST |_______| >=20 > ^ > L__ pull-up on RST so high by default > ^ > L___ gpiod_direction_output(1) (assert GPIO active-low, so low) > ^ > L____ goodix_irq_direction_output > ^ > L___ gpiod_direction_output(1) (deassert GPIO=20 > active-low, so high) > ^ > L____ gpiod_direction_input() (floating,=20 > pull-up on RST so high) >=20 > This should work too and does not rely on some side effects/timings and=20 > should be future-proof. >=20 > As for OOT DTB/DTBO, nothing I can do unfortunately, that is correct. >=20 > The fact that we have both "interpretations" of the RESET GPIO level in=20 > Linux is worrying, albeit with OOT DTBs. A driver or subsystem rework=20 > might break boards in which case people should update their DTB as=20 > suggested here or we'll decide to support both interpretations, which=20 > ain't great either. Thanks for the detailed drawings. Yes, it seems this is an unfortunate case= of both polarities kind of working. Our DT was correct, but the driver was wrong, even if it seemed to work correctly, so this NACK still stands. Our board has this GPIO pin wired to the gate of a MOSFET which acts as an inverter and also isolates the signal from the GPIO port power rail. So from the GPIO point of view, the signal is ACTIVE_HIGH. Please leave the DT like this. Thanks for fixing the driver. Best regards, --=20 David Jander Protonic Holland. 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 5E602C433FE for ; Wed, 23 Nov 2022 08:07:39 +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: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=8S8cOzhWmNEpks7zzXNBXNi0c+O5wxvKXw0WxF7vtQg=; b=WVhZJMnStgRWUr yd57pSDxKONA+houFjGISPzNiZXmkSyUAyEr/785PMoid/ntvhRXnp+LdRiLYIvWaXIuAE9Ic5Rq5 AMlom4++NPlKjdIbQMLxIzuurpHuNwfOVvdw/XHhgPlmP4ZFsFpklUkcl/eXzo7tWu8+Dxe4v/ZKf twMgr4WyJgDPCz8IRTDgKIc4eo+dZZRh+rTLZqRw6vfXc4SRMJfg+NHZ6MWwAI0hvvLcE77bmUFni UAmtz7QsDN07JWVfMueDvVivif+Oit0LUcTOXqy1B9LPZ7dQKP4sEDjnAz2WQGZxFyK9+uHhgXYsB 1y9TIrDEbwNvQGyvKstg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oxkmy-00FQpe-8p; Wed, 23 Nov 2022 08:07:24 +0000 Received: from smtp16.bhosted.nl ([2a02:9e0:8000::27]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oxkmt-00FQn9-Ny for linux-rockchip@lists.infradead.org; Wed, 23 Nov 2022 08:07:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonic.nl; s=202111; h=content-transfer-encoding:content-type:mime-version:references:in-reply-to: message-id:subject:cc:to:from:date:from; bh=v9PgXhCmqI29ZYXgPAHvSLye931Cpyl30FyKc9Ddc2c=; b=vjVzBjygmhEML8xNq9QcJpmvcDo3ZOZR1fV/x8cyhVzf3AGz8IW8jLZiBinQVwVRAMlaDfvVn0krX 7AEsk4YiFydMiFHx8BZYmJrLV9qXpy3I6HHZgOL6zkdHI+pTIEqBWJDvOeVtZp5z8sQZKk9KGQULSp 8Bsnuq1lD8hseLGSCVe+/37Sm77B/IXH9tQl2FaIBZeMNQHZsp79+Y/VgZ7vhlS8If8kBW9WZiDNrO OpQ8m5GjwGrj9XcvFOA7rFg5J/TA4VXKuaTx2h2hLtnSTJZ/P8hfLY/+mwSGXQQHdUibtiGifGvipb +onxPL61agKTdKwUE/zJDaYF4LJzAPQ== X-MSG-ID: d324982c-6b05-11ed-a7cd-0050569d2c73 Date: Wed, 23 Nov 2022 09:07:07 +0100 From: David Jander To: Quentin Schulz Cc: Robin Murphy , Fabio Estevam , Quentin Schulz , "Angus Ainslie (Purism)" , Shawn Guo , Krzysztof Kozlowski , Heiko Stuebner , Samuel Holland , Bjorn Andersson , Konrad Dybcio , Jernej Skrabec , Bastien Nocera , Chen-Yu Tsai , Sascha Hauer , Pengutronix Kernel Team , Hans de Goede , Andy Gross , Rob Herring , NXP Linux Team , Dmitry Torokhov , linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-input@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, devicetree@vger.kernel.org Subject: Re: [PATCH RFC v2 5/7] arm64: dts: imx: fix touchscreen reset GPIO polarity Message-ID: <20221123090707.128c7b4d@erd992> In-Reply-To: <84af9a9e-5d82-7420-e72c-4d984135f2d6@theobroma-systems.com> References: <20221103-upstream-goodix-reset-v2-0-2c38fb03a300@theobroma-systems.com> <20221103-upstream-goodix-reset-v2-5-2c38fb03a300@theobroma-systems.com> <20221122081851.6cb762d8@erd992> <907b9321-14dc-dc99-80fc-e1a20ee33a1e@theobroma-systems.com> <916a6953-d9b4-c257-c08b-f5277ead71af@arm.com> <84af9a9e-5d82-7420-e72c-4d984135f2d6@theobroma-systems.com> Organization: Protonic Holland X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221123_000720_355417_8E0DC8A0 X-CRM114-Status: GOOD ( 42.30 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gVHVlLCAyMiBOb3YgMjAyMiAxNzoyMjo0NSArMDEwMApRdWVudGluIFNjaHVseiA8cXVlbnRp bi5zY2h1bHpAdGhlb2Jyb21hLXN5c3RlbXMuY29tPiB3cm90ZToKCj4gSGkgUm9iaW4sCj4gCj4g T24gMTEvMjIvMjIgMTM6NDYsIFJvYmluIE11cnBoeSB3cm90ZToKPiA+IE9uIDIwMjItMTEtMjIg MDk6NTgsIFF1ZW50aW4gU2NodWx6IHdyb3RlOiAgCj4gPj4gSGkgRGF2aWQsCj4gPj4KPiA+PiBU aGFua3MgRmFiaW8gZm9yIHRoZSBDYy4KPiA+Pgo+ID4+IE9uIDExLzIyLzIyIDA4OjE4LCBEYXZp ZCBKYW5kZXIgd3JvdGU6ICAKPiA+Pj4gT24gTW9uLCAyMSBOb3YgMjAyMiAxNToxODozMiAtMDMw MAo+ID4+PiBGYWJpbyBFc3RldmFtIDxmZXN0ZXZhbUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+PiAg Cj4gPj4+PiBbQWRkaW5nIEFuZ3VzIGFuZCBEYXZpZF0gIAo+ID4+Pgo+ID4+PiBUaGFua3MuIFRo aXMgd2FzIGFwcGFyZW50bHkgbmVjZXNzYXJ5IDstKQo+ID4+PiAgCj4gPj4+PiBPbiBNb24sIE5v diAyMSwgMjAyMiBhdCAzOjEyIFBNIFF1ZW50aW4gU2NodWx6IAo+ID4+Pj4gPGZvc3Mra2VybmVs QDBsZWlsLm5ldD4gd3JvdGU6ICAKPiA+Pj4+Pgo+ID4+Pj4+IEZyb206IFF1ZW50aW4gU2NodWx6 IDxxdWVudGluLnNjaHVsekB0aGVvYnJvbWEtc3lzdGVtcy5jb20+Cj4gPj4+Pj4KPiA+Pj4+PiBU aGUgcmVzZXQgbGluZSBpcyBhY3RpdmUgbG93IGZvciB0aGUgR29vZGl4IHRvdWNoc2NyZWVuIGNv bnRyb2xsZXIgc28KPiA+Pj4+PiBsZXQncyBmaXggdGhlIHBvbGFyaXR5IGluIHRoZSBEZXZpY2Ug VHJlZSBub2RlLgo+ID4+Pj4+Cj4gPj4+Pj4gU2lnbmVkLW9mZi1ieTogUXVlbnRpbiBTY2h1bHog PHF1ZW50aW4uc2NodWx6QHRoZW9icm9tYS1zeXN0ZW1zLmNvbT4KPiA+Pj4+PiAtLS0KPiA+Pj4+ PiDCoCBhcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bW0tcHJ0OG1tLmR0c8KgwqDC oMKgwqDCoMKgwqAgfCAyICstCj4gPj4+Pj4gwqAgYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2Nh bGUvaW14OG1xLWxpYnJlbTUtZGV2a2l0LmR0cyB8IDIgKy0KPiA+Pj4+PiDCoCAyIGZpbGVzIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPiA+Pj4+Pgo+ID4+Pj4+IGRp ZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bW0tcHJ0OG1tLmR0 cyAKPiA+Pj4+PiBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lteDhtbS1wcnQ4bW0u ZHRzCj4gPj4+Pj4gaW5kZXggOWZiYmJiNTU2YzBiMy4uZGY3ZTVhZTk2OThlMSAxMDA2NDQKPiA+ Pj4+PiAtLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bW0tcHJ0OG1tLmR0 cwo+ID4+Pj4+ICsrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lteDhtbS1wcnQ4 bW0uZHRzCj4gPj4+Pj4gQEAgLTEwNyw3ICsxMDcsNyBAQCB0b3VjaHNjcmVlZW5ANWQgewo+ID4+ Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludGVycnVwdC1wYXJlbnQgPSA8 JmdwaW8xPjsKPiA+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnRlcnJ1 cHRzID0gPDggSVJRX1RZUEVfTk9ORT47Cj4gPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgaXJxLWdwaW9zID0gPCZncGlvMSA4IEdQSU9fQUNUSVZFX0hJR0g+Owo+ID4+Pj4+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlc2V0LWdwaW9zID0gPCZncGlvMSA5IEdQ SU9fQUNUSVZFX0hJR0g+Owo+ID4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJl c2V0LWdwaW9zID0gPCZncGlvMSA5IEdQSU9fQUNUSVZFX0xPVz47ICAKPiA+Pj4KPiA+Pj4gTkFD SyEKPiA+Pj4KPiA+Pj4gVGhlIFBSVDhNTSBoYXMgYW4gaW52ZXJ0ZXIgaW4gdGhlIHJlc2V0IGxp bmUuIFRoZSByZWFzb24gZm9yIHRoYXQgaXMgCj4gPj4+IHRoYXQgdGhlCj4gPj4+IHJlc2V0IGxp bmUgbmVlZHMgdG8gYmUgaW5hY3RpdmUgd2hlbiB0aGUgZHJpdmluZyBzaWRlIGlzIHVucG93ZXJl ZC4KPiA+Pj4gVGhlIERUIHdhcyBjb3JyZWN0LCB0aGlzIGNoYW5nZSB3aWxsIGJyZWFrIGl0Lgo+ ID4+PiAgCj4gPj4KPiA+PiBUaGUgRFQgd2FzIGNvcnJlY3QuIFRoZSBpbXBsZW1lbnRhdGlvbiBp biB0aGUgZHJpdmVyIGlzIGNoYW5nZWQgKHRoZSAKPiA+PiBwb2xhcml0eSBpcyBzd2FwcGVkKSBp biB0aGlzIHBhdGNoIHNlcmllcywgdGhlcmVmb3JlIHRoZSBEVCBpc24ndCAKPiA+PiBjb3JyZWN0 IGFueW1vcmUsIGhlbmNlIHRoaXMgcGF0Y2guICAKPiA+IAo+ID4gSSdtIG5vdCBzdXJlIGl0J3Mg cXVpdGUgdGhhdCBzaW1wbGUuLi4gRldJVyBJJ20gdXNpbmcgYW4gYWRkLW9uIExDRCAKPiA+IG1v ZHVsZSB3aXRoIGEgR1Q5MjcxWzFdIChhbmQgSSB3b24ndCBiZSB0aGUgb25seSBvbmUgLSBSYXNw YmVycnkgUGkgYW5kIAo+ID4gb3RoZXIgU0JDIHVzZXJzIHVzaW5nIERUIG92ZXJsYXlzIG9yIGN1 c3RvbS1idWlsdCBEVEJzIGFyZSBhIHdob2xlIG90aGVyIAo+ID4gY2FuIG9mIHdvcm1zIGhlcmUp LCB3aGVyZSBHUElPX0FDVElWRV9MT1cgaXMgY29ycmVjdGx5IHNwZWNpZmllZCBwZXIgdGhlIAo+ ID4gc2NoZW1hdGljcywgdGh1cyAid3JvbmciIGZvciB0aGUgY3VycmVudCBkcml2ZXIgYmVoYXZp b3VyLCB5ZXQgaXQgKmlzKiAKPiA+IHdvcmtpbmcgT0sgYXMtaXMuIEkgZ3Vlc3MgdGhhdCdzIGJl Y2F1c2UgL1JTVEIgZW5kcyB1cCBkcml2ZW4gbG93IGZvciAKPiA+IGxvbmcgZW5vdWdoIGJldHdl ZW4gdGhlIGN1cnJlbnQgImRlYXNzZXJ0aW9uIiBieSAKPiA+IGdwaW9kX2RpcmVjdGlvbl9vdXRw dXQoMSkgYW5kIGdwaW9kX2RpcmVjdGlvbl9pbnB1dCgpIGFsbG93aW5nIHRoZSAKPiA+IGV4dGVy bmFsIHB1bGwtdXAgdG8gdGFrZSBpdCBoaWdoIGFnYWluLgo+ID4gICAKPiAKPiBDb3JyZWN0LCB0 aGF0IHNlZW1zIGxpa2UgaXQgaXMgdGhlIGNhc2UgZm9yICJjdXJyZW50LXdyb25nIiBHUElPIGxl dmVsLCAKPiBwcm92aWRlZCB5b3UgaGF2ZSBhIHB1bGwtdXAgb24gdGhlIFJFU0VUIGxpbmUgKGFz IHJlY29tbWVuZGVkIGluIHRoZSAKPiBkYXRhc2hlZXQpLgo+IAo+IGMuZi4gCj4gaHR0cHM6Ly9n aXRodWIuY29tL2hhZGVzcy9ndDl4eC9ibG9iL21hc3Rlci9zcGVjaWZpY2F0aW9ucy9HVDkyNzEl MjBEYXRhc2hlZXQucGRmCj4gCj4gd2l0aCB0aGUgY3VycmVudCBkcml2ZXIsIHdoYXQgSSBhc3N1 bWUgd2Ugc2hvdWxkIGdldCBpczoKPiAgICAgICAgICAgICAgX19fX19fX19fX19fX19fX19fXwo+ IElOVCBfX19fX19ffCAgICAgICAgICAgICAgICAgICB8X19fX19fX19fX18KPiAKPiAgICAgIF9f X19fX19fX19fXyAgICAgICAgICAgX19fX19fX19fX19fX19fX19fCj4gUlNUICAgICAgICAgICAg IHxfX19fX19fX198Cj4gCj4gICAgIF4KPiAgICAgTF9fIHB1bGwtdXAgb24gUlNUIHNvIGhpZ2gg YnkgZGVmYXVsdAo+ICAgICAgICAgIF4KPiAgICAgICAgICBMX19fIGdwaW9kX2RpcmVjdGlvbl9v dXRwdXQoMCkgKGRlYXNzZXJ0IEdQSU8gYWN0aXZlLWxvdywgc28gaGlnaCkKPiAgICAgICAgICAg ICBeCj4gICAgICAgICAgICAgTF9fX18gZ29vZGl4X2lycV9kaXJlY3Rpb25fb3V0cHV0Cj4gICAg ICAgICAgICAgICAgICBeCj4gICAgICAgICAgICAgICAgICBMX19fIGdwaW9kX2RpcmVjdGlvbl9v dXRwdXQoMSkgKGFzc2VydCBHUElPIGFjdGl2ZS1sb3csIAo+IHNvIGxvdykKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTF9fX18gZ3Bp b2RfZGlyZWN0aW9uX2lucHV0KCkgKGZsb2F0aW5nLCAKPiBwdWxsLXVwIG9uIFJTVCBzbyBoaWdo KQo+IAo+IFRoaXMgd29ya3MgYmVjYXVzZSBvZiB0aGUgcHVsbC11cCBvbiBSU1QgYW5kIHRoYXQg d2hhdCBtYXR0ZXJzIGlzIHRoYXQgCj4gdGhlIElOVCBsYW5lIGlzIGNvbmZpZ3VyZWQgMTAwwrVz IGJlZm9yZSBhIHJpc2luZyBlZGdlIG9uIFJTVCBsaW5lIChmb3IgCj4gYXQgbGVhc3QgNW1zKS4g SG93ZXZlciwgdGhlIGluaXQgc2VxdWVuY2UgaXMgbm90IHByb3Blcmx5IGZvbGxvd2VkIGFuZCAK PiBtaWdodCBnZXQgYnJva2VuIGluIHRoZSBmdXR1cmUgc2luY2UgaXQgaXMgbm90IHNvbWV0aGlu ZyB0aGF0IHdlIAo+IGV4cGxpY2l0bHkgc3VwcG9ydC4KPiAKPiBXaXRoIHRoZSBwcm9wb3NlZCBw YXRjaDoKPiAgICAgICAgICAgICAgX19fX19fX19fX19fX19fX19fXwo+IElOVCBfX19fX19ffCAg ICAgICAgICAgICAgICAgICB8X19fX19fX19fX18KPiAKPiAgICAgIF9fX18gICAgICAgICBfX19f X19fX19fX19fX19fX18KPiBSU1QgICAgIHxfX19fX19ffAo+IAo+ICAgICBeCj4gICAgIExfXyBw dWxsLXVwIG9uIFJTVCBzbyBoaWdoIGJ5IGRlZmF1bHQKPiAgICAgICAgICBeCj4gICAgICAgICAg TF9fXyBncGlvZF9kaXJlY3Rpb25fb3V0cHV0KDEpIChhc3NlcnQgR1BJTyBhY3RpdmUtbG93LCBz byBsb3cpCj4gICAgICAgICAgICAgXgo+ICAgICAgICAgICAgIExfX19fIGdvb2RpeF9pcnFfZGly ZWN0aW9uX291dHB1dAo+ICAgICAgICAgICAgICAgICAgXgo+ICAgICAgICAgICAgICAgICAgTF9f XyBncGlvZF9kaXJlY3Rpb25fb3V0cHV0KDEpIChkZWFzc2VydCBHUElPIAo+IGFjdGl2ZS1sb3cs IHNvIGhpZ2gpCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXgo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExfX19fIGdwaW9kX2RpcmVjdGlvbl9pbnB1dCgpIChmbG9hdGluZywgCj4g cHVsbC11cCBvbiBSU1Qgc28gaGlnaCkKPiAKPiBUaGlzIHNob3VsZCB3b3JrIHRvbyBhbmQgZG9l cyBub3QgcmVseSBvbiBzb21lIHNpZGUgZWZmZWN0cy90aW1pbmdzIGFuZCAKPiBzaG91bGQgYmUg ZnV0dXJlLXByb29mLgo+IAo+IEFzIGZvciBPT1QgRFRCL0RUQk8sIG5vdGhpbmcgSSBjYW4gZG8g dW5mb3J0dW5hdGVseSwgdGhhdCBpcyBjb3JyZWN0Lgo+IAo+IFRoZSBmYWN0IHRoYXQgd2UgaGF2 ZSBib3RoICJpbnRlcnByZXRhdGlvbnMiIG9mIHRoZSBSRVNFVCBHUElPIGxldmVsIGluIAo+IExp bnV4IGlzIHdvcnJ5aW5nLCBhbGJlaXQgd2l0aCBPT1QgRFRCcy4gQSBkcml2ZXIgb3Igc3Vic3lz dGVtIHJld29yayAKPiBtaWdodCBicmVhayBib2FyZHMgaW4gd2hpY2ggY2FzZSBwZW9wbGUgc2hv dWxkIHVwZGF0ZSB0aGVpciBEVEIgYXMgCj4gc3VnZ2VzdGVkIGhlcmUgb3Igd2UnbGwgZGVjaWRl IHRvIHN1cHBvcnQgYm90aCBpbnRlcnByZXRhdGlvbnMsIHdoaWNoIAo+IGFpbid0IGdyZWF0IGVp dGhlci4KClRoYW5rcyBmb3IgdGhlIGRldGFpbGVkIGRyYXdpbmdzLiBZZXMsIGl0IHNlZW1zIHRo aXMgaXMgYW4gdW5mb3J0dW5hdGUgY2FzZSBvZgpib3RoIHBvbGFyaXRpZXMga2luZCBvZiB3b3Jr aW5nLgoKT3VyIERUIHdhcyBjb3JyZWN0LCBidXQgdGhlIGRyaXZlciB3YXMgd3JvbmcsIGV2ZW4g aWYgaXQgc2VlbWVkIHRvIHdvcmsKY29ycmVjdGx5LCBzbyB0aGlzIE5BQ0sgc3RpbGwgc3RhbmRz LgoKT3VyIGJvYXJkIGhhcyB0aGlzIEdQSU8gcGluIHdpcmVkIHRvIHRoZSBnYXRlIG9mIGEgTU9T RkVUIHdoaWNoIGFjdHMgYXMgYW4KaW52ZXJ0ZXIgYW5kIGFsc28gaXNvbGF0ZXMgdGhlIHNpZ25h bCBmcm9tIHRoZSBHUElPIHBvcnQgcG93ZXIgcmFpbC4gU28gZnJvbQp0aGUgR1BJTyBwb2ludCBv ZiB2aWV3LCB0aGUgc2lnbmFsIGlzIEFDVElWRV9ISUdILiBQbGVhc2UgbGVhdmUgdGhlIERUIGxp a2UKdGhpcy4KClRoYW5rcyBmb3IgZml4aW5nIHRoZSBkcml2ZXIuCgpCZXN0IHJlZ2FyZHMsCgot LSAKRGF2aWQgSmFuZGVyClByb3RvbmljIEhvbGxhbmQuCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0Ckxp bnV4LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yb2NrY2hpcAo= 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 98F27C4332F for ; Wed, 23 Nov 2022 08:08:33 +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: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=R3F+Uk3URQK1ALv/UwTiDArr+wob/6fXC9so4MCFqs4=; b=ARiI3Y7S1PM2bJ qnRx8sWe+TKi6BTLGJa9Nc4a5aWmIVl2ZshINhQy+LOSRhTzvAu7jl3RahHyzjBfG4yjgK8pksalZ qOXrjz1fZQVvS0WmOfvItOlSF1wiEJEXAsgde795W/r+smia//Vr/3Ijl6Le3GFfa6Jo/iMU+YUiI lmg0ez9hR2al4zLlgE5+rByclO7Hl8NRJ5hsx1YuStF+5I/EV+hzmi63MoGGfbaNnbF2ngNKpuBLy hswNT/AZc1YW4lBMDEM3uh4zKbrRwV7F8v8msORLeCe5S3C1KZb7qqy+RlmjOOlvhDvaVli/ImjjH fqGre8wcyVdyo6/NLISA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oxkmz-00FQpy-KY; Wed, 23 Nov 2022 08:07:25 +0000 Received: from smtp16.bhosted.nl ([2a02:9e0:8000::27]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oxkmt-00FQn8-N3 for linux-arm-kernel@lists.infradead.org; Wed, 23 Nov 2022 08:07:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonic.nl; s=202111; h=content-transfer-encoding:content-type:mime-version:references:in-reply-to: message-id:subject:cc:to:from:date:from; bh=v9PgXhCmqI29ZYXgPAHvSLye931Cpyl30FyKc9Ddc2c=; b=vjVzBjygmhEML8xNq9QcJpmvcDo3ZOZR1fV/x8cyhVzf3AGz8IW8jLZiBinQVwVRAMlaDfvVn0krX 7AEsk4YiFydMiFHx8BZYmJrLV9qXpy3I6HHZgOL6zkdHI+pTIEqBWJDvOeVtZp5z8sQZKk9KGQULSp 8Bsnuq1lD8hseLGSCVe+/37Sm77B/IXH9tQl2FaIBZeMNQHZsp79+Y/VgZ7vhlS8If8kBW9WZiDNrO OpQ8m5GjwGrj9XcvFOA7rFg5J/TA4VXKuaTx2h2hLtnSTJZ/P8hfLY/+mwSGXQQHdUibtiGifGvipb +onxPL61agKTdKwUE/zJDaYF4LJzAPQ== X-MSG-ID: d324982c-6b05-11ed-a7cd-0050569d2c73 Date: Wed, 23 Nov 2022 09:07:07 +0100 From: David Jander To: Quentin Schulz Cc: Robin Murphy , Fabio Estevam , Quentin Schulz , "Angus Ainslie (Purism)" , Shawn Guo , Krzysztof Kozlowski , Heiko Stuebner , Samuel Holland , Bjorn Andersson , Konrad Dybcio , Jernej Skrabec , Bastien Nocera , Chen-Yu Tsai , Sascha Hauer , Pengutronix Kernel Team , Hans de Goede , Andy Gross , Rob Herring , NXP Linux Team , Dmitry Torokhov , linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-input@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, devicetree@vger.kernel.org Subject: Re: [PATCH RFC v2 5/7] arm64: dts: imx: fix touchscreen reset GPIO polarity Message-ID: <20221123090707.128c7b4d@erd992> In-Reply-To: <84af9a9e-5d82-7420-e72c-4d984135f2d6@theobroma-systems.com> References: <20221103-upstream-goodix-reset-v2-0-2c38fb03a300@theobroma-systems.com> <20221103-upstream-goodix-reset-v2-5-2c38fb03a300@theobroma-systems.com> <20221122081851.6cb762d8@erd992> <907b9321-14dc-dc99-80fc-e1a20ee33a1e@theobroma-systems.com> <916a6953-d9b4-c257-c08b-f5277ead71af@arm.com> <84af9a9e-5d82-7420-e72c-4d984135f2d6@theobroma-systems.com> Organization: Protonic Holland X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221123_000720_355217_0AF2065F X-CRM114-Status: GOOD ( 43.11 ) 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 T24gVHVlLCAyMiBOb3YgMjAyMiAxNzoyMjo0NSArMDEwMApRdWVudGluIFNjaHVseiA8cXVlbnRp bi5zY2h1bHpAdGhlb2Jyb21hLXN5c3RlbXMuY29tPiB3cm90ZToKCj4gSGkgUm9iaW4sCj4gCj4g T24gMTEvMjIvMjIgMTM6NDYsIFJvYmluIE11cnBoeSB3cm90ZToKPiA+IE9uIDIwMjItMTEtMjIg MDk6NTgsIFF1ZW50aW4gU2NodWx6IHdyb3RlOiAgCj4gPj4gSGkgRGF2aWQsCj4gPj4KPiA+PiBU aGFua3MgRmFiaW8gZm9yIHRoZSBDYy4KPiA+Pgo+ID4+IE9uIDExLzIyLzIyIDA4OjE4LCBEYXZp ZCBKYW5kZXIgd3JvdGU6ICAKPiA+Pj4gT24gTW9uLCAyMSBOb3YgMjAyMiAxNToxODozMiAtMDMw MAo+ID4+PiBGYWJpbyBFc3RldmFtIDxmZXN0ZXZhbUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+PiAg Cj4gPj4+PiBbQWRkaW5nIEFuZ3VzIGFuZCBEYXZpZF0gIAo+ID4+Pgo+ID4+PiBUaGFua3MuIFRo aXMgd2FzIGFwcGFyZW50bHkgbmVjZXNzYXJ5IDstKQo+ID4+PiAgCj4gPj4+PiBPbiBNb24sIE5v diAyMSwgMjAyMiBhdCAzOjEyIFBNIFF1ZW50aW4gU2NodWx6IAo+ID4+Pj4gPGZvc3Mra2VybmVs QDBsZWlsLm5ldD4gd3JvdGU6ICAKPiA+Pj4+Pgo+ID4+Pj4+IEZyb206IFF1ZW50aW4gU2NodWx6 IDxxdWVudGluLnNjaHVsekB0aGVvYnJvbWEtc3lzdGVtcy5jb20+Cj4gPj4+Pj4KPiA+Pj4+PiBU aGUgcmVzZXQgbGluZSBpcyBhY3RpdmUgbG93IGZvciB0aGUgR29vZGl4IHRvdWNoc2NyZWVuIGNv bnRyb2xsZXIgc28KPiA+Pj4+PiBsZXQncyBmaXggdGhlIHBvbGFyaXR5IGluIHRoZSBEZXZpY2Ug VHJlZSBub2RlLgo+ID4+Pj4+Cj4gPj4+Pj4gU2lnbmVkLW9mZi1ieTogUXVlbnRpbiBTY2h1bHog PHF1ZW50aW4uc2NodWx6QHRoZW9icm9tYS1zeXN0ZW1zLmNvbT4KPiA+Pj4+PiAtLS0KPiA+Pj4+ PiDCoCBhcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bW0tcHJ0OG1tLmR0c8KgwqDC oMKgwqDCoMKgwqAgfCAyICstCj4gPj4+Pj4gwqAgYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2Nh bGUvaW14OG1xLWxpYnJlbTUtZGV2a2l0LmR0cyB8IDIgKy0KPiA+Pj4+PiDCoCAyIGZpbGVzIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPiA+Pj4+Pgo+ID4+Pj4+IGRp ZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bW0tcHJ0OG1tLmR0 cyAKPiA+Pj4+PiBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lteDhtbS1wcnQ4bW0u ZHRzCj4gPj4+Pj4gaW5kZXggOWZiYmJiNTU2YzBiMy4uZGY3ZTVhZTk2OThlMSAxMDA2NDQKPiA+ Pj4+PiAtLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bW0tcHJ0OG1tLmR0 cwo+ID4+Pj4+ICsrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lteDhtbS1wcnQ4 bW0uZHRzCj4gPj4+Pj4gQEAgLTEwNyw3ICsxMDcsNyBAQCB0b3VjaHNjcmVlZW5ANWQgewo+ID4+ Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludGVycnVwdC1wYXJlbnQgPSA8 JmdwaW8xPjsKPiA+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnRlcnJ1 cHRzID0gPDggSVJRX1RZUEVfTk9ORT47Cj4gPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgaXJxLWdwaW9zID0gPCZncGlvMSA4IEdQSU9fQUNUSVZFX0hJR0g+Owo+ID4+Pj4+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlc2V0LWdwaW9zID0gPCZncGlvMSA5IEdQ SU9fQUNUSVZFX0hJR0g+Owo+ID4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJl c2V0LWdwaW9zID0gPCZncGlvMSA5IEdQSU9fQUNUSVZFX0xPVz47ICAKPiA+Pj4KPiA+Pj4gTkFD SyEKPiA+Pj4KPiA+Pj4gVGhlIFBSVDhNTSBoYXMgYW4gaW52ZXJ0ZXIgaW4gdGhlIHJlc2V0IGxp bmUuIFRoZSByZWFzb24gZm9yIHRoYXQgaXMgCj4gPj4+IHRoYXQgdGhlCj4gPj4+IHJlc2V0IGxp bmUgbmVlZHMgdG8gYmUgaW5hY3RpdmUgd2hlbiB0aGUgZHJpdmluZyBzaWRlIGlzIHVucG93ZXJl ZC4KPiA+Pj4gVGhlIERUIHdhcyBjb3JyZWN0LCB0aGlzIGNoYW5nZSB3aWxsIGJyZWFrIGl0Lgo+ ID4+PiAgCj4gPj4KPiA+PiBUaGUgRFQgd2FzIGNvcnJlY3QuIFRoZSBpbXBsZW1lbnRhdGlvbiBp biB0aGUgZHJpdmVyIGlzIGNoYW5nZWQgKHRoZSAKPiA+PiBwb2xhcml0eSBpcyBzd2FwcGVkKSBp biB0aGlzIHBhdGNoIHNlcmllcywgdGhlcmVmb3JlIHRoZSBEVCBpc24ndCAKPiA+PiBjb3JyZWN0 IGFueW1vcmUsIGhlbmNlIHRoaXMgcGF0Y2guICAKPiA+IAo+ID4gSSdtIG5vdCBzdXJlIGl0J3Mg cXVpdGUgdGhhdCBzaW1wbGUuLi4gRldJVyBJJ20gdXNpbmcgYW4gYWRkLW9uIExDRCAKPiA+IG1v ZHVsZSB3aXRoIGEgR1Q5MjcxWzFdIChhbmQgSSB3b24ndCBiZSB0aGUgb25seSBvbmUgLSBSYXNw YmVycnkgUGkgYW5kIAo+ID4gb3RoZXIgU0JDIHVzZXJzIHVzaW5nIERUIG92ZXJsYXlzIG9yIGN1 c3RvbS1idWlsdCBEVEJzIGFyZSBhIHdob2xlIG90aGVyIAo+ID4gY2FuIG9mIHdvcm1zIGhlcmUp LCB3aGVyZSBHUElPX0FDVElWRV9MT1cgaXMgY29ycmVjdGx5IHNwZWNpZmllZCBwZXIgdGhlIAo+ ID4gc2NoZW1hdGljcywgdGh1cyAid3JvbmciIGZvciB0aGUgY3VycmVudCBkcml2ZXIgYmVoYXZp b3VyLCB5ZXQgaXQgKmlzKiAKPiA+IHdvcmtpbmcgT0sgYXMtaXMuIEkgZ3Vlc3MgdGhhdCdzIGJl Y2F1c2UgL1JTVEIgZW5kcyB1cCBkcml2ZW4gbG93IGZvciAKPiA+IGxvbmcgZW5vdWdoIGJldHdl ZW4gdGhlIGN1cnJlbnQgImRlYXNzZXJ0aW9uIiBieSAKPiA+IGdwaW9kX2RpcmVjdGlvbl9vdXRw dXQoMSkgYW5kIGdwaW9kX2RpcmVjdGlvbl9pbnB1dCgpIGFsbG93aW5nIHRoZSAKPiA+IGV4dGVy bmFsIHB1bGwtdXAgdG8gdGFrZSBpdCBoaWdoIGFnYWluLgo+ID4gICAKPiAKPiBDb3JyZWN0LCB0 aGF0IHNlZW1zIGxpa2UgaXQgaXMgdGhlIGNhc2UgZm9yICJjdXJyZW50LXdyb25nIiBHUElPIGxl dmVsLCAKPiBwcm92aWRlZCB5b3UgaGF2ZSBhIHB1bGwtdXAgb24gdGhlIFJFU0VUIGxpbmUgKGFz IHJlY29tbWVuZGVkIGluIHRoZSAKPiBkYXRhc2hlZXQpLgo+IAo+IGMuZi4gCj4gaHR0cHM6Ly9n aXRodWIuY29tL2hhZGVzcy9ndDl4eC9ibG9iL21hc3Rlci9zcGVjaWZpY2F0aW9ucy9HVDkyNzEl MjBEYXRhc2hlZXQucGRmCj4gCj4gd2l0aCB0aGUgY3VycmVudCBkcml2ZXIsIHdoYXQgSSBhc3N1 bWUgd2Ugc2hvdWxkIGdldCBpczoKPiAgICAgICAgICAgICAgX19fX19fX19fX19fX19fX19fXwo+ IElOVCBfX19fX19ffCAgICAgICAgICAgICAgICAgICB8X19fX19fX19fX18KPiAKPiAgICAgIF9f X19fX19fX19fXyAgICAgICAgICAgX19fX19fX19fX19fX19fX19fCj4gUlNUICAgICAgICAgICAg IHxfX19fX19fX198Cj4gCj4gICAgIF4KPiAgICAgTF9fIHB1bGwtdXAgb24gUlNUIHNvIGhpZ2gg YnkgZGVmYXVsdAo+ICAgICAgICAgIF4KPiAgICAgICAgICBMX19fIGdwaW9kX2RpcmVjdGlvbl9v dXRwdXQoMCkgKGRlYXNzZXJ0IEdQSU8gYWN0aXZlLWxvdywgc28gaGlnaCkKPiAgICAgICAgICAg ICBeCj4gICAgICAgICAgICAgTF9fX18gZ29vZGl4X2lycV9kaXJlY3Rpb25fb3V0cHV0Cj4gICAg ICAgICAgICAgICAgICBeCj4gICAgICAgICAgICAgICAgICBMX19fIGdwaW9kX2RpcmVjdGlvbl9v dXRwdXQoMSkgKGFzc2VydCBHUElPIGFjdGl2ZS1sb3csIAo+IHNvIGxvdykKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTF9fX18gZ3Bp b2RfZGlyZWN0aW9uX2lucHV0KCkgKGZsb2F0aW5nLCAKPiBwdWxsLXVwIG9uIFJTVCBzbyBoaWdo KQo+IAo+IFRoaXMgd29ya3MgYmVjYXVzZSBvZiB0aGUgcHVsbC11cCBvbiBSU1QgYW5kIHRoYXQg d2hhdCBtYXR0ZXJzIGlzIHRoYXQgCj4gdGhlIElOVCBsYW5lIGlzIGNvbmZpZ3VyZWQgMTAwwrVz IGJlZm9yZSBhIHJpc2luZyBlZGdlIG9uIFJTVCBsaW5lIChmb3IgCj4gYXQgbGVhc3QgNW1zKS4g SG93ZXZlciwgdGhlIGluaXQgc2VxdWVuY2UgaXMgbm90IHByb3Blcmx5IGZvbGxvd2VkIGFuZCAK PiBtaWdodCBnZXQgYnJva2VuIGluIHRoZSBmdXR1cmUgc2luY2UgaXQgaXMgbm90IHNvbWV0aGlu ZyB0aGF0IHdlIAo+IGV4cGxpY2l0bHkgc3VwcG9ydC4KPiAKPiBXaXRoIHRoZSBwcm9wb3NlZCBw YXRjaDoKPiAgICAgICAgICAgICAgX19fX19fX19fX19fX19fX19fXwo+IElOVCBfX19fX19ffCAg ICAgICAgICAgICAgICAgICB8X19fX19fX19fX18KPiAKPiAgICAgIF9fX18gICAgICAgICBfX19f X19fX19fX19fX19fX18KPiBSU1QgICAgIHxfX19fX19ffAo+IAo+ICAgICBeCj4gICAgIExfXyBw dWxsLXVwIG9uIFJTVCBzbyBoaWdoIGJ5IGRlZmF1bHQKPiAgICAgICAgICBeCj4gICAgICAgICAg TF9fXyBncGlvZF9kaXJlY3Rpb25fb3V0cHV0KDEpIChhc3NlcnQgR1BJTyBhY3RpdmUtbG93LCBz byBsb3cpCj4gICAgICAgICAgICAgXgo+ICAgICAgICAgICAgIExfX19fIGdvb2RpeF9pcnFfZGly ZWN0aW9uX291dHB1dAo+ICAgICAgICAgICAgICAgICAgXgo+ICAgICAgICAgICAgICAgICAgTF9f XyBncGlvZF9kaXJlY3Rpb25fb3V0cHV0KDEpIChkZWFzc2VydCBHUElPIAo+IGFjdGl2ZS1sb3cs IHNvIGhpZ2gpCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXgo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExfX19fIGdwaW9kX2RpcmVjdGlvbl9pbnB1dCgpIChmbG9hdGluZywgCj4g cHVsbC11cCBvbiBSU1Qgc28gaGlnaCkKPiAKPiBUaGlzIHNob3VsZCB3b3JrIHRvbyBhbmQgZG9l cyBub3QgcmVseSBvbiBzb21lIHNpZGUgZWZmZWN0cy90aW1pbmdzIGFuZCAKPiBzaG91bGQgYmUg ZnV0dXJlLXByb29mLgo+IAo+IEFzIGZvciBPT1QgRFRCL0RUQk8sIG5vdGhpbmcgSSBjYW4gZG8g dW5mb3J0dW5hdGVseSwgdGhhdCBpcyBjb3JyZWN0Lgo+IAo+IFRoZSBmYWN0IHRoYXQgd2UgaGF2 ZSBib3RoICJpbnRlcnByZXRhdGlvbnMiIG9mIHRoZSBSRVNFVCBHUElPIGxldmVsIGluIAo+IExp bnV4IGlzIHdvcnJ5aW5nLCBhbGJlaXQgd2l0aCBPT1QgRFRCcy4gQSBkcml2ZXIgb3Igc3Vic3lz dGVtIHJld29yayAKPiBtaWdodCBicmVhayBib2FyZHMgaW4gd2hpY2ggY2FzZSBwZW9wbGUgc2hv dWxkIHVwZGF0ZSB0aGVpciBEVEIgYXMgCj4gc3VnZ2VzdGVkIGhlcmUgb3Igd2UnbGwgZGVjaWRl IHRvIHN1cHBvcnQgYm90aCBpbnRlcnByZXRhdGlvbnMsIHdoaWNoIAo+IGFpbid0IGdyZWF0IGVp dGhlci4KClRoYW5rcyBmb3IgdGhlIGRldGFpbGVkIGRyYXdpbmdzLiBZZXMsIGl0IHNlZW1zIHRo aXMgaXMgYW4gdW5mb3J0dW5hdGUgY2FzZSBvZgpib3RoIHBvbGFyaXRpZXMga2luZCBvZiB3b3Jr aW5nLgoKT3VyIERUIHdhcyBjb3JyZWN0LCBidXQgdGhlIGRyaXZlciB3YXMgd3JvbmcsIGV2ZW4g aWYgaXQgc2VlbWVkIHRvIHdvcmsKY29ycmVjdGx5LCBzbyB0aGlzIE5BQ0sgc3RpbGwgc3RhbmRz LgoKT3VyIGJvYXJkIGhhcyB0aGlzIEdQSU8gcGluIHdpcmVkIHRvIHRoZSBnYXRlIG9mIGEgTU9T RkVUIHdoaWNoIGFjdHMgYXMgYW4KaW52ZXJ0ZXIgYW5kIGFsc28gaXNvbGF0ZXMgdGhlIHNpZ25h bCBmcm9tIHRoZSBHUElPIHBvcnQgcG93ZXIgcmFpbC4gU28gZnJvbQp0aGUgR1BJTyBwb2ludCBv ZiB2aWV3LCB0aGUgc2lnbmFsIGlzIEFDVElWRV9ISUdILiBQbGVhc2UgbGVhdmUgdGhlIERUIGxp a2UKdGhpcy4KClRoYW5rcyBmb3IgZml4aW5nIHRoZSBkcml2ZXIuCgpCZXN0IHJlZ2FyZHMsCgot LSAKRGF2aWQgSmFuZGVyClByb3RvbmljIEhvbGxhbmQuCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QK bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=