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 6A1ADC27C54 for ; Thu, 6 Jun 2024 15:53:48 +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=THrOa1k6Cy+WhxFFJjEgixDII+ZX61FWiuX4BsHP42M=; b=Q1q/8SweQBvtTY JJmiL0/biSUKW/rvw6F2kMiF5UG1vjsTsY3ASj5PNAbEhyqEqgvYitRLofXdG36Y/CWc1BbCSLuqZ sjhUIE6c8ROAg/JhBMqjq+77hiS9mxpKsOkRohOm49+5h43kGX6SG/YDR9QWGjHJmghQnzA+M4pIx I5ITu1En90sgBZJ4NKH3uGLqynuxClvaRrrbLxCKquJozqqcReejqoRc8BwYqppXoMBWEaoxUe2Zt WpGDISNuN5j1udDFfHGRiIjc/bom+++uuKyAoQfM8De90nDS0XjEIfe2FURdOZ3JV5yX9X9WOIowF yPkAnXru7evYdvDN4tFQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sFFQj-0000000ANk9-0Tlx; Thu, 06 Jun 2024 15:53:33 +0000 Received: from relay2-d.mail.gandi.net ([217.70.183.194]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sFFQd-0000000ANgZ-13c1 for linux-arm-kernel@lists.infradead.org; Thu, 06 Jun 2024 15:53:30 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 3C3BF40003; Thu, 6 Jun 2024 15:53:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1717689204; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ykb7pydzqzUmgumy7ROcbGm4j4AUrqIXRnSnq1EpQXA=; b=AqZcSkcxZ8Crl/9qpk/v7M8vuYCKh4/tDXfbnTEW9/weDi2Xamxb97hsVEQUCn2qoaGYCW R/6f+xbF8O72YibKV0D3kAbVnEnhVVIACWsyyZb95NSIHnPY9ED0/TmkY+1oDQYX6VSBS8 HtkCEgTN4NzUwDbt/VBMZHh9fo7nKrgEJAJR/n+GWYSbkgObVi01Ei2/Id/o0Vmmm+ljmv T1cG4m4ehXh0OMB6bYFxwGfjs/O4JCiz22GNPWd0XkwkWKAoc7X3BRosrn0gbbuv6/vEvY ktMfyL92H/ximPOAeAH73BmY1JMlxGFzUby6si2qtodEczCaZOsANdTSrohUaw== Date: Thu, 6 Jun 2024 17:53:17 +0200 From: Herve Codina To: Thomas Gleixner Cc: Simon Horman , Sai Krishna Gajula , Rob Herring , Krzysztof Kozlowski , Conor Dooley , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Lee Jones , Arnd Bergmann , Horatiu Vultur , UNGLinuxDriver@microchip.com, Andrew Lunn , Heiner Kallweit , Russell King , Saravana Kannan , Bjorn Helgaas , Philipp Zabel , Lars Povlsen , Steen Hegelund , Daniel Machon , Alexandre Belloni , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, netdev@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Allan Nielsen , Luca Ceresoli , Thomas Petazzoni Subject: Re: [PATCH v2 11/19] irqchip: Add support for LAN966x OIC Message-ID: <20240606175317.62d476b0@bootlin.com> In-Reply-To: <87frtr4goe.ffs@tglx> References: <20240527161450.326615-1-herve.codina@bootlin.com> <20240527161450.326615-12-herve.codina@bootlin.com> <87frtr4goe.ffs@tglx> Organization: Bootlin X-Mailer: Claws Mail 4.2.0 (GTK 3.24.41; x86_64-redhat-linux-gnu) MIME-Version: 1.0 X-GND-Sasl: herve.codina@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240606_085327_689487_2DDCAA49 X-CRM114-Status: GOOD ( 28.78 ) 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 SGkgVGhvbWFzLAoKT24gV2VkLCAwNSBKdW4gMjAyNCAxNjoxNzo1MyArMDIwMApUaG9tYXMgR2xl aXhuZXIgPHRnbHhAbGludXRyb25peC5kZT4gd3JvdGU6Cgo+IE9uIE1vbiwgTWF5IDI3IDIwMjQg YXQgMTg6MTQsIEhlcnZlIENvZGluYSB3cm90ZToKPiA+ICtzdHJ1Y3QgbGFuOTY2eF9vaWNfZGF0 YSB7Cj4gPiArCXN0cnVjdCBpcnFfZG9tYWluICpkb21haW47Cj4gPiArCXZvaWQgX19pb21lbSAq cmVnczsKPiA+ICsJaW50IGlycTsKPiA+ICt9OyAgCj4gCj4gUGxlYXNlIHJlYWQgRG9jdW1lbnRh dGlvbi9wcm9jZXNzL21haW50YWluZXJzLXRpcC5yc3QKCkkgc3VwcG9zZSB5b3UgcG9pbnRlZCBv dXQgdGhlIHVuLXRhYnVsYXIgc3RydWN0IG1lbWJlciBuYW1lcyBoZXJlLgpJIHdpbGwgZml4IHRo YXQgaW4gdGhlIG5leHQgaXRlcmF0aW9uLgoKPiAKPiA+ICtzdGF0aWMgaW50IGxhbjk2Nnhfb2lj X2lycV9zZXRfdHlwZShzdHJ1Y3QgaXJxX2RhdGEgKmRhdGEsCj4gPiArCQkJCSAgICB1bnNpZ25l ZCBpbnQgZmxvd190eXBlKSAgCj4gCj4gUGxlYXNlIHVzZSB0aGUgMTAwIGNoYXJhY3RlciBsaW1p dAoKU3VyZSwgd2lsbCBiZSBmaXhlZC4KCj4gCj4gPiArc3RhdGljIHN0cnVjdCBsYW45NjZ4X29p Y19jaGlwX3JlZ3MgbGFuOTY2eF9vaWNfY2hpcF9yZWdzWzNdID0gewo+ID4gKwl7Cj4gPiArCQku cmVnX29mZl9lbmFfc2V0ID0gTEFOOTY2WF9PSUNfSU5UUl9FTkFfU0VULAo+ID4gKwkJLnJlZ19v ZmZfZW5hX2NsciA9IExBTjk2NlhfT0lDX0lOVFJfRU5BX0NMUiwKPiA+ICsJCS5yZWdfb2ZmX3N0 aWNreSA9IExBTjk2NlhfT0lDX0lOVFJfU1RJQ0tZLAo+ID4gKwkJLnJlZ19vZmZfaWRlbnQgPSBM QU45NjZYX09JQ19EU1RfSU5UUl9JREVOVCgwKSwKPiA+ICsJCS5yZWdfb2ZmX21hcCA9IExBTjk2 NlhfT0lDX0RTVF9JTlRSX01BUCgwKSwgIAo+IAo+IFBsZWFzZSBtYWtlIHRoaXMgdGFidWxhci4g U2VlIGRvYy4KCldpbGwgYmUgZml4ZWQuCgo+IAo+ID4gK3N0YXRpYyB2b2lkIGxhbjk2Nnhfb2lj X2NoaXBfaW5pdChzdHJ1Y3QgbGFuOTY2eF9vaWNfZGF0YSAqbGFuOTY2eF9vaWMsCj4gPiArCQkJ CSAgc3RydWN0IGlycV9jaGlwX2dlbmVyaWMgKmdjLAo+ID4gKwkJCQkgIHN0cnVjdCBsYW45NjZ4 X29pY19jaGlwX3JlZ3MgKmNoaXBfcmVncykKPiA+ICt7Cj4gPiArCWdjLT5yZWdfYmFzZSA9IGxh bjk2Nnhfb2ljLT5yZWdzOwo+ID4gKwlnYy0+Y2hpcF90eXBlc1swXS5yZWdzLmVuYWJsZSA9IGNo aXBfcmVncy0+cmVnX29mZl9lbmFfc2V0Owo+ID4gKwlnYy0+Y2hpcF90eXBlc1swXS5yZWdzLmRp c2FibGUgPSBjaGlwX3JlZ3MtPnJlZ19vZmZfZW5hX2NscjsKPiA+ICsJZ2MtPmNoaXBfdHlwZXNb MF0ucmVncy5hY2sgPSBjaGlwX3JlZ3MtPnJlZ19vZmZfc3RpY2t5Owo+ID4gKwlnYy0+Y2hpcF90 eXBlc1swXS5jaGlwLmlycV9zdGFydHVwID0gbGFuOTY2eF9vaWNfaXJxX3N0YXJ0dXA7Cj4gPiAr CWdjLT5jaGlwX3R5cGVzWzBdLmNoaXAuaXJxX3NodXRkb3duID0gbGFuOTY2eF9vaWNfaXJxX3No dXRkb3duOwo+ID4gKwlnYy0+Y2hpcF90eXBlc1swXS5jaGlwLmlycV9zZXRfdHlwZSA9IGxhbjk2 Nnhfb2ljX2lycV9zZXRfdHlwZTsKPiA+ICsJZ2MtPmNoaXBfdHlwZXNbMF0uY2hpcC5pcnFfbWFz ayA9IGlycV9nY19tYXNrX2Rpc2FibGVfcmVnOwo+ID4gKwlnYy0+Y2hpcF90eXBlc1swXS5jaGlw LmlycV91bm1hc2sgPSBpcnFfZ2NfdW5tYXNrX2VuYWJsZV9yZWc7Cj4gPiArCWdjLT5jaGlwX3R5 cGVzWzBdLmNoaXAuaXJxX2FjayA9IGlycV9nY19hY2tfc2V0X2JpdDsKPiA+ICsJZ2MtPnByaXZh dGUgPSBjaGlwX3JlZ3M7Cj4gPiArCj4gPiArCS8qIERpc2FibGUgYWxsIGludGVycnVwdHMgaGFu ZGxlZCBieSB0aGlzIGNoaXAgKi8KPiA+ICsJaXJxX3JlZ193cml0ZWwoZ2MsIH4wLCBjaGlwX3Jl Z3MtPnJlZ19vZmZfZW5hX2Nscik7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGxhbjk2 Nnhfb2ljX2NoaXBfZXhpdChzdHJ1Y3QgaXJxX2NoaXBfZ2VuZXJpYyAqZ2MpCj4gPiArewo+ID4g KwkvKiBEaXNhYmxlIGFuZCBhY2sgYWxsIGludGVycnVwdHMgaGFuZGxlZCBieSB0aGlzIGNoaXAg Ki8KPiA+ICsJaXJxX3JlZ193cml0ZWwoZ2MsIH4wLCBnYy0+Y2hpcF90eXBlc1swXS5yZWdzLmRp c2FibGUpOyAgCj4gCj4gfjBVCgpXaWxsIGJlIGNoYW5nZWQuCgo+ICAgCj4gPiArCWlycV9yZWdf d3JpdGVsKGdjLCB+MCwgZ2MtPmNoaXBfdHlwZXNbMF0ucmVncy5hY2spOwo+ID4gK30KPiA+ICsK PiA+ICtzdGF0aWMgaW50IGxhbjk2Nnhfb2ljX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBwZGV2LT5kZXYu b2Zfbm9kZTsKPiA+ICsJc3RydWN0IGxhbjk2Nnhfb2ljX2RhdGEgKmxhbjk2Nnhfb2ljOwo+ID4g KwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+ID4gKwlzdHJ1Y3QgaXJxX2NoaXBf Z2VuZXJpYyAqZ2M7Cj4gPiArCWludCByZXQ7Cj4gPiArCWludCBpOyAgCj4gCj4gaW50IHJldCwg aTsKCldpbGwgYmUgY2hhbmdlZC4KCj4gCj4gPiArCj4gPiArCWxhbjk2Nnhfb2ljID0gZGV2bV9r bWFsbG9jKGRldiwgc2l6ZW9mKCpsYW45NjZ4X29pYyksIEdGUF9LRVJORUwpOwo+ID4gKwlpZiAo IWxhbjk2Nnhfb2ljKQo+ID4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gPiArCj4gPiArCWxhbjk2Nnhf b2ljLT5yZWdzID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwo+ID4g KwlpZiAoSVNfRVJSKGxhbjk2Nnhfb2ljLT5yZWdzKSkKPiA+ICsJCXJldHVybiBkZXZfZXJyX3By b2JlKGRldiwgUFRSX0VSUihsYW45NjZ4X29pYy0+cmVncyksCj4gPiArCQkJCSAgICAgImZhaWxl ZCB0byBtYXAgcmVzb3VyY2VcbiIpOwo+ID4gKwo+ID4gKwlsYW45NjZ4X29pYy0+ZG9tYWluID0g aXJxX2RvbWFpbl9hbGxvY19saW5lYXIob2Zfbm9kZV90b19md25vZGUobm9kZSksCj4gPiArCQkJ CQkJICAgICAgTEFOOTY2WF9PSUNfTlJfSVJRLAo+ID4gKwkJCQkJCSAgICAgICZpcnFfZ2VuZXJp Y19jaGlwX29wcywKPiA+ICsJCQkJCQkgICAgICBOVUxMKTsKPiA+ICsJaWYgKCFsYW45NjZ4X29p Yy0+ZG9tYWluKSB7Cj4gPiArCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBjcmVhdGUgYW4gSVJR IGRvbWFpblxuIik7Cj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsJfQo+ID4gKwo+ID4gKwls YW45NjZ4X29pYy0+aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKPiA+ICsJaWYgKGxh bjk2Nnhfb2ljLT5pcnEgPCAwKSB7Cj4gPiArCQlyZXQgPSBkZXZfZXJyX3Byb2JlKGRldiwgbGFu OTY2eF9vaWMtPmlycSwKPiA+ICsJCQkJICAgICJmYWlsZWQgdG8gZ2V0IHRoZSBJUlFcbiIpOwo+ ID4gKwkJZ290byBlcnJfZG9tYWluX2ZyZWU7Cj4gPiArCX0KPiA+ICsKPiA+ICsJcmV0ID0gaXJx X2FsbG9jX2RvbWFpbl9nZW5lcmljX2NoaXBzKGxhbjk2Nnhfb2ljLT5kb21haW4sIDMyLCAxLAo+ ID4gKwkJCQkJICAgICAibGFuOTY2eC1vaWMiLCBoYW5kbGVfbGV2ZWxfaXJxLCAwLAo+ID4gKwkJ CQkJICAgICAwLCAwKTsKPiA+ICsJaWYgKHJldCkgewo+ID4gKwkJZGV2X2Vycl9wcm9iZShkZXYs IHJldCwgImZhaWxlZCB0byBhbGxvYyBpcnEgZG9tYWluIGdjXG4iKTsKPiA+ICsJCWdvdG8gZXJy X2RvbWFpbl9mcmVlOwo+ID4gKwl9Cj4gPiArCj4gPiArCS8qIEluaXQgY2hpcHMgKi8KPiA+ICsJ QlVJTERfQlVHX09OKERJVl9ST1VORF9VUChMQU45NjZYX09JQ19OUl9JUlEsIDMyKSAhPQo+ID4g KwkJICAgICBBUlJBWV9TSVpFKGxhbjk2Nnhfb2ljX2NoaXBfcmVncykpOwo+ID4gKwlmb3IgKGkg PSAwOyBpIDwgQVJSQVlfU0laRShsYW45NjZ4X29pY19jaGlwX3JlZ3MpOyBpKyspIHsKPiA+ICsJ CWdjID0gaXJxX2dldF9kb21haW5fZ2VuZXJpY19jaGlwKGxhbjk2Nnhfb2ljLT5kb21haW4sIGkg KiAzMik7Cj4gPiArCQlsYW45NjZ4X29pY19jaGlwX2luaXQobGFuOTY2eF9vaWMsIGdjLAo+ID4g KwkJCQkgICAgICAmbGFuOTY2eF9vaWNfY2hpcF9yZWdzW2ldKTsKPiA+ICsJfQo+ID4gKwo+ID4g KwlpcnFfc2V0X2NoYWluZWRfaGFuZGxlcl9hbmRfZGF0YShsYW45NjZ4X29pYy0+aXJxLAo+ID4g KwkJCQkJIGxhbjk2Nnhfb2ljX2lycV9oYW5kbGVyLAo+ID4gKwkJCQkJIGxhbjk2Nnhfb2ljLT5k b21haW4pOwo+ID4gKwo+ID4gKwlpcnFfZG9tYWluX3B1Ymxpc2gobGFuOTY2eF9vaWMtPmRvbWFp bik7Cj4gPiArCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGxhbjk2Nnhfb2ljKTsKPiA+ICsJ cmV0dXJuIDA7ICAKPiAKPiBUaGlzIGlzIGV4YWN0bHkgd2hhdCBjYW4gYmUgYXZvaWRlZC4KPiAK PiA+ICsKPiA+ICtlcnJfZG9tYWluX2ZyZWU6Cj4gPiArCWlycV9kb21haW5fZnJlZShsYW45NjZ4 X29pYy0+ZG9tYWluKTsKPiA+ICsJcmV0dXJuIHJldDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGlj IHZvaWQgbGFuOTY2eF9vaWNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4g PiArewo+ID4gKwlzdHJ1Y3QgbGFuOTY2eF9vaWNfZGF0YSAqbGFuOTY2eF9vaWMgPSBwbGF0Zm9y bV9nZXRfZHJ2ZGF0YShwZGV2KTsKPiA+ICsJc3RydWN0IGlycV9jaGlwX2dlbmVyaWMgKmdjOwo+ ID4gKwlpbnQgaTsKPiA+ICsKPiA+ICsJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUobGFuOTY2 eF9vaWNfY2hpcF9yZWdzKTsgaSsrKSB7Cj4gPiArCQlnYyA9IGlycV9nZXRfZG9tYWluX2dlbmVy aWNfY2hpcChsYW45NjZ4X29pYy0+ZG9tYWluLCBpICogMzIpOwo+ID4gKwkJbGFuOTY2eF9vaWNf Y2hpcF9leGl0KGdjKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlpcnFfc2V0X2NoYWluZWRfaGFuZGxl cl9hbmRfZGF0YShsYW45NjZ4X29pYy0+aXJxLCBOVUxMLCBOVUxMKTsKPiA+ICsKPiA+ICsJZm9y IChpID0gMDsgaSA8IExBTjk2NlhfT0lDX05SX0lSUTsgaSsrKQo+ID4gKwkJaXJxX2Rpc3Bvc2Vf bWFwcGluZyhpcnFfZmluZF9tYXBwaW5nKGxhbjk2Nnhfb2ljLT5kb21haW4sIGkpKTsgIAo+IAo+ IFRoaXMgaXMganVzdCB3cm9uZy4gWW91IGNhbm5vdCByZW1vdmUgdGhlIGNoaXAgd2hlbiB0aGVy ZSBhcmUgc3RpbGwgaW50ZXJydXB0cwo+IG1hcHBlZC4KPiAKPiBJIGp1c3QgZGlkIGEgcXVpY2sg Y29udmVyc2lvbiB0byB0aGUgdGVtcGxhdGUgYXBwcm9hY2guIFVuc3VycHJpc2luZ2x5Cj4gaXQg cmVtb3ZlcyAzMCBsaW5lcyBvZiBib2lsZXIgcGxhdGUgY29kZToKPiAKPiArc3RhdGljIHZvaWQg bGFuOTY2eF9vaWNfY2hpcF9pbml0KHN0cnVjdCBpcnFfY2hpcF9nZW5lcmljICpnYykKPiArewo+ ICsJc3RydWN0IGxhbjk2Nnhfb2ljX2RhdGEgKmxhbjk2Nnhfb2ljID0gZ2MtPmRvbWFpbi0+aG9z dF9kYXRhOwo+ICsJc3RydWN0IGxhbjk2Nnhfb2ljX2NoaXBfcmVncyAqY2hpcF9yZWdzOwo+ICsK PiArCWdjLT5yZWdfYmFzZSA9IGxhbjk2Nnhfb2ljLT5yZWdzOwo+ICsKPiArCWNoaXBfcmVncyA9 IGxhbjk2Nnhfb2ljX2NoaXBfcmVncyArIGdjLT5pcnFfYmFzZSAvIDMyOwo+ICsJZ2MtPmNoaXBf dHlwZXNbMF0ucmVncy5lbmFibGUgPSBjaGlwX3JlZ3MtPnJlZ19vZmZfZW5hX3NldDsKPiArCWdj LT5jaGlwX3R5cGVzWzBdLnJlZ3MuZGlzYWJsZSA9IGNoaXBfcmVncy0+cmVnX29mZl9lbmFfY2xy Owo+ICsJZ2MtPmNoaXBfdHlwZXNbMF0ucmVncy5hY2sgPSBjaGlwX3JlZ3MtPnJlZ19vZmZfc3Rp Y2t5Owo+ICsKPiArCWdjLT5jaGlwX3R5cGVzWzBdLmNoaXAuaXJxX3N0YXJ0dXAgPSBsYW45NjZ4 X29pY19pcnFfc3RhcnR1cDsKPiArCWdjLT5jaGlwX3R5cGVzWzBdLmNoaXAuaXJxX3NodXRkb3du ID0gbGFuOTY2eF9vaWNfaXJxX3NodXRkb3duOwo+ICsJZ2MtPmNoaXBfdHlwZXNbMF0uY2hpcC5p cnFfc2V0X3R5cGUgPSBsYW45NjZ4X29pY19pcnFfc2V0X3R5cGU7Cj4gKwlnYy0+Y2hpcF90eXBl c1swXS5jaGlwLmlycV9tYXNrID0gaXJxX2djX21hc2tfZGlzYWJsZV9yZWc7Cj4gKwlnYy0+Y2hp cF90eXBlc1swXS5jaGlwLmlycV91bm1hc2sgPSBpcnFfZ2NfdW5tYXNrX2VuYWJsZV9yZWc7Cj4g KwlnYy0+Y2hpcF90eXBlc1swXS5jaGlwLmlycV9hY2sgPSBpcnFfZ2NfYWNrX3NldF9iaXQ7Cj4g KwlnYy0+cHJpdmF0ZSA9IGNoaXBfcmVnczsKPiArCj4gKwkvKiBEaXNhYmxlIGFsbCBpbnRlcnJ1 cHRzIGhhbmRsZWQgYnkgdGhpcyBjaGlwICovCj4gKwlpcnFfcmVnX3dyaXRlbChnYywgfjAsIGNo aXBfcmVncy0+cmVnX29mZl9lbmFfY2xyKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgbGFuOTY2 eF9vaWNfY2hpcF9leGl0KHN0cnVjdCBpcnFfY2hpcF9nZW5lcmljICpnYykKPiArewo+ICsJLyog RGlzYWJsZSBhbmQgYWNrIGFsbCBpbnRlcnJ1cHRzIGhhbmRsZWQgYnkgdGhpcyBjaGlwICovCj4g KwlpcnFfcmVnX3dyaXRlbChnYywgfjAsIGdjLT5jaGlwX3R5cGVzWzBdLnJlZ3MuZGlzYWJsZSk7 Cj4gKwlpcnFfcmVnX3dyaXRlbChnYywgfjAsIGdjLT5jaGlwX3R5cGVzWzBdLnJlZ3MuYWNrKTsK PiArfQo+ICsKPiArc3RhdGljIHZvaWQgbGFuOTY2eF9vaWNfZG9tYWluX2luaXQoc3RydWN0IGly cV9kb21haW4gKmQpCj4gK3sKPiArCXN0cnVjdCBsYW45NjZ4X29pY19kYXRhICpsYW45NjZ4X29p YyA9IGQtPmhvc3RfZGF0YTsKPiArCj4gKwlpcnFfc2V0X2NoYWluZWRfaGFuZGxlcl9hbmRfZGF0 YShsYW45NjZ4X29pYy0+aXJxLCBsYW45NjZ4X29pY19pcnFfaGFuZGxlciwgZCk7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgbGFuOTY2eF9vaWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKPiArewo+ICsJc3RydWN0IGlycV9kb21haW5fY2hpcF9nZW5lcmljX2luZm8gZ2NfaW5m byA9IHsKPiArCQkuaXJxc19wZXJfY2hpcAkJPSAzMiwKPiArCQkubnVtX2NoaXBzCQk9IDEsCj4g KwkJLm5hbWUJCQk9ICJsYW45NjZ4LW9pYyIKPiArCQkuaGFuZGxlcgkJPSBoYW5kbGVfbGV2ZWxf aXJxLAo+ICsJCS5pbml0CQkJPSBsYW45NjZ4X29pY19jaGlwX2luaXQsCj4gKwkJLmRlc3Ryb3kJ CT0gbGFuOTY2eF9vaWNfY2hpcF9leGl0LAo+ICsJfTsKPiArCj4gKwlzdHJ1Y3QgaXJxX2RvbWFp bl9pbmZvIGluZm8gPSB7Cj4gKwkJLmZ3bm9kZQkJCT0gb2Zfbm9kZV90b19md25vZGUocGRldi0+ ZGV2Lm9mX25vZGUpLAo+ICsJCS5zaXplCQkJPSBMQU45NjZYX09JQ19OUl9JUlEsCj4gKwkJLmh3 aXJxX21heAkJPSBMQU45NjZYX09JQ19OUl9JUlEsCj4gKwkJLm9wcwkJCT0gJmlycV9nZW5lcmlj X2NoaXBfb3BzLAo+ICsJCS5nY19pbmZvCQk9ICZnY19pbmZvLAo+ICsJCS5pbml0CQkJPSBsYW45 NjZ4X29pY19kb21haW5faW5pdCwKPiArCX07Cj4gKwlzdHJ1Y3QgbGFuOTY2eF9vaWNfZGF0YSAq bGFuOTY2eF9vaWM7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+ICsKPiAr CWxhbjk2Nnhfb2ljID0gZGV2bV9rbWFsbG9jKGRldiwgc2l6ZW9mKCpsYW45NjZ4X29pYyksIEdG UF9LRVJORUwpOwo+ICsJaWYgKCFsYW45NjZ4X29pYykKPiArCQlyZXR1cm4gLUVOT01FTTsKPiAr Cj4gKwlsYW45NjZ4X29pYy0+cmVncyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShw ZGV2LCAwKTsKPiArCWlmIChJU19FUlIobGFuOTY2eF9vaWMtPnJlZ3MpKQo+ICsJCXJldHVybiBk ZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihsYW45NjZ4X29pYy0+cmVncyksICJmYWlsZWQgdG8g bWFwIHJlc291cmNlXG4iKTsKPiArCj4gKwlsYW45NjZ4X29pYy0+aXJxID0gcGxhdGZvcm1fZ2V0 X2lycShwZGV2LCAwKTsKPiArCWlmIChsYW45NjZ4X29pYy0+aXJxIDwgMCkKPiArCQlyZXR1cm4g ZGV2X2Vycl9wcm9iZShkZXYsIGxhbjk2Nnhfb2ljLT5pcnEsICJmYWlsZWQgdG8gZ2V0IHRoZSBJ UlFcbiIpOwo+ICsKPiArCWxhbjk2Nnhfb2ljLT5kb21haW4gPSBpcnFfZG9tYWluX2luc3RhbnRp YXRlKCZpbmZvKTsKPiArCWlmICghbGFuOTY2eF9vaWMtPmRvbWFpbikKPiArCQlyZXR1cm4gLUVO T01FTTsKPiArCj4gKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBsYW45NjZ4X29pYyk7Cj4g KwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgbGFuOTY2eF9vaWNfcmVtb3ZlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArCXN0cnVjdCBsYW45NjZ4X29pY19k YXRhICpsYW45NjZ4X29pYyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwo+ICsKPiArCWly cV9zZXRfY2hhaW5lZF9oYW5kbGVyX2FuZF9kYXRhKGxhbjk2Nnhfb2ljLT5pcnEsIE5VTEwsIE5V TEwpOwo+ICsJaXJxX2RvbWFpbl9yZW1vdmUobGFuOTY2eF9vaWMtPmRvbWFpbik7Cj4gK30KPiAK PiBTZWU/CgpQZXJmZWN0bHkuCkkgd2lsbCByZXdvcmsgcGF0Y2hlcyBpbiB0aGlzIHdheS4KQWdh aW4sIHRoYW5rcyBmb3IgcG9pbnRpbmcgb3V0IHRoaXMgc29sdXRpb24uCgpCZXN0IHJlZ2FyZHMs CkhlcnbDqQoKPiAKPiBUaGFua3MsCj4gCj4gICAgICAgICB0Z2x4CgoKCi0tIApIZXJ2w6kgQ29k aW5hLCBCb290bGluCkVtYmVkZGVkIExpbnV4IGFuZCBLZXJuZWwgZW5naW5lZXJpbmcKaHR0cHM6 Ly9ib290bGluLmNvbQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=