Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp5221261yba; Mon, 13 May 2019 07:22:21 -0700 (PDT) X-Google-Smtp-Source: APXvYqxpQh83gNAA7Jx4Xw52WGgyGMUZZmozFWlWosdB4Gmw8h0Elj3cn/IL39Q+gkxaiCUFRIvE X-Received: by 2002:a62:6c88:: with SMTP id h130mr33288442pfc.106.1557757340635; Mon, 13 May 2019 07:22:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557757340; cv=none; d=google.com; s=arc-20160816; b=nShCvke3Ie09a5DFaFnB2WQXpI2fEG46pfthHHBO6WWNJHtNWX1cZgRmruv/sKjtph H+koyixc/B0vui91udkT7gubD1bW3N5YjhnWS+gxUqGuVdfJB3yQ2VgzM/YPDHT/VyAI LjjGM1uw0MzuxvcX8PlXsLj/Tq0XKP07KBXAEqKc/wxswBEUPlQViKN0cs10PUMSzOPK PcRDhaUzaN8C7Yg7lUoAlqfqyzcNltIy6FmNR+uZwAbaSGKrHUWtnV+xicgnySvOWGWv 0bVL8tWA7D8/Vyw4Li49IEN0r8HcDRGhUdqc3HENxWyCkm51FYcGOSWiKXZ4VTuvmDdh xAsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from; bh=Zx4zgBacfafVfv9jA5UfXbpuUeIU2X4eA3awXqJZwoc=; b=b3gnmX05bqcaECsyZTlb/kZbwYvab5A4NIFktciUQlNhRB/tEekeSx8NM2LcBzzDfq tXqnjlrlwQExBehNvoKTeZ3IPP95MaAauYP0NoCMwsLrmAupfwLsbEhTAxihdzR6lJMK rgF/3UCOyaSsToQE1Me7Dk4QF5An/Tnr0oPBDRva8x3+i0CtQUaFOl3BcB9qDKBFlXzM 6BaffGakt37GOLcvwdU9T1AdxWgcGHonvzyV1RRTy9K8IesrjoJ1w8OFgH/VIf7qgSsb ieE6Jq1CM5BOfLySt4Zw1JuwWChrmF1Tkf8iDblxn5N2wl/eJ+Ip5mwllU6oLusCDL/y CiGA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v14si18601002pfa.252.2019.05.13.07.22.04; Mon, 13 May 2019 07:22:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730306AbfEMN4U (ORCPT + 99 others); Mon, 13 May 2019 09:56:20 -0400 Received: from skedge03.snt-world.com ([91.208.41.68]:57368 "EHLO skedge03.snt-world.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727272AbfEMN4T (ORCPT ); Mon, 13 May 2019 09:56:19 -0400 Received: from sntmail14r.snt-is.com (unknown [10.203.32.184]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by skedge03.snt-world.com (Postfix) with ESMTPS id 7D1146024E8; Mon, 13 May 2019 15:56:12 +0200 (CEST) Received: from sntmail12r.snt-is.com (10.203.32.182) by sntmail14r.snt-is.com (10.203.32.184) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 13 May 2019 15:56:12 +0200 Received: from sntmail12r.snt-is.com ([fe80::e551:8750:7bba:3305]) by sntmail12r.snt-is.com ([fe80::e551:8750:7bba:3305%3]) with mapi id 15.01.1713.004; Mon, 13 May 2019 15:56:12 +0200 From: Schrempf Frieder To: "lede@allycomm.com" , Boris Brezillon , Miquel Raynal , "Richard Weinberger" , David Woodhouse , "Brian Norris" , Marek Vasut CC: "linux-mtd@lists.infradead.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH] mtd: spinand: Add support for GigaDevice GD5F1GQ4UFxxG Thread-Topic: [PATCH] mtd: spinand: Add support for GigaDevice GD5F1GQ4UFxxG Thread-Index: AQHVBypxyGCaW3KLokGl7ivY8UUpB6Zo92KA Date: Mon, 13 May 2019 13:56:11 +0000 Message-ID: <3cb32209-f246-e562-2aee-fdf566a60b30@kontron.de> References: <20190510121727.29834-1-lede@allycomm.com> In-Reply-To: <20190510121727.29834-1-lede@allycomm.com> Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.25.9.193] x-c2processedorg: 51b406b7-48a2-4d03-b652-521f56ac89f3 Content-Type: text/plain; charset="utf-8" Content-ID: <678DD99A82C0934E8CBFCFC0CC6A1E7C@snt-world.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-SnT-MailScanner-Information: Please contact the ISP for more information X-SnT-MailScanner-ID: 7D1146024E8.AEF02 X-SnT-MailScanner: Not scanned: please contact your Internet E-Mail Service Provider for details X-SnT-MailScanner-SpamCheck: X-SnT-MailScanner-From: frieder.schrempf@kontron.de X-SnT-MailScanner-To: bbrezillon@kernel.org, computersforpeace@gmail.com, dwmw2@infradead.org, lede@allycomm.com, linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org, marek.vasut@gmail.com, miquel.raynal@bootlin.com, richard@nod.at X-Spam-Status: No Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgSmVmZiwNCg0KSSBqdXN0IG5vdGljZWQgSSBoaXQgdGhlIHdyb25nIGJ1dHRvbiBhbmQgbXkg cHJldmlvdXMgcmVwbHkgd2FzIG9ubHkgDQpzZW50IHRvIHRoZSBNVEQgbGlzdCwgc28gSSdtIHJl c2VuZGluZyB3aXRoIGZpeGVkIHJlY2lwaWVudHMuLi4NCg0KT24gMTAuMDUuMTkgMTQ6MTcsIGxl ZGVAYWxseWNvbW0uY29tIHdyb3RlOg0KPiBGcm9tOiBKZWZmIEtsZXRza3kgPGdpdC1jb21taXRz QGFsbHljb21tLmNvbT4NCj4gDQo+IFRoZSBHaWdhRGV2aWNlIEdENUYxR1E0VUZ4eEcgU1BJIE5B TkQgaXMgaW4gY3VycmVudCBwcm9kdWN0aW9uIGRldmljZXMNCj4gYW5kLCB3aGlsZSBpdCBoYXMg dGhlIHNhbWUgbG9naWNhbCBsYXlvdXQgYXMgdGhlIEUtc2VyaWVzIGRldmljZXMsDQo+IGl0IGRp ZmZlcnMgaW4gdGhlIFNQSSBpbnRlcmZhY2luZyBpbiBzaWduaWZpY2FudCB3YXlzLg0KPiANCj4g VG8gYWNjb21tb2RhdGUgdGhlc2UgY2hhbmdlcywgdGhpcyBwYXRjaCBhbHNvOg0KPiANCj4gICAg KiBBZGRzIHN1cHBvcnQgZm9yIHR3by1ieXRlIG1hbnVmYWN0dXJlciBJRHMNCj4gICAgKiBBZGRz ICNkZWZpbmUtcyBmb3IgdGhyZWUtYnl0ZSBhZGRyZXNzaW5nIGZvciByZWFkIG9wcw0KPiANCj4g aHR0cDovL3d3dy5naWdhZGV2aWNlLmNvbS9kYXRhc2hlZXQvZ2Q1ZjFncTR4Znh4Zy8NCj4gDQo+ IFNpZ25lZC1vZmYtYnk6IEplZmYgS2xldHNreSA8Z2l0LWNvbW1pdHNAYWxseWNvbW0uY29tPg0K DQpNYXliZSBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gc3BsaXQgdGhpcyBwYXRjaCBpbnRvIHRocmVl IHBhcnRzOg0KKiBBZGQgc3VwcG9ydCBmb3IgdHdvLWJ5dGUgZGV2aWNlIElEcw0KKiBBZGQgI2Rl ZmluZS1zIGZvciB0aHJlZS1ieXRlIGFkZHJlc3NpbmcgZm9yIHJlYWQgb3BzDQoqIEFkZCBzdXBw b3J0IGZvciBHRDVGMUdRNFVGeHhHDQoNCkFueXdheSB0aGUgY29udGVudCBsb29rcyBnb29kIHRv IG1lLCBzbzoNCg0KUmV2aWV3ZWQtYnk6IEZyaWVkZXIgU2NocmVtcGYgPGZyaWVkZXIuc2NocmVt cGZAa29udHJvbi5kZT4NCg0KPiAtLS0NCj4gICBkcml2ZXJzL210ZC9uYW5kL3NwaS9jb3JlLmMg ICAgICAgfCAgMiArLQ0KPiAgIGRyaXZlcnMvbXRkL25hbmQvc3BpL2dpZ2FkZXZpY2UuYyB8IDc5 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQ0KPiAgIGluY2x1ZGUvbGlu dXgvbXRkL3NwaW5hbmQuaCAgICAgICB8IDM0ICsrKysrKysrKysrKysrKystDQo+ICAgMyBmaWxl cyBjaGFuZ2VkLCA5NyBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3NwaS9jb3JlLmMgYi9kcml2ZXJzL210ZC9uYW5kL3Nw aS9jb3JlLmMNCj4gaW5kZXggZmE4N2FlMjhjZGZlLi5hMTMxNTQ3ODVkYWQgMTAwNjQ0DQo+IC0t LSBhL2RyaXZlcnMvbXRkL25hbmQvc3BpL2NvcmUuYw0KPiArKysgYi9kcml2ZXJzL210ZC9uYW5k L3NwaS9jb3JlLmMNCj4gQEAgLTg1Myw3ICs4NTMsNyBAQCBzcGluYW5kX3NlbGVjdF9vcF92YXJp YW50KHN0cnVjdCBzcGluYW5kX2RldmljZSAqc3BpbmFuZCwNCj4gICAgKi8NCj4gICBpbnQgc3Bp bmFuZF9tYXRjaF9hbmRfaW5pdChzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQsDQo+ICAg CQkJICAgY29uc3Qgc3RydWN0IHNwaW5hbmRfaW5mbyAqdGFibGUsDQo+IC0JCQkgICB1bnNpZ25l ZCBpbnQgdGFibGVfc2l6ZSwgdTggZGV2aWQpDQo+ICsJCQkgICB1bnNpZ25lZCBpbnQgdGFibGVf c2l6ZSwgdTE2IGRldmlkKQ0KPiAgIHsNCj4gICAJc3RydWN0IG5hbmRfZGV2aWNlICpuYW5kID0g c3BpbmFuZF90b19uYW5kKHNwaW5hbmQpOw0KPiAgIAl1bnNpZ25lZCBpbnQgaTsNCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvc3BpL2dpZ2FkZXZpY2UuYyBiL2RyaXZlcnMvbXRkL25h bmQvc3BpL2dpZ2FkZXZpY2UuYw0KPiBpbmRleCAwYjQ5ZDgyNjRiZWYuLmQ2NDk3YWM0YzVkOCAx MDA2NDQNCj4gLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9zcGkvZ2lnYWRldmljZS5jDQo+ICsrKyBi L2RyaXZlcnMvbXRkL25hbmQvc3BpL2dpZ2FkZXZpY2UuYw0KPiBAQCAtOSwxMSArOSwxNyBAQA0K PiAgICNpbmNsdWRlIDxsaW51eC9tdGQvc3BpbmFuZC5oPg0KPiAgIA0KPiAgICNkZWZpbmUgU1BJ TkFORF9NRlJfR0lHQURFVklDRQkJCTB4QzgNCj4gKw0KPiAgICNkZWZpbmUgR0Q1RlhHUTRYQV9T VEFUVVNfRUNDXzFfN19CSVRGTElQUwkoMSA8PCA0KQ0KPiAgICNkZWZpbmUgR0Q1RlhHUTRYQV9T VEFUVVNfRUNDXzhfQklURkxJUFMJKDMgPDwgNCkNCj4gICANCj4gICAjZGVmaW5lIEdENUZYR1E0 VUVYWEdfUkVHX1NUQVRVUzIJCTB4ZjANCj4gICANCj4gKyNkZWZpbmUgR0Q1RlhHUTRVWEZYWEdf U1RBVFVTX0VDQ19NQVNLCQkoNyA8PCA0KQ0KPiArI2RlZmluZSBHRDVGWEdRNFVYRlhYR19TVEFU VVNfRUNDX05PX0JJVEZMSVBTCSgwIDw8IDQpDQo+ICsjZGVmaW5lIEdENUZYR1E0VVhGWFhHX1NU QVRVU19FQ0NfMV8zX0JJVEZMSVBTCSgxIDw8IDQpDQo+ICsjZGVmaW5lIEdENUZYR1E0VVhGWFhH X1NUQVRVU19FQ0NfVU5DT1JfRVJST1IJKDcgPDwgNCkNCj4gKw0KPiAgIHN0YXRpYyBTUElOQU5E X09QX1ZBUklBTlRTKHJlYWRfY2FjaGVfdmFyaWFudHMsDQo+ICAgCQlTUElOQU5EX1BBR0VfUkVB RF9GUk9NX0NBQ0hFX1FVQURJT19PUCgwLCAyLCBOVUxMLCAwKSwNCj4gICAJCVNQSU5BTkRfUEFH RV9SRUFEX0ZST01fQ0FDSEVfWDRfT1AoMCwgMSwgTlVMTCwgMCksDQo+IEBAIC0yMiw2ICsyOCwx NCBAQCBzdGF0aWMgU1BJTkFORF9PUF9WQVJJQU5UUyhyZWFkX2NhY2hlX3ZhcmlhbnRzLA0KPiAg IAkJU1BJTkFORF9QQUdFX1JFQURfRlJPTV9DQUNIRV9PUCh0cnVlLCAwLCAxLCBOVUxMLCAwKSwN Cj4gICAJCVNQSU5BTkRfUEFHRV9SRUFEX0ZST01fQ0FDSEVfT1AoZmFsc2UsIDAsIDEsIE5VTEws IDApKTsNCj4gICANCj4gK3N0YXRpYyBTUElOQU5EX09QX1ZBUklBTlRTKHJlYWRfY2FjaGVfdmFy aWFudHNfZiwNCj4gKwkJU1BJTkFORF9QQUdFX1JFQURfRlJPTV9DQUNIRV9RVUFESU9fT1AoMCwg MiwgTlVMTCwgMCksDQo+ICsJCVNQSU5BTkRfUEFHRV9SRUFEX0ZST01fQ0FDSEVfWDRfT1BfM0Eo MCwgMSwgTlVMTCwgMCksDQo+ICsJCVNQSU5BTkRfUEFHRV9SRUFEX0ZST01fQ0FDSEVfRFVBTElP X09QKDAsIDEsIE5VTEwsIDApLA0KPiArCQlTUElOQU5EX1BBR0VfUkVBRF9GUk9NX0NBQ0hFX1gy X09QXzNBKDAsIDEsIE5VTEwsIDApLA0KPiArCQlTUElOQU5EX1BBR0VfUkVBRF9GUk9NX0NBQ0hF X09QXzNBKHRydWUsIDAsIDEsIE5VTEwsIDApLA0KPiArCQlTUElOQU5EX1BBR0VfUkVBRF9GUk9N X0NBQ0hFX09QXzNBKGZhbHNlLCAwLCAwLCBOVUxMLCAwKSk7DQo+ICsNCj4gICBzdGF0aWMgU1BJ TkFORF9PUF9WQVJJQU5UUyh3cml0ZV9jYWNoZV92YXJpYW50cywNCj4gICAJCVNQSU5BTkRfUFJP R19MT0FEX1g0KHRydWUsIDAsIE5VTEwsIDApLA0KPiAgIAkJU1BJTkFORF9QUk9HX0xPQUQodHJ1 ZSwgMCwgTlVMTCwgMCkpOw0KPiBAQCAtNTksNiArNzMsMTEgQEAgc3RhdGljIGludCBnZDVmeGdx NHhhX29vYmxheW91dF9mcmVlKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBpbnQgc2VjdGlvbiwNCj4g ICAJcmV0dXJuIDA7DQo+ICAgfQ0KPiAgIA0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBtdGRfb29i bGF5b3V0X29wcyBnZDVmeGdxNHhhX29vYmxheW91dCA9IHsNCj4gKwkuZWNjID0gZ2Q1ZnhncTR4 YV9vb2JsYXlvdXRfZWNjLA0KPiArCS5mcmVlID0gZ2Q1ZnhncTR4YV9vb2JsYXlvdXRfZnJlZSwN Cj4gK307DQo+ICsNCj4gICBzdGF0aWMgaW50IGdkNWZ4Z3E0eGFfZWNjX2dldF9zdGF0dXMoc3Ry dWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kLA0KPiAgIAkJCQkJIHU4IHN0YXR1cykNCj4gICB7 DQo+IEBAIC04Myw3ICsxMDIsNyBAQCBzdGF0aWMgaW50IGdkNWZ4Z3E0eGFfZWNjX2dldF9zdGF0 dXMoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kLA0KPiAgIAlyZXR1cm4gLUVJTlZBTDsN Cj4gICB9DQo+ICAgDQo+IC1zdGF0aWMgaW50IGdkNWZ4Z3E0dWV4eGdfb29ibGF5b3V0X2VjYyhz dHJ1Y3QgbXRkX2luZm8gKm10ZCwgaW50IHNlY3Rpb24sDQo+ICtzdGF0aWMgaW50IGdkNWZ4Z3E0 X3ZhcmlhbnQyX29vYmxheW91dF9lY2Moc3RydWN0IG10ZF9pbmZvICptdGQsIGludCBzZWN0aW9u LA0KPiAgIAkJCQkgICAgICAgc3RydWN0IG10ZF9vb2JfcmVnaW9uICpyZWdpb24pDQo+ICAgew0K PiAgIAlpZiAoc2VjdGlvbikNCj4gQEAgLTk1LDcgKzExNCw3IEBAIHN0YXRpYyBpbnQgZ2Q1Znhn cTR1ZXh4Z19vb2JsYXlvdXRfZWNjKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBpbnQgc2VjdGlvbiwN Cj4gICAJcmV0dXJuIDA7DQo+ICAgfQ0KPiAgIA0KPiAtc3RhdGljIGludCBnZDVmeGdxNHVleHhn X29vYmxheW91dF9mcmVlKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBpbnQgc2VjdGlvbiwNCj4gK3N0 YXRpYyBpbnQgZ2Q1ZnhncTRfdmFyaWFudDJfb29ibGF5b3V0X2ZyZWUoc3RydWN0IG10ZF9pbmZv ICptdGQsIGludCBzZWN0aW9uLA0KPiAgIAkJCQkJc3RydWN0IG10ZF9vb2JfcmVnaW9uICpyZWdp b24pDQo+ICAgew0KPiAgIAlpZiAoc2VjdGlvbikNCj4gQEAgLTEwOCw2ICsxMjcsMTEgQEAgc3Rh dGljIGludCBnZDVmeGdxNHVleHhnX29vYmxheW91dF9mcmVlKHN0cnVjdCBtdGRfaW5mbyAqbXRk LCBpbnQgc2VjdGlvbiwNCj4gICAJcmV0dXJuIDA7DQo+ICAgfQ0KPiAgIA0KPiArc3RhdGljIGNv bnN0IHN0cnVjdCBtdGRfb29ibGF5b3V0X29wcyBnZDVmeGdxNF92YXJpYW50Ml9vb2JsYXlvdXQg PSB7DQo+ICsJLmVjYyA9IGdkNWZ4Z3E0X3ZhcmlhbnQyX29vYmxheW91dF9lY2MsDQo+ICsJLmZy ZWUgPSBnZDVmeGdxNF92YXJpYW50Ml9vb2JsYXlvdXRfZnJlZSwNCj4gK307DQo+ICsNCj4gICBz dGF0aWMgaW50IGdkNWZ4Z3E0dWV4eGdfZWNjX2dldF9zdGF0dXMoc3RydWN0IHNwaW5hbmRfZGV2 aWNlICpzcGluYW5kLA0KPiAgIAkJCQkJdTggc3RhdHVzKQ0KPiAgIHsNCj4gQEAgLTE1MCwxNSAr MTc0LDI1IEBAIHN0YXRpYyBpbnQgZ2Q1ZnhncTR1ZXh4Z19lY2NfZ2V0X3N0YXR1cyhzdHJ1Y3Qg c3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQsDQo+ICAgCXJldHVybiAtRUlOVkFMOw0KPiAgIH0NCj4g ICANCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRkX29vYmxheW91dF9vcHMgZ2Q1ZnhncTR4YV9v b2JsYXlvdXQgPSB7DQo+IC0JLmVjYyA9IGdkNWZ4Z3E0eGFfb29ibGF5b3V0X2VjYywNCj4gLQku ZnJlZSA9IGdkNWZ4Z3E0eGFfb29ibGF5b3V0X2ZyZWUsDQo+IC19Ow0KPiArc3RhdGljIGludCBn ZDVmeGdxNHVmeHhnX2VjY19nZXRfc3RhdHVzKHN0cnVjdCBzcGluYW5kX2RldmljZSAqc3BpbmFu ZCwNCj4gKwkJCQkJdTggc3RhdHVzKQ0KPiArew0KPiArCXN3aXRjaCAoc3RhdHVzICYgR0Q1RlhH UTRVWEZYWEdfU1RBVFVTX0VDQ19NQVNLKSB7DQo+ICsJY2FzZSBHRDVGWEdRNFVYRlhYR19TVEFU VVNfRUNDX05PX0JJVEZMSVBTOg0KPiArCQlyZXR1cm4gMDsNCj4gICANCj4gLXN0YXRpYyBjb25z dCBzdHJ1Y3QgbXRkX29vYmxheW91dF9vcHMgZ2Q1ZnhncTR1ZXh4Z19vb2JsYXlvdXQgPSB7DQo+ IC0JLmVjYyA9IGdkNWZ4Z3E0dWV4eGdfb29ibGF5b3V0X2VjYywNCj4gLQkuZnJlZSA9IGdkNWZ4 Z3E0dWV4eGdfb29ibGF5b3V0X2ZyZWUsDQo+IC19Ow0KPiArCWNhc2UgR0Q1RlhHUTRVWEZYWEdf U1RBVFVTX0VDQ18xXzNfQklURkxJUFM6DQo+ICsJCXJldHVybiAzOw0KPiArDQo+ICsJY2FzZSBH RDVGWEdRNFVYRlhYR19TVEFUVVNfRUNDX1VOQ09SX0VSUk9SOg0KPiArCQlyZXR1cm4gLUVCQURN U0c7DQo+ICsNCj4gKwlkZWZhdWx0OiAvKiAoMiA8PCA0KSB0aHJvdWdoICg2IDw8IDQpIGFyZSA0 LTggY29ycmVjdGVkIGVycm9ycyAqLw0KPiArCQlyZXR1cm4gKChzdGF0dXMgJiBHRDVGWEdRNFVY RlhYR19TVEFUVVNfRUNDX01BU0spID4+IDQpICsgMjsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4g LUVJTlZBTDsNCj4gK30NCj4gICANCj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IHNwaW5hbmRfaW5m byBnaWdhZGV2aWNlX3NwaW5hbmRfdGFibGVbXSA9IHsNCj4gICAJU1BJTkFORF9JTkZPKCJHRDVG MUdRNHhBIiwgMHhGMSwNCj4gQEAgLTE5NSwyNSArMjI5LDQwIEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgc3BpbmFuZF9pbmZvIGdpZ2FkZXZpY2Vfc3BpbmFuZF90YWJsZVtdID0gew0KPiAgIAkJCQkJ ICAgICAgJndyaXRlX2NhY2hlX3ZhcmlhbnRzLA0KPiAgIAkJCQkJICAgICAgJnVwZGF0ZV9jYWNo ZV92YXJpYW50cyksDQo+ICAgCQkgICAgIDAsDQo+IC0JCSAgICAgU1BJTkFORF9FQ0NJTkZPKCZn ZDVmeGdxNHVleHhnX29vYmxheW91dCwNCj4gKwkJICAgICBTUElOQU5EX0VDQ0lORk8oJmdkNWZ4 Z3E0X3ZhcmlhbnQyX29vYmxheW91dCwNCj4gICAJCQkJICAgICBnZDVmeGdxNHVleHhnX2VjY19n ZXRfc3RhdHVzKSksDQo+ICsJU1BJTkFORF9JTkZPKCJHRDVGMUdRNFVGeHhHIiwgMHhiMTQ4LA0K PiArCQkgICAgIE5BTkRfTUVNT1JHKDEsIDIwNDgsIDEyOCwgNjQsIDEwMjQsIDEsIDEsIDEpLA0K PiArCQkgICAgIE5BTkRfRUNDUkVRKDgsIDUxMiksDQo+ICsJCSAgICAgU1BJTkFORF9JTkZPX09Q X1ZBUklBTlRTKCZyZWFkX2NhY2hlX3ZhcmlhbnRzX2YsDQo+ICsJCQkJCSAgICAgICZ3cml0ZV9j YWNoZV92YXJpYW50cywNCj4gKwkJCQkJICAgICAgJnVwZGF0ZV9jYWNoZV92YXJpYW50cyksDQo+ ICsJCSAgICAgMCwNCj4gKwkJICAgICBTUElOQU5EX0VDQ0lORk8oJmdkNWZ4Z3E0X3ZhcmlhbnQy X29vYmxheW91dCwNCj4gKwkJCQkgICAgIGdkNWZ4Z3E0dWZ4eGdfZWNjX2dldF9zdGF0dXMpKSwN Cj4gICB9Ow0KPiAgIA0KPiAgIHN0YXRpYyBpbnQgZ2lnYWRldmljZV9zcGluYW5kX2RldGVjdChz dHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQpDQo+ICAgew0KPiAgIAl1OCAqaWQgPSBzcGlu YW5kLT5pZC5kYXRhOw0KPiArCXUxNiBkaWQ7DQo+ICAgCWludCByZXQ7DQo+ICAgDQo+ICAgCS8q DQo+IC0JICogRm9yIEdEIE5BTkRzLCBUaGVyZSBpcyBhbiBhZGRyZXNzIGJ5dGUgbmVlZGVkIHRv IHNoaWZ0IGluIGJlZm9yZSBJRHMNCj4gLQkgKiBhcmUgcmVhZCBvdXQsIHNvIHRoZSBmaXJzdCBi eXRlIGluIHJhd19pZCBpcyBkdW1teS4NCj4gKwkgKiBFYXJsaWVyIEdERjUtc2VyaWVzIGRldmlj ZXMgKEEsRSkgcmV0dXJuIFswXVtNSURdW0RJRF0NCj4gKwkgKiBMYXRlciAoRikgZGV2aWNlcyBy ZXR1cm4gW01JRF1bRElEMV1bRElEMl0NCj4gICAJICovDQo+IC0JaWYgKGlkWzFdICE9IFNQSU5B TkRfTUZSX0dJR0FERVZJQ0UpDQo+ICsNCj4gKwlpZiAoaWRbMF0gPT0gU1BJTkFORF9NRlJfR0lH QURFVklDRSkNCj4gKwkJZGlkID0gKGlkWzFdIDw8IDgpICsgaWRbMl07DQo+ICsJZWxzZSBpZiAo aWRbMF0gPT0gMCAmJiBpZFsxXSA9PSBTUElOQU5EX01GUl9HSUdBREVWSUNFKQ0KPiArCQlkaWQg PSBpZFsyXTsNCj4gKwllbHNlDQo+ICAgCQlyZXR1cm4gMDsNCj4gICANCj4gICAJcmV0ID0gc3Bp bmFuZF9tYXRjaF9hbmRfaW5pdChzcGluYW5kLCBnaWdhZGV2aWNlX3NwaW5hbmRfdGFibGUsDQo+ ICAgCQkJCSAgICAgQVJSQVlfU0laRShnaWdhZGV2aWNlX3NwaW5hbmRfdGFibGUpLA0KPiAtCQkJ CSAgICAgaWRbMl0pOw0KPiArCQkJCSAgICAgZGlkKTsNCj4gICAJaWYgKHJldCkNCj4gICAJCXJl dHVybiByZXQ7DQo+ICAgDQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L210ZC9zcGluYW5k LmggYi9pbmNsdWRlL2xpbnV4L210ZC9zcGluYW5kLmgNCj4gaW5kZXggYjkyZTJhYTk1NWI2Li44 OTAxYmEyNzI1MzggMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvbGludXgvbXRkL3NwaW5hbmQuaA0K PiArKysgYi9pbmNsdWRlL2xpbnV4L210ZC9zcGluYW5kLmgNCj4gQEAgLTY4LDMwICs2OCw2MCBA QA0KPiAgIAkJICAgU1BJX01FTV9PUF9EVU1NWShuZHVtbXksIDEpLAkJCQlcDQo+ICAgCQkgICBT UElfTUVNX09QX0RBVEFfSU4obGVuLCBidWYsIDEpKQ0KPiAgIA0KPiArI2RlZmluZSBTUElOQU5E X1BBR0VfUkVBRF9GUk9NX0NBQ0hFX09QXzNBKGZhc3QsIGFkZHIsIG5kdW1teSwgYnVmLCBsZW4p IFwNCj4gKwlTUElfTUVNX09QKFNQSV9NRU1fT1BfQ01EKGZhc3QgPyAweDBiIDogMHgwMywgMSks CQlcDQo+ICsJCSAgIFNQSV9NRU1fT1BfQUREUigzLCBhZGRyLCAxKSwJCQkJXA0KPiArCQkgICBT UElfTUVNX09QX0RVTU1ZKG5kdW1teSwgMSksCQkJCVwNCj4gKwkJICAgU1BJX01FTV9PUF9EQVRB X0lOKGxlbiwgYnVmLCAxKSkNCj4gKw0KPiAgICNkZWZpbmUgU1BJTkFORF9QQUdFX1JFQURfRlJP TV9DQUNIRV9YMl9PUChhZGRyLCBuZHVtbXksIGJ1ZiwgbGVuKQlcDQo+ICAgCVNQSV9NRU1fT1Ao U1BJX01FTV9PUF9DTUQoMHgzYiwgMSksCQkJCVwNCj4gICAJCSAgIFNQSV9NRU1fT1BfQUREUigy LCBhZGRyLCAxKSwJCQkJXA0KPiAgIAkJICAgU1BJX01FTV9PUF9EVU1NWShuZHVtbXksIDEpLAkJ CQlcDQo+ICAgCQkgICBTUElfTUVNX09QX0RBVEFfSU4obGVuLCBidWYsIDIpKQ0KPiAgIA0KPiAr I2RlZmluZSBTUElOQU5EX1BBR0VfUkVBRF9GUk9NX0NBQ0hFX1gyX09QXzNBKGFkZHIsIG5kdW1t eSwgYnVmLCBsZW4pCVwNCj4gKwlTUElfTUVNX09QKFNQSV9NRU1fT1BfQ01EKDB4M2IsIDEpLAkJ CQlcDQo+ICsJCSAgIFNQSV9NRU1fT1BfQUREUigzLCBhZGRyLCAxKSwJCQkJXA0KPiArCQkgICBT UElfTUVNX09QX0RVTU1ZKG5kdW1teSwgMSksCQkJCVwNCj4gKwkJICAgU1BJX01FTV9PUF9EQVRB X0lOKGxlbiwgYnVmLCAyKSkNCj4gKw0KPiAgICNkZWZpbmUgU1BJTkFORF9QQUdFX1JFQURfRlJP TV9DQUNIRV9YNF9PUChhZGRyLCBuZHVtbXksIGJ1ZiwgbGVuKQlcDQo+ICAgCVNQSV9NRU1fT1Ao U1BJX01FTV9PUF9DTUQoMHg2YiwgMSksCQkJCVwNCj4gICAJCSAgIFNQSV9NRU1fT1BfQUREUigy LCBhZGRyLCAxKSwJCQkJXA0KPiAgIAkJICAgU1BJX01FTV9PUF9EVU1NWShuZHVtbXksIDEpLAkJ CQlcDQo+ICAgCQkgICBTUElfTUVNX09QX0RBVEFfSU4obGVuLCBidWYsIDQpKQ0KPiAgIA0KPiAr I2RlZmluZSBTUElOQU5EX1BBR0VfUkVBRF9GUk9NX0NBQ0hFX1g0X09QXzNBKGFkZHIsIG5kdW1t eSwgYnVmLCBsZW4pCVwNCj4gKwlTUElfTUVNX09QKFNQSV9NRU1fT1BfQ01EKDB4NmIsIDEpLAkJ CQlcDQo+ICsJCSAgIFNQSV9NRU1fT1BfQUREUigzLCBhZGRyLCAxKSwJCQkJXA0KPiArCQkgICBT UElfTUVNX09QX0RVTU1ZKG5kdW1teSwgMSksCQkJCVwNCj4gKwkJICAgU1BJX01FTV9PUF9EQVRB X0lOKGxlbiwgYnVmLCA0KSkNCj4gKw0KPiAgICNkZWZpbmUgU1BJTkFORF9QQUdFX1JFQURfRlJP TV9DQUNIRV9EVUFMSU9fT1AoYWRkciwgbmR1bW15LCBidWYsIGxlbikJXA0KPiAgIAlTUElfTUVN X09QKFNQSV9NRU1fT1BfQ01EKDB4YmIsIDEpLAkJCQlcDQo+ICAgCQkgICBTUElfTUVNX09QX0FE RFIoMiwgYWRkciwgMiksCQkJCVwNCj4gICAJCSAgIFNQSV9NRU1fT1BfRFVNTVkobmR1bW15LCAy KSwJCQkJXA0KPiAgIAkJICAgU1BJX01FTV9PUF9EQVRBX0lOKGxlbiwgYnVmLCAyKSkNCj4gICAN Cj4gKyNkZWZpbmUgU1BJTkFORF9QQUdFX1JFQURfRlJPTV9DQUNIRV9EVUFMSU9fT1BfM0EoYWRk ciwgbmR1bW15LCBidWYsIGxlbikgXA0KPiArCVNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQoMHhi YiwgMSksCQkJCVwNCj4gKwkJICAgU1BJX01FTV9PUF9BRERSKDMsIGFkZHIsIDIpLAkJCQlcDQo+ ICsJCSAgIFNQSV9NRU1fT1BfRFVNTVkobmR1bW15LCAyKSwJCQkJXA0KPiArCQkgICBTUElfTUVN X09QX0RBVEFfSU4obGVuLCBidWYsIDIpKQ0KPiArDQo+ICAgI2RlZmluZSBTUElOQU5EX1BBR0Vf UkVBRF9GUk9NX0NBQ0hFX1FVQURJT19PUChhZGRyLCBuZHVtbXksIGJ1ZiwgbGVuKQlcDQo+ICAg CVNQSV9NRU1fT1AoU1BJX01FTV9PUF9DTUQoMHhlYiwgMSksCQkJCVwNCj4gICAJCSAgIFNQSV9N RU1fT1BfQUREUigyLCBhZGRyLCA0KSwJCQkJXA0KPiAgIAkJICAgU1BJX01FTV9PUF9EVU1NWShu ZHVtbXksIDQpLAkJCQlcDQo+ICAgCQkgICBTUElfTUVNX09QX0RBVEFfSU4obGVuLCBidWYsIDQp KQ0KPiAgIA0KPiArI2RlZmluZSBTUElOQU5EX1BBR0VfUkVBRF9GUk9NX0NBQ0hFX1FVQURJT19P UF8zQShhZGRyLCBuZHVtbXksIGJ1ZiwgbGVuKSBcDQo+ICsJU1BJX01FTV9PUChTUElfTUVNX09Q X0NNRCgweGViLCAxKSwJCQkJXA0KPiArCQkgICBTUElfTUVNX09QX0FERFIoMywgYWRkciwgNCks CQkJCVwNCj4gKwkJICAgU1BJX01FTV9PUF9EVU1NWShuZHVtbXksIDQpLAkJCQlcDQo+ICsJCSAg IFNQSV9NRU1fT1BfREFUQV9JTihsZW4sIGJ1ZiwgNCkpDQo+ICsNCj4gICAjZGVmaW5lIFNQSU5B TkRfUFJPR19FWEVDX09QKGFkZHIpCQkJCQlcDQo+ICAgCVNQSV9NRU1fT1AoU1BJX01FTV9PUF9D TUQoMHgxMCwgMSksCQkJCVwNCj4gICAJCSAgIFNQSV9NRU1fT1BfQUREUigzLCBhZGRyLCAxKSwJ CQkJXA0KPiBAQCAtMjYwLDcgKzI5MCw3IEBAIHN0cnVjdCBzcGluYW5kX2VjY19pbmZvIHsNCj4g ICAgKi8NCj4gICBzdHJ1Y3Qgc3BpbmFuZF9pbmZvIHsNCj4gICAJY29uc3QgY2hhciAqbW9kZWw7 DQo+IC0JdTggZGV2aWQ7DQo+ICsJdTE2IGRldmlkOw0KPiAgIAl1MzIgZmxhZ3M7DQo+ICAgCXN0 cnVjdCBuYW5kX21lbW9yeV9vcmdhbml6YXRpb24gbWVtb3JnOw0KPiAgIAlzdHJ1Y3QgbmFuZF9l Y2NfcmVxIGVjY3JlcTsNCj4gQEAgLTQxNSw3ICs0NDUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg c3BpbmFuZF9zZXRfb2Zfbm9kZShzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQsDQo+ICAg DQo+ICAgaW50IHNwaW5hbmRfbWF0Y2hfYW5kX2luaXQoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpk ZXYsDQo+ICAgCQkJICAgY29uc3Qgc3RydWN0IHNwaW5hbmRfaW5mbyAqdGFibGUsDQo+IC0JCQkg ICB1bnNpZ25lZCBpbnQgdGFibGVfc2l6ZSwgdTggZGV2aWQpOw0KPiArCQkJICAgdW5zaWduZWQg aW50IHRhYmxlX3NpemUsIHUxNiBkZXZpZCk7DQo+ICAgDQo+ICAgaW50IHNwaW5hbmRfdXBkX2Nm ZyhzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQsIHU4IG1hc2ssIHU4IHZhbCk7DQo+ICAg aW50IHNwaW5hbmRfc2VsZWN0X3RhcmdldChzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQs IHVuc2lnbmVkIGludCB0YXJnZXQpOw0KPiA=