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 X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B0CCBC433DF for ; Sun, 24 May 2020 06:55:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 75EDD2076C for ; Sun, 24 May 2020 06:55:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="jfFX7gAp" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726796AbgEXGzK (ORCPT ); Sun, 24 May 2020 02:55:10 -0400 Received: from mail-am6eur05on2058.outbound.protection.outlook.com ([40.107.22.58]:7520 "EHLO EUR05-AM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726331AbgEXGzK (ORCPT ); Sun, 24 May 2020 02:55:10 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M8of0X1Qvh1q9DBZbYiyhppExsR25Gue2OTmUTNiES2Nu0OY+ld8tje7x/84cW38ugCA71uW/h9VWZQzAvdARWO9l9xu7H+Llx8gLdsImrrk7L9922fSecdKy9OJXt7P775jnsNrY9f0jt4BYXKg51T6g0xHlsZUxkInRJh0bHsfs/oLpnuLrz4nx1hwrq0r496JuLnLXFufdX6KRb0g1TXvtq0+d+HhrdDMz9FYC+EQTG5SpJLfPBAygy/Wut/5av3Xdie6UEE8m/pT+18NvDi/jAJnD1mLVqN1E+IUBU+ftaDkK3YM9hYfN/MpClxMpKSoZJ40eTc5HAfFovVGog== 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=0a5EBCyrfc0ClxBkUPzIlHia1cKD5rQppi9kO/PvYHA=; b=hawqJEGFWs/kRg/nduMX9fRfhIgHowfL/giShOGpAC8gNVIu4XPpeW8ctXR3ekbcGMsbr2e5lg+MPqHZzo2rXTndnsIbYF/wr6iAiGTHaWYhTk3oP1lmnoHgLFfgM0EBpkzzhFjCcSiIugo1N/qs3wzUktZHrvL+yH/wq38dQ2mvk34bVBigctk6HCk2JnqaY3xD2RYjNNuhAvsOja9GJxqUBdbLSkQlnAMEVTFVV7fHnHvZl/sRfqumsc3IUlfQaG2OH0IQZ8ul/TdFDPkbGpvWealmyRUIAqtJ28YEB9tIz6fCVAJVh8GEqx+J3p/pwqutbJQ8ahJb5ll1Jlt52g== 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=0a5EBCyrfc0ClxBkUPzIlHia1cKD5rQppi9kO/PvYHA=; b=jfFX7gApxg4NAliKigNqn3IVzuQqfL8tSyWt8v3XVDM+7NpK6A2zrFjFOwks6ubHxd63yijn1oJtVwFy6qiNqC29AYGCyWCF4gDsBSvchWPR8gIjkWh1e9EGHwaWjaRPju56geIyp5Ztm/KrtNTH2MGxjSnHJ9jzO3Z0HGs9YJU= Received: from VE1PR04MB6528.eurprd04.prod.outlook.com (2603:10a6:803:127::18) by VE1PR04MB6621.eurprd04.prod.outlook.com (2603:10a6:803:124::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.27; Sun, 24 May 2020 06:55:03 +0000 Received: from VE1PR04MB6528.eurprd04.prod.outlook.com ([fe80::5086:ae9e:6397:6b03]) by VE1PR04MB6528.eurprd04.prod.outlook.com ([fe80::5086:ae9e:6397:6b03%7]) with mapi id 15.20.3021.027; Sun, 24 May 2020 06:55:03 +0000 From: Jun Li To: Peter Chen , "balbi@kernel.org" , "mathias.nyman@intel.com" CC: "linux-usb@vger.kernel.org" , dl-linux-imx , "pawell@cadence.com" , "rogerq@ti.com" , "gregkh@linuxfoundation.org" Subject: RE: [PATCH v2 3/9] usb: cdns3: imx: add glue layer runtime pm implementation Thread-Topic: [PATCH v2 3/9] usb: cdns3: imx: add glue layer runtime pm implementation Thread-Index: AQHWMVkaawxrIYli+kyhyo0vdyA6c6i2vetg Date: Sun, 24 May 2020 06:55:02 +0000 Message-ID: References: <20200523232304.23976-1-peter.chen@nxp.com> <20200523232304.23976-4-peter.chen@nxp.com> In-Reply-To: <20200523232304.23976-4-peter.chen@nxp.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=none action=none header.from=nxp.com; x-originating-ip: [119.31.174.68] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: bd6616df-9427-4446-3aa5-08d7ffaf6251 x-ms-traffictypediagnostic: VE1PR04MB6621: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5797; x-forefront-prvs: 0413C9F1ED x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 7SVKZNADAG8Y5knoRKTbXk92NsWvZ5i37fIupim4yFKGoMCzq9X1xO61igvaax5GdFLz7DnfA5PWT9qUbdJGxRUNntBr+g2CmiVQ/C7GWUQGfi3RAydX61oFyWNGjx+oZKSwMnXKR05E6Rlhhq2tQZpbKkrzrvGu6TkBsFT5w9eMR5kCfcNikOkVdC/JineumyHzgWJ282LyRhlCtjpmPM1kV6/E/MtO3RQ0lNknGj/6vVyk/xioQEnBmh98DwCW8iTpdY7oOeoIvL7IW7bPDVuhXn7oZgjocWEEno17F4F0ayk405Kg3bwWh4lRc7lqrlYVL1/sPKGRihkYN6wW7A== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6528.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(376002)(39850400004)(396003)(346002)(366004)(136003)(5660300002)(66446008)(6506007)(64756008)(52536014)(8676002)(44832011)(53546011)(186003)(66476007)(86362001)(2906002)(26005)(66556008)(66946007)(76116006)(4326008)(33656002)(71200400001)(8936002)(55016002)(9686003)(110136005)(478600001)(54906003)(7696005)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: gGddPlZ//xt9bsuzVL8z4lWsYTMJ6PCFu4BDU0bMUL+lABxvaEs+2MdWamrvlKsYbRNC+JK5NY9Dle0iaQKRJ9c+omBoAW8tIVx3ZcsdxW6MegJECKjLJ7susiFfAO3bUcpK90GibtAwmRJqSy1Ei4n3JRyON9kFlJ0C+0nHpySVS70OucJ00HOJr6wJUUvnsxcmZO8DZYncJyYlsmcDtbfkCKynCg5d8m0CG6Rgnh+D358HvSwY55Iaqx8jURNJ/I7BwdDv3rxPfJ/RSfZbPIywHrUp/oQFFV8kLbOZGW/6QiibU8URimMO/adUUehg8hfSV3eQSdukGdIvMUt4jlzDdaNzSA591ouGUFbM7D//9uyPZDg5P6Vk3kwQEcYE0DMd8pCxgEBkLe7x4bwraAqVPYzAfXlHRSQzeN+jzfRLr0sddhZtwLp/KT++Q53JhF5RIVbt6XgPQDl28radHPy81ZVuo8RAJS1OxFxLdZQ= Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: bd6616df-9427-4446-3aa5-08d7ffaf6251 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 May 2020 06:55:02.8185 (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: mYtld/gkcsS9PZ2/nLogv7ynGvle9qaBq27oSoavBwtO2TijcHGgU711U8ODwb3J X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6621 Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org SGkNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBQZXRlciBDaGVuIDxw ZXRlci5jaGVuQG54cC5jb20+DQo+IFNlbnQ6IDIwMjDE6jXUwjI0yNUgNzoyMw0KPiBUbzogYmFs YmlAa2VybmVsLm9yZzsgbWF0aGlhcy5ueW1hbkBpbnRlbC5jb20NCj4gQ2M6IGxpbnV4LXVzYkB2 Z2VyLmtlcm5lbC5vcmc7IGRsLWxpbnV4LWlteCA8bGludXgtaW14QG54cC5jb20+Ow0KPiBwYXdl bGxAY2FkZW5jZS5jb207IHJvZ2VycUB0aS5jb207IGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3Jn OyBKdW4gTGkNCj4gPGp1bi5saUBueHAuY29tPjsgUGV0ZXIgQ2hlbiA8cGV0ZXIuY2hlbkBueHAu Y29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjIgMy85XSB1c2I6IGNkbnMzOiBpbXg6IGFkZCBnbHVl IGxheWVyIHJ1bnRpbWUgcG0gaW1wbGVtZW50YXRpb24NCj4gDQo+IEFkZCBpbXggZ2x1ZSBsYXll ciBydW50aW1lIHBtIGltcGxlbWVudGF0aW9uLCBhbmQgdGhlIHJ1bnRpbWUgcG0gaXMgZGVmYXVs dCBvZmYuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBQZXRlciBDaGVuIDxwZXRlci5jaGVuQG54cC5j b20+DQo+IC0tLQ0KPiAgZHJpdmVycy91c2IvY2RuczMvY2RuczMtaW14LmMgfCAxNzkgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDE3NyBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNi L2NkbnMzL2NkbnMzLWlteC5jIGIvZHJpdmVycy91c2IvY2RuczMvY2RuczMtaW14LmMgaW5kZXgN Cj4gYWJhOTg4ZTcxOTU4Li45ZDI0N2RlOGU3ZWIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvdXNi L2NkbnMzL2NkbnMzLWlteC5jDQo+ICsrKyBiL2RyaXZlcnMvdXNiL2NkbnMzL2NkbnMzLWlteC5j DQo+IEBAIC0xNSw2ICsxNSw4IEBADQo+ICAjaW5jbHVkZSA8bGludXgvaW8uaD4NCj4gICNpbmNs dWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L2lvcG9sbC5oPg0K PiArI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4NCj4gKyNpbmNsdWRlICJjb3JlLmgiDQo+ IA0KPiAgI2RlZmluZSBVU0IzX0NPUkVfQ1RSTDEgICAgMHgwMA0KPiAgI2RlZmluZSBVU0IzX0NP UkVfQ1RSTDIgICAgMHgwNA0KPiBAQCAtNjYsMTEgKzY4LDMwIEBADQo+ICAjZGVmaW5lIENMS19W QUxJRF9DT01QQVJFX0JJVFMJKDB4ZiA8PCAyOCkNCg0KR0VOTUFTSygzMSwgMjgpDQoNCj4gICNk ZWZpbmUgUEhZX1JFRkNMS19SRVEJCSgxIDw8IDApDQoNCkJJVCgwKSwgYWxzbyBmb3Igb3RoZXJz DQoNCj4gDQo+ICsvKiBPVEcgcmVnaXN0ZXJzIGRlZmluaXRpb24gKi8NCj4gKyNkZWZpbmUgT1RH U1RTCQkweDQNCj4gKy8qIE9UR1NUUyAqLw0KPiArI2RlZmluZSBPVEdfTlJEWQkoMSA8PCAxMSkN Cj4gKw0KPiArLyogeEhDSSByZWdpc3RlcnMgZGVmaW5pdGlvbiAgKi8NCj4gKyNkZWZpbmUgWEVD UF9QTV9QTUNTUgkJMHg4MDE4DQo+ICsjZGVmaW5lIFhFQ1BfQVVYX0NUUkxfUkVHMQkweDgxMjAN Cj4gKw0KPiArLyogUmVnaXN0ZXIgYml0cyBkZWZpbml0aW9uICovDQo+ICsvKiBYRUNQX0FVWF9D VFJMX1JFRzEgKi8NCj4gKyNkZWZpbmUgQ0ZHX1JYREVUX1AzX0VOCQkoMSA8PCAxNSkNCj4gKw0K PiArLyogWEVDUF9QTV9QTUNTUiAqLw0KPiArI2RlZmluZSBQU19NQVNLCQkJKDMgPDwgMCkNCj4g KyNkZWZpbmUgUFNfRDAJCQkwDQo+ICsjZGVmaW5lIFBTX0QxCQkJKDEgPDwgMCkNCj4gKw0KPiAg c3RydWN0IGNkbnNfaW14IHsNCj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXY7DQo+ICAJdm9pZCBfX2lv bWVtICpub25jb3JlOw0KPiAgCXN0cnVjdCBjbGtfYnVsa19kYXRhICpjbGtzOw0KPiAgCWludCBu dW1fY2xrczsNCj4gKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpjZG5zM19wZGV2Ow0KPiAgfTsN Cj4gDQo+ICBzdGF0aWMgaW5saW5lIHUzMiBjZG5zX2lteF9yZWFkbChzdHJ1Y3QgY2Ruc19pbXgg KmRhdGEsIHUzMiBvZmZzZXQpIEBAIC0xMjYsNg0KPiArMTQ3LDIwIEBAIHN0YXRpYyBpbnQgY2Ru c19pbXhfbm9uY29yZV9pbml0KHN0cnVjdCBjZG5zX2lteCAqZGF0YSkNCj4gIAlyZXR1cm4gcmV0 Ow0KPiAgfQ0KPiANCj4gK3N0YXRpYyBpbnQgY2Ruc19pbXhfcGxhdGZvcm1fc3VzcGVuZChzdHJ1 Y3QgZGV2aWNlICpkZXYsDQo+ICsJYm9vbCBzdXNwZW5kLCBib29sIHdha2V1cCk7DQo+ICtzdGF0 aWMgc3RydWN0IGNkbnMzX3BsYXRmb3JtX2RhdGEgY2Ruc19pbXhfcGRhdGEgPSB7DQo+ICsJLnBs YXRmb3JtX3N1c3BlbmQgPSBjZG5zX2lteF9wbGF0Zm9ybV9zdXNwZW5kLCB9Ow0KPiArDQo+ICtz dGF0aWMgc3RydWN0IG9mX2Rldl9hdXhkYXRhIGNkbnNfaW14X2F1eGRhdGFbXSA9IHsNCj4gKwl7 DQo+ICsJLmNvbXBhdGlibGUgPSAiY2Rucyx1c2IzIiwNCj4gKwkucGxhdGZvcm1fZGF0YSA9ICZj ZG5zX2lteF9wZGF0YSwNCj4gKwl9LA0KPiArCXt9LA0KPiArfTsNCj4gKw0KPiAgc3RhdGljIGlu dCBjZG5zX2lteF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KSAgew0KPiAgCXN0 cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7DQo+IEBAIC0xNjIsMTQgKzE5NywxOCBAQCBz dGF0aWMgaW50IGNkbnNfaW14X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ ICAJaWYgKHJldCkNCj4gIAkJZ290byBlcnI7DQo+IA0KPiAtCXJldCA9IG9mX3BsYXRmb3JtX3Bv cHVsYXRlKG5vZGUsIE5VTEwsIE5VTEwsIGRldik7DQo+ICsJcmV0ID0gb2ZfcGxhdGZvcm1fcG9w dWxhdGUobm9kZSwgTlVMTCwgY2Ruc19pbXhfYXV4ZGF0YSwgZGV2KTsNCj4gIAlpZiAocmV0KSB7 DQo+ICAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGNyZWF0ZSBjaGlsZHJlbjogJWRcbiIsIHJl dCk7DQo+ICAJCWdvdG8gZXJyOw0KPiAgCX0NCj4gDQo+IC0JcmV0dXJuIHJldDsNCj4gKwlkZXZp Y2Vfc2V0X3dha2V1cF9jYXBhYmxlKGRldiwgdHJ1ZSk7DQo+ICsJcG1fcnVudGltZV9zZXRfYWN0 aXZlKGRldik7DQo+ICsJcG1fcnVudGltZV9lbmFibGUoZGV2KTsNCj4gKwlwbV9ydW50aW1lX2Zv cmJpZChkZXYpOw0KPiANCj4gKwlyZXR1cm4gcmV0Ow0KPiAgZXJyOg0KPiAgCWNsa19idWxrX2Rp c2FibGVfdW5wcmVwYXJlKGRhdGEtPm51bV9jbGtzLCBkYXRhLT5jbGtzKTsNCj4gIAlyZXR1cm4g cmV0Ow0KPiBAQCAtMTk0LDYgKzIzMywxNDEgQEAgc3RhdGljIGludCBjZG5zX2lteF9yZW1vdmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gDQo+ ICsjaWZkZWYgQ09ORklHX1BNDQo+ICtzdGF0aWMgdm9pZCBjZG5zM19zZXRfd2FrZXVwKHN0cnVj dCBjZG5zX2lteCAqZGF0YSwgYm9vbCBlbmFibGUpIHsNCj4gKwl1MzIgdmFsdWU7DQo+ICsNCj4g Kwl2YWx1ZSA9IGNkbnNfaW14X3JlYWRsKGRhdGEsIFVTQjNfSU5UX1JFRyk7DQo+ICsJaWYgKGVu YWJsZSkNCj4gKwkJdmFsdWUgfD0gT1RHX1dBS0VVUF9FTiB8IERFVlUzX1dBRUtVUF9FTjsNCj4g KwllbHNlDQo+ICsJCXZhbHVlICY9IH4oT1RHX1dBS0VVUF9FTiB8IERFVlUzX1dBRUtVUF9FTik7 DQo+ICsNCj4gKwljZG5zX2lteF93cml0ZWwoZGF0YSwgVVNCM19JTlRfUkVHLCB2YWx1ZSk7IH0N Cj4gKw0KPiArc3RhdGljIGludCBjZG5zX2lteF9wbGF0Zm9ybV9zdXNwZW5kKHN0cnVjdCBkZXZp Y2UgKmRldiwNCj4gKwkJYm9vbCBzdXNwZW5kLCBib29sIHdha2V1cCkNCj4gK3sNCj4gKwlzdHJ1 Y3QgY2RuczMgKmNkbnMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gKwlzdHJ1Y3QgZGV2aWNl ICpwYXJlbnQgPSBkZXYtPnBhcmVudDsNCj4gKwlzdHJ1Y3QgY2Ruc19pbXggKmRhdGEgPSBkZXZf Z2V0X2RydmRhdGEocGFyZW50KTsNCj4gKwl2b2lkIF9faW9tZW0gKm90Z19yZWdzID0gY2Rucy0+ b3RnX3JlZ3M7DQo+ICsJdm9pZCBfX2lvbWVtICp4aGNpX3JlZ3MgPSBjZG5zLT54aGNpX3JlZ3M7 DQo+ICsJdTMyIHZhbHVlOw0KPiArCWludCByZXQgPSAwOw0KPiArDQo+ICsJaWYgKGNkbnMtPnJv bGUgIT0gVVNCX1JPTEVfSE9TVCkNCj4gKwkJcmV0dXJuIDA7DQo+ICsNCj4gKwlpZiAoc3VzcGVu ZCkgew0KPiArCQkvKiBTVyByZXF1ZXN0IGxvdyBwb3dlciB3aGVuIGFsbCB1c2IgcG9ydHMgYWxs b3cgdG8gaXQgPz8/ICovDQo+ICsJCXZhbHVlID0gcmVhZGwoeGhjaV9yZWdzICsgWEVDUF9QTV9Q TUNTUik7DQo+ICsJCXZhbHVlICY9IH5QU19NQVNLOw0KPiArCQl2YWx1ZSB8PSBQU19EMTsNCj4g KwkJd3JpdGVsKHZhbHVlLCB4aGNpX3JlZ3MgKyBYRUNQX1BNX1BNQ1NSKTsNCj4gKw0KPiArCQkv KiBtZGN0cmxfY2xrX3NlbCAqLw0KPiArCQl2YWx1ZSA9IGNkbnNfaW14X3JlYWRsKGRhdGEsIFVT QjNfQ09SRV9DVFJMMSk7DQo+ICsJCXZhbHVlIHw9IE1EQ1RSTF9DTEtfU0VMOw0KPiArCQljZG5z X2lteF93cml0ZWwoZGF0YSwgVVNCM19DT1JFX0NUUkwxLCB2YWx1ZSk7DQo+ICsNCj4gKwkJLyog d2FpdCBmb3IgbWRjdHJsX2Nsa19zdGF0dXMgKi8NCj4gKwkJdmFsdWUgPSBjZG5zX2lteF9yZWFk bChkYXRhLCBVU0IzX0NPUkVfU1RBVFVTKTsNCj4gKwkJcmV0ID0gcmVhZGxfcG9sbF90aW1lb3V0 X2F0b21pYyhkYXRhLT5ub25jb3JlICsgVVNCM19DT1JFX1NUQVRVUywgdmFsdWUsDQo+ICsJCQko dmFsdWUgJiBNRENUUkxfQ0xLX1NUQVRVUykgPT0gTURDVFJMX0NMS19TVEFUVVMsDQo+ICsJCQkx MCwgMTAwMDAwKTsNCj4gKwkJaWYgKHJldCkNCj4gKwkJCWRldl93YXJuKHBhcmVudCwgIndhaXQg bWRjdHJsX2Nsa19zdGF0dXMgdGltZW91dFxuIik7DQo+ICsNCj4gKwkJLyogd2FpdCBscG1fY2xr X3JlcSB0byBiZSAwICovDQo+ICsJCXZhbHVlID0gY2Ruc19pbXhfcmVhZGwoZGF0YSwgVVNCM19J TlRfUkVHKTsNCj4gKwkJcmV0ID0gcmVhZGxfcG9sbF90aW1lb3V0X2F0b21pYyhkYXRhLT5ub25j b3JlICsgVVNCM19JTlRfUkVHLCB2YWx1ZSwNCj4gKwkJCSh2YWx1ZSAmIExQTV9DTEtfUkVRKSAh PSBMUE1fQ0xLX1JFUSwNCj4gKwkJCTEwLCAxMDAwMDApOw0KPiArCQlpZiAocmV0KQ0KPiArCQkJ ZGV2X3dhcm4ocGFyZW50LCAid2FpdCBscG1fY2xrX3JlcSB0aW1lb3V0XG4iKTsNCj4gKw0KPiAr CQkvKiB3YWl0IHBoeV9yZWZjbGtfcmVxIHRvIGJlIDAgKi8NCj4gKwkJdmFsdWUgPSBjZG5zX2lt eF9yZWFkbChkYXRhLCBVU0IzX1NTUEhZX1NUQVRVUyk7DQo+ICsJCXJldCA9IHJlYWRsX3BvbGxf dGltZW91dF9hdG9taWMoZGF0YS0+bm9uY29yZSArIFVTQjNfU1NQSFlfU1RBVFVTLCB2YWx1ZSwN Cj4gKwkJCSh2YWx1ZSAmIFBIWV9SRUZDTEtfUkVRKSAhPSBQSFlfUkVGQ0xLX1JFUSwNCj4gKwkJ CTEwLCAxMDAwMDApOw0KPiArCQlpZiAocmV0KQ0KPiArCQkJZGV2X3dhcm4ocGFyZW50LCAid2Fp dCBwaHlfcmVmY2xrX3JlcSB0aW1lb3V0XG4iKTsNCj4gKw0KPiArCQljZG5zM19zZXRfd2FrZXVw KGRhdGEsIHdha2V1cCk7DQo+ICsJfSBlbHNlIHsNCj4gKwkJLyogd2FpdCBDTEtfMTI1X1JFUSB0 byBiZSAxICovDQo+ICsJCXZhbHVlID0gY2Ruc19pbXhfcmVhZGwoZGF0YSwgVVNCM19JTlRfUkVH KTsNCj4gKwkJcmV0ID0gcmVhZGxfcG9sbF90aW1lb3V0X2F0b21pYyhkYXRhLT5ub25jb3JlICsg VVNCM19JTlRfUkVHLCB2YWx1ZSwNCj4gKwkJCSh2YWx1ZSAmIENMS18xMjVfUkVRKSAhPSBDTEtf MTI1X1JFUSwNCj4gKwkJCTEwLCAxMDAwMDApOw0KPiArCQlpZiAocmV0KQ0KPiArCQkJZGV2X3dh cm4ocGFyZW50LCAid2FpdCBDTEtfMTI1X1JFUSB0aW1lb3V0XG4iKTsNCj4gKw0KPiArCQljZG5z M19zZXRfd2FrZXVwKGRhdGEsIGZhbHNlKTsNCj4gKw0KPiArCQkvKiBTVyByZXF1ZXN0IEQwICov DQo+ICsJCXZhbHVlID0gcmVhZGwoeGhjaV9yZWdzICsgWEVDUF9QTV9QTUNTUik7DQo+ICsJCXZh bHVlICY9IH5QU19NQVNLOw0KPiArCQl2YWx1ZSB8PSBQU19EMDsNCj4gKwkJd3JpdGVsKHZhbHVl LCB4aGNpX3JlZ3MgKyBYRUNQX1BNX1BNQ1NSKTsNCj4gKw0KPiArCQkvKiBjbHIgQ0ZHX1JYREVU X1AzX0VOICovDQo+ICsJCXZhbHVlID0gcmVhZGwoeGhjaV9yZWdzICsgWEVDUF9BVVhfQ1RSTF9S RUcxKTsNCj4gKwkJdmFsdWUgJj0gfkNGR19SWERFVF9QM19FTjsNCj4gKwkJd3JpdGVsKHZhbHVl LCB4aGNpX3JlZ3MgKyBYRUNQX0FVWF9DVFJMX1JFRzEpOw0KPiArDQo+ICsJCS8qIGNsZWFyIG1k Y3RybF9jbGtfc2VsICovDQo+ICsJCXZhbHVlID0gY2Ruc19pbXhfcmVhZGwoZGF0YSwgVVNCM19D T1JFX0NUUkwxKTsNCj4gKwkJdmFsdWUgJj0gfk1EQ1RSTF9DTEtfU0VMOw0KPiArCQljZG5zX2lt eF93cml0ZWwoZGF0YSwgVVNCM19DT1JFX0NUUkwxLCB2YWx1ZSk7DQo+ICsNCj4gKwkJLyogd2Fp dCBmb3IgbWRjdHJsX2Nsa19zdGF0dXMgaXMgY2xlYXJlZCAqLw0KPiArCQl2YWx1ZSA9IGNkbnNf aW14X3JlYWRsKGRhdGEsIFVTQjNfQ09SRV9TVEFUVVMpOw0KPiArCQlyZXQgPSByZWFkbF9wb2xs X3RpbWVvdXRfYXRvbWljKGRhdGEtPm5vbmNvcmUgKyBVU0IzX0NPUkVfU1RBVFVTLCB2YWx1ZSwN Cj4gKwkJCSh2YWx1ZSAmIE1EQ1RSTF9DTEtfU1RBVFVTKSAhPSBNRENUUkxfQ0xLX1NUQVRVUywN Cj4gKwkJCTEwLCAxMDAwMDApOw0KPiArCQlpZiAocmV0KQ0KPiArCQkJZGV2X3dhcm4ocGFyZW50 LCAid2FpdCBtZGN0cmxfY2xrX3N0YXR1cyBjbGVhcmVkIHRpbWVvdXRcbiIpOw0KPiArDQo+ICsJ CS8qIFdhaXQgdW50aWwgT1RHX05SRFkgaXMgMCAqLw0KPiArCQl2YWx1ZSA9IHJlYWRsKG90Z19y ZWdzICsgT1RHU1RTKTsNCj4gKwkJcmV0ID0gcmVhZGxfcG9sbF90aW1lb3V0X2F0b21pYyhvdGdf cmVncyArIE9UR1NUUywgdmFsdWUsDQo+ICsJCQkodmFsdWUgJiBPVEdfTlJEWSkgIT0gT1RHX05S RFksDQo+ICsJCQkxMCwgMTAwMDAwKTsNCj4gKwkJaWYgKHJldCkNCj4gKwkJCWRldl93YXJuKHBh cmVudCwgIndhaXQgT1RHIHJlYWR5IHRpbWVvdXRcbiIpOw0KDQpNYWtlIHNlbnNlIHRvIG1vdmUg Zm9yd2FyZCBpZiBhbnkgb2YgYWJvdmUgdGltZW91dCBoYXBwZW5zPw0KDQpMaSBKdW4NCg0KPiAr CX0NCj4gKw0KPiArCXJldHVybiByZXQ7DQo+ICsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludCBj ZG5zX2lteF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KSB7DQo+ICsJc3RydWN0IGNkbnNfaW14 ICpkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsNCj4gKwlyZXR1cm4gY2xrX2J1bGtf cHJlcGFyZV9lbmFibGUoZGF0YS0+bnVtX2Nsa3MsIGRhdGEtPmNsa3MpOyB9DQo+ICsNCj4gK3N0 YXRpYyBpbnQgY2Ruc19pbXhfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpIHsNCj4gKwlzdHJ1 Y3QgY2Ruc19pbXggKmRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gKw0KPiArCWNsa19i dWxrX2Rpc2FibGVfdW5wcmVwYXJlKGRhdGEtPm51bV9jbGtzLCBkYXRhLT5jbGtzKTsNCj4gKw0K PiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICsjZW5kaWYgLyogQ09ORklHX1BNICovDQo+ICsN Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBjZG5zX2lteF9wbV9vcHMgPSB7DQo+ ICsJU0VUX1JVTlRJTUVfUE1fT1BTKGNkbnNfaW14X3N1c3BlbmQsIGNkbnNfaW14X3Jlc3VtZSwg TlVMTCkgfTsNCj4gKw0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgY2Ruc19p bXhfb2ZfbWF0Y2hbXSA9IHsNCj4gIAl7IC5jb21wYXRpYmxlID0gImZzbCxpbXg4cW0tdXNiMyIs IH0sDQo+ICAJe30sDQo+IEBAIC0yMDYsNiArMzgwLDcgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9y bV9kcml2ZXIgY2Ruc19pbXhfZHJpdmVyID0gew0KPiAgCS5kcml2ZXIJCT0gew0KPiAgCQkubmFt ZQk9ICJjZG5zMy1pbXgiLA0KPiAgCQkub2ZfbWF0Y2hfdGFibGUJPSBjZG5zX2lteF9vZl9tYXRj aCwNCj4gKwkJLnBtCT0gJmNkbnNfaW14X3BtX29wcywNCj4gIAl9LA0KPiAgfTsNCj4gIG1vZHVs ZV9wbGF0Zm9ybV9kcml2ZXIoY2Ruc19pbXhfZHJpdmVyKTsNCj4gLS0NCj4gMi4xNy4xDQoNCg==