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=-11.0 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,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 7D419C433E0 for ; Thu, 7 Jan 2021 15:36:29 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 20D0723406 for ; Thu, 7 Jan 2021 15:36:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 20D0723406 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 91C456E499; Thu, 7 Jan 2021 15:36:28 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2AD386E499 for ; Thu, 7 Jan 2021 15:36:28 +0000 (UTC) IronPort-SDR: zOQKkoJWWYgdFCBCL5f11ebN3HI/c0ccRxei6gVJ0iMlPDSEAjx47Ox05Gmsd+1UKdj6THiLPA 4HWTE0EgjRmg== X-IronPort-AV: E=McAfee;i="6000,8403,9857"; a="165134556" X-IronPort-AV: E=Sophos;i="5.79,329,1602572400"; d="scan'208";a="165134556" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jan 2021 07:36:27 -0800 IronPort-SDR: r1sQuGAZLXC+iSy0JhVrVbTQReabpPSe+8T49DOtC654mgrhWilU+zyzwU0f+T6VaU+ZLSLt6x dheCP8uy+oYA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,329,1602572400"; d="scan'208";a="422609211" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga001.jf.intel.com with ESMTP; 07 Jan 2021 07:36:27 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 7 Jan 2021 07:36:26 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 7 Jan 2021 07:36:26 -0800 Received: from fmsmsx610.amr.corp.intel.com ([10.18.126.90]) by fmsmsx610.amr.corp.intel.com ([10.18.126.90]) with mapi id 15.01.1713.004; Thu, 7 Jan 2021 07:36:26 -0800 From: "Vivi, Rodrigo" To: "Huang, Sean Z" , "Intel-gfx@lists.freedesktop.org" Thread-Topic: [Intel-gfx] [RFC-v19 03/13] drm/i915/pxp: Implement funcs to create the TEE channel Thread-Index: AQHW5IFx1QOI6LEad0275RIfbNH1jaoc0s8A Date: Thu, 7 Jan 2021 15:36:26 +0000 Message-ID: References: <20210106231223.8323-1-sean.z.huang@intel.com> <20210106231223.8323-4-sean.z.huang@intel.com> In-Reply-To: <20210106231223.8323-4-sean.z.huang@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.38.2 (3.38.2-1.fc33) x-originating-ip: [10.1.200.100] Content-ID: <8271CF4AACB30642B3C2AB821D1E0956@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [RFC-v19 03/13] drm/i915/pxp: Implement funcs to create the TEE channel X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCAyMDIxLTAxLTA2IGF0IDE1OjEyIC0wODAwLCBIdWFuZywgU2VhbiBaIHdyb3RlOg0K PiBJbXBsZW1lbnQgdGhlIGZ1bmNzIHRvIGNyZWF0ZSB0aGUgVEVFIGNoYW5uZWwsIHNvIGtlcm5l bCBjYW4NCj4gc2VuZCB0aGUgVEVFIGNvbW1hbmRzIGRpcmVjdGx5IHRvIFRFRSBmb3IgY3JlYXRp bmcgdGhlIGFyYml0cmFyeQ0KPiAoZGVmdWFsdCkgc2Vzc2lvbi4NCj4gDQo+IFNpZ25lZC1vZmYt Ynk6IEh1YW5nLCBTZWFuIFogPHNlYW4uei5odWFuZ0BpbnRlbC5jb20+DQo+IC0tLQ0KPiDCoGRy aXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAz ICstDQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuY8KgwqDCoMKgwqDCoMKgwqDC oCB8wqDCoCAxICsNCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5owqDCoMKgwqDC oMKgwqDCoMKgIHzCoMKgIDYgKw0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9w eHAuY8KgwqDCoMKgIHzCoMKgIDUgKw0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRl bF9weHBfdGVlLmMgfCAxMzcNCj4gKysrKysrKysrKysrKysrKysrKysrKysNCj4gwqBkcml2ZXJz L2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwX3RlZS5oIHzCoCAxNCArKysNCj4gwqBpbmNsdWRl L2RybS9pOTE1X2NvbXBvbmVudC5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDEgKw0K PiDCoGluY2x1ZGUvZHJtL2k5MTVfcHhwX3RlZV9pbnRlcmZhY2UuaMKgwqDCoMKgIHzCoCA0NSAr KysrKysrKw0KPiDCoDggZmlsZXMgY2hhbmdlZCwgMjExIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkNCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2lu dGVsX3B4cF90ZWUuYw0KPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkx NS9weHAvaW50ZWxfcHhwX3RlZS5oDQo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJt L2k5MTVfcHhwX3RlZV9pbnRlcmZhY2UuaA0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L01ha2VmaWxlDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUNCj4g aW5kZXggY2JmMmYwNTk0YjRkLi41NDk0YzMwY2I1NGYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L01ha2VmaWxlDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2Vm aWxlDQo+IEBAIC0yNjIsNyArMjYyLDggQEAgaTkxNS15ICs9IGk5MTVfcGVyZi5vDQo+IMKgIyBQ cm90ZWN0ZWQgZXhlY3V0aW9uIHBsYXRmb3JtIChQWFApIHN1cHBvcnQNCj4gwqBpOTE1LSQoQ09O RklHX0RSTV9JOTE1X1BYUCkgKz0gXA0KPiDCoMKgwqDCoMKgwqDCoMKgcHhwL2ludGVsX3B4cC5v IFwNCj4gLcKgwqDCoMKgwqDCoMKgcHhwL2ludGVsX3B4cF9jb250ZXh0Lm8NCj4gK8KgwqDCoMKg wqDCoMKgcHhwL2ludGVsX3B4cF9jb250ZXh0Lm8gXA0KPiArwqDCoMKgwqDCoMKgwqBweHAvaW50 ZWxfcHhwX3RlZS5vDQo+IMKgDQo+IMKgIyBQb3N0LW1vcnRlbSBkZWJ1ZyBhbmQgR1BVIGhhbmcg c3RhdGUgY2FwdHVyZQ0KPiDCoGk5MTUtJChDT05GSUdfRFJNX0k5MTVfQ0FQVFVSRV9FUlJPUikg Kz0gaTkxNV9ncHVfZXJyb3Iubw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYw0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMNCj4gaW5kZXgg M2U1MDQyNDdmMmRhLi4yMDdkNTAyMjZlNjQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu Yw0KPiBAQCAtMzIyLDYgKzMyMiw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfZWFybHlfcHJv YmUoc3RydWN0DQo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiDCoMKgwqDCoMKgwqDC oMKgbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPndtLndtX211dGV4KTsNCj4gwqDCoMKgwqDCoMKgwqDC oG11dGV4X2luaXQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOw0KPiDCoMKgwqDCoMKgwqDCoMKgbXV0 ZXhfaW5pdCgmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7DQo+ICvCoMKgwqDCoMKgwqDCoG11 dGV4X2luaXQoJmRldl9wcml2LT5weHBfdGVlX2NvbXBfbXV0ZXgpOw0KPiDCoA0KPiDCoMKgwqDC oMKgwqDCoMKgaTkxNV9tZW1jcHlfaW5pdF9lYXJseShkZXZfcHJpdik7DQo+IMKgwqDCoMKgwqDC oMKgwqBpbnRlbF9ydW50aW1lX3BtX2luaXRfZWFybHkoJmRldl9wcml2LT5ydW50aW1lX3BtKTsN Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+IGluZGV4IDVlNWJjZWYyMGUzMy4uYzJmNDdk YWVmNWE1IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gQEAgLTEyMDksNiArMTIw OSwxMiBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7DQo+IMKgwqDCoMKgwqDCoMKgwqAvKiBN dXRleCB0byBwcm90ZWN0IHRoZSBhYm92ZSBoZGNwIGNvbXBvbmVudCByZWxhdGVkIHZhbHVlcy4N Cj4gKi8NCj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBtdXRleCBoZGNwX2NvbXBfbXV0ZXg7DQo+ IMKgDQo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBpOTE1X3B4cF9jb21wX21hc3RlciAqcHhwX3Rl ZV9tYXN0ZXI7DQo+ICvCoMKgwqDCoMKgwqDCoGJvb2wgcHhwX3RlZV9jb21wX2FkZGVkOw0KPiAr DQo+ICvCoMKgwqDCoMKgwqDCoC8qIE11dGV4IHRvIHByb3RlY3QgdGhlIGFib3ZlIHB4cF90ZWUg Y29tcG9uZW50IHJlbGF0ZWQNCj4gdmFsdWVzLiAqLw0KPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qg bXV0ZXggcHhwX3RlZV9jb21wX211dGV4Ow0KPiArDQo+IMKgwqDCoMKgwqDCoMKgwqBJOTE1X1NF TEZURVNUX0RFQ0xBUkUoc3RydWN0IGk5MTVfc2VsZnRlc3Rfc3Rhc2ggc2VsZnRlc3Q7KQ0KPiDC oA0KPiDCoMKgwqDCoMKgwqDCoMKgLyoNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3B4cC9pbnRlbF9weHAuYw0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9w eHAuYw0KPiBpbmRleCBmNTY2YTRmZGEwNDQuLmM4MTlmMzc5MWVlNCAxMDA2NDQNCj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3B4cC9pbnRlbF9weHAuYw0KPiBAQCAtNSw2ICs1LDcgQEANCj4gwqAjaW5jbHVk ZSAiaTkxNV9kcnYuaCINCj4gwqAjaW5jbHVkZSAiaW50ZWxfcHhwLmgiDQo+IMKgI2luY2x1ZGUg ImludGVsX3B4cF9jb250ZXh0LmgiDQo+ICsjaW5jbHVkZSAiaW50ZWxfcHhwX3RlZS5oIg0KPiDC oA0KPiDCoC8qIEtDUiByZWdpc3RlciBkZWZpbml0aW9ucyAqLw0KPiDCoCNkZWZpbmUgS0NSX0lO SVTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9NTUlPKDB4MzIwZjApDQo+IEBAIC0yMyw2ICsyNCw4 IEBAIHZvaWQgaW50ZWxfcHhwX2luaXQoc3RydWN0IGludGVsX3B4cCAqcHhwKQ0KPiDCoA0KPiDC oMKgwqDCoMKgwqDCoMKgaW50ZWxfdW5jb3JlX3dyaXRlKGd0LT51bmNvcmUsIEtDUl9JTklULA0K PiBLQ1JfSU5JVF9BTExPV19ESVNQTEFZX01FX1dSSVRFUyk7DQo+IMKgDQo+ICvCoMKgwqDCoMKg wqDCoGludGVsX3B4cF90ZWVfY29tcG9uZW50X2luaXQocHhwKTsNCj4gKw0KPiDCoMKgwqDCoMKg wqDCoMKgZHJtX2luZm8oJmd0LT5pOTE1LT5kcm0sICJQcm90ZWN0ZWQgWGUgUGF0aCAoUFhQKSBw cm90ZWN0ZWQNCj4gY29udGVudCBzdXBwb3J0IGluaXRpYWxpemVkXG4iKTsNCj4gwqB9DQo+IMKg DQo+IEBAIC0zMyw1ICszNiw3IEBAIHZvaWQgaW50ZWxfcHhwX2Zpbmkoc3RydWN0IGludGVsX3B4 cCAqcHhwKQ0KPiDCoMKgwqDCoMKgwqDCoMKgaWYgKElOVEVMX0dFTihndC0+aTkxNSkgPCAxMikN Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47DQo+IMKgDQo+ICvCoMKg wqDCoMKgwqDCoGludGVsX3B4cF90ZWVfY29tcG9uZW50X2ZpbmkocHhwKTsNCj4gKw0KPiDCoMKg wqDCoMKgwqDCoMKgaW50ZWxfcHhwX2N0eF9maW5pKCZweHAtPmN0eCk7DQo+IMKgfQ0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cF90ZWUuYw0KPiBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9weHBfdGVlLmMNCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi41YTFmZmNjNzAzZTINCj4gLS0tIC9kZXYvbnVs bA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwX3RlZS5jDQo+IEBA IC0wLDAgKzEsMTM3IEBADQo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUDQo+ICsv Kg0KPiArICogQ29weXJpZ2h0KGMpIDIwMjAgSW50ZWwgQ29ycG9yYXRpb24uDQo+ICsgKi8NCj4g Kw0KPiArI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPg0KPiArI2luY2x1ZGUgImRybS9pOTE1 X3B4cF90ZWVfaW50ZXJmYWNlLmgiDQo+ICsjaW5jbHVkZSAiZHJtL2k5MTVfY29tcG9uZW50Lmgi DQo+ICsjaW5jbHVkZcKgICJpOTE1X2Rydi5oIg0KPiArI2luY2x1ZGUgImludGVsX3B4cC5oIg0K PiArI2luY2x1ZGUgImludGVsX3B4cF9jb250ZXh0LmgiDQo+ICsjaW5jbHVkZSAiaW50ZWxfcHhw X3RlZS5oIg0KPiArDQo+ICtzdGF0aWMgaW50IGludGVsX3B4cF90ZWVfaW9fbWVzc2FnZShzdHJ1 Y3QgaW50ZWxfcHhwICpweHAsDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2b2lkICptc2dfaW4sIHUzMiBtc2df aW5fc2l6ZSwNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZvaWQgKm1zZ19vdXQsIHUzMg0KPiAqbXNnX291dF9z aXplX3B0ciwNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHUzMiBtc2dfb3V0X2J1Zl9zaXplKQ0KPiArew0KPiAr wqDCoMKgwqDCoMKgwqBpbnQgcmV0Ow0KPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZ3Qg Kmd0ID0gY29udGFpbmVyX29mKHB4cCwgdHlwZW9mKCpndCksIHB4cCk7DQo+ICvCoMKgwqDCoMKg wqDCoHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3QtPmk5MTU7DQo+ICvCoMKgwqDC oMKgwqDCoHN0cnVjdCBpOTE1X3B4cF9jb21wX21hc3RlciAqcHhwX3RlZV9tYXN0ZXIgPSBpOTE1 LQ0KPiA+cHhwX3RlZV9tYXN0ZXI7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgaWYgKCFweHBfdGVl X21hc3RlciB8fCAhbXNnX2luIHx8ICFtc2dfb3V0IHx8DQo+ICFtc2dfb3V0X3NpemVfcHRyKQ0K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4g K8KgwqDCoMKgwqDCoMKgbG9ja2RlcF9hc3NlcnRfaGVsZCgmaTkxNS0+cHhwX3RlZV9jb21wX211 dGV4KTsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqBpZiAoZHJtX2RlYnVnX2VuYWJsZWQoRFJNX1VU X0RSSVZFUikpDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwcmludF9oZXhfZHVt cChLRVJOX0RFQlVHLCAiVEVFIGlucHV0IG1lc3NhZ2UNCj4gYmluYXJpZXM6IiwNCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRFVN UF9QUkVGSVhfT0ZGU0VULCA0LCA0LCBtc2dfaW4sDQo+IG1zZ19pbl9zaXplLCB0cnVlKTsNCg0K d2h5IG5vdCB1c2UgZHJtIGRlYnVnIHByaW50cyBkaXJlY3RseT8NCg0KQWxzbywgdGhpcyBwYXRj aCBkaWRuJ3QgYWRkcmVzcyBhbnkgb2YgdGhlIGNvbmNlcm5zIHRoYXQgQ2hyaXMgaGFkDQpyYWlz ZWQgb24gdjQuDQoNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqByZXQgPSBweHBfdGVlX21hc3Rlci0+ b3BzLT5zZW5kKHB4cF90ZWVfbWFzdGVyLT50ZWVfZGV2LA0KPiBtc2dfaW4sIG1zZ19pbl9zaXpl KTsNCj4gK8KgwqDCoMKgwqDCoMKgaWYgKHJldCkgew0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZHJtX2VycigmaTkxNS0+ZHJtLCAiRmFpbGVkIHRvIHNlbmQgVEVFIG1lc3NhZ2Vc biIpOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FRkFVTFQ7DQo+ ICvCoMKgwqDCoMKgwqDCoH0NCj4gKw0KPiArwqDCoMKgwqDCoMKgwqByZXQgPSBweHBfdGVlX21h c3Rlci0+b3BzLT5yZWNlaXZlKHB4cF90ZWVfbWFzdGVyLT50ZWVfZGV2LA0KPiBtc2dfb3V0LCBt c2dfb3V0X2J1Zl9zaXplKTsNCj4gK8KgwqDCoMKgwqDCoMKgaWYgKHJldCA8IDApIHsNCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRybV9lcnIoJmk5MTUtPmRybSwgIkZhaWxlZCB0 byByZWNlaXZlIFRFRQ0KPiBtZXNzYWdlXG4iKTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHJldHVybiAtRUZBVUxUOw0KPiArwqDCoMKgwqDCoMKgwqB9DQo+ICsNCj4gK8KgwqDC oMKgwqDCoMKgaWYgKHJldCA+IG1zZ19vdXRfYnVmX3NpemUpIHsNCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGRybV9lcnIoJmk5MTUtPmRybSwgIkZhaWxlZCB0byByZWNlaXZlIFRF RSBtZXNzYWdlDQo+IGR1ZSB0byB1bmV4cGVjdGVkIG91dHB1dCBzaXplXG4iKTsNCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAtRUZBVUxUOw0KPiArwqDCoMKgwqDCoMKg wqB9DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgKm1zZ19vdXRfc2l6ZV9wdHIgPSByZXQ7DQo+ICvC oMKgwqDCoMKgwqDCoHJldCA9IDA7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgaWYgKGRybV9kZWJ1 Z19lbmFibGVkKERSTV9VVF9EUklWRVIpKQ0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgcHJpbnRfaGV4X2R1bXAoS0VSTl9ERUJVRywgIlRFRSBvdXRwdXQgbWVzc2FnZQ0KPiBiaW5h cmllczoiLA0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBEVU1QX1BSRUZJWF9PRkZTRVQsIDQsIDQsIG1zZ19vdXQsDQo+ICptc2df b3V0X3NpemVfcHRyLCB0cnVlKTsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gcmV0Ow0K PiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIGk5MTVfcHhwX3RlZV9jb21wb25lbnRfYmluZCAtIGJp bmQgZnVuY2l0b24gdG8gcGFzcyB0aGUgZnVuY3Rpb24NCj4gcG9pbnRlcnMgdG8gcHhwX3RlZQ0K PiArICogQGk5MTVfa2RldjogcG9pbnRlciB0byBpOTE1IGtlcm5lbCBkZXZpY2UNCj4gKyAqIEB0 ZWVfa2RldjogcG9pbnRlciB0byB0ZWUga2VybmVsIGRldmljZQ0KPiArICogQGRhdGE6IHBvaW50 ZXIgdG8gcHhwX3RlZV9tYXN0ZXIgY29udGFpbmluZyB0aGUgZnVuY3Rpb24gcG9pbnRlcnMNCj4g KyAqDQo+ICsgKiBUaGlzIGJpbmQgZnVuY3Rpb24gaXMgY2FsbGVkIGR1cmluZyB0aGUgc3lzdGVt IGJvb3Qgb3IgcmVzdW1lDQo+IGZyb20gc3lzdGVtIHNsZWVwLg0KPiArICoNCj4gKyAqIFJldHVy bjogcmV0dXJuIDAgaWYgc3VjY2Vzc2Z1bC4NCj4gKyAqLw0KPiArc3RhdGljIGludCBpOTE1X3B4 cF90ZWVfY29tcG9uZW50X2JpbmQoc3RydWN0IGRldmljZSAqaTkxNV9rZGV2LA0KPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgc3RydWN0IGRldmljZSAqdGVlX2tkZXYsIHZvaWQNCj4gKmRhdGEpDQo+ICt7 DQo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0ga2Rldl90 b19pOTE1KGk5MTVfa2Rldik7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgaWYgKCFpOTE1IHx8ICF0 ZWVfa2RldiB8fCAhZGF0YSkNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVy biAtRVBFUk07DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgbXV0ZXhfbG9jaygmaTkxNS0+cHhwX3Rl ZV9jb21wX211dGV4KTsNCj4gK8KgwqDCoMKgwqDCoMKgaTkxNS0+cHhwX3RlZV9tYXN0ZXIgPSAo c3RydWN0IGk5MTVfcHhwX2NvbXBfbWFzdGVyICopZGF0YTsNCj4gK8KgwqDCoMKgwqDCoMKgaTkx NS0+cHhwX3RlZV9tYXN0ZXItPnRlZV9kZXYgPSB0ZWVfa2RldjsNCj4gK8KgwqDCoMKgwqDCoMKg bXV0ZXhfdW5sb2NrKCZpOTE1LT5weHBfdGVlX2NvbXBfbXV0ZXgpOw0KPiArDQo+ICvCoMKgwqDC oMKgwqDCoHJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBpOTE1X3B4cF90ZWVf Y29tcG9uZW50X3VuYmluZChzdHJ1Y3QgZGV2aWNlICppOTE1X2tkZXYsDQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZGV2aWNlICp0ZWVfa2RldiwNCj4gdm9pZCAqZGF0YSkNCj4g K3sNCj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBrZGV2 X3RvX2k5MTUoaTkxNV9rZGV2KTsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqBpZiAoIWk5MTUgfHwg IXRlZV9rZGV2IHx8ICFkYXRhKQ0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuOw0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoG11dGV4X2xvY2soJmk5MTUtPnB4cF90ZWVfY29t cF9tdXRleCk7DQo+ICvCoMKgwqDCoMKgwqDCoGk5MTUtPnB4cF90ZWVfbWFzdGVyID0gTlVMTDsN Cj4gK8KgwqDCoMKgwqDCoMKgbXV0ZXhfdW5sb2NrKCZpOTE1LT5weHBfdGVlX2NvbXBfbXV0ZXgp Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9vcHMgaTkxNV9w eHBfdGVlX2NvbXBvbmVudF9vcHMgPSB7DQo+ICvCoMKgwqDCoMKgwqDCoC5iaW5kwqDCoCA9IGk5 MTVfcHhwX3RlZV9jb21wb25lbnRfYmluZCwNCj4gK8KgwqDCoMKgwqDCoMKgLnVuYmluZCA9IGk5 MTVfcHhwX3RlZV9jb21wb25lbnRfdW5iaW5kLA0KPiArfTsNCj4gKw0KPiArdm9pZCBpbnRlbF9w eHBfdGVlX2NvbXBvbmVudF9pbml0KHN0cnVjdCBpbnRlbF9weHAgKnB4cCkNCj4gK3sNCj4gK8Kg wqDCoMKgwqDCoMKgaW50IHJldDsNCj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IGludGVsX2d0ICpn dCA9IGNvbnRhaW5lcl9vZihweHAsIHR5cGVvZigqZ3QpLCBweHApOw0KPiArwqDCoMKgwqDCoMKg wqBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGd0LT5pOTE1Ow0KPiArDQo+ICvCoMKg wqDCoMKgwqDCoHJldCA9IGNvbXBvbmVudF9hZGRfdHlwZWQoaTkxNS0+ZHJtLmRldiwNCj4gJmk5 MTVfcHhwX3RlZV9jb21wb25lbnRfb3BzLA0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBJOTE1X0NPTVBPTkVOVF9QWFAp Ow0KPiArwqDCoMKgwqDCoMKgwqBpZiAocmV0IDwgMCkgew0KPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZHJtX2VycigmaTkxNS0+ZHJtLCAiRmFpbGVkIGF0IGNvbXBvbmVudCBhZGQo JWQpXG4iLA0KPiByZXQpOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJu Ow0KPiArwqDCoMKgwqDCoMKgwqB9DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgbXV0ZXhfbG9jaygm aTkxNS0+cHhwX3RlZV9jb21wX211dGV4KTsNCj4gK8KgwqDCoMKgwqDCoMKgaTkxNS0+cHhwX3Rl ZV9jb21wX2FkZGVkID0gdHJ1ZTsNCj4gK8KgwqDCoMKgwqDCoMKgbXV0ZXhfdW5sb2NrKCZpOTE1 LT5weHBfdGVlX2NvbXBfbXV0ZXgpOw0KPiArfQ0KPiArDQo+ICt2b2lkIGludGVsX3B4cF90ZWVf Y29tcG9uZW50X2Zpbmkoc3RydWN0IGludGVsX3B4cCAqcHhwKQ0KPiArew0KPiArwqDCoMKgwqDC oMKgwqBzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gY29udGFpbmVyX29mKHB4cCwgdHlwZW9mKCpndCks IHB4cCk7DQo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0g Z3QtPmk5MTU7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgbXV0ZXhfbG9jaygmaTkxNS0+cHhwX3Rl ZV9jb21wX211dGV4KTsNCj4gK8KgwqDCoMKgwqDCoMKgaWYgKCFpOTE1LT5weHBfdGVlX2NvbXBf YWRkZWQpIHsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG11dGV4X3VubG9jaygm aTkxNS0+cHhwX3RlZV9jb21wX211dGV4KTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHJldHVybjsNCj4gK8KgwqDCoMKgwqDCoMKgfQ0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoGk5 MTUtPnB4cF90ZWVfY29tcF9hZGRlZCA9IGZhbHNlOw0KPiArwqDCoMKgwqDCoMKgwqBtdXRleF91 bmxvY2soJmk5MTUtPnB4cF90ZWVfY29tcF9tdXRleCk7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKg Y29tcG9uZW50X2RlbChpOTE1LT5kcm0uZGV2LCAmaTkxNV9weHBfdGVlX2NvbXBvbmVudF9vcHMp Ow0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4 cF90ZWUuaA0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9weHBfdGVlLmgNCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi40YjVlM2VkYjFkOWIN Cj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxf cHhwX3RlZS5oDQo+IEBAIC0wLDAgKzEsMTQgQEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBNSVQgKi8NCj4gKy8qDQo+ICsgKiBDb3B5cmlnaHQoYykgMjAyMCwgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICsgKi8NCj4gKw0KPiArI2lmbmRlZiBfX0lO VEVMX1BYUF9URUVfSF9fDQo+ICsjZGVmaW5lIF9fSU5URUxfUFhQX1RFRV9IX18NCj4gKw0KPiAr I2luY2x1ZGUgImludGVsX3B4cC5oIg0KPiArDQo+ICt2b2lkIGludGVsX3B4cF90ZWVfY29tcG9u ZW50X2luaXQoc3RydWN0IGludGVsX3B4cCAqcHhwKTsNCj4gK3ZvaWQgaW50ZWxfcHhwX3RlZV9j b21wb25lbnRfZmluaShzdHJ1Y3QgaW50ZWxfcHhwICpweHApOw0KPiArDQo+ICsjZW5kaWYgLyog X19JTlRFTF9QWFBfVEVFX0hfXyAqLw0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vaTkxNV9j b21wb25lbnQuaA0KPiBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgNCj4gaW5kZXggNTVj M2IxMjM1ODFiLi5jMWUyYTQzZDJkMWUgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvZHJtL2k5MTVf Y29tcG9uZW50LmgNCj4gKysrIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaA0KPiBAQCAt MjksNiArMjksNyBAQA0KPiDCoGVudW0gaTkxNV9jb21wb25lbnRfdHlwZSB7DQo+IMKgwqDCoMKg wqDCoMKgwqBJOTE1X0NPTVBPTkVOVF9BVURJTyA9IDEsDQo+IMKgwqDCoMKgwqDCoMKgwqBJOTE1 X0NPTVBPTkVOVF9IRENQLA0KPiArwqDCoMKgwqDCoMKgwqBJOTE1X0NPTVBPTkVOVF9QWFANCj4g wqB9Ow0KPiDCoA0KPiDCoC8qIE1BWF9QT1JUIGlzIHRoZSBudW1iZXIgb2YgcG9ydA0KPiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vaTkxNV9weHBfdGVlX2ludGVyZmFjZS5oDQo+IGIvaW5jbHVk ZS9kcm0vaTkxNV9weHBfdGVlX2ludGVyZmFjZS5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ IGluZGV4IDAwMDAwMDAwMDAwMC4uMzk5OWUyNTVlMTQ1DQo+IC0tLSAvZGV2L251bGwNCj4gKysr IGIvaW5jbHVkZS9kcm0vaTkxNV9weHBfdGVlX2ludGVyZmFjZS5oDQo+IEBAIC0wLDAgKzEsNDUg QEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8NCj4gKy8qDQo+ICsgKiBD b3B5cmlnaHQgwqkgMjAyMCBJbnRlbCBDb3Jwb3JhdGlvbg0KPiArICoNCj4gKyAqIEF1dGhvcnM6 DQo+ICsgKiBWaXRhbHkgTHViYXJ0IDx2aXRhbHkubHViYXJ0QGludGVsLmNvbT4NCj4gKyAqLw0K PiArDQo+ICsjaWZuZGVmIF9JOTE1X1BYUF9URUVfSU5URVJGQUNFX0hfDQo+ICsjZGVmaW5lIF9J OTE1X1BYUF9URUVfSU5URVJGQUNFX0hfDQo+ICsNCj4gKyNpbmNsdWRlIDxsaW51eC9tdXRleC5o Pg0KPiArI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPg0KPiArDQo+ICsvKioNCj4gKyAqIHN0cnVj dCBpOTE1X3B4cF9jb21wb25lbnRfb3BzIC0gb3BzIGZvciBQWFAgc2VydmljZXMuDQo+ICsgKiBA b3duZXI6IE1vZHVsZSBwcm92aWRpbmcgdGhlIG9wcw0KPiArICogQHNlbmQ6IHNlbmRzIGRhdGEg dG8gUFhQDQo+ICsgKiBAcmVjZWl2ZTogcmVjZWl2ZXMgZGF0YSBmcm9tIFBYUA0KPiArICovDQo+ ICtzdHJ1Y3QgaTkxNV9weHBfY29tcG9uZW50X29wcyB7DQo+ICvCoMKgwqDCoMKgwqDCoC8qKg0K PiArwqDCoMKgwqDCoMKgwqAgKiBAb3duZXI6IG93bmVyIG9mIHRoZSBtb2R1bGUgcHJvdmRpbmcg dGhlIG9wcw0KPiArwqDCoMKgwqDCoMKgwqAgKi8NCj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IG1v ZHVsZSAqb3duZXI7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgaW50ICgqc2VuZCkoc3RydWN0IGRl dmljZSAqZGV2LCBjb25zdCB2b2lkICptZXNzYWdlLCBzaXplX3QNCj4gc2l6ZSk7DQo+ICvCoMKg wqDCoMKgwqDCoGludCAoKnJlY2VpdmUpKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnVmZmVy LCBzaXplX3QNCj4gc2l6ZSk7DQo+ICt9Ow0KPiArDQo+ICsvKioNCj4gKyAqIHN0cnVjdCBpOTE1 X3B4cF9jb21wb25lbnRfbWFzdGVyIC0gVXNlZCBmb3IgY29tbXVuaWNhdGlvbiBiZXR3ZWVuDQo+ IGk5MTUNCj4gKyAqIGFuZCBURUUgZHJpdmVycyBmb3IgdGhlIFBYUCBzZXJ2aWNlcw0KPiArICog QHRlZV9kZXY6IGRldmljZSB0aGF0IHByb3ZpZGUgdGhlIFBYUCBzZXJ2aWNlIGZyb20gVEVFIEJ1 cy4NCj4gKyAqIEBweHBfb3BzOiBPcHMgaW1wbGVtZW50ZWQgYnkgVEVFIGRyaXZlciwgdXNlZCBi eSBpOTE1IGRyaXZlci4NCj4gKyAqLw0KPiArc3RydWN0IGk5MTVfcHhwX2NvbXBfbWFzdGVyIHsN Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IGRldmljZSAqdGVlX2RldjsNCj4gK8KgwqDCoMKgwqDC oMKgY29uc3Qgc3RydWN0IGk5MTVfcHhwX2NvbXBvbmVudF9vcHMgKm9wczsNCj4gKw0KPiArwqDC oMKgwqDCoMKgwqAvKiBUbyBwcm90ZWN0IHRoZSBhYm92ZSBtZW1iZXJzLiAqLw0KPiArwqDCoMKg wqDCoMKgwqBzdHJ1Y3QgbXV0ZXggbXV0ZXg7DQo+ICt9Ow0KPiArDQo+ICsjZW5kaWYgLyogX0k5 MTVfVEVFX1BYUF9JTlRFUkZBQ0VfSF8gKi8NCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==