Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp3339605ybd; Tue, 25 Jun 2019 00:32:59 -0700 (PDT) X-Google-Smtp-Source: APXvYqxm894uxbySVsZZ2h8zpEbezJY9dLeTNQNMkqLlkpf0e9DBkBhroQaUn2tk7RayNCj+M7Cc X-Received: by 2002:a17:902:a5c5:: with SMTP id t5mr155454880plq.288.1561447979211; Tue, 25 Jun 2019 00:32:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561447979; cv=none; d=google.com; s=arc-20160816; b=FrBlQengKKvpVtzXeWHUpfLoFgm1hXAgRDB0t5THzlf+K3dgzN8Xy+pZlen2rqKRco GIvid+dF/ISI/i4qFvaciSmsaYptv9pvsF+KIJ8dkR12cPjFdXZkoZzwh/rIdBpGQ2zg ar+CLrz7bEOrCuXgrS9kXurczA8Q0IfOuqnil/rxfTAmnVYuxgud8gipQdsjQa54tIms +pPsdAbyjPWGnU29gzaOO/4tjuiiVGHCNPo4BUjzpKxIOgQbp32Uu4ka93+o8M7ihsgO 6GSIT0FmF+bXolS1XRld/BAYeiIChS2IPyuvy4oE+eOXImVoCwZgMZzMelJB6deLEBcH 2uHw== 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-language:accept-language:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature; bh=wI//m7sqsgko/mrHgIWva7lkvMYYuvtFdoiCfg/yvgk=; b=ez/WOiP/H1dMu8zWS+2WBR1acTIKZOaHqRiDLASN4G9c6725/b5/7KgT5RdbKY2fw+ BUbe9zdhaJuGO3B/cK4M+CCBh4qrAG63NT0c4YN9C/Jwdrcon+adB2IFsZ+V745D0r/x rVkJZAa3DqPPEIZlMqF2U6LtuvEWn75RawzB04mKHU0PYVoBs22K7MQSZBQhrnmRPBB9 105KYLmZirmLcsiDFWR7Hb4KR4MUzsL1MNdEnAfi51pz3QVbDnthRuOG5wRzH3DCDkB3 zty1UIAdU8ckXr9TwfqwaNw3/S2lVsgtcQjNDb2wHc699ZXueXhH0IgqPz/eZGz4PZMX Zt7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=WNPakzar; 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 n184si13464627pfn.59.2019.06.25.00.32.43; Tue, 25 Jun 2019 00:32:59 -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; dkim=pass header.i=@nxp.com header.s=selector2 header.b=WNPakzar; 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 S1728897AbfFYFyb (ORCPT + 99 others); Tue, 25 Jun 2019 01:54:31 -0400 Received: from mail-eopbgr10089.outbound.protection.outlook.com ([40.107.1.89]:64643 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727648AbfFYFya (ORCPT ); Tue, 25 Jun 2019 01:54:30 -0400 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=wI//m7sqsgko/mrHgIWva7lkvMYYuvtFdoiCfg/yvgk=; b=WNPakzaro9Z5oXCrDL72XRkic3hHjfHhXClJO2IjTRHmVQ3u7hzFamou9lgDNd6f0FQXX/tJKimaYWJZi6nqZDmltFOiGyEFlVH4ao5nEcXi0G6o8OzlXntoeP6NuTbJTtCqzi37cloqQ0EgPxJ+pGGbL7Jx+ViXN9evMbcg54A= Received: from AM6PR04MB4936.eurprd04.prod.outlook.com (20.177.33.203) by AM6PR04MB6101.eurprd04.prod.outlook.com (20.179.5.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2008.13; Tue, 25 Jun 2019 05:54:18 +0000 Received: from AM6PR04MB4936.eurprd04.prod.outlook.com ([fe80::cd8e:f990:731d:a5b2]) by AM6PR04MB4936.eurprd04.prod.outlook.com ([fe80::cd8e:f990:731d:a5b2%7]) with mapi id 15.20.2008.017; Tue, 25 Jun 2019 05:54:18 +0000 From: Fancy Fang To: "p.zabel@pengutronix.de" , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" CC: "festevam@gmail.com" , "kernel@pengutronix.de" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , dl-linux-imx Subject: [PATCH] reset: Add driver for dispmix reset Thread-Topic: [PATCH] reset: Add driver for dispmix reset Thread-Index: AQHVKxptCiL92aUsgkqeLp394Rbp9A== Date: Tue, 25 Jun 2019 05:54:18 +0000 Message-ID: <20190625055557.7507-1-chen.fang@nxp.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.17.1 x-clientproxiedby: TY2PR06CA0027.apcprd06.prod.outlook.com (2603:1096:404:2e::15) To AM6PR04MB4936.eurprd04.prod.outlook.com (2603:10a6:20b:7::11) authentication-results: spf=none (sender IP is ) smtp.mailfrom=chen.fang@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 431c31ef-767b-4c1f-4d4d-08d6f9318fba x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020);SRVR:AM6PR04MB6101; x-ms-traffictypediagnostic: AM6PR04MB6101: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 0079056367 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(136003)(396003)(366004)(346002)(376002)(189003)(199004)(66066001)(6116002)(3846002)(110136005)(54906003)(186003)(1076003)(36756003)(6506007)(316002)(386003)(102836004)(2201001)(256004)(66946007)(52116002)(66556008)(66476007)(66446008)(2501003)(5660300002)(26005)(73956011)(14444005)(50226002)(99286004)(68736007)(478600001)(30864003)(86362001)(14454004)(486006)(476003)(2616005)(6486002)(64756008)(6436002)(71190400001)(71200400001)(25786009)(6512007)(2906002)(4326008)(7736002)(53936002)(8936002)(8676002)(53946003)(305945005)(81166006)(81156014)(2004002)(579004)(559001)(309714004);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR04MB6101;H:AM6PR04MB4936.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-message-info: m8OdCpRQbVA/bWHfKxMEP/ta9BoG0CBoWFcFVZsFJUdtPu+dessJnBPeVT1Y+kyDNy64rrGVg2fmz9d86pSbFSRosyMWG95G9rdUPZN/eBMSzCpmAmGZYGKKx+ZxrYdz9yiCJ7QOeTAW9ZmFD2UjDyddXIi8jrSiMS28zuL0TNcWQaEcCh8S3VU72+VB3t6mdvnWk9bUPMCKDQuoHG95naPDPKAKDGbqlsPFwnxuXlw6o2GxCilAQAnQbBY1Urk3MbhcTuCbHVZVQLBucvQp7rloPfj6qxbQrzZMLOIF6A4cyRetmxeOZYNCHkXGE+AHWwwJsnpwVfnRPbwfhdLZf1bz6mRlULqs//bk/kDcr3EUwx0gCFr95A3N+86pmISOA9UOE9Je16qBFz0IgO9TxkErODjD20oh/Ea4cq/oa74= 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: 431c31ef-767b-4c1f-4d4d-08d6f9318fba X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jun 2019 05:54:18.5955 (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: chen.fang@nxp.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB6101 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org VGhpcyBpcyBhbiByZXNldCBkcml2ZXIgdG8gaW1wbGVtZW50IGEgcmVzZXQgY29udHJvbGxlcg0K ZGV2aWNlIERJU1BNSVggb24gSU1YOE1NIGFuZCBJTVg4TU4gcGxhdGZvcm1zLiBEaXNwbWl4DQpy ZXNldCBpcyB1c2VkIHRvIHJlc2V0IG9yIGVuYWJsZSByZWxhdGVkIGJ1c2VzIGFuZCBjbGtzDQpm b3IgdGhlIHN1Ym1vZHVsZXMgaW4gRElTUE1JWC4NCg0KQWxsIHRoZSBkaXNwbWl4IHJlc2V0cyBh cmUgZGl2aWRlZCBpbnRvIHRocmVlIHN1Ymdyb3VwczoNCnNmdF9yc3RuLCBjbGtfZW4gYW5kIG1p cGlfcnN0LCBhbmQgZWFjaCBvZiB0aGVtIGNvbnRhaW5zDQpzZXZlcmFsIHJlc2V0IGxpbmVzIHRv IGNvbnRyb2wgc2V2ZXJhbCBkaWZmZXJlbnQgbW9kdWxlcw0Kb24gYW5kIG9mZiBpbiBESVNQTUlY IHdoaWNoIGRvZXNuJ3QgcmVxdWlyZSB0aGUgc3RhbmRhcmQNCnJlc2V0IGZsb3csIGJ1dCBvbmx5 IGxpbmUgYXNzZXJ0IGFuZCBkZWFzc2VydCBvcGVyYXRpb25zLg0KDQpTaWduZWQtb2ZmLWJ5OiBG YW5jeSBGYW5nIDxjaGVuLmZhbmdAbnhwLmNvbT4NCi0tLQ0KIC4uLi9iaW5kaW5ncy9yZXNldC9u eHAsZGlzcG1peC1jbGstZW4udHh0ICAgICB8ICA1OCArKysNCiAuLi4vYmluZGluZ3MvcmVzZXQv bnhwLGRpc3BtaXgtbWlwaS1yc3QudHh0ICAgfCAgNTcgKysrDQogLi4uL2JpbmRpbmdzL3Jlc2V0 L254cCxkaXNwbWl4LXNmdC1yc3RuLnR4dCAgIHwgIDU4ICsrKw0KIGRyaXZlcnMvcmVzZXQvS2Nv bmZpZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArDQogZHJpdmVycy9yZXNldC9NYWtl ZmlsZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsNCiBkcml2ZXJzL3Jlc2V0L3Jlc2V0 LWRpc3BtaXguYyAgICAgICAgICAgICAgICAgfCAzOTkgKysrKysrKysrKysrKysrKysrDQogaW5j bHVkZS9kdC1iaW5kaW5ncy9yZXNldC9pbXg4bW0tZGlzcG1peC5oICAgIHwgIDQ5ICsrKw0KIGlu Y2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvaW14OG1uLWRpc3BtaXguaCAgICB8ICA0NyArKysNCiA4 IGZpbGVzIGNoYW5nZWQsIDY3OCBpbnNlcnRpb25zKCspDQogY3JlYXRlIG1vZGUgMTAwNjQ0IERv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZXNldC9ueHAsZGlzcG1peC1jbGstZW4u dHh0DQogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9yZXNldC9ueHAsZGlzcG1peC1taXBpLXJzdC50eHQNCiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jlc2V0L254cCxkaXNwbWl4LXNmdC1yc3Ru LnR4dA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3Jlc2V0L3Jlc2V0LWRpc3BtaXguYw0K IGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L2lteDhtbS1kaXNw bWl4LmgNCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9pbXg4 bW4tZGlzcG1peC5oDQoNCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmlu ZGluZ3MvcmVzZXQvbnhwLGRpc3BtaXgtY2xrLWVuLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNl dHJlZS9iaW5kaW5ncy9yZXNldC9ueHAsZGlzcG1peC1jbGstZW4udHh0DQpuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi40Mzc1MDM5ZWIwNzINCi0tLSAvZGV2L251bGwN CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZXNldC9ueHAsZGlzcG1p eC1jbGstZW4udHh0DQpAQCAtMCwwICsxLDU4IEBADQorTlhQIERpc3BsYXkgTWl4IGNsay1lbiBS ZXNldCBDb250cm9sbGVyDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQorDQorVGhpcyBiaW5kaW5nIGRlc2NyaWJlcyBhIHJlc2V0IGNvbnRyb2xsZXIgZGV2aWNlIHRo YXQgaXMgdXNlZCB0byBlbmFibGUNCitvciBkaXNhYmxlIHRoZSBpbnRlcm5hbCBjbG9ja3MgZm9y IGFsbCB0aGUgc3VibW9kdWxlcyhzdWNoIGFzLCBMQ0RJRiwNCitNSVBJIERTSSwgTUlQSSBDU0ks IElTSSBhbmQgZXRjKSBpbmNsdWRlZCBieSB0aGUgRGlzcGxheSBNaXggc3Vic3lzdGVtDQorb24g SU1YOE1NIGFuZCBJTVg4TU4gcGxhdGZvcm1zLiBMaWtlIHNmdC1yc3RuLCBvbmx5IGFzc2VydCBh bmQgZGVhc3NlcnQNCitmdW5jdGlvbnMgYXJlIHJlcXVpcmVkIGZvciBzdWJtb2R1bGUgaW50ZXJu YWwgY2xvY2tzIGVuYWJsZSBvciBkaXNhYmxlLA0KK3RoYXQgbWVhbnMgdGhlIGNsay1lbiBjYW4g YmUgdHJlYXRlZCBhcyBhIHJlYWwgcmVzZXQgY29udHJvbGxlci4NCisNCitQbGVhc2UgYWxzbyBy ZWZlciB0byByZXNldC50eHQgaW4gdGhpcyBkaXJlY3RvcnkgZm9yIGNvbW1vbiByZXNldA0KK2Nv bnRyb2xsZXIgYmluZGluZyB1c2FnZS4NCisNCitSZXF1aXJlZCBwcm9wZXJ0aWVzOg0KKy0gY29t cGF0aWJsZTogU2hvdWxkIGJlICJmc2wsaW14OG1tLWRpc3BtaXgtY2xrLWVuIiBvcg0KKwkJCSJm c2wsaW14OG1uLWRpc3BtaXgtY2xrLWVuIi4NCistIHJlZzogc2hvdWxkIGJlIHJlZ2lzdGVyIGJh c2UgYW5kIGxlbmd0aCBhcyBkb2N1bWVudGVkIGluIHRoZSBkYXRhc2hlZXQuDQorLSBjbG9ja3M6 IHBoYW5kbGUgYW5kIGNsb2NrIHNwZWNpZmllciB0byBkaXNwIGFwYiBjbG9jayBmb3IgcmVnaXN0 ZXIgYWNjZXNzLg0KKy0gY2xvY2stbmFtZXM6IHNob3VsZCBiZSAiZGlzcC1hcGIiLg0KKy0gcG93 ZXItZG9tYWluczogcGhhbmRsZSB0byBkaXNwbWl4IHBvd2VyIGRvbWFpbi4NCistIHJlc2V0LWNl bGxzOiAxLCBzZWUgYmVsb3cuDQorDQorZXhhbXBsZToNCisNCisJZGlzcG1peF9jbGtfZW46IGRp c3BtaXgtY2xrLWVuQDMyZTI4MDA0IHsNCisJCWNvbXBhdGlibGUgPSAiZnNsLGlteDhtbi1kaXNw bWl4LWNsay1lbiI7DQorCQlyZWcgPSA8MHgwIDB4MzJlMjgwMDQgMHgwIDB4ND47DQorCQljbG9j a3MgPSA8JmNsayBJTVg4TU5fQ0xLX0RJU1BfQVBCX1JPT1Q+Ow0KKwkJY2xvY2stbmFtZXMgPSAi ZGlzcC1hcGIiOw0KKwkJcG93ZXItZG9tYWlucyA9IDwmZGlzcG1peF9wZD47DQorCQkjcmVzZXQt Y2VsbHMgPSA8MT47DQorCX07DQorDQorU3BlY2lmeWluZyBjbGstZW4gY29udHJvbCBvZiBkZXZp Y2VzDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQorRGV2aWNlIG5v ZGVzIGluIERpc3BsYXkgTWl4IHNob3VsZCBzcGVjaWZ5IHRoZSByZXNldCBjaGFubmVsIHJlcXVp cmVkIGluDQordGhlaXIgInJlc2V0cyIgcHJvcGVydHksIGNvbnRhaW5pbmcgYSBwaGFuZGxlIHRv IHRoZSBjbGstZW4gZGV2aWNlIG5vZGUNCithbmQgYW4gaW5kZXggdG8gc3BlY2lmeSB3aGljaCBj aGFubmVsIHRvIHVzZSwgYXMgZGVzY3JpYmVkIGluDQorRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL3Jlc2V0L3Jlc2V0LnR4dC4NCisNCitleGFtcGxlOg0KKw0KKwlsY2RpZl9yZXNl dHM6IGxjZGlmLXJlc2V0cyB7DQorCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsNCisJCSNzaXplLWNl bGxzID0gPDA+Ow0KKwkJI3Jlc2V0LWNlbGxzID0gPDA+Ow0KKw0KKwkJbGNkaWYtY2xrLWVuYWJs ZSB7DQorCQkJY29tcGF0aWJsZSA9ICJsY2RpZixjbGstZW5hYmxlIjsNCisJCQlyZXNldHMgPSA8 JmRpc3BtaXhfY2xrX2VuIElNWDhNTl9MQ0RJRl9BUEJfQ0xLX0VOPiwNCisJCQkJIDwmZGlzcG1p eF9jbGtfZW4gSU1YOE1OX0xDRElGX1BJWEVMX0NMS19FTj47DQorCQl9Ow0KKwl9Ow0KKw0KK01h Y3JvIGRlZmluaXRpb25zIGZvciB0aGUgc3VwcG9ydGVkIHJlc2V0IGNoYW5uZWxzIGNhbiBiZSBm b3VuZCBpbjoNCitpbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L2lteDhtbS1kaXNwbWl4LmggYW5k DQoraW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9pbXg4bW4tZGlzcG1peC5oLg0KZGlmZiAtLWdp dCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZXNldC9ueHAsZGlzcG1peC1t aXBpLXJzdC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmVzZXQvbnhw LGRpc3BtaXgtbWlwaS1yc3QudHh0DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw MDAwMDAwLi5jNDdiZmQ0ODQyZWQNCi0tLSAvZGV2L251bGwNCisrKyBiL0RvY3VtZW50YXRpb24v ZGV2aWNldHJlZS9iaW5kaW5ncy9yZXNldC9ueHAsZGlzcG1peC1taXBpLXJzdC50eHQNCkBAIC0w LDAgKzEsNTcgQEANCitOWFAgRGlzcGxheSBNaXggbWlwaS1yc3QgUmVzZXQgQ29udHJvbGxlcg0K Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQorVGhpcyBiaW5k aW5nIGRlc2NyaWJlcyBhIHJlc2V0IGNvbnRyb2xsZXIgZGV2aWNlIHRoYXQgaXMgdXNlZCB0byBy ZXNldA0KK29yIGRlLXJlc2V0IHRoZSBNSVBJIERQSFkgbWFzdGVyIGRpcmVjdGlvbihmb3IgTUlQ SSBEU0kpIGFuZCBzbGF2ZQ0KK2RpcmVjdGlvbihmb3IgTUlQSSBDU0kpIGluY2x1ZGVkIGJ5IHRo ZSBEaXNwbGF5IE1peCBzdWJzeXN0ZW0gb24gSU1YOE1NDQorYW5kIElNWDhNTiBwbGF0Zm9ybXMu IExpa2Ugc2Z0LXJzdG4sIG9ubHkgYXNzZXJ0IGFuZCBkZWFzc2VydCBmdW5jdGlvbnMNCithcmUg cmVxdWlyZWQgZm9yIFBIWSByZXNldCBvciBkZS1yZXNldC4NCisNCitQbGVhc2UgYWxzbyByZWZl ciB0byByZXNldC50eHQgaW4gdGhpcyBkaXJlY3RvcnkgZm9yIGNvbW1vbiByZXNldA0KK2NvbnRy b2xsZXIgYmluZGluZyB1c2FnZS4NCisNCitSZXF1aXJlZCBwcm9wZXJ0aWVzOg0KKy0gY29tcGF0 aWJsZTogU2hvdWxkIGJlICJmc2wsaW14OG1tLWRpc3BtaXgtbWlwaS1yc3QiIG9yDQorCQkJImZz bCxpbXg4bW4tZGlzcG1peC1taXBpLXJzdCIuDQorLSByZWc6IHNob3VsZCBiZSByZWdpc3RlciBi YXNlIGFuZCBsZW5ndGggYXMgZG9jdW1lbnRlZCBpbiB0aGUgZGF0YXNoZWV0Lg0KKy0gY2xvY2tz OiBwaGFuZGxlIGFuZCBjbG9jayBzcGVjaWZpZXIgdG8gZGlzcCBhcGIgY2xvY2sgZm9yIHJlZ2lz dGVyIGFjY2Vzcy4NCistIGNsb2NrLW5hbWVzOiBzaG91bGQgYmUgImRpc3AtYXBiIi4NCistIHBv d2VyLWRvbWFpbnM6IHBoYW5kbGUgdG8gZGlzcG1peCBwb3dlciBkb21haW4uDQorLSByZXNldC1j ZWxsczogMSwgc2VlIGJlbG93Lg0KKw0KK2V4YW1wbGU6DQorDQorCWRpc3BtaXhfbWlwaV9yc3Q6 IGRpc3BtaXgtbWlwaS1yc3RAMzJlMjgwMDggew0KKwkJY29tcGF0aWJsZSA9ICJmc2wsaW14OG1u LWRpc3BtaXgtbWlwaS1yc3QiOw0KKwkJcmVnID0gPDB4MCAweDMyZTI4MDA4IDB4MCAweDQ+Ow0K KwkJY2xvY2tzID0gPCZjbGsgSU1YOE1OX0NMS19ESVNQX0FQQl9ST09UPjsNCisJCWNsb2NrLW5h bWVzID0gImRpc3AtYXBiIjsNCisJCWFjdGl2ZV9sb3c7DQorCQlwb3dlci1kb21haW5zID0gPCZk aXNwbWl4X3BkPjsNCisJCSNyZXNldC1jZWxscyA9IDwxPjsNCisJfTsNCisNCitTcGVjaWZ5aW5n IG1pcGktcnN0IGNvbnRyb2wgb2YgZGV2aWNlcw0KKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQorDQorRGV2aWNlIG5vZGVzIGluIERpc3BsYXkgTWl4IHNob3VsZCBzcGVj aWZ5IHRoZSByZXNldCBjaGFubmVsIHJlcXVpcmVkIGluDQordGhlaXIgInJlc2V0cyIgcHJvcGVy dHksIGNvbnRhaW5pbmcgYSBwaGFuZGxlIHRvIHRoZSBtaXBpLXJzdCBkZXZpY2Ugbm9kZQ0KK2Fu ZCBhbiBpbmRleCB0byBzcGVjaWZ5IHdoaWNoIGNoYW5uZWwgdG8gdXNlLCBhcyBkZXNjcmliZWQg aW4NCitEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmVzZXQvcmVzZXQudHh0Lg0K Kw0KK2V4YW1wbGU6DQorDQorCW1pcGlfZHNpX3Jlc2V0czogbWlwaS1kc2ktcmVzZXRzIHsNCisJ CSNhZGRyZXNzLWNlbGxzID0gPDE+Ow0KKwkJI3NpemUtY2VsbHMgPSA8MD47DQorCQkjcmVzZXQt Y2VsbHMgPSA8MD47DQorDQorCQlkc2ktbWlwaS1yZXNldCB7DQorCQkJY29tcGF0aWJsZSA9ICJk c2ksbWlwaS1yZXNldCI7DQorCQkJcmVzZXRzID0gPCZkaXNwbWl4X21pcGlfcnN0IElNWDhNTl9N SVBJX01fUkVTRVQ+Ow0KKyAgICAgICAgICAgICAgICB9Ow0KKwl9Ow0KKw0KK01hY3JvIGRlZmlu aXRpb25zIGZvciB0aGUgc3VwcG9ydGVkIHJlc2V0IGNoYW5uZWxzIGNhbiBiZSBmb3VuZCBpbjoN CitpbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L2lteDhtbS1kaXNwbWl4LmggYW5kDQoraW5jbHVk ZS9kdC1iaW5kaW5ncy9yZXNldC9pbXg4bW4tZGlzcG1peC5oLg0KZGlmZiAtLWdpdCBhL0RvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZXNldC9ueHAsZGlzcG1peC1zZnQtcnN0bi50 eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmVzZXQvbnhwLGRpc3BtaXgt c2Z0LXJzdG4udHh0DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi43 ODY3MDE4YTQwOWINCi0tLSAvZGV2L251bGwNCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJl ZS9iaW5kaW5ncy9yZXNldC9ueHAsZGlzcG1peC1zZnQtcnN0bi50eHQNCkBAIC0wLDAgKzEsNTgg QEANCitOWFAgRGlzcGxheSBNaXggc2Z0LXJzdG4gUmVzZXQgQ29udHJvbGxlcg0KKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQorVGhpcyBiaW5kaW5nIGRlc2Ny aWJlcyBhIHJlc2V0IGNvbnRyb2xsZXIgZGV2aWNlIHRoYXQgaXMgdXNlZCB0byByZXNldA0KK29y IGRlLXJlc2V0IGFsbCB0aGUgc3VibW9kdWxlcyhzdWNoIGFzLCBMQ0RJRiwgTUlQSSBEU0ksIE1J UEkgQ1NJLCBJU0kNCithbmQgZXRjKSBpbmNsdWRlZCBieSB0aGUgRGlzcGxheSBNaXggc3Vic3lz dGVtIG9uIElNWDhNTSBhbmQgSU1YOE1ODQorcGxhdGZvcm1zLiBPbmx5IGFzc2VydCBhbmQgZGVh c3NlcnQgZnVuY3Rpb25zIGFyZSByZXF1aXJlZCBmb3Igc3VibW9kdWxlDQorcmVzZXQgb3IgZGUt cmVzZXQuDQorDQorUGxlYXNlIGFsc28gcmVmZXIgdG8gcmVzZXQudHh0IGluIHRoaXMgZGlyZWN0 b3J5IGZvciBjb21tb24gcmVzZXQNCitjb250cm9sbGVyIGJpbmRpbmcgdXNhZ2UuDQorDQorUmVx dWlyZWQgcHJvcGVydGllczoNCistIGNvbXBhdGlibGU6IFNob3VsZCBiZSAiZnNsLGlteDhtbS1k aXNwbWl4LXNmdC1yc3RuIiBvcg0KKwkJCSJmc2wsaW14OG1uLWRpc3BtaXgtc2Z0LXJzdG4iLg0K Ky0gcmVnOiBzaG91bGQgYmUgcmVnaXN0ZXIgYmFzZSBhbmQgbGVuZ3RoIGFzIGRvY3VtZW50ZWQg aW4gdGhlIGRhdGFzaGVldC4NCistIGNsb2NrczogcGhhbmRsZSBhbmQgY2xvY2sgc3BlY2lmaWVy IHRvIGRpc3AgYXBiIGNsb2NrIGZvciByZWdpc3RlciBhY2Nlc3MuDQorLSBjbG9jay1uYW1lczog c2hvdWxkIGJlICJkaXNwLWFwYiIuDQorLSBwb3dlci1kb21haW5zOiBwaGFuZGxlIHRvIGRpc3Bt aXggcG93ZXIgZG9tYWluLg0KKy0gcmVzZXQtY2VsbHM6IDEsIHNlZSBiZWxvdy4NCisNCitleGFt cGxlOg0KKw0KKwlkaXNwbWl4X3NmdF9yc3RuOiBkaXNwbWl4LXNmdC1yc3RuQDMyZTI4MDAwIHsN CisJCWNvbXBhdGlibGUgPSAiZnNsLGlteDhtbS1kaXNwbWl4LXNmdC1yc3RuIjsNCisJCXJlZyA9 IDwweDAgMHgzMmUyODAwMCAweDAgMHg0PjsNCisJCWNsb2NrcyA9IDwmY2xrIElNWDhNTV9DTEtf RElTUF9BUEJfUk9PVD47DQorCQljbG9jay1uYW1lcyA9ICJkaXNwLWFwYiI7DQorCQlhY3RpdmVf bG93Ow0KKwkJcG93ZXItZG9tYWlucyA9IDwmZGlzcG1peF9wZD47DQorCQkjcmVzZXQtY2VsbHMg PSA8MT47DQorCX07DQorDQorU3BlY2lmeWluZyBzZnQtcnN0biBjb250cm9sIG9mIGRldmljZXMN Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKw0KK0RldmljZSBub2Rl cyBpbiBEaXNwbGF5IE1peCBzaG91bGQgc3BlY2lmeSB0aGUgcmVzZXQgY2hhbm5lbCByZXF1aXJl ZCBpbg0KK3RoZWlyICJyZXNldHMiIHByb3BlcnR5LCBjb250YWluaW5nIGEgcGhhbmRsZSB0byB0 aGUgc2Z0LXJzdG4gZGV2aWNlIG5vZGUNCithbmQgYW4gaW5kZXggdG8gc3BlY2lmeSB3aGljaCBj aGFubmVsIHRvIHVzZSwgYXMgZGVzY3JpYmVkIGluDQorRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL3Jlc2V0L3Jlc2V0LnR4dC4NCisNCitleGFtcGxlOg0KKw0KKyAgICAgICAgbGNk aWZfcmVzZXRzOiBsY2RpZi1yZXNldHMgew0KKyAgICAgICAgICAgICAgICAjYWRkcmVzcy1jZWxs cyA9IDwxPjsNCisgICAgICAgICAgICAgICAgI3NpemUtY2VsbHMgPSA8MD47DQorICAgICAgICAg ICAgICAgICNyZXNldC1jZWxscyA9IDwwPjsNCisNCisgICAgICAgICAgICAgICAgbGNkaWYtc29m dC1yZXNldG4gew0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSAibGNkaWYs c29mdC1yZXNldG4iOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0cyA9IDwmZGlzcG1p eF9zZnRfcnN0biBJTVg4TU5fTENESUZfQVBCX0NMS19SRVNFVD4sDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPCZkaXNwbWl4X3NmdF9yc3RuIElNWDhNTl9MQ0RJRl9QSVhFTF9D TEtfUkVTRVQ+Ow0KKyAgICAgICAgICAgICAgICB9Ow0KKyAgICAgICAgfTsNCisNCitNYWNybyBk ZWZpbml0aW9ucyBmb3IgdGhlIHN1cHBvcnRlZCByZXNldCBjaGFubmVscyBjYW4gYmUgZm91bmQg aW46DQoraW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9pbXg4bW0tZGlzcG1peC5oIGFuZA0KK2lu Y2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvaW14OG1uLWRpc3BtaXguaC4NCmRpZmYgLS1naXQgYS9k cml2ZXJzL3Jlc2V0L0tjb25maWcgYi9kcml2ZXJzL3Jlc2V0L0tjb25maWcNCmluZGV4IDIxZWZi N2QzOWQ2Mi4uMWM1YzUxMGYxZTE4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9yZXNldC9LY29uZmln DQorKysgYi9kcml2ZXJzL3Jlc2V0L0tjb25maWcNCkBAIC00OSw2ICs0OSwxNSBAQCBjb25maWcg UkVTRVRfQlJDTVNUQg0KIAkgIFRoaXMgZW5hYmxlcyB0aGUgcmVzZXQgY29udHJvbGxlciBkcml2 ZXIgZm9yIEJyb2FkY29tIFNUQiBTb0NzIHVzaW5nDQogCSAgYSBTVU5fVE9QX0NUUkxfU1dfSU5J VCBzdHlsZSBjb250cm9sbGVyLg0KIA0KK2NvbmZpZyBSRVNFVF9ESVNQTUlYDQorCXRyaXN0YXRl ICJJTVggRGlzcGxheSBNaXggcmVzZXQgc3VwcG9ydCINCisJZGVmYXVsdCB5DQorCXNlbGVjdCBS RUdNQVBfTU1JTw0KKwlkZXBlbmRzIG9uIEFSQ0hfRlNMX0lNWDhNTSB8fCBBUkNIX0ZTTF9JTVg4 TU4NCisJaGVscA0KKwkgIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIERpc3BsYXkg TWl4IHJlc2V0IHRoYXQgaXMgY29udHJvbGxlZA0KKwkgIGJ5IGRpc3BtaXggR1BSIHJlZ2lzdGVy cy4NCisNCiBjb25maWcgUkVTRVRfSFNESw0KIAlib29sICJTeW5vcHN5cyBIU0RLIFJlc2V0IERy aXZlciINCiAJZGVwZW5kcyBvbiBIQVNfSU9NRU0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Jlc2V0 L01ha2VmaWxlIGIvZHJpdmVycy9yZXNldC9NYWtlZmlsZQ0KaW5kZXggNjE0NTZiOGY2NTljLi41 MjkxNTliZjI0N2YgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Jlc2V0L01ha2VmaWxlDQorKysgYi9k cml2ZXJzL3Jlc2V0L01ha2VmaWxlDQpAQCAtOCw2ICs4LDcgQEAgb2JqLSQoQ09ORklHX1JFU0VU X0FUSDc5KSArPSByZXNldC1hdGg3OS5vDQogb2JqLSQoQ09ORklHX1JFU0VUX0FYUzEwWCkgKz0g cmVzZXQtYXhzMTB4Lm8NCiBvYmotJChDT05GSUdfUkVTRVRfQkVSTElOKSArPSByZXNldC1iZXJs aW4ubw0KIG9iai0kKENPTkZJR19SRVNFVF9CUkNNU1RCKSArPSByZXNldC1icmNtc3RiLm8NCitv YmotJChDT05GSUdfUkVTRVRfRElTUE1JWCkgKz0gcmVzZXQtZGlzcG1peC5vDQogb2JqLSQoQ09O RklHX1JFU0VUX0hTREspICs9IHJlc2V0LWhzZGsubw0KIG9iai0kKENPTkZJR19SRVNFVF9JTVg3 KSArPSByZXNldC1pbXg3Lm8NCiBvYmotJChDT05GSUdfUkVTRVRfTEFOVElRKSArPSByZXNldC1s YW50aXEubw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQvcmVzZXQtZGlzcG1peC5jIGIvZHJp dmVycy9yZXNldC9yZXNldC1kaXNwbWl4LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwMDAwMDAuLmZlZGIzYTNlNmI0Mg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZHJpdmVycy9y ZXNldC9yZXNldC1kaXNwbWl4LmMNCkBAIC0wLDAgKzEsMzk5IEBADQorLyoNCisgKiBJTVggRGlz cGxheSBNaXggR1BSIHJlc2V0IGRyaXZlcg0KKyAqDQorICogQ29weXJpZ2h0IDIwMTkgTlhQDQor ICoNCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQ0KKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQorICogdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCisgKiAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KKyAqDQorICogVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQorICog YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YNCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlDQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4NCisgKi8NCisNCisjaW5jbHVkZSA8bGludXgvY2xrLmg+DQorI2luY2x1ZGUgPGxp bnV4L2Nsay1wcm92aWRlci5oPg0KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCisjaW5jbHVk ZSA8bGludXgvb2ZfZGV2aWNlLmg+DQorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5o Pg0KKyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+DQorI2luY2x1ZGUgPGxpbnV4L3JlZ21h cC5oPg0KKyNpbmNsdWRlIDxsaW51eC9yZXNldC1jb250cm9sbGVyLmg+DQorI2luY2x1ZGUgPGR0 LWJpbmRpbmdzL3Jlc2V0L2lteDhtbS1kaXNwbWl4Lmg+DQorI2luY2x1ZGUgPGR0LWJpbmRpbmdz L3Jlc2V0L2lteDhtbi1kaXNwbWl4Lmg+DQorDQorI2RlZmluZSBEUklWRVJfTkFNRQkJImRpc3Bt aXhfcmVzZXRfZHJ2Ig0KKw0KKy8qIERJU1BNSVggR1BSIHJlZ2lzdGVycyAqLw0KKyNkZWZpbmUg RElTUExBWV9NSVhfU0ZUX1JTVE5fQ1NSCQkweDAwDQorI2RlZmluZSBESVNQTEFZX01JWF9DTEtf RU5fQ1NSCQkJMHgwMA0KKyNkZWZpbmUgR1BSX01JUElfUkVTRVRfRElWCQkJMHgwMA0KKw0KK3N0 cnVjdCBkaXNwbWl4X3Jlc2V0X2NvbnRyb2xsZXIgew0KKwlzdHJ1Y3QgcmVzZXRfY29udHJvbGxl cl9kZXYgcmNkZXY7DQorCXN0cnVjdCBkZXZpY2UgKmRldjsNCisJc3RydWN0IHJlZ21hcCAqcnN0 Y29uOw0KKwlzdHJ1Y3QgY2xrICppcGdfY2xrOw0KKwlib29sIGFjdGl2ZV9sb3c7DQorfTsNCisN CitzdHJ1Y3QgZGlzcG1peF9yZXNldF9lbnRyeSB7DQorCXVpbnQzMl90IHJlZ19vZmY7DQorCXVp bnQzMl90IGJpdF9vZmY7DQorfTsNCisNCitzdHJ1Y3QgZGlzcG1peF9yZXNldF9wZGF0YSB7DQor CWNvbnN0IHN0cnVjdCBkaXNwbWl4X3Jlc2V0X2VudHJ5ICpyZXNldHM7DQorCXVpbnQzMl90IG5y X3Jlc2V0czsNCisJY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgKmNvbmZpZzsNCit9Ow0KKw0K KyNkZWZpbmUgUkVTRVRfRU5UUlkoaWQsIHJlZywgYml0KQkJCVwNCisJW2lkXSA9IHsgLnJlZ19v ZmYgPSAocmVnKSwgLmJpdF9vZmYgPSAoYml0KSB9DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBk aXNwbWl4X3Jlc2V0X2VudHJ5IGlteDhtbV9zZnRfcnN0bltdID0gew0KKwkvKiBkaXNwbWl4IHJl c2V0IGVudHJ5ICovDQorCVJFU0VUX0VOVFJZKElNWDhNTV9DU0lfQlJJREdFX0NISVBfUkVTRVQs DQorCQkgICAgRElTUExBWV9NSVhfU0ZUX1JTVE5fQ1NSLCAwKSwNCisJUkVTRVRfRU5UUlkoSU1Y OE1NX0NTSV9CUklER0VfSVBHX0hBUkRfQVNZTkNfUkVTRVQsDQorCQkgICAgRElTUExBWV9NSVhf U0ZUX1JTVE5fQ1NSLCAxKSwNCisJUkVTRVRfRU5UUlkoSU1YOE1NX0NTSV9CUklER0VfQ1NJX0hS RVNFVCwNCisJCSAgICBESVNQTEFZX01JWF9TRlRfUlNUTl9DU1IsIDIpLA0KKwlSRVNFVF9FTlRS WShJTVg4TU1fQ0FNRVJBX1BJWEVMX1JFU0VULA0KKwkJICAgIERJU1BMQVlfTUlYX1NGVF9SU1RO X0NTUiwgMyksDQorCVJFU0VUX0VOVFJZKElNWDhNTV9NSVBJX0NTSV9JX1BSRVNFVCwNCisJCSAg ICBESVNQTEFZX01JWF9TRlRfUlNUTl9DU1IsIDQpLA0KKwlSRVNFVF9FTlRSWShJTVg4TU1fTUlQ SV9EU0lfSV9QUkVTRVQsDQorCQkgICAgRElTUExBWV9NSVhfU0ZUX1JTVE5fQ1NSLCA1KSwNCisJ UkVTRVRfRU5UUlkoSU1YOE1NX0JVU19SU1ROX0JMS19TWU5DLA0KKwkJICAgIERJU1BMQVlfTUlY X1NGVF9SU1ROX0NTUiwgNiksDQorfTsNCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IGRpc3BtaXhf cmVzZXRfZW50cnkgaW14OG1tX2Nsa19lbltdID0gew0KKwkvKiBkaXNwbWl4IGNsb2NrIGVuYWJs ZSBlbnRyeSAqLw0KKwlSRVNFVF9FTlRSWShJTVg4TU1fQ1NJX0JSSURHRV9DU0lfSENMS19FTiwN CisJCSAgICBESVNQTEFZX01JWF9DTEtfRU5fQ1NSLCAgMCksDQorCVJFU0VUX0VOVFJZKElNWDhN TV9DU0lfQlJJREdFX1NQVV9DTEtfRU4sDQorCQkgICAgRElTUExBWV9NSVhfQ0xLX0VOX0NTUiwg IDEpLA0KKwlSRVNFVF9FTlRSWShJTVg4TU1fQ1NJX0JSSURHRV9NRU1fV1JBUFBFUl9DTEtfRU4s DQorCQkgICAgRElTUExBWV9NSVhfQ0xLX0VOX0NTUiwgIDIpLA0KKwlSRVNFVF9FTlRSWShJTVg4 TU1fQ1NJX0JSSURHRV9JUEdfQ0xLX0VOLA0KKwkJICAgIERJU1BMQVlfTUlYX0NMS19FTl9DU1Is ICAzKSwNCisJUkVTRVRfRU5UUlkoSU1YOE1NX0NTSV9CUklER0VfSVBHX0NMS19TX0VOLA0KKwkJ ICAgIERJU1BMQVlfTUlYX0NMS19FTl9DU1IsICA0KSwNCisJUkVTRVRfRU5UUlkoSU1YOE1NX0NT SV9CUklER0VfSVBHX0NMS19TX1JBV19FTiwNCisJCSAgICBESVNQTEFZX01JWF9DTEtfRU5fQ1NS LCAgNSksDQorCVJFU0VUX0VOVFJZKElNWDhNTV9MQ0RJRl9BUEJfQ0xLX0VOLA0KKwkJICAgIERJ U1BMQVlfTUlYX0NMS19FTl9DU1IsICA2KSwNCisJUkVTRVRfRU5UUlkoSU1YOE1NX0xDRElGX1BJ WEVMX0NMS19FTiwNCisJCSAgICBESVNQTEFZX01JWF9DTEtfRU5fQ1NSLCAgNyksDQorCVJFU0VU X0VOVFJZKElNWDhNTV9NSVBJX0RTSV9QQ0xLX0VOLA0KKwkJICAgIERJU1BMQVlfTUlYX0NMS19F Tl9DU1IsICA4KSwNCisJUkVTRVRfRU5UUlkoSU1YOE1NX01JUElfRFNJX0NMS1JFRl9FTiwNCisJ CSAgICBESVNQTEFZX01JWF9DTEtfRU5fQ1NSLCAgOSksDQorCVJFU0VUX0VOVFJZKElNWDhNTV9N SVBJX0NTSV9BQ0xLX0VOLA0KKwkJICAgIERJU1BMQVlfTUlYX0NMS19FTl9DU1IsIDEwKSwNCisJ UkVTRVRfRU5UUlkoSU1YOE1NX01JUElfQ1NJX1BDTEtfRU4sDQorCQkgICAgRElTUExBWV9NSVhf Q0xLX0VOX0NTUiwgMTEpLA0KKwlSRVNFVF9FTlRSWShJTVg4TU1fQlVTX0JMS19DTEtfRU4sDQor CQkgICAgRElTUExBWV9NSVhfQ0xLX0VOX0NTUiwgMTIpLA0KK307DQorDQorc3RhdGljIGNvbnN0 IHN0cnVjdCBkaXNwbWl4X3Jlc2V0X2VudHJ5IGlteDhtbV9taXBpX3JzdFtdID0gew0KKwkvKiBt aXBpIGxhbmVzIHJlc2V0IGVudHJ5ICovDQorCVJFU0VUX0VOVFJZKElNWDhNTV9NSVBJX1NfUkVT RVQsDQorCQkgICAgR1BSX01JUElfUkVTRVRfRElWLCAxNiksDQorCVJFU0VUX0VOVFJZKElNWDhN TV9NSVBJX01fUkVTRVQsDQorCQkgICAgR1BSX01JUElfUkVTRVRfRElWLCAxNyksDQorfTsNCisN CitzdGF0aWMgY29uc3Qgc3RydWN0IGRpc3BtaXhfcmVzZXRfZW50cnkgaW14OG1uX3NmdF9yc3Ru W10gPSB7DQorCS8qIGRpc3BtaXggcmVzZXQgZW50cnkgKi8NCisJUkVTRVRfRU5UUlkoSU1YOE1O X01JUElfRFNJX1BDTEtfUkVTRVQsDQorCQkgICAgRElTUExBWV9NSVhfU0ZUX1JTVE5fQ1NSLCAw KSwNCisJUkVTRVRfRU5UUlkoSU1YOE1OX01JUElfRFNJX0NMS1JFRl9SRVNFVCwNCisJCSAgICBE SVNQTEFZX01JWF9TRlRfUlNUTl9DU1IsIDEpLA0KKwlSRVNFVF9FTlRSWShJTVg4TU5fTUlQSV9D U0lfUENMS19SRVNFVCwNCisJCSAgICBESVNQTEFZX01JWF9TRlRfUlNUTl9DU1IsIDIpLA0KKwlS RVNFVF9FTlRSWShJTVg4TU5fTUlQSV9DU0lfQUNMS19SRVNFVCwNCisJCSAgICBESVNQTEFZX01J WF9TRlRfUlNUTl9DU1IsIDMpLA0KKwlSRVNFVF9FTlRSWShJTVg4TU5fTENESUZfUElYRUxfQ0xL X1JFU0VULA0KKwkJICAgIERJU1BMQVlfTUlYX1NGVF9SU1ROX0NTUiwgNCksDQorCVJFU0VUX0VO VFJZKElNWDhNTl9MQ0RJRl9BUEJfQ0xLX1JFU0VULA0KKwkJICAgIERJU1BMQVlfTUlYX1NGVF9S U1ROX0NTUiwgNSksDQorCVJFU0VUX0VOVFJZKElNWDhNTl9JU0lfUFJPQ19DTEtfUkVTRVQsDQor CQkgICAgRElTUExBWV9NSVhfU0ZUX1JTVE5fQ1NSLCA2KSwNCisJUkVTRVRfRU5UUlkoSU1YOE1O X0lTSV9BUEJfQ0xLX1JFU0VULA0KKwkJICAgIERJU1BMQVlfTUlYX1NGVF9SU1ROX0NTUiwgNyks DQorCVJFU0VUX0VOVFJZKElNWDhNTl9CVVNfQkxLX0NMS19SRVNFVCwNCisJCSAgICBESVNQTEFZ X01JWF9TRlRfUlNUTl9DU1IsIDgpLA0KK307DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBkaXNw bWl4X3Jlc2V0X2VudHJ5IGlteDhtbl9jbGtfZW5bXSA9IHsNCisJLyogZGlzcG1peCBjbG9jayBl bmFibGUgZW50cnkgKi8NCisJUkVTRVRfRU5UUlkoSU1YOE1OX01JUElfRFNJX1BDTEtfRU4sDQor CQkgICAgRElTUExBWV9NSVhfQ0xLX0VOX0NTUiwgIDApLA0KKwlSRVNFVF9FTlRSWShJTVg4TU5f TUlQSV9EU0lfQ0xLUkVGX0VOLA0KKwkJICAgIERJU1BMQVlfTUlYX0NMS19FTl9DU1IsICAxKSwN CisJUkVTRVRfRU5UUlkoSU1YOE1OX01JUElfQ1NJX1BDTEtfRU4sDQorCQkgICAgRElTUExBWV9N SVhfQ0xLX0VOX0NTUiwgIDIpLA0KKwlSRVNFVF9FTlRSWShJTVg4TU5fTUlQSV9DU0lfQUNMS19F TiwNCisJCSAgICBESVNQTEFZX01JWF9DTEtfRU5fQ1NSLCAgMyksDQorCVJFU0VUX0VOVFJZKElN WDhNTl9MQ0RJRl9QSVhFTF9DTEtfRU4sDQorCQkgICAgRElTUExBWV9NSVhfQ0xLX0VOX0NTUiwg IDQpLA0KKwlSRVNFVF9FTlRSWShJTVg4TU5fTENESUZfQVBCX0NMS19FTiwNCisJCSAgICBESVNQ TEFZX01JWF9DTEtfRU5fQ1NSLCAgNSksDQorCVJFU0VUX0VOVFJZKElNWDhNTl9JU0lfUFJPQ19D TEtfRU4sDQorCQkgICAgRElTUExBWV9NSVhfQ0xLX0VOX0NTUiwgIDYpLA0KKwlSRVNFVF9FTlRS WShJTVg4TU5fSVNJX0FQQl9DTEtfRU4sDQorCQkgICAgRElTUExBWV9NSVhfQ0xLX0VOX0NTUiwg IDcpLA0KKwlSRVNFVF9FTlRSWShJTVg4TU5fQlVTX0JMS19DTEtfRU4sDQorCQkgICAgRElTUExB WV9NSVhfQ0xLX0VOX0NTUiwgIDgpLA0KK307DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBkaXNw bWl4X3Jlc2V0X2VudHJ5IGlteDhtbl9taXBpX3JzdFtdID0gew0KKwkvKiBtaXBpIGxhbmVzIHJl c2V0IGVudHJ5ICovDQorCVJFU0VUX0VOVFJZKElNWDhNTl9NSVBJX1NfUkVTRVQsDQorCQkgICAg R1BSX01JUElfUkVTRVRfRElWLCAxNiksDQorCVJFU0VUX0VOVFJZKElNWDhNTl9NSVBJX01fUkVT RVQsDQorCQkgICAgR1BSX01JUElfUkVTRVRfRElWLCAxNyksDQorfTsNCisNCitzdGF0aWMgY29u c3Qgc3RydWN0IHJlZ21hcF9jb25maWcgc2Z0X3JzdG5fY29uZmlnID0gew0KKwkubmFtZSA9ICJz ZnRfcnN0biIsDQorCS5yZWdfYml0cyA9IDMyLA0KKwkudmFsX2JpdHMgPSAzMiwNCisJLnJlZ19z dHJpZGUgPSA0LA0KKwkubWF4X3JlZ2lzdGVyID0gMHgwMCwNCit9Ow0KKw0KK3N0YXRpYyBjb25z dCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBjbGtfZW5fY29uZmlnID0gew0KKwkubmFtZSA9ICJjbGtf ZW4iLA0KKwkucmVnX2JpdHMgPSAzMiwNCisJLnZhbF9iaXRzID0gMzIsDQorCS5yZWdfc3RyaWRl ID0gNCwNCisJLm1heF9yZWdpc3RlciA9IDB4MDAsDQorfTsNCisNCitzdGF0aWMgY29uc3Qgc3Ry dWN0IHJlZ21hcF9jb25maWcgbWlwaV9yc3RfY29uZmlnID0gew0KKwkubmFtZSA9ICJtaXBpX3Jz dCIsDQorCS5yZWdfYml0cyA9IDMyLA0KKwkudmFsX2JpdHMgPSAzMiwNCisJLnJlZ19zdHJpZGUg PSA0LA0KKwkubWF4X3JlZ2lzdGVyID0gMHgwMCwNCit9Ow0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZGlzcG1peF9yZXNldF9wZGF0YSBpbXg4bW1fc2Z0X3JzdG5fcGRhdGEgPSB7DQorCS5yZXNl dHMgICAgPSBpbXg4bW1fc2Z0X3JzdG4sDQorCS5ucl9yZXNldHMgPSBJTVg4TU1fRElTUE1JWF9T RlRfUlNUTl9OVU0sDQorCS5jb25maWcgICAgPSAmc2Z0X3JzdG5fY29uZmlnLA0KK307DQorDQor c3RhdGljIGNvbnN0IHN0cnVjdCBkaXNwbWl4X3Jlc2V0X3BkYXRhIGlteDhtbV9jbGtfZW5fcGRh dGEgPSB7DQorCS5yZXNldHMgICAgPSBpbXg4bW1fY2xrX2VuLA0KKwkubnJfcmVzZXRzID0gSU1Y OE1NX0RJU1BNSVhfQ0xLX0VOX05VTSwNCisJLmNvbmZpZyAgICA9ICZjbGtfZW5fY29uZmlnLA0K K307DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBkaXNwbWl4X3Jlc2V0X3BkYXRhIGlteDhtbV9t aXBpX3JzdF9wZGF0YSA9IHsNCisJLnJlc2V0cyAgICA9IGlteDhtbV9taXBpX3JzdCwNCisJLm5y X3Jlc2V0cyA9IElNWDhNTV9NSVBJX1JFU0VUX05VTSwNCisJLmNvbmZpZyAgICA9ICZtaXBpX3Jz dF9jb25maWcsDQorfTsNCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IGRpc3BtaXhfcmVzZXRfcGRh dGEgaW14OG1uX3NmdF9yc3RuX3BkYXRhID0gew0KKwkucmVzZXRzICAgID0gaW14OG1uX3NmdF9y c3RuLA0KKwkubnJfcmVzZXRzID0gSU1YOE1OX0RJU1BNSVhfU0ZUX1JTVE5fTlVNLA0KKwkuY29u ZmlnICAgID0gJnNmdF9yc3RuX2NvbmZpZywNCit9Ow0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZGlzcG1peF9yZXNldF9wZGF0YSBpbXg4bW5fY2xrX2VuX3BkYXRhID0gew0KKwkucmVzZXRzICAg ID0gaW14OG1uX2Nsa19lbiwNCisJLm5yX3Jlc2V0cyA9IElNWDhNTl9ESVNQTUlYX0NMS19FTl9O VU0sDQorCS5jb25maWcgICAgPSAmY2xrX2VuX2NvbmZpZywNCit9Ow0KKw0KK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZGlzcG1peF9yZXNldF9wZGF0YSBpbXg4bW5fbWlwaV9yc3RfcGRhdGEgPSB7DQor CS5yZXNldHMgICAgPSBpbXg4bW5fbWlwaV9yc3QsDQorCS5ucl9yZXNldHMgPSBJTVg4TU5fTUlQ SV9SRVNFVF9OVU0sDQorCS5jb25maWcgICAgPSAmbWlwaV9yc3RfY29uZmlnLA0KK307DQorDQor c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZGlzcG1peF9yZXNldF9kdF9pZHNbXSA9 IHsNCisJew0KKwkJLmNvbXBhdGlibGUgPSAiZnNsLGlteDhtbS1kaXNwbWl4LXNmdC1yc3RuIiwN CisJCS5kYXRhID0gJmlteDhtbV9zZnRfcnN0bl9wZGF0YSwNCisJfSwNCisJew0KKwkJLmNvbXBh dGlibGUgPSAiZnNsLGlteDhtbS1kaXNwbWl4LWNsay1lbiIsDQorCQkuZGF0YSA9ICZpbXg4bW1f Y2xrX2VuX3BkYXRhLA0KKwl9LA0KKwl7DQorCQkuY29tcGF0aWJsZSA9ICJmc2wsaW14OG1tLWRp c3BtaXgtbWlwaS1yc3QiLA0KKwkJLmRhdGEgPSAmaW14OG1tX21pcGlfcnN0X3BkYXRhLA0KKwl9 LA0KKwl7DQorCQkuY29tcGF0aWJsZSA9ICJmc2wsaW14OG1uLWRpc3BtaXgtc2Z0LXJzdG4iLA0K KwkJLmRhdGEgPSAmaW14OG1uX3NmdF9yc3RuX3BkYXRhLA0KKwl9LA0KKwl7DQorCQkuY29tcGF0 aWJsZSA9ICJmc2wsaW14OG1uLWRpc3BtaXgtY2xrLWVuIiwNCisJCS5kYXRhID0gJmlteDhtbl9j bGtfZW5fcGRhdGEsDQorCX0sDQorCXsNCisJCS5jb21wYXRpYmxlID0gImZzbCxpbXg4bW4tZGlz cG1peC1taXBpLXJzdCIsDQorCQkuZGF0YSA9ICZpbXg4bW5fbWlwaV9yc3RfcGRhdGEsDQorCX0s DQorCXsgLyogc2VudGluZWwgKi8gfQ0KK307DQorTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZGlz cG1peF9yZXNldF9kdF9pZHMpOw0KKw0KK3N0YXRpYyBpbnQgZGlzcG1peF9yZXNldF9hc3NlcnQo c3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2ICpyY2RldiwNCisJCQkJdW5zaWduZWQgbG9uZyBp ZCkNCit7DQorCXN0cnVjdCBkaXNwbWl4X3Jlc2V0X2NvbnRyb2xsZXIgKmRyY2RldjsNCisJY29u c3Qgc3RydWN0IG9mX2RldmljZV9pZCAqb2ZfaWQ7DQorCWNvbnN0IHN0cnVjdCBkaXNwbWl4X3Jl c2V0X3BkYXRhICpwZGF0YTsNCisJY29uc3Qgc3RydWN0IGRpc3BtaXhfcmVzZXRfZW50cnkgKnJz dGVudDsNCisJc3RydWN0IHJlZ21hcCAqcnN0Y29uOw0KKw0KKwlpZiAoaWQgPj0gcmNkZXYtPm5y X3Jlc2V0cykgew0KKwkJcHJfaW5mbygiZGlzcG1peCByZXNldDogJWx1IGlzIG5vdCBhIHZhbGlk IGxpbmVcbiIsIGlkKTsNCisJCXJldHVybiAtRUlOVkFMOw0KKwl9DQorDQorCWRyY2RldiA9IGNv bnRhaW5lcl9vZihyY2Rldiwgc3RydWN0IGRpc3BtaXhfcmVzZXRfY29udHJvbGxlciwgcmNkZXYp Ow0KKwlvZl9pZCAgPSBvZl9tYXRjaF9kZXZpY2UoZGlzcG1peF9yZXNldF9kdF9pZHMsIGRyY2Rl di0+ZGV2KTsNCisJcGRhdGEgPSBvZl9pZC0+ZGF0YTsNCisNCisJcnN0Y29uID0gZHJjZGV2LT5y c3Rjb247DQorCXJzdGVudCA9ICZwZGF0YS0+cmVzZXRzW2lkXTsNCisNCisJcG1fcnVudGltZV9n ZXRfc3luYyhkcmNkZXYtPmRldik7DQorCXJlZ21hcF91cGRhdGVfYml0cyhyc3Rjb24sIHJzdGVu dC0+cmVnX29mZiwNCisJCQkgICAxIDw8IHJzdGVudC0+Yml0X29mZiwNCisJCQkgICAhZHJjZGV2 LT5hY3RpdmVfbG93IDw8IHJzdGVudC0+Yml0X29mZik7DQorCXBtX3J1bnRpbWVfcHV0KGRyY2Rl di0+ZGV2KTsNCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgZGlzcG1peF9yZXNl dF9kZWFzc2VydChzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYgKnJjZGV2LA0KKwkJCQkgIHVu c2lnbmVkIGxvbmcgaWQpDQorew0KKwlzdHJ1Y3QgZGlzcG1peF9yZXNldF9jb250cm9sbGVyICpk cmNkZXY7DQorCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm9mX2lkOw0KKwljb25zdCBzdHJ1 Y3QgZGlzcG1peF9yZXNldF9wZGF0YSAqcGRhdGE7DQorCWNvbnN0IHN0cnVjdCBkaXNwbWl4X3Jl c2V0X2VudHJ5ICpyc3RlbnQ7DQorCXN0cnVjdCByZWdtYXAgKnJzdGNvbjsNCisNCisJaWYgKGlk ID49IHJjZGV2LT5ucl9yZXNldHMpIHsNCisJCXByX2luZm8oImRpc3BtaXggcmVzZXQ6ICVsdSBp cyBub3QgYSB2YWxpZCBsaW5lXG4iLCBpZCk7DQorCQlyZXR1cm4gLUVJTlZBTDsNCisJfQ0KKw0K KwlkcmNkZXYgPSBjb250YWluZXJfb2YocmNkZXYsIHN0cnVjdCBkaXNwbWl4X3Jlc2V0X2NvbnRy b2xsZXIsIHJjZGV2KTsNCisJb2ZfaWQgID0gb2ZfbWF0Y2hfZGV2aWNlKGRpc3BtaXhfcmVzZXRf ZHRfaWRzLCBkcmNkZXYtPmRldik7DQorCXBkYXRhID0gb2ZfaWQtPmRhdGE7DQorDQorCXJzdGNv biA9IGRyY2Rldi0+cnN0Y29uOw0KKwlyc3RlbnQgPSAmcGRhdGEtPnJlc2V0c1tpZF07DQorDQor CXBtX3J1bnRpbWVfZ2V0X3N5bmMoZHJjZGV2LT5kZXYpOw0KKwlyZWdtYXBfdXBkYXRlX2JpdHMo cnN0Y29uLCByc3RlbnQtPnJlZ19vZmYsDQorCQkJICAgMSA8PCByc3RlbnQtPmJpdF9vZmYsDQor CQkJICAgISFkcmNkZXYtPmFjdGl2ZV9sb3cgPDwgcnN0ZW50LT5iaXRfb2ZmKTsNCisJcG1fcnVu dGltZV9wdXQoZHJjZGV2LT5kZXYpOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGNv bnN0IHN0cnVjdCByZXNldF9jb250cm9sX29wcyBkaXNwbWl4X3Jlc2V0X29wcyA9IHsNCisJLmFz c2VydCAgID0gZGlzcG1peF9yZXNldF9hc3NlcnQsDQorCS5kZWFzc2VydCA9IGRpc3BtaXhfcmVz ZXRfZGVhc3NlcnQsDQorfTsNCisNCitzdGF0aWMgaW50IGRpc3BtaXhfcmVzZXRfcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCit7DQorCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZw ZGV2LT5kZXY7DQorCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBkZXYtPm9mX25vZGU7DQorCWNv bnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm9mX2lkOw0KKwlzdHJ1Y3QgZGlzcG1peF9yZXNldF9j b250cm9sbGVyICpkcmNkZXY7DQorCWNvbnN0IHN0cnVjdCBkaXNwbWl4X3Jlc2V0X3BkYXRhICpw ZGF0YTsNCisJc3RydWN0IHJlc291cmNlICpyZXM7DQorCXZvaWQgX19pb21lbSAqcmVnczsNCisJ c3RydWN0IHJlZ21hcCAqcmVnbWFwOw0KKwlzdHJ1Y3QgY2xrICphcGJfY2xrOw0KKw0KKwlkcmNk ZXYgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmRyY2RldiksIEdGUF9LRVJORUwpOw0KKwlp ZiAoIWRyY2RldikNCisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwlyZXMgPSBwbGF0Zm9ybV9nZXRf cmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOw0KKwlpZiAoIXJlcykNCisJCXJldHVy biAtRU5PREVWOw0KKw0KKwlyZWdzID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgcmVzKTsN CisJaWYgKElTX0VSUihyZWdzKSkNCisJCXJldHVybiBQVFJfRVJSKHJlZ3MpOw0KKw0KKwlhcGJf Y2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgImRpc3AtYXBiIik7DQorCWlmIChJU19FUlIoYXBiX2Ns aykpIHsNCisJCWRldl9lcnIoZGV2LCAiVW5hYmxlIHRvIGdldCBkaXNwIGFwYiBjbG9ja1xuIik7 DQorCQlyZXR1cm4gUFRSX0VSUihhcGJfY2xrKTsNCisJfQ0KKw0KKwlkcmNkZXYtPmFjdGl2ZV9s b3cgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsICJhY3RpdmVfbG93Iik7DQorDQorCW9mX2lk ID0gb2ZfbWF0Y2hfZGV2aWNlKGRpc3BtaXhfcmVzZXRfZHRfaWRzLCBkZXYpOw0KKwlwZGF0YSA9 IG9mX2lkLT5kYXRhOw0KKw0KKwkvKiBpbml0IG1taW8gcmVnbWFwICovDQorCXJlZ21hcCA9IGRl dm1fcmVnbWFwX2luaXRfbW1pb19jbGsoZGV2LCBfX2Nsa19nZXRfbmFtZShhcGJfY2xrKSwNCisJ CQkJCSAgIHJlZ3MsIHBkYXRhLT5jb25maWcpOw0KKwlpZiAoSVNfRVJSKHJlZ21hcCkpIHsNCisJ CWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGluaXQgbW1pbyByZWdtYXA6ICVsZFxuIiwNCisJCQlQ VFJfRVJSKHJlZ21hcCkpOw0KKwkJcmV0dXJuIFBUUl9FUlIocmVnbWFwKTsNCisJfQ0KKwlkcmNk ZXYtPnJzdGNvbiA9IHJlZ21hcDsNCisNCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgZHJj ZGV2KTsNCisJcG1fcnVudGltZV9lbmFibGUoZGV2KTsNCisNCisJLyogcmVnaXN0ZXIgcmVzZXQg Y29udHJvbGxlciAqLw0KKwlkcmNkZXYtPmRldiA9IGRldjsNCisJZHJjZGV2LT5yY2Rldi5vZl9u b2RlID0gZGV2LT5vZl9ub2RlOw0KKwlkcmNkZXYtPnJjZGV2Lm93bmVyID0gVEhJU19NT0RVTEU7 DQorCWRyY2Rldi0+cmNkZXYubnJfcmVzZXRzID0gcGRhdGEtPm5yX3Jlc2V0czsNCisJZHJjZGV2 LT5yY2Rldi5vcHMgPSAmZGlzcG1peF9yZXNldF9vcHM7DQorDQorCXJldHVybiBkZXZtX3Jlc2V0 X2NvbnRyb2xsZXJfcmVnaXN0ZXIoZGV2LCAmZHJjZGV2LT5yY2Rldik7DQorfQ0KKw0KK3N0YXRp YyBpbnQgZGlzcG1peF9yZXNldF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikN Cit7DQorCXBtX3J1bnRpbWVfZGlzYWJsZSgmcGRldi0+ZGV2KTsNCisJcGxhdGZvcm1fc2V0X2Ry dmRhdGEocGRldiwgTlVMTCk7DQorDQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgc3RydWN0 IHBsYXRmb3JtX2RyaXZlciBkaXNwbWl4X3Jlc2V0X2RyaXZlciA9IHsNCisJLnByb2JlICA9IGRp c3BtaXhfcmVzZXRfcHJvYmUsDQorCS5yZW1vdmUgPSBkaXNwbWl4X3Jlc2V0X3JlbW92ZSwNCisJ LmRyaXZlciA9IHsNCisJCS5uYW1lICA9IERSSVZFUl9OQU1FLA0KKwkJLm93bmVyID0gVEhJU19N T0RVTEUsDQorCQkub2ZfbWF0Y2hfdGFibGUgPSBvZl9tYXRjaF9wdHIoZGlzcG1peF9yZXNldF9k dF9pZHMpLA0KKwl9LA0KK307DQorDQorYnVpbHRpbl9wbGF0Zm9ybV9kcml2ZXIoZGlzcG1peF9y ZXNldF9kcml2ZXIpOw0KKw0KK01PRFVMRV9ERVNDUklQVElPTigiSU1YIERpc3BsYXkgTWl4IHJl c2V0IGRyaXZlciIpOw0KK01PRFVMRV9BVVRIT1IoIkZhbmN5IEZhbmcgPGNoZW4uZmFuZ0BueHAu Y29tPiIpOw0KK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2R0 LWJpbmRpbmdzL3Jlc2V0L2lteDhtbS1kaXNwbWl4LmggYi9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jl c2V0L2lteDhtbS1kaXNwbWl4LmgNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw MDAwMDAuLjNhZjEzN2IxYmZlMg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvaW5jbHVkZS9kdC1iaW5k aW5ncy9yZXNldC9pbXg4bW0tZGlzcG1peC5oDQpAQCAtMCwwICsxLDQ5IEBADQorLyoNCisgKiBD b3B5cmlnaHQgMjAxOSBOWFANCisgKg0KKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQorICogaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkN CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRo ZSBMaWNlbnNlLCBvcg0KKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQor ICoNCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwNCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCisgKiBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KKyAqLw0KKw0KKyNpZm5kZWYgX19JTVg4TU1f RElTUE1JWF9IX18NCisjZGVmaW5lIF9fSU1YOE1NX0RJU1BNSVhfSF9fDQorDQorLyogRElTUE1J WCBzb2Z0IHJlc2V0ICovDQorI2RlZmluZSBJTVg4TU1fQ1NJX0JSSURHRV9DSElQX1JFU0VUCQkJ MA0KKyNkZWZpbmUgSU1YOE1NX0NTSV9CUklER0VfSVBHX0hBUkRfQVNZTkNfUkVTRVQJCTENCisj ZGVmaW5lIElNWDhNTV9DU0lfQlJJREdFX0NTSV9IUkVTRVQJCQkyDQorI2RlZmluZSBJTVg4TU1f Q0FNRVJBX1BJWEVMX1JFU0VUCQkJMw0KKyNkZWZpbmUgSU1YOE1NX01JUElfQ1NJX0lfUFJFU0VU CQkJNA0KKyNkZWZpbmUgSU1YOE1NX01JUElfRFNJX0lfUFJFU0VUCQkJNQ0KKyNkZWZpbmUgSU1Y OE1NX0JVU19SU1ROX0JMS19TWU5DCQkJNg0KKyNkZWZpbmUgSU1YOE1NX0RJU1BNSVhfU0ZUX1JT VE5fTlVNCQkJNw0KKw0KKy8qIERJU1BNSVggY2xvY2sgc29mdCBlbmFibGUgKi8NCisjZGVmaW5l IElNWDhNTV9DU0lfQlJJREdFX0NTSV9IQ0xLX0VOCQkJMA0KKyNkZWZpbmUgSU1YOE1NX0NTSV9C UklER0VfU1BVX0NMS19FTgkJCTENCisjZGVmaW5lIElNWDhNTV9DU0lfQlJJREdFX01FTV9XUkFQ UEVSX0NMS19FTgkJMg0KKyNkZWZpbmUgSU1YOE1NX0NTSV9CUklER0VfSVBHX0NMS19FTgkJCTMN CisjZGVmaW5lIElNWDhNTV9DU0lfQlJJREdFX0lQR19DTEtfU19FTgkJCTQNCisjZGVmaW5lIElN WDhNTV9DU0lfQlJJREdFX0lQR19DTEtfU19SQVdfRU4JCTUNCisjZGVmaW5lIElNWDhNTV9MQ0RJ Rl9BUEJfQ0xLX0VOCQkJCTYNCisjZGVmaW5lIElNWDhNTV9MQ0RJRl9QSVhFTF9DTEtfRU4JCQk3 DQorI2RlZmluZSBJTVg4TU1fTUlQSV9EU0lfUENMS19FTgkJCQk4DQorI2RlZmluZSBJTVg4TU1f TUlQSV9EU0lfQ0xLUkVGX0VOCQkJOQ0KKyNkZWZpbmUgSU1YOE1NX01JUElfQ1NJX0FDTEtfRU4J CQkJMTANCisjZGVmaW5lIElNWDhNTV9NSVBJX0NTSV9QQ0xLX0VOCQkJCTExDQorI2RlZmluZSBJ TVg4TU1fQlVTX0JMS19DTEtfRU4JCQkJMTINCisjZGVmaW5lIElNWDhNTV9ESVNQTUlYX0NMS19F Tl9OVU0JCQkxMw0KKw0KKy8qIE1JUEkgcmVzZXQgKi8NCisjZGVmaW5lIElNWDhNTV9NSVBJX1Nf UkVTRVQJCQkJMA0KKyNkZWZpbmUgSU1YOE1NX01JUElfTV9SRVNFVAkJCQkxDQorI2RlZmluZSBJ TVg4TU1fTUlQSV9SRVNFVF9OVU0JCQkJMg0KKw0KKyNlbmRpZg0KZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHQtYmluZGluZ3MvcmVzZXQvaW14OG1uLWRpc3BtaXguaCBiL2luY2x1ZGUvZHQtYmluZGlu Z3MvcmVzZXQvaW14OG1uLWRpc3BtaXguaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAwMDAwMC4uODcwM2ViZTdkNGIyDQotLS0gL2Rldi9udWxsDQorKysgYi9pbmNsdWRlL2R0 LWJpbmRpbmdzL3Jlc2V0L2lteDhtbi1kaXNwbWl4LmgNCkBAIC0wLDAgKzEsNDcgQEANCisvKg0K KyAqIENvcHlyaWdodCAyMDE5IE5YUA0KKyAqDQorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCisgKiBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQ0KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIg b2YgdGhlIExpY2Vuc2UsIG9yDQorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4NCisgKg0KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLA0KKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KKyAqIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQorICovDQorDQorI2lmbmRlZiBfX0lN WDhNTl9ESVNQTUlYX0hfXw0KKyNkZWZpbmUgX19JTVg4TU5fRElTUE1JWF9IX18NCisNCisvKiBE SVNQTUlYIHNvZnQgcmVzZXQgKi8NCisjZGVmaW5lIElNWDhNTl9NSVBJX0RTSV9QQ0xLX1JFU0VU CQkJMA0KKyNkZWZpbmUgSU1YOE1OX01JUElfRFNJX0NMS1JFRl9SRVNFVAkJCTENCisjZGVmaW5l IElNWDhNTl9NSVBJX0NTSV9QQ0xLX1JFU0VUCQkJMg0KKyNkZWZpbmUgSU1YOE1OX01JUElfQ1NJ X0FDTEtfUkVTRVQJCQkzDQorI2RlZmluZSBJTVg4TU5fTENESUZfUElYRUxfQ0xLX1JFU0VUCQkJ NA0KKyNkZWZpbmUgSU1YOE1OX0xDRElGX0FQQl9DTEtfUkVTRVQJCQk1DQorI2RlZmluZSBJTVg4 TU5fSVNJX1BST0NfQ0xLX1JFU0VUCQkJNg0KKyNkZWZpbmUgSU1YOE1OX0lTSV9BUEJfQ0xLX1JF U0VUCQkJNw0KKyNkZWZpbmUgSU1YOE1OX0JVU19CTEtfQ0xLX1JFU0VUCQkJOA0KKyNkZWZpbmUg SU1YOE1OX0RJU1BNSVhfU0ZUX1JTVE5fTlVNCQkJOQ0KKw0KKy8qIERJU1BNSVggY2xvY2sgc29m dCBlbmFibGUgKi8NCisjZGVmaW5lIElNWDhNTl9NSVBJX0RTSV9QQ0xLX0VOCQkJCTANCisjZGVm aW5lIElNWDhNTl9NSVBJX0RTSV9DTEtSRUZfRU4JCQkxDQorI2RlZmluZSBJTVg4TU5fTUlQSV9D U0lfUENMS19FTgkJCQkyDQorI2RlZmluZSBJTVg4TU5fTUlQSV9DU0lfQUNMS19FTgkJCQkzDQor I2RlZmluZSBJTVg4TU5fTENESUZfUElYRUxfQ0xLX0VOCQkJNA0KKyNkZWZpbmUgSU1YOE1OX0xD RElGX0FQQl9DTEtfRU4JCQkJNQ0KKyNkZWZpbmUgSU1YOE1OX0lTSV9QUk9DX0NMS19FTgkJCQk2 DQorI2RlZmluZSBJTVg4TU5fSVNJX0FQQl9DTEtfRU4JCQkJNw0KKyNkZWZpbmUgSU1YOE1OX0JV U19CTEtfQ0xLX0VOCQkJCTgNCisjZGVmaW5lIElNWDhNTl9ESVNQTUlYX0NMS19FTl9OVU0JCQk5 DQorDQorLyogTUlQSSByZXNldCAqLw0KKyNkZWZpbmUgSU1YOE1OX01JUElfU19SRVNFVAkJCQkw DQorI2RlZmluZSBJTVg4TU5fTUlQSV9NX1JFU0VUCQkJCTENCisjZGVmaW5lIElNWDhNTl9NSVBJ X1JFU0VUX05VTQkJCQkyDQorDQorI2VuZGlmDQotLSANCjIuMTcuMQ0KDQo=