Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp564282yba; Fri, 5 Apr 2019 12:11:55 -0700 (PDT) X-Google-Smtp-Source: APXvYqwZ2nc0lahIynHJtTf6qxOtelJZHdsQqn/jFWThUJ1qGnGjSc/oAIoviyC7M0BHd9Rvr170 X-Received: by 2002:a63:e004:: with SMTP id e4mr13973647pgh.344.1554491515057; Fri, 05 Apr 2019 12:11:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554491515; cv=none; d=google.com; s=arc-20160816; b=SK638xKni8xQ0XFqBWP8eYbHHqwnjlWPUaZrxOnzVSN/S1dbbrWygc1XDqxolagOLI DLHY2IOth5rf5U3TMLYrXgpGGMOTEcKwMrqw6u7W2cjEi4h3Tal3jyjHyK8M+EgpsXf2 SeFQXsS0tPt7AfPOzHOujq49xM1LGnjvOPuUOWivzbfRUc9NecV64KS14FEhdEOoGtwF JtpAb8UC0uGE0DCI1Q833QinJtOfftD0t4XFOK4C/7tXIyypyuHk1RJCVJVAHsbG/jfW eWTPgKh1WcHK9E4gPUPqa2IZ7YbI3CNZkKpW5uLVYMqjWERyq+QJrfl6LE71KCmqRFze xHzA== 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:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=h0j872bYODHn26mA5FzmreUsuWCHsMdbah1spxHg4No=; b=WhJMIJtVJbFfl/HJNS8B/dx0y+Ey7VQqm5IcN+IWj2IpiC/eq97K1+IuzpA/RbcEMc 4y7l/pw2D47uk5guD6USK+uus36E1ub6+YiKYISXT0HKOsWVWeeYlw/hgy2dpuxoWl5D gAHwoy+jaYPkriZ/yDa53akLdZFlGixVGKG+vjroWWKTZBp9G/9m8CDLkq9a6yT8GcWE D11XIlJZuFeVpZsqHfaCjV5RrLU/vrYotRbxjddlvAKPd1R06RkyjAHgzVhf/gELg6aH zjWvbKvndEzE141a1aq5hGGQVAlB4d8OWbBVWuKfZYQw/y7mjTgCE1U5CBbw/TuUkk4Y gC3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@Mellanox.com header.s=selector1 header.b=X1NaPwTD; 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=mellanox.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y6si20149301pll.50.2019.04.05.12.11.38; Fri, 05 Apr 2019 12:11:55 -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=@Mellanox.com header.s=selector1 header.b=X1NaPwTD; 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=mellanox.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731704AbfDETK4 (ORCPT + 99 others); Fri, 5 Apr 2019 15:10:56 -0400 Received: from mail-eopbgr10043.outbound.protection.outlook.com ([40.107.1.43]:42774 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1731183AbfDETKz (ORCPT ); Fri, 5 Apr 2019 15:10:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h0j872bYODHn26mA5FzmreUsuWCHsMdbah1spxHg4No=; b=X1NaPwTD+x1fXWdGM2QYxa/y8VpGPPdJ7zk94kIXEws++3cjUmhxxEKPYCaM6UOQh3dxX+NQid7unAcu11UqBnvjC9uoeKWQe7a9tvn6GdNYY8VS5vavyTnQRnDPlXijXaQdjJ9l2W/9tSJ1MP709Q/Ye1elyquaJiQ7jVYpKZs= Received: from DB6PR05MB3223.eurprd05.prod.outlook.com (10.175.232.149) by DB6PR05MB4694.eurprd05.prod.outlook.com (10.168.25.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1771.16; Fri, 5 Apr 2019 19:10:42 +0000 Received: from DB6PR05MB3223.eurprd05.prod.outlook.com ([fe80::cd05:875e:61bd:b480]) by DB6PR05MB3223.eurprd05.prod.outlook.com ([fe80::cd05:875e:61bd:b480%3]) with mapi id 15.20.1771.016; Fri, 5 Apr 2019 19:10:42 +0000 From: Liming Sun To: Andy Shevchenko CC: David Woods , Andy Shevchenko , Darren Hart , Vadim Pasternak , Linux Kernel Mailing List , Platform Driver Subject: RE: [PATCH v13] platform/mellanox: Add TmFifo driver for Mellanox BlueField Soc Thread-Topic: [PATCH v13] platform/mellanox: Add TmFifo driver for Mellanox BlueField Soc Thread-Index: AQHU6x3BvT3IgEW16Emk4/JJP7JsJaYttpsAgAA2COA= Date: Fri, 5 Apr 2019 19:10:42 +0000 Message-ID: References: <1554406595-3128-1-git-send-email-lsun@mellanox.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=lsun@mellanox.com; x-originating-ip: [216.156.69.42] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 42bf8997-6d5e-429f-3bcc-08d6b9fa6644 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600139)(711020)(4605104)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:DB6PR05MB4694; x-ms-traffictypediagnostic: DB6PR05MB4694: x-microsoft-antispam-prvs: x-forefront-prvs: 0998671D02 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6029001)(376002)(346002)(136003)(39860400002)(366004)(396003)(13464003)(189003)(199004)(6916009)(7736002)(74316002)(305945005)(52536014)(11346002)(229853002)(446003)(86362001)(6436002)(54906003)(81156014)(6246003)(105586002)(8676002)(81166006)(71200400001)(71190400001)(9686003)(106356001)(8936002)(68736007)(478600001)(7696005)(76176011)(97736004)(99286004)(25786009)(4326008)(476003)(256004)(53936002)(3846002)(6116002)(5660300002)(102836004)(55016002)(14444005)(14454004)(316002)(33656002)(53546011)(6506007)(486006)(2906002)(186003)(26005)(66066001);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR05MB4694;H:DB6PR05MB3223.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: HySel3uANOyPH4OAIsFUYlpo0OlZZxZ+TW9PolIcZMBmpbHYLJZPTQQzoP+GXWoH89l/LucfOdbdqAksCZRSGUIIAvKF9M7NKfvBdBZ2v8GjLAgsZ+aYzIXLulPBFfEJu6yf8aY36ojB+wEzr/3eei7TBh+iRsYrz4UEaKYVlMmrv2U281S2RlkmW3J1KXoYh2d0+0jzP/M+Wirjghd/8f5eKkdf/HWhytDRDUKRfwlTJvm4vrkwkup5xhGh5SHL7jNnwjkiri0iu59spR04yLjLGVVcEkj3lxa3gz94moeyhMeuXIaGy+grpISUEsAKRaaCpukgKHJSoeUi+/LJQcdW8JJQibr+fsKATjkgqWcaR5VI+XLZqDaBc9dLAiCtQGbTmRzN0DZUvEeoTZelaK7viKu8g4OszoQ2LlYyVzo= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42bf8997-6d5e-429f-3bcc-08d6b9fa6644 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Apr 2019 19:10:42.7133 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR05MB4694 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org VGhhbmtzIEFuZHkhIEknbGwgYWRkcmVzcyB0aGUgY29tbWVudHMgaW4gdjE0Lg0KDQpTb21lIHF1 ZXN0aW9uIGZvciB0aGUgY29tbWVudCBiZWxvdzoNCg0KPiA+ICsgICAgICAgICAgICAgICBzaXpl ID0gdnJpbmdfc2l6ZSh2cmluZy0+bnVtLCB2cmluZy0+YWxpZ24pOw0KPiA+ICsgICAgICAgICAg ICAgICB2YSA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYtPnBhcmVudCwgc2l6ZSwgJmRtYSwgR0ZQ X0tFUk5FTCk7DQo+ID4gKyAgICAgICAgICAgICAgIGlmICghdmEpIHsNCj4gDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgZGV2X2VycihkZXYtPnBhcmVudCwgImRtYV9hbGxvY19jb2hlcmVu dCBmYWlsZWRcbiIpOw0KPiA+IEkgZG9uJ3Qgc2VlIGhvdyB0aGlzIHdpbGwgZnJlZSB0aGUgYWxs b2NhdGVkIGVudHJpZXMuDQo+IEkgdGhpbmsgSSB0b2xkIGFib3V0IHRoaXMgZWl0aGVyLg0KDQpX aGVuIGFuIGVycm9yIGlzIHJldHVybmVkLCBhbGwgdGhlIGFsbG9jYXRlZCBlbnRyaWVzIHdpbGwg YmUgcmVsZWFzZWQgYnkgdGhlDQppbiB0aGUgY2FsbGVyIGNvbnRleHQgYnkgY2FsbGluZyBtbHhi Zl90bWZpZm9fZnJlZV92cmluZ3MoKSwgbGlrZSB0aGUgbG9naWMgYmVsb3cuDQpPciBkbyB5b3Ug cHJlZmVyIHJlbGVhc2luZyB0aGUgZW50cmllcyBpbiBtbHhiZl90bWZpZm9fYWxsb2NfdnJpbmdz KCkgaW5zdGVhZD8NCg0KMTA3MyAgICAgICAgIGlmIChtbHhiZl90bWZpZm9fYWxsb2NfdnJpbmdz KGZpZm8sIHRtX3ZkZXYpKSB7DQoxMDc0ICAgICAgICAgICAgICAgICBkZXZfZXJyKGRldiwgInVu YWJsZSB0byBhbGxvY2F0ZSB2cmluZ1xuIik7DQoxMDc1ICAgICAgICAgICAgICAgICByZXQgPSAt RU5PTUVNOw0KMTA3NiAgICAgICAgICAgICAgICAgZ290byB2ZGV2X2ZhaWw7DQoxMDc3ICAgICAg ICAgfQ0KLi4uDQoxMDk3IHZkZXZfZmFpbDoNCjEwOTggICAgICAgICBtbHhiZl90bWZpZm9fZnJl ZV92cmluZ3MoZmlmbywgdG1fdmRldik7DQoNClJlZ2FyZHMsDQpMaW1pbmcNCg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBbmR5IFNoZXZjaGVua28gPGFuZHkuc2hldmNo ZW5rb0BnbWFpbC5jb20+DQo+IFNlbnQ6IEZyaWRheSwgQXByaWwgNSwgMjAxOSAxMTo0NCBBTQ0K PiBUbzogTGltaW5nIFN1biA8bHN1bkBtZWxsYW5veC5jb20+DQo+IENjOiBEYXZpZCBXb29kcyA8 ZHdvb2RzQG1lbGxhbm94LmNvbT47IEFuZHkgU2hldmNoZW5rbyA8YW5keUBpbmZyYWRlYWQub3Jn PjsgRGFycmVuIEhhcnQgPGR2aGFydEBpbmZyYWRlYWQub3JnPjsgVmFkaW0NCj4gUGFzdGVybmFr IDx2YWRpbXBAbWVsbGFub3guY29tPjsgTGludXggS2VybmVsIE1haWxpbmcgTGlzdCA8bGludXgt a2VybmVsQHZnZXIua2VybmVsLm9yZz47IFBsYXRmb3JtIERyaXZlciA8cGxhdGZvcm0tZHJpdmVy LQ0KPiB4ODZAdmdlci5rZXJuZWwub3JnPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYxM10gcGxh dGZvcm0vbWVsbGFub3g6IEFkZCBUbUZpZm8gZHJpdmVyIGZvciBNZWxsYW5veCBCbHVlRmllbGQg U29jDQo+IA0KPiBPbiBUaHUsIEFwciA0LCAyMDE5IGF0IDEwOjM2IFBNIExpbWluZyBTdW4gPGxz dW5AbWVsbGFub3guY29tPiB3cm90ZToNCj4gPiBUaGlzIGNvbW1pdCBhZGRzIHRoZSBUbUZpZm8g cGxhdGZvcm0gZHJpdmVyIGZvciBNZWxsYW5veCBCbHVlRmllbGQNCj4gPiBTb2MuIFRtRmlmbyBp cyBhIHNoYXJlZCBGSUZPIHdoaWNoIGVuYWJsZXMgZXh0ZXJuYWwgaG9zdCBtYWNoaW5lDQo+ID4g dG8gZXhjaGFuZ2UgZGF0YSB3aXRoIHRoZSBTb0MgdmlhIFVTQiBvciBQQ0llLiBUaGUgZHJpdmVy IGlzIGJhc2VkDQo+ID4gb24gdmlydGlvIGZyYW1ld29yayBhbmQgaGFzIGNvbnNvbGUgYW5kIG5l dHdvcmsgYWNjZXNzIGVuYWJsZWQuDQo+IA0KPiBUaGFua3MgZm9yIGFuIHVwZGF0ZS4gQWxtb3N0 IGdvb2QuDQo+IE15IGNvbW1lbnRzIGJlbG93Lg0KPiANCj4gTWVhbndoaWxlIEkgcHVzaGVkIHRo aXMgdG8gbXkgcmV2aWV3IGFuZCB0ZXN0aW5nIHF1ZXVlLCB0aGFua3MhDQo+IA0KPiA+ICsjaW5j bHVkZSA8bGludXgvYWNwaS5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvYml0ZmllbGQuaD4NCj4g PiArI2luY2x1ZGUgPGxpbnV4L2NpcmNfYnVmLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9lZmku aD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L2lycS5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvbW9k dWxlLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPg0KPiA+ICsjaW5jbHVkZSA8bGlu dXgvcGxhdGZvcm1fZGV2aWNlLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPg0KPiAN Cj4gUGVyaGFwcyBibGFuayBsaW5lIGhlcmUuIFdvdWxkIGJlIG1vcmUgY2xlYXIgdGhhdCB0aGlz IGlzIHV0aWxpemluZw0KPiB2aXJ0aW8gZnJhbWV3b3JrLg0KPiANCj4gPiArI2luY2x1ZGUgPGxp bnV4L3ZpcnRpb19jb25maWcuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3ZpcnRpb19jb25zb2xl Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC92aXJ0aW9faWRzLmg+DQo+ID4gKyNpbmNsdWRlIDxs aW51eC92aXJ0aW9fbmV0Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC92aXJ0aW9fcmluZy5oPg0K PiANCj4gPiArLyoqDQo+ID4gKyAqIG1seGJmX3RtZmlmb19tc2dfaGRyIC0gU3RydWN0dXJlIG9m IHRoZSBUbUZpZm8gbWVzc2FnZSBoZWFkZXINCj4gPiArICogQHR5cGU6IG1lc3NhZ2UgdHlwZQ0K PiA+ICsgKiBAbGVuOiBwYXlsb2FkIGxlbmd0aA0KPiA+ICsgKiBAdTogNjQtYml0IHVuaW9uIGRh dGENCj4gPiArICovDQo+ID4gK3VuaW9uIG1seGJmX3RtZmlmb19tc2dfaGRyIHsNCj4gPiArICAg ICAgIHN0cnVjdCB7DQo+ID4gKyAgICAgICAgICAgICAgIHU4IHR5cGU7DQo+ID4gKyAgICAgICAg ICAgICAgIF9fYmUxNiBsZW47DQo+ID4gKyAgICAgICAgICAgICAgIHU4IHVudXNlZFs1XTsNCj4g PiArICAgICAgIH0gX19wYWNrZWQ7DQo+ID4gKyAgICAgICB1NjQgZGF0YTsNCj4gDQo+IEknbSBu b3Qgc3VyZSBJIHVuZGVyc3RhbmQgaG93IHlvdSBjYW4gZGlzdGluZ3Vpc2ggd2hpY2ggZmllbGQg b2YgdW5pb24gdG8gdXNlPw0KPiBJc24ndCBoZXJlIHNvbWUgdHlwZSBtaXNzZWQ/DQo+IA0KPiA+ ICt9Ow0KPiANCj4gPiArc3RhdGljIHU4IG1seGJmX3RtZmlmb19uZXRfZGVmYXVsdF9tYWNbRVRI X0FMRU5dID0gew0KPiANCj4gPiArICAgICAgIDB4MDAsIDB4MUEsIDB4Q0EsIDB4RkYsIDB4RkYs IDB4MDF9Ow0KPiANCj4gVGhpcyBzaG91bGQgYmUgdHdvIGxpbmVzLg0KPiANCj4gPiArLyogU3Vw cG9ydGVkIHZpcnRpby1uZXQgZmVhdHVyZXMuICovDQo+ID4gKyNkZWZpbmUgTUxYQkZfVE1GSUZP X05FVF9GRUFUVVJFUyAgICAgIChCSVRfVUxMKFZJUlRJT19ORVRfRl9NVFUpIHwgXA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUX1VMTChWSVJUSU9fTkVU X0ZfU1RBVFVTKSB8IFwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEJJVF9VTEwoVklSVElPX05FVF9GX01BQykpDQo+IA0KPiBCZXR0ZXIgdG8gd3JpdGUgYXMN Cj4gDQo+ICNkZWZpbmUgRk9PIFwNCj4gKEJJVCh4KSB8IEJJVCh5KSAuLi4pDQo+IA0KPiBJIHRo aW5rIEkgdG9sZCB0aGlzIGVhcmxpZXI/DQo+IA0KPiA+ICsvKiBBbGxvY2F0ZSB2cmluZ3MgZm9y IHRoZSBmaWZvLiAqLw0KPiANCj4gZmlmbyAtPiBGSUZPIChhbmQgY2hlY2sgYWxsIG9jY3VycmVu Y2VzKQ0KPiANCj4gPiArc3RhdGljIGludCBtbHhiZl90bWZpZm9fYWxsb2NfdnJpbmdzKHN0cnVj dCBtbHhiZl90bWZpZm8gKmZpZm8sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBtbHhiZl90bWZpZm9fdmRldiAqdG1fdmRldikNCj4gPiArew0KPiA+ICsg ICAgICAgc3RydWN0IG1seGJmX3RtZmlmb192cmluZyAqdnJpbmc7DQo+ID4gKyAgICAgICBzdHJ1 Y3QgZGV2aWNlICpkZXY7DQo+ID4gKyAgICAgICBkbWFfYWRkcl90IGRtYTsNCj4gPiArICAgICAg IGludCBpLCBzaXplOw0KPiA+ICsgICAgICAgdm9pZCAqdmE7DQo+ID4gKw0KPiA+ICsgICAgICAg Zm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodG1fdmRldi0+dnJpbmdzKTsgaSsrKSB7DQo+ID4g KyAgICAgICAgICAgICAgIHZyaW5nID0gJnRtX3ZkZXYtPnZyaW5nc1tpXTsNCj4gPiArICAgICAg ICAgICAgICAgdnJpbmctPmZpZm8gPSBmaWZvOw0KPiA+ICsgICAgICAgICAgICAgICB2cmluZy0+ bnVtID0gTUxYQkZfVE1GSUZPX1ZSSU5HX1NJWkU7DQo+ID4gKyAgICAgICAgICAgICAgIHZyaW5n LT5hbGlnbiA9IFNNUF9DQUNIRV9CWVRFUzsNCj4gPiArICAgICAgICAgICAgICAgdnJpbmctPmlu ZGV4ID0gaTsNCj4gPiArICAgICAgICAgICAgICAgdnJpbmctPnZkZXZfaWQgPSB0bV92ZGV2LT52 ZGV2LmlkLmRldmljZTsNCj4gPiArICAgICAgICAgICAgICAgZGV2ID0gJnRtX3ZkZXYtPnZkZXYu ZGV2Ow0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgc2l6ZSA9IHZyaW5nX3NpemUodnJpbmct Pm51bSwgdnJpbmctPmFsaWduKTsNCj4gPiArICAgICAgICAgICAgICAgdmEgPSBkbWFfYWxsb2Nf Y29oZXJlbnQoZGV2LT5wYXJlbnQsIHNpemUsICZkbWEsIEdGUF9LRVJORUwpOw0KPiA+ICsgICAg ICAgICAgICAgICBpZiAoIXZhKSB7DQo+IA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGRl dl9lcnIoZGV2LT5wYXJlbnQsICJkbWFfYWxsb2NfY29oZXJlbnQgZmFpbGVkXG4iKTsNCj4gDQo+ IEkgZG9uJ3Qgc2VlIGhvdyB0aGlzIHdpbGwgZnJlZSB0aGUgYWxsb2NhdGVkIGVudHJpZXMuDQo+ IEkgdGhpbmsgSSB0b2xkIGFib3V0IHRoaXMgZWl0aGVyLg0KPiANCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ICsN Cj4gPiArICAgICAgICAgICAgICAgdnJpbmctPnZhID0gdmE7DQo+ID4gKyAgICAgICAgICAgICAg IHZyaW5nLT5kbWEgPSBkbWE7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0 dXJuIDA7DQo+ID4gK30NCj4gDQo+ID4gKy8qIEhvdXNlLWtlZXBpbmcgdGltZXIuICovDQo+ID4g K3N0YXRpYyB2b2lkIG1seGJmX3RtZmlmb190aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqYXJnKQ0K PiA+ICt7DQo+IA0KPiA+ICsgICAgICAgc3RydWN0IG1seGJmX3RtZmlmbyAqZmlmbyA9IGNvbnRh aW5lcl9vZihhcmcsIHN0cnVjdCBtbHhiZl90bWZpZm8sDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVyKTsNCj4gDQo+IE9uZSBsaW5lIHdv dWxkIGJlIHN0aWxsIGdvb2QgZW5vdWdoLg0KPiANCj4gPiArICAgICAgIGludCBtb3JlOw0KPiA+ ICsNCj4gPiArICAgICAgIG1vcmUgPSAhdGVzdF9hbmRfc2V0X2JpdChNTFhCRl9UTV9SWF9IV01f SVJRLCAmZmlmby0+cGVuZF9ldmVudHMpIHx8DQo+ID4gKyAgICAgICAgICAgICAgICAgICAhdGVz dF9hbmRfc2V0X2JpdChNTFhCRl9UTV9UWF9MV01fSVJRLCAmZmlmby0+cGVuZF9ldmVudHMpOw0K PiA+ICsNCj4gPiArICAgICAgIGlmIChtb3JlKQ0KPiA+ICsgICAgICAgICAgICAgICBzY2hlZHVs ZV93b3JrKCZmaWZvLT53b3JrKTsNCj4gPiArDQo+ID4gKyAgICAgICBtb2RfdGltZXIoJmZpZm8t PnRpbWVyLCBqaWZmaWVzICsgTUxYQkZfVE1GSUZPX1RJTUVSX0lOVEVSVkFMKTsNCj4gPiArfQ0K PiANCj4gPiArICAgICAgIHN0YXR1cyA9IGVmaS5nZXRfdmFyaWFibGUobWx4YmZfdG1maWZvX2Vm aV9uYW1lLCAmZ3VpZCwgTlVMTCwgJnNpemUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJ1Zik7DQo+ID4gKyAgICAgICBpZiAoc3RhdHVzID09IEVGSV9TVUNDRVNTICYm IHNpemUgPT0gRVRIX0FMRU4pDQo+ID4gKyAgICAgICAgICAgICAgIGV0aGVyX2FkZHJfY29weSht YWMsIGJ1Zik7DQo+ID4gKyAgICAgICBlbHNlDQo+IA0KPiA+ICsgICAgICAgICAgICAgICBtZW1j cHkobWFjLCBtbHhiZl90bWZpZm9fbmV0X2RlZmF1bHRfbWFjLCBFVEhfQUxFTik7DQo+IA0KPiBl dGhlcl9hZGRyX2NvcHkoKSBhcyB3ZWxsLg0KPiANCj4gPiArfQ0KPiANCj4gPiArICAgICAgIGZp Zm8tPnBkZXYgPSBwZGV2Ow0KPiANCj4gRG8geW91IHJlYWxseSBuZWVkIHRvIGtlZXAgcGRldiB0 aGVyZT8gSXNuJ3Qgc3RydWN0IGRldmljZSBwb2ludGVyIGVub3VnaD8NCj4gDQo+IA0KPiA+ICsg ICAgICAgLyogQ3JlYXRlIHRoZSBjb25zb2xlIHZkZXYuICovDQo+ID4gKyAgICAgICByZXQgPSBt bHhiZl90bWZpZm9fY3JlYXRlX3ZkZXYoJnBkZXYtPmRldiwgZmlmbywgVklSVElPX0lEX0NPTlNP TEUsIDAsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwg MCk7DQo+IA0KPiBJZiB5b3UgZGVmaW5lIHRlbXBvcmFyeSB2YXJpYWJsZQ0KPiAgIHN0cnVjdCBk ZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7DQo+IHRoZXNlIGxpbmVzIGNhbiBiZSBtZXJnZWQgaW50 byBvbmUuDQo+IA0KPiA+ICsgICAgICAgaWYgKHJldCkNCj4gPiArICAgICAgICAgICAgICAgZ290 byBmYWlsOw0KPiANCj4gLS0NCj4gV2l0aCBCZXN0IFJlZ2FyZHMsDQo+IEFuZHkgU2hldmNoZW5r bw0K