Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp3239715ybl; Fri, 20 Dec 2019 06:11:39 -0800 (PST) X-Google-Smtp-Source: APXvYqzg5CBk8ca6+UCxtsriN/f47I0x3c1Rqr36VNUgmZKFb531bgMjOrwwc0kLVYsDg4KYAvt5 X-Received: by 2002:a9d:5c88:: with SMTP id a8mr14321999oti.348.1576851099325; Fri, 20 Dec 2019 06:11:39 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1576851099; cv=pass; d=google.com; s=arc-20160816; b=YypLxftL0aAJCdValNGCy6QcbDgyh6vz7pBwSNtGeoe3q64OkXnbREknX77rp/Cf3p AAh14pZ1WmNrKWadzjXap/pepDdR1/T8TaV/WQ8Wl7L4yR30NIkpmq49hw9DR0ZY/b1H lcUdKAgAfFIQsJl34LRf43v06i0oi0Gp7+dF5a2GADFG4PaZOcbmSMoDdFyOzcV9MTM8 bQBSlLu8Yn9GKQGX1hnkGM73E2eFPdZnoS2+Z+2u5C8lOt7jq/pxrEocZKkNKAHKu0bE J8HlWADUXc4/4wPlnvs2LbX+7aXRw8u8OSCxJUL83vaqQA/r+aLb4ZVcbiMEjxDzi7pJ +FOA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=YkXcCC11pztPHcnODJvPC+dspHS++Ad9slMXO5E/Xjw=; b=OL51oN7tuHdxyTcypdS5s+VHTuwOtXhKQEsRMMTPSqAn6ZNzoZaw1cNkuA1CgTjlRl JlJNpzy8MFY34LX6v3Ek04oxSTQF9u5oq4aIbQjvFc3NwNMx8Phzwye58hH+KqGUHoL+ lj0FYnQCFvPkEnAj/WsBgsdg6NhR5AjH+QqbPh5k142zwJnYKz2LO9wCw3t6H3s37HIW MFaAok2vPXKHqQW7A87NIOqrvHo88OXiYfWGVIs6TezbShig8FP8jy3g9rz6LJWmDk+H 2aQqZy/UXF96+L971GmUJ6FmJBYIYg2M6T4tzFrOX7EyZLYvbxfRq2OqMPDbEZKe0Rwy s/NA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=BWGn5gWV; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n14si5459851otk.179.2019.12.20.06.11.19; Fri, 20 Dec 2019 06:11:39 -0800 (PST) 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; dkim=pass header.i=@nxp.com header.s=selector2 header.b=BWGn5gWV; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727403AbfLTOKN (ORCPT + 99 others); Fri, 20 Dec 2019 09:10:13 -0500 Received: from mail-eopbgr40044.outbound.protection.outlook.com ([40.107.4.44]:21313 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727346AbfLTOKM (ORCPT ); Fri, 20 Dec 2019 09:10:12 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h2z3efDuknaH3B8rtwyTKts1sRtyHtwUXfEBs75Ho5keQK/vKd/gz/v9KtYOka0u0sko1C47WNYLWerXGtHoUMRCDMtVXEBc/CenGPt069/zrIA3qZ7ExDmDi8pQZHwJ4RZnh5CFVnU/2SPEBoYvctr2f77zCcqoSjZSav63cykojwLkCZGjudmYn/4iO78RRW8z4wEIfBFG1CwVZsfPHKQJ8G50pM1Lq8nfBfnZBvW9yBiJ7nYOYpXo2rh6id9edx0O5d6D7SyZ5ZRBRjvko13mle5CkxWohpDMH4yauOYIHuPc9XFxZtQrqlz8yMYfUtMTnYQQFUXiVBtrEUn+vw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YkXcCC11pztPHcnODJvPC+dspHS++Ad9slMXO5E/Xjw=; b=HBtudYLjJex68wsWdh9ao672WqNg7LFXAZdnNqIa0L+Z1z3h5ira+dqBTybbXPF66lhYeNbO9pv2+DCu3wFLp4FDEOFQFMjMagHsRiNtOXsGLR4ENfOAAye5s1tUXvXYFvjCwHEV4l5MUGdkPS4KEvmEmjsBlQswDqU/6ssGOWDuddWKUKwIrOl6BSPLvaKSVMBL6MkTWJtbiNAPsLnlBUC7PYVuJAAx/9zJm2DMiDoVXSS9KW7lkVINJwBHomXEPJ1mp/supryu5S64P865DFOLr1cZ4wHiWNot6D9b991OGDR8S9ryCtU8pBf4wjpADFNFIf7sHRSgEmmP5vj9Sg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YkXcCC11pztPHcnODJvPC+dspHS++Ad9slMXO5E/Xjw=; b=BWGn5gWVRs5yhOu99qdjIV4yEyhHelNbbGQAWLPfa9m+bMMCzPgvoyaOUOuS2PZSNscw+0kIgBUKSA5m6NAjFuxdQ7/+70tIwoRX6OTvk+xG70Rl7ysYNKVaswm8ZwMZy0W4Y8WNlVGe09f8A5YevHx1flqUJ1FcZKdIb1Y60Do= Received: from DB7PR04MB4618.eurprd04.prod.outlook.com (52.135.139.151) by DB7PR04MB6011.eurprd04.prod.outlook.com (20.178.106.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2559.16; Fri, 20 Dec 2019 14:10:02 +0000 Received: from DB7PR04MB4618.eurprd04.prod.outlook.com ([fe80::b40b:46af:9458:f2df]) by DB7PR04MB4618.eurprd04.prod.outlook.com ([fe80::b40b:46af:9458:f2df%6]) with mapi id 15.20.2559.016; Fri, 20 Dec 2019 14:10:02 +0000 From: Joakim Zhang To: Lokesh Vutla , "maz@kernel.org" , "tglx@linutronix.de" , "jason@lakedaemon.net" , "robh+dt@kernel.org" , "mark.rutland@arm.com" , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" CC: Andy Duan , "S.j. Wang" , "linux-kernel@vger.kernel.org" , dl-linux-imx , "kernel@pengutronix.de" , "linux-arm-kernel@lists.infradead.org" Subject: RE: [PATCH V3 2/2] drivers/irqchip: add NXP INTMUX interrupt multiplexer support Thread-Topic: [PATCH V3 2/2] drivers/irqchip: add NXP INTMUX interrupt multiplexer support Thread-Index: AQHVtwjITGArocvWgkOlUUB357uwSKfC58GAgAAmBdA= Date: Fri, 20 Dec 2019 14:10:02 +0000 Message-ID: References: <1576827431-31942-1-git-send-email-qiangqing.zhang@nxp.com> <1576827431-31942-3-git-send-email-qiangqing.zhang@nxp.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=qiangqing.zhang@nxp.com; x-originating-ip: [117.81.222.152] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: c03d4bea-d867-49fa-74ae-08d785564e54 x-ms-traffictypediagnostic: DB7PR04MB6011:|DB7PR04MB6011: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-forefront-prvs: 025796F161 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(39860400002)(346002)(396003)(366004)(136003)(376002)(13464003)(189003)(199004)(26005)(8676002)(52536014)(53546011)(186003)(6506007)(81166006)(81156014)(30864003)(7416002)(478600001)(8936002)(86362001)(9686003)(55016002)(5660300002)(4326008)(66476007)(66446008)(64756008)(66556008)(110136005)(7696005)(54906003)(316002)(2906002)(71200400001)(33656002)(66946007)(76116006);DIR:OUT;SFP:1101;SCL:1;SRVR:DB7PR04MB6011;H:DB7PR04MB4618.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9URKIUCYJpDHlRj+pKrRHNRAP73ajY2mjFshKKyGJLBCrGa2+Gveh6qsQQ09Mym1q24q8Aet6fD6GkrGSxPB+9sVJ6quyhg+z/mwbGxiascSq8tRy/g4120PBS2wvrvLBdQHmtKuraggQLcVy9WFPf2/OOJYd+Qiwmne0DV//9JU6RFLMtMnTLgzZ3AN2oAGAd0wzPkKbcqglzM03ydwdSNXlV1XXX4ShSbzP7LK2UCYHW1rFfFEMvg1ardsD/1y/nmFJMJ4tjVkzGFjfWccJHjAFkY7nyVdfMcDmREYaiTlfcM+zNKhygS6koB8LmdFBD91DUGCdMZSvgfnW8BKeNa9B17EPIQMWFDhIC3e8208TpC5SMg6jiDh7jHXYMMJeqTh8e3l5FH8t6GbisEgnXcEe9X15l75zHQiGIv2OuK3BarpQYVnKvu2OzKgBT70yZzNeaTt4UhNoClft0N6Yq4CXgjsl2eOIkzoh6cgFrGviYF3b7zeu1MIEp7mBhk2 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c03d4bea-d867-49fa-74ae-08d785564e54 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Dec 2019 14:10:02.1985 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: unAFqKPECqiNzXy3zhDRoPWvkJB7aogyjy6zTSShzdOJBh1aR5mljgEgvtpgR9EZST9iJpYlw/wAVjvGLN53Bg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB6011 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExva2VzaCBWdXRsYSA8bG9r ZXNodnV0bGFAdGkuY29tPg0KPiBTZW50OiAyMDE55bm0MTLmnIgyMOaXpSAxOTo0NQ0KPiBUbzog Sm9ha2ltIFpoYW5nIDxxaWFuZ3FpbmcuemhhbmdAbnhwLmNvbT47IG1hekBrZXJuZWwub3JnOw0K PiB0Z2x4QGxpbnV0cm9uaXguZGU7IGphc29uQGxha2VkYWVtb24ubmV0OyByb2JoK2R0QGtlcm5l bC5vcmc7DQo+IG1hcmsucnV0bGFuZEBhcm0uY29tOyBzaGF3bmd1b0BrZXJuZWwub3JnOyBzLmhh dWVyQHBlbmd1dHJvbml4LmRlDQo+IENjOiBBbmR5IER1YW4gPGZ1Z2FuZy5kdWFuQG54cC5jb20+ OyBTLmouIFdhbmcNCj4gPHNoZW5naml1LndhbmdAbnhwLmNvbT47IGxpbnV4LWtlcm5lbEB2Z2Vy Lmtlcm5lbC5vcmc7IGRsLWxpbnV4LWlteA0KPiA8bGludXgtaW14QG54cC5jb20+OyBrZXJuZWxA cGVuZ3V0cm9uaXguZGU7DQo+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZw0K PiBTdWJqZWN0OiBSZTogW1BBVENIIFYzIDIvMl0gZHJpdmVycy9pcnFjaGlwOiBhZGQgTlhQIElO VE1VWCBpbnRlcnJ1cHQNCj4gbXVsdGlwbGV4ZXIgc3VwcG9ydA0KPiANCj4gDQo+IA0KPiBPbiAy MC8xMi8xOSAxOjA3IFBNLCBKb2FraW0gWmhhbmcgd3JvdGU6DQo+ID4gVGhlIEludGVycnVwdCBN dWx0aXBsZXhlciAoSU5UTVVYKSBleHBhbmRzIHRoZSBudW1iZXIgb2YgcGVyaXBoZXJhbHMNCj4g PiB0aGF0IGNhbiBpbnRlcnJ1cHQgdGhlIGNvcmU6DQo+ID4gKiBUaGUgSU5UTVVYIGhhcyA4IGNo YW5uZWxzIHRoYXQgYXJlIGFzc2lnbmVkIHRvIDggTlZJQyBpbnRlcnJ1cHQgc2xvdHMuDQo+ID4g KiBFYWNoIElOVE1VWCBjaGFubmVsIGNhbiByZWNlaXZlIHVwIHRvIDMyIGludGVycnVwdCBzb3Vy Y2VzIGFuZCBoYXMgMQ0KPiA+ICAgaW50ZXJydXB0IG91dHB1dC4NCj4gPiAqIFRoZSBJTlRNVVgg cm91dGVzIHRoZSBpbnRlcnJ1cHQgc291cmNlcyB0byB0aGUgaW50ZXJydXB0IG91dHB1dHMuDQo+ ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBTaGVuZ2ppdSBXYW5nIDxzaGVuZ2ppdS53YW5nQG54cC5j b20+DQo+ID4gU2lnbmVkLW9mZi1ieTogSm9ha2ltIFpoYW5nIDxxaWFuZ3FpbmcuemhhbmdAbnhw LmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9pcnFjaGlwL0tjb25maWcgICAgICAgICAgfCAg IDYgKw0KPiA+ICBkcml2ZXJzL2lycWNoaXAvTWFrZWZpbGUgICAgICAgICB8ICAgMSArDQo+ID4g IGRyaXZlcnMvaXJxY2hpcC9pcnEtaW14LWludG11eC5jIHwgMzExDQo+ID4gKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKw0KPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDMxOCBpbnNlcnRpb25z KCspDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2lycWNoaXAvaXJxLWlteC1pbnRt dXguYw0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXJxY2hpcC9LY29uZmlnIGIvZHJp dmVycy9pcnFjaGlwL0tjb25maWcgaW5kZXgNCj4gPiBiYTE1Mjk1NDMyNGIuLjdlMmIxZTlkMGI0 NSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lycWNoaXAvS2NvbmZpZw0KPiA+ICsrKyBiL2Ry aXZlcnMvaXJxY2hpcC9LY29uZmlnDQo+ID4gQEAgLTQ1Nyw2ICs0NTcsMTIgQEAgY29uZmlnIElN WF9JUlFTVEVFUg0KPiA+ICAJaGVscA0KPiA+ICAJICBTdXBwb3J0IGZvciB0aGUgaS5NWCBJUlFT VEVFUiBpbnRlcnJ1cHQgbXVsdGlwbGV4ZXIvcmVtYXBwZXIuDQo+ID4NCj4gPiArY29uZmlnIElN WF9JTlRNVVgNCj4gPiArCWRlZl9ib29sIHkgaWYgQVJDSF9NWEMNCj4gPiArCXNlbGVjdCBJUlFf RE9NQUlODQo+ID4gKwloZWxwDQo+ID4gKwkgIFN1cHBvcnQgZm9yIHRoZSBpLk1YIElOVE1VWCBp bnRlcnJ1cHQgbXVsdGlwbGV4ZXIuDQo+ID4gKw0KPiA+ICBjb25maWcgTFMxWF9JUlENCj4gPiAg CWJvb2wgIkxvb25nc29uLTEgSW50ZXJydXB0IENvbnRyb2xsZXIiDQo+ID4gIAlkZXBlbmRzIG9u IE1BQ0hfTE9PTkdTT04zMg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lycWNoaXAvTWFrZWZp bGUgYi9kcml2ZXJzL2lycWNoaXAvTWFrZWZpbGUgaW5kZXgNCj4gPiBlODA2ZGRhNjkwZWEuLmFm OTc2YTc5ZDFmYiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lycWNoaXAvTWFrZWZpbGUNCj4g PiArKysgYi9kcml2ZXJzL2lycWNoaXAvTWFrZWZpbGUNCj4gPiBAQCAtMTAwLDYgKzEwMCw3IEBA IG9iai0kKENPTkZJR19DU0tZX01QSU5UQykJCSs9DQo+IGlycS1jc2t5LW1waW50Yy5vDQo+ID4g IG9iai0kKENPTkZJR19DU0tZX0FQQl9JTlRDKQkJKz0gaXJxLWNza3ktYXBiLWludGMubw0KPiA+ ICBvYmotJChDT05GSUdfU0lGSVZFX1BMSUMpCQkrPSBpcnEtc2lmaXZlLXBsaWMubw0KPiA+ICBv YmotJChDT05GSUdfSU1YX0lSUVNURUVSKQkJKz0gaXJxLWlteC1pcnFzdGVlci5vDQo+ID4gK29i ai0kKENPTkZJR19JTVhfSU5UTVVYKQkJKz0gaXJxLWlteC1pbnRtdXgubw0KPiA+ICBvYmotJChD T05GSUdfTUFERVJBX0lSUSkJCSs9IGlycS1tYWRlcmEubw0KPiA+ICBvYmotJChDT05GSUdfTFMx WF9JUlEpCQkJKz0gaXJxLWxzMXgubw0KPiA+ICBvYmotJChDT05GSUdfVElfU0NJX0lOVFJfSVJR Q0hJUCkJKz0gaXJxLXRpLXNjaS1pbnRyLm8NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pcnFj aGlwL2lycS1pbXgtaW50bXV4LmMNCj4gPiBiL2RyaXZlcnMvaXJxY2hpcC9pcnEtaW14LWludG11 eC5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjk0 YzY3ZmRkNzE2Mw0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9kcml2ZXJzL2lycWNoaXAv aXJxLWlteC1pbnRtdXguYw0KPiA+IEBAIC0wLDAgKzEsMzExIEBADQo+ID4gKy8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQo+ID4gKy8vIENvcHlyaWdodCAyMDE3IE5YUA0KPiA+ ICsNCj4gPiArLyogICAgICAgICAgICAgICAgICAgICBJTlRNVVggQmxvY2sgRGlhZ3JhbQ0KPiA+ ICsgKg0KPiA+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX19fX19fX19fX19f X19fDQo+ID4gKyAqIGludGVycnVwdCBzb3VyY2UgIyAgMCAgKy0tLS0+fCAgICAgICAgICAgICAg ICB8DQo+ID4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCAgICAgICAgICAgICAg ICB8DQo+ID4gKyAqIGludGVycnVwdCBzb3VyY2UgIyAgMSAgKysrLS0+fCAgICAgICAgICAgICAg ICB8DQo+ID4gKyAqICAgICAgICAgICAgLi4uICAgICAgICAgfCB8ICAgfCAgIGNoYW5uZWwgIyAw ICB8LS0tLS0tLS0tPmludGVycnVwdCBvdXQNCj4gIyAwDQo+ID4gKyAqICAgICAgICAgICAgLi4u ICAgICAgICAgfCB8ICAgfCAgICAgICAgICAgICAgICB8DQo+ID4gKyAqICAgICAgICAgICAgLi4u ICAgICAgICAgfCB8ICAgfCAgICAgICAgICAgICAgICB8DQo+ID4gKyAqIGludGVycnVwdCBzb3Vy Y2UgIyBYLTEgKysrLS0+fF9fX19fX19fX19fX19fX198DQo+ID4gKyAqICAgICAgICAgICAgICAg ICAgICAgICAgfCB8IHwNCj4gPiArICogICAgICAgICAgICAgICAgICAgICAgICB8IHwgfA0KPiA+ ICsgKiAgICAgICAgICAgICAgICAgICAgICAgIHwgfCB8ICBfX19fX19fX19fX19fX19fDQo+ID4g KyAqICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0+fCAgICAgICAgICAgICAgICB8DQo+ID4g KyAqICAgICAgICAgICAgICAgICAgICAgICAgfCB8IHwgfCAgICAgICAgICAgICAgICB8DQo+ID4g KyAqICAgICAgICAgICAgICAgICAgICAgICAgfCArLS0+fCAgICAgICAgICAgICAgICB8DQo+ID4g KyAqICAgICAgICAgICAgICAgICAgICAgICAgfCB8IHwgfCAgIGNoYW5uZWwgIyAxICB8LS0tLS0t LS0tPmludGVycnVwdCBvdXQNCj4gIyAxDQo+ID4gKyAqICAgICAgICAgICAgICAgICAgICAgICAg fCB8ICs+fCAgICAgICAgICAgICAgICB8DQo+ID4gKyAqICAgICAgICAgICAgICAgICAgICAgICAg fCB8IHwgfCAgICAgICAgICAgICAgICB8DQo+ID4gKyAqICAgICAgICAgICAgICAgICAgICAgICAg fCB8IHwgfF9fX19fX19fX19fX19fX198DQo+ID4gKyAqICAgICAgICAgICAgICAgICAgICAgICAg fCB8IHwNCj4gPiArICogICAgICAgICAgICAgICAgICAgICAgICB8IHwgfA0KPiA+ICsgKiAgICAg ICAgICAgICAgICAgICAgICAgIHwgfCB8ICAgICAgIC4uLg0KPiA+ICsgKiAgICAgICAgICAgICAg ICAgICAgICAgIHwgfCB8ICAgICAgIC4uLg0KPiA+ICsgKiAgICAgICAgICAgICAgICAgICAgICAg IHwgfCB8DQo+ID4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgfCB8IHwgIF9fX19fX19fX19f X19fX18NCj4gPiArICogICAgICAgICAgICAgICAgICAgICAgICArLS0tLT58ICAgICAgICAgICAg ICAgIHwNCj4gPiArICogICAgICAgICAgICAgICAgICAgICAgICAgIHwgfCB8ICAgICAgICAgICAg ICAgIHwNCj4gPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICstLT58ICAgICAgICAgICAg ICAgIHwNCj4gPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB8ICAgY2hhbm5lbCAj IE4gIHwtLS0tLS0tLS0+aW50ZXJydXB0DQo+IG91dCAjIE4NCj4gPiArICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgKz58ICAgICAgICAgICAgICAgIHwNCj4gPiArICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwNCj4gPiArICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8X19fX19fX19fX19fX19fX3wNCj4gPiArICoNCj4gPiArICoNCj4g PiArICogTjogSW50ZXJydXB0IENoYW5uZWwgSW5zdGFuY2UgTnVtYmVyIChOPTcpDQo+ID4gKyAq IFg6IEludGVycnVwdCBTb3VyY2UgTnVtYmVyIGZvciBlYWNoIGNoYW5uZWwgKFg9MzIpDQo+ID4g KyAqDQo+ID4gKyAqIFRoZSBJTlRNVVggaW50ZXJydXB0IG11bHRpcGxleGVyIGhhcyA4IGNoYW5u ZWxzLCBlYWNoIGNoYW5uZWwNCj4gPiArcmVjZWl2ZXMgMzINCj4gPiArICogaW50ZXJydXB0IHNv dXJjZXMgYW5kIGdlbmVyYXRlcyAxIGludGVycnVwdCBvdXRwdXQuDQo+IA0KPiBEb2VzIHRoZSB1 c2VyIGNhcmUgdG8gd2hpY2ggY2hhbm5lbCBkb2VzIHRoZSBpbnRlcnJ1cHQgc291cmNlIGdvZXMg dG8/IElmIG5vdCwNCj4gaW50ZXJydXB0LWNlbGxzIGluIERUIGNhbiBqdXN0IGJlIGEgc2luZ2xl IGVudHJ5IGFuZCB0aGUgY2hhbm5lbCBzZWxlY3Rpb24gY2FuIGJlDQo+IGNvbnRyb2xsZWQgYnkg dGhlIGRyaXZlciBubz8gSSBhbSB0cnlpbmcgdG8gdW5kZXJzdGFuZCB3aHkgdXNlciBzaG91bGQg c3BlY2lmeQ0KPiB0aGUgY2hhbm5lbCBuby4NCkhpIExva2VzaCwNCg0KSWYgYSBmaXhlZCBjaGFu bmVsIGlzIHNwZWNpZmllZCBpbiB0aGUgZHJpdmVyLCBhbGwgaW50ZXJydXB0IHNvdXJjZXMgd2ls bCBiZSBjb25uZWN0ZWQgdG8gdGhpcyBjaGFubmVsLCBhZmZlY3RpbmcgdGhlIGludGVycnVwdCBw cmlvcml0eSB0byBzb21lIGV4dGVudC4NCg0KRnJvbSBteSBwb2ludCBvZiB2aWV3LCBhIGZpeGVk IGNoYW5uZWwgY291bGQgYmUgZW5vdWdoIGlmIGRvbid0IGNhcmUgaW50ZXJydXB0IHByaW9yaXR5 Lg0KDQpCZXN0IFJlZ2FyZHMsDQpKb2FraW0gWmhhbmcNCj4gVGhhbmtzIGFuZCByZWdhcmRzLA0K PiBMb2tlc2gNCj4gDQo+ID4gKyAqDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2luY2x1ZGUgPGxp bnV4L2Nsay5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+DQo+ID4gKyNpbmNs dWRlIDxsaW51eC9pcnEuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L2lycWNoaXAvY2hhaW5lZF9p cnEuaD4gI2luY2x1ZGUgPGxpbnV4L2lycWRvbWFpbi5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgv a2VybmVsLmg+ICNpbmNsdWRlIDxsaW51eC9vZl9pcnEuaD4gI2luY2x1ZGUNCj4gPiArPGxpbnV4 L29mX3BsYXRmb3JtLmg+ICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPg0KPiA+ICsNCj4gPiAr I2RlZmluZSBDSEFOSUVSKG4pCSgweDEwICsgKDB4NDAgKiBuKSkNCj4gPiArI2RlZmluZSBDSEFO SVBSKG4pCSgweDIwICsgKDB4NDAgKiBuKSkNCj4gPiArDQo+ID4gKyNkZWZpbmUgQ0hBTl9NQVhf TlVNCQkweDgNCj4gPiArDQo+ID4gK3N0cnVjdCBpbnRtdXhfaXJxY2hpcF9kYXRhIHsNCj4gPiAr CWludAkJCWNoYW5pZHg7DQo+ID4gKwlpbnQJCQlpcnE7DQo+ID4gKwlzdHJ1Y3QgaXJxX2RvbWFp bgkqZG9tYWluOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RydWN0IGludG11eF9kYXRhIHsNCj4g PiArCXJhd19zcGlubG9ja190CQkJbG9jazsNCj4gPiArCXZvaWQgX19pb21lbQkJCSpyZWdzOw0K PiA+ICsJc3RydWN0IGNsawkJCSppcGdfY2xrOw0KPiA+ICsJaW50CQkJCWNoYW5udW07DQo+ID4g KwlzdHJ1Y3QgaW50bXV4X2lycWNoaXBfZGF0YQlpcnFjaGlwX2RhdGFbXTsNCj4gPiArfTsNCj4g PiArDQo+ID4gK3N0YXRpYyB2b2lkIGlteF9pbnRtdXhfaXJxX21hc2soc3RydWN0IGlycV9kYXRh ICpkKSB7DQo+ID4gKwlzdHJ1Y3QgaW50bXV4X2lycWNoaXBfZGF0YSAqaXJxY2hpcF9kYXRhID0g ZC0+Y2hpcF9kYXRhOw0KPiA+ICsJaW50IGlkeCA9IGlycWNoaXBfZGF0YS0+Y2hhbmlkeDsNCj4g PiArCXN0cnVjdCBpbnRtdXhfZGF0YSAqZGF0YSA9IGNvbnRhaW5lcl9vZihpcnFjaGlwX2RhdGEs IHN0cnVjdA0KPiBpbnRtdXhfZGF0YSwNCj4gPiArCQkJCQkJaXJxY2hpcF9kYXRhW2lkeF0pOw0K PiA+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsNCj4gPiArCXZvaWQgX19pb21lbSAqcmVnOw0KPiA+ ICsJdTMyIHZhbDsNCj4gPiArDQo+ID4gKwlyYXdfc3Bpbl9sb2NrX2lycXNhdmUoJmRhdGEtPmxv Y2ssIGZsYWdzKTsNCj4gPiArCXJlZyA9IGRhdGEtPnJlZ3MgKyBDSEFOSUVSKGlkeCk7DQo+ID4g Kwl2YWwgPSByZWFkbF9yZWxheGVkKHJlZyk7DQo+ID4gKwkvKiBkaXNhYmxlIHRoZSBpbnRlcnJ1 cHQgc291cmNlIG9mIHRoaXMgY2hhbm5lbCAqLw0KPiA+ICsJdmFsICY9IH5CSVQoZC0+aHdpcnEp Ow0KPiA+ICsJd3JpdGVsX3JlbGF4ZWQodmFsLCByZWcpOw0KPiA+ICsJcmF3X3NwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmRhdGEtPmxvY2ssIGZsYWdzKTsgfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZv aWQgaW14X2ludG11eF9pcnFfdW5tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZCkgew0KPiA+ICsJc3Ry dWN0IGludG11eF9pcnFjaGlwX2RhdGEgKmlycWNoaXBfZGF0YSA9IGQtPmNoaXBfZGF0YTsNCj4g PiArCWludCBpZHggPSBpcnFjaGlwX2RhdGEtPmNoYW5pZHg7DQo+ID4gKwlzdHJ1Y3QgaW50bXV4 X2RhdGEgKmRhdGEgPSBjb250YWluZXJfb2YoaXJxY2hpcF9kYXRhLCBzdHJ1Y3QNCj4gaW50bXV4 X2RhdGEsDQo+ID4gKwkJCQkJCWlycWNoaXBfZGF0YVtpZHhdKTsNCj4gPiArCXVuc2lnbmVkIGxv bmcgZmxhZ3M7DQo+ID4gKwl2b2lkIF9faW9tZW0gKnJlZzsNCj4gPiArCXUzMiB2YWw7DQo+ID4g Kw0KPiA+ICsJcmF3X3NwaW5fbG9ja19pcnFzYXZlKCZkYXRhLT5sb2NrLCBmbGFncyk7DQo+ID4g KwlyZWcgPSBkYXRhLT5yZWdzICsgQ0hBTklFUihpZHgpOw0KPiA+ICsJdmFsID0gcmVhZGxfcmVs YXhlZChyZWcpOw0KPiA+ICsJLyogZW5hYmxlIHRoZSBpbnRlcnJ1cHQgc291cmNlIG9mIHRoaXMg Y2hhbm5lbCAqLw0KPiA+ICsJdmFsIHw9IEJJVChkLT5od2lycSk7DQo+ID4gKwl3cml0ZWxfcmVs YXhlZCh2YWwsIHJlZyk7DQo+ID4gKwlyYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGF0YS0+ bG9jaywgZmxhZ3MpOyB9DQo+ID4gKw0KPiA+ICtzdGF0aWMgc3RydWN0IGlycV9jaGlwIGlteF9p bnRtdXhfaXJxX2NoaXAgPSB7DQo+ID4gKwkubmFtZQkJPSAiaW50bXV4IiwNCj4gPiArCS5pcnFf bWFzawk9IGlteF9pbnRtdXhfaXJxX21hc2ssDQo+ID4gKwkuaXJxX3VubWFzawk9IGlteF9pbnRt dXhfaXJxX3VubWFzaywNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgaW14X2ludG11 eF9pcnFfbWFwKHN0cnVjdCBpcnFfZG9tYWluICpoLCB1bnNpZ25lZCBpbnQgaXJxLA0KPiA+ICsJ CQkgICAgICBpcnFfaHdfbnVtYmVyX3QgaHdpcnEpDQo+ID4gK3sNCj4gPiArCWlycV9zZXRfc3Rh dHVzX2ZsYWdzKGlycSwgSVJRX0xFVkVMKTsNCj4gPiArCWlycV9zZXRfY2hpcF9kYXRhKGlycSwg aC0+aG9zdF9kYXRhKTsNCj4gPiArCWlycV9zZXRfY2hpcF9hbmRfaGFuZGxlcihpcnEsICZpbXhf aW50bXV4X2lycV9jaGlwLA0KPiA+ICtoYW5kbGVfbGV2ZWxfaXJxKTsNCj4gPiArDQo+ID4gKwly ZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBpbXhfaW50bXV4X2lycV94 bGF0ZShzdHJ1Y3QgaXJxX2RvbWFpbiAqZCwgc3RydWN0IGRldmljZV9ub2RlDQo+ICpub2RlLA0K PiA+ICsJCQkJY29uc3QgdTMyICppbnRzcGVjLCB1bnNpZ25lZCBpbnQgaW50c2l6ZSwNCj4gPiAr CQkJCXVuc2lnbmVkIGxvbmcgKm91dF9od2lycSwgdW5zaWduZWQgaW50ICpvdXRfdHlwZSkgew0K PiA+ICsJc3RydWN0IGludG11eF9pcnFjaGlwX2RhdGEgKmlycWNoaXBfZGF0YSA9IGQtPmhvc3Rf ZGF0YTsNCj4gPiArCWludCBpZHggPSBpcnFjaGlwX2RhdGEtPmNoYW5pZHg7DQo+ID4gKwlzdHJ1 Y3QgaW50bXV4X2RhdGEgKmRhdGEgPSBjb250YWluZXJfb2YoaXJxY2hpcF9kYXRhLCBzdHJ1Y3QN Cj4gaW50bXV4X2RhdGEsDQo+ID4gKwkJCQkJCWlycWNoaXBfZGF0YVtpZHhdKTsNCj4gPiArDQo+ ID4gKwkvKiB0d28gY2VsbHMgbmVlZGVkIGluIGludGVycnVwdCBzcGVjaWZpZXI6DQo+ID4gKwkg KiB0aGUgMXN0IGNlbGw6IGh3IGludGVycnVwdCBudW1iZXINCj4gPiArCSAqIHRoZSAybmQgY2Vs bDogY2hhbm5lbCBpbmRleA0KPiA+ICsJICovDQo+ID4gKwlpZiAoV0FSTl9PTihpbnRzaXplICE9 IDIpKQ0KPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsNCj4gPiArCWlmIChXQVJOX09OKGlu dHNwZWNbMV0gPj0gZGF0YS0+Y2hhbm51bSkpDQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4g Kw0KPiA+ICsJKm91dF9od2lycSA9IGludHNwZWNbMF07DQo+ID4gKwkqb3V0X3R5cGUgPSBJUlFf VFlQRV9OT05FOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgaW50IGlteF9pbnRtdXhfaXJxX3NlbGVjdChzdHJ1Y3QgaXJxX2RvbWFpbiAqZCwgc3Ry dWN0IGlycV9md3NwZWMNCj4gKmZ3c3BlYywNCj4gPiArCQkJCSBlbnVtIGlycV9kb21haW5fYnVz X3Rva2VuIGJ1c190b2tlbikgew0KPiA+ICsJc3RydWN0IGludG11eF9pcnFjaGlwX2RhdGEgKmly cWNoaXBfZGF0YSA9IGQtPmhvc3RfZGF0YTsNCj4gPiArDQo+ID4gKwkvKiBOb3QgZm9yIHVzICov DQo+ID4gKwlpZiAoZndzcGVjLT5md25vZGUgIT0gZC0+Zndub2RlKQ0KPiA+ICsJCXJldHVybiBm YWxzZTsNCj4gPiArDQo+ID4gKwlpZiAoaXJxY2hpcF9kYXRhLT5jaGFuaWR4ID09IGZ3c3BlYy0+ cGFyYW1bMV0pDQo+ID4gKwkJcmV0dXJuIHRydWU7DQo+ID4gKwllbHNlDQo+ID4gKwkJcmV0dXJu IGZhbHNlOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGlycV9kb21h aW5fb3BzIGlteF9pbnRtdXhfZG9tYWluX29wcyA9IHsNCj4gPiArCS5tYXAJCT0gaW14X2ludG11 eF9pcnFfbWFwLA0KPiA+ICsJLnhsYXRlCQk9IGlteF9pbnRtdXhfaXJxX3hsYXRlLA0KPiA+ICsJ LnNlbGVjdAkJPSBpbXhfaW50bXV4X2lycV9zZWxlY3QsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtz dGF0aWMgdm9pZCBpbXhfaW50bXV4X2lycV9oYW5kbGVyKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykg ew0KPiA+ICsJc3RydWN0IGludG11eF9pcnFjaGlwX2RhdGEgKmlycWNoaXBfZGF0YSA9DQo+IGly cV9kZXNjX2dldF9oYW5kbGVyX2RhdGEoZGVzYyk7DQo+ID4gKwlpbnQgaWR4ID0gaXJxY2hpcF9k YXRhLT5jaGFuaWR4Ow0KPiA+ICsJc3RydWN0IGludG11eF9kYXRhICpkYXRhID0gY29udGFpbmVy X29mKGlycWNoaXBfZGF0YSwgc3RydWN0DQo+IGludG11eF9kYXRhLA0KPiA+ICsJCQkJCQlpcnFj aGlwX2RhdGFbaWR4XSk7DQo+ID4gKwl1bnNpZ25lZCBsb25nIGlycXN0YXQ7DQo+ID4gKwlpbnQg cG9zLCB2aXJxOw0KPiA+ICsNCj4gPiArCWNoYWluZWRfaXJxX2VudGVyKGlycV9kZXNjX2dldF9j aGlwKGRlc2MpLCBkZXNjKTsNCj4gPiArDQo+ID4gKwkvKiByZWFkIHRoZSBpbnRlcnJ1cHQgc291 cmNlIHBlbmRpbmcgc3RhdHVzIG9mIHRoaXMgY2hhbm5lbCAqLw0KPiA+ICsJaXJxc3RhdCA9IHJl YWRsX3JlbGF4ZWQoZGF0YS0+cmVncyArIENIQU5JUFIoaWR4KSk7DQo+ID4gKw0KPiA+ICsJZm9y X2VhY2hfc2V0X2JpdChwb3MsICZpcnFzdGF0LCAzMikgew0KPiA+ICsJCXZpcnEgPSBpcnFfZmlu ZF9tYXBwaW5nKGlycWNoaXBfZGF0YS0+ZG9tYWluLCBwb3MpOw0KPiA+ICsJCWlmICh2aXJxKQ0K PiA+ICsJCQlnZW5lcmljX2hhbmRsZV9pcnEodmlycSk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJ Y2hhaW5lZF9pcnFfZXhpdChpcnFfZGVzY19nZXRfY2hpcChkZXNjKSwgZGVzYyk7IH0NCj4gPiAr DQo+ID4gK3N0YXRpYyBpbnQgaW14X2ludG11eF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KSB7DQo+ID4gKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gcGRldi0+ZGV2Lm9mX25v ZGU7DQo+ID4gKwlzdHJ1Y3QgaW50bXV4X2RhdGEgKmRhdGE7DQo+ID4gKwlpbnQgY2hhbm51bTsN Cj4gPiArCWludCBpLCByZXQ7DQo+ID4gKw0KPiA+ICsJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91 MzIobnAsICJmc2wsaW50bXV4X2NoYW5zIiwgJmNoYW5udW0pOw0KPiA+ICsJaWYgKHJldCkgew0K PiA+ICsJCWNoYW5udW0gPSAxOw0KPiA+ICsJfSBlbHNlIGlmIChjaGFubnVtID4gQ0hBTl9NQVhf TlVNKSB7DQo+ID4gKwkJZGV2X2VycigmcGRldi0+ZGV2LCAic3VwcG9ydHMgdXAgdG8gJWQgbXVs dGlwbGV4IGNoYW5uZWxzXG4iLA0KPiA+ICsJCQlDSEFOX01BWF9OVU0pOw0KPiA+ICsJCXJldHVy biAtRUlOVkFMOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWRhdGEgPSBkZXZtX2t6YWxsb2MoJnBk ZXYtPmRldiwgc2l6ZW9mKCpkYXRhKSArDQo+ID4gKwkJCSAgICBjaGFubnVtICogc2l6ZW9mKGRh dGEtPmlycWNoaXBfZGF0YVswXSksIEdGUF9LRVJORUwpOw0KPiA+ICsJaWYgKCFkYXRhKQ0KPiA+ ICsJCXJldHVybiAtRU5PTUVNOw0KPiA+ICsNCj4gPiArCWRhdGEtPnJlZ3MgPSBkZXZtX3BsYXRm b3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7DQo+ID4gKwlpZiAoSVNfRVJSKGRhdGEtPnJl Z3MpKSB7DQo+ID4gKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGluaXRpYWxpemUg cmVnXG4iKTsNCj4gPiArCQlyZXR1cm4gUFRSX0VSUihkYXRhLT5yZWdzKTsNCj4gPiArCX0NCj4g PiArDQo+ID4gKwlkYXRhLT5pcGdfY2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsICJpcGci KTsNCj4gPiArCWlmIChJU19FUlIoZGF0YS0+aXBnX2NsaykpIHsNCj4gPiArCQlyZXQgPSBQVFJf RVJSKGRhdGEtPmlwZ19jbGspOw0KPiA+ICsJCWlmIChyZXQgIT0gLUVQUk9CRV9ERUZFUikNCj4g PiArCQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBpcGcgY2xrOiAlZFxuIiwg cmV0KTsNCj4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWRhdGEtPmNo YW5udW0gPSBjaGFubnVtOw0KPiA+ICsJcmF3X3NwaW5fbG9ja19pbml0KCZkYXRhLT5sb2NrKTsN Cj4gPiArDQo+ID4gKwlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoZGF0YS0+aXBnX2Nsayk7DQo+ ID4gKwlpZiAocmV0KSB7DQo+ID4gKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGVu YWJsZSBpcGcgY2xrOiAlZFxuIiwgcmV0KTsNCj4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ICsJfQ0K PiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBjaGFubnVtOyBpKyspIHsNCj4gPiArCQlkYXRh LT5pcnFjaGlwX2RhdGFbaV0uY2hhbmlkeCA9IGk7DQo+ID4gKw0KPiA+ICsJCWRhdGEtPmlycWNo aXBfZGF0YVtpXS5pcnEgPSBpcnFfb2ZfcGFyc2VfYW5kX21hcChucCwgaSk7DQo+ID4gKwkJaWYg KGRhdGEtPmlycWNoaXBfZGF0YVtpXS5pcnEgPD0gMCkgew0KPiA+ICsJCQlyZXQgPSAtRUlOVkFM Ow0KPiA+ICsJCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IGlycVxuIik7DQo+ ID4gKwkJCWdvdG8gb3V0Ow0KPiA+ICsJCX0NCj4gPiArDQo+ID4gKwkJZGF0YS0+aXJxY2hpcF9k YXRhW2ldLmRvbWFpbiA9DQo+ID4gKwkJCWlycV9kb21haW5fYWRkX2xpbmVhcihucCwgMzIsICZp bXhfaW50bXV4X2RvbWFpbl9vcHMsDQo+ID4gKwkJCQkJICAgICAgJmRhdGEtPmlycWNoaXBfZGF0 YVtpXSk7DQo+ID4gKwkJaWYgKCFkYXRhLT5pcnFjaGlwX2RhdGFbaV0uZG9tYWluKSB7DQo+ID4g KwkJCXJldCA9IC1FTk9NRU07DQo+ID4gKwkJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0 byBjcmVhdGUgSVJRIGRvbWFpblxuIik7DQo+ID4gKwkJCWdvdG8gb3V0Ow0KPiA+ICsJCX0NCj4g PiArDQo+ID4gKwkJaXJxX3NldF9jaGFpbmVkX2hhbmRsZXJfYW5kX2RhdGEoZGF0YS0+aXJxY2hp cF9kYXRhW2ldLmlycSwNCj4gPiArCQkJCQkJIGlteF9pbnRtdXhfaXJxX2hhbmRsZXIsDQo+ID4g KwkJCQkJCSAmZGF0YS0+aXJxY2hpcF9kYXRhW2ldKTsNCj4gPiArDQo+ID4gKwkJLyogZGlzYWJs ZSBpbnRlcnJ1cHQgc291cmNlcyBvZiB0aGlzIGNoYW5uZWwgZmlyc3RseSAqLw0KPiA+ICsJCXdy aXRlbF9yZWxheGVkKDAsIGRhdGEtPnJlZ3MgKyBDSEFOSUVSKGkpKTsNCj4gPiArCX0NCj4gPiAr DQo+ID4gKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBkYXRhKTsNCj4gPiArDQo+ID4gKwly ZXR1cm4gMDsNCj4gPiArb3V0Og0KPiA+ICsJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRhdGEtPmlw Z19jbGspOw0KPiA+ICsJcmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGlu dCBpbXhfaW50bXV4X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KSB7DQo+ID4g KwlzdHJ1Y3QgaW50bXV4X2RhdGEgKmRhdGEgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsN Cj4gPiArCWludCBpOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBkYXRhLT5jaGFubnVt OyBpKyspIHsNCj4gPiArCQkvKiBjbGVhciBpbnRlcnJ1cHQgc291cmNlcyBwZW5kaW5nIHN0YXR1 cyBvZiB0aGlzIGNoYW5uZWwgKi8NCj4gPiArCQl3cml0ZWxfcmVsYXhlZCgwLCBkYXRhLT5yZWdz ICsgQ0hBTklQUihpKSk7DQo+ID4gKw0KPiA+ICsJCWlycV9zZXRfY2hhaW5lZF9oYW5kbGVyX2Fu ZF9kYXRhKGRhdGEtPmlycWNoaXBfZGF0YVtpXS5pcnEsDQo+ID4gKwkJCQkJCSBOVUxMLCBOVUxM KTsNCj4gPiArDQo+ID4gKwkJaXJxX2RvbWFpbl9yZW1vdmUoZGF0YS0+aXJxY2hpcF9kYXRhW2ld LmRvbWFpbik7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRh dGEtPmlwZ19jbGspOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpbXhfaW50bXV4X2lkW10gPSB7DQo+ ID4gKwl7IC5jb21wYXRpYmxlID0gImZzbCxpbXgtaW50bXV4IiwgfSwNCj4gPiArCXsgLyogc2Vu dGluZWwgKi8gfSwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1f ZHJpdmVyIGlteF9pbnRtdXhfZHJpdmVyID0gew0KPiA+ICsJLmRyaXZlciA9IHsNCj4gPiArCQku bmFtZSA9ICJpbXgtaW50bXV4IiwNCj4gPiArCQkub2ZfbWF0Y2hfdGFibGUgPSBpbXhfaW50bXV4 X2lkLA0KPiA+ICsJfSwNCj4gPiArCS5wcm9iZSA9IGlteF9pbnRtdXhfcHJvYmUsDQo+ID4gKwku cmVtb3ZlID0gaW14X2ludG11eF9yZW1vdmUsDQo+ID4gK307DQo+ID4gK2J1aWx0aW5fcGxhdGZv cm1fZHJpdmVyKGlteF9pbnRtdXhfZHJpdmVyKTsNCj4gPg0K