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=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 22A85C433C1 for ; Mon, 29 Mar 2021 14:15:41 +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 D822D6192F for ; Mon, 29 Mar 2021 14:15:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D822D6192F 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 6A6F76E430; Mon, 29 Mar 2021 14:15:40 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1E2766E430 for ; Mon, 29 Mar 2021 14:15:39 +0000 (UTC) IronPort-SDR: 6jSG+1hcLzuvWmsAIz5UW0O6emeVEE12PKrtHRpggpwHPldgKIatdthL+P7DnA5HFMx6p/U3BR 9Z8NYE7G3XsQ== X-IronPort-AV: E=McAfee;i="6000,8403,9938"; a="170958191" X-IronPort-AV: E=Sophos;i="5.81,288,1610438400"; d="scan'208";a="170958191" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2021 07:15:38 -0700 IronPort-SDR: DaiQVnXJ89jAtLSyLuyXVJUG4e9WRGOzWMbJtw+uPW6ZVJdvzd318672yacBAqWTJ7KHfV0+Bh n2gHAW+WyTMA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,288,1610438400"; d="scan'208";a="595105268" Received: from irvmail001.ir.intel.com ([10.43.11.63]) by orsmga005.jf.intel.com with ESMTP; 29 Mar 2021 07:15:37 -0700 Received: from [10.249.145.145] (mwajdecz-MOBL.ger.corp.intel.com [10.249.145.145]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id 12TEFann006174 for ; Mon, 29 Mar 2021 15:15:36 +0100 To: intel-gfx@lists.freedesktop.org References: <20210328225709.18541-1-daniele.ceraolospurio@intel.com> <20210328225709.18541-3-daniele.ceraolospurio@intel.com> From: Michal Wajdeczko Message-ID: <7c921fe6-9f93-ad9d-7ca0-5439b076635c@intel.com> Date: Mon, 29 Mar 2021 16:15:36 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.9.0 MIME-Version: 1.0 In-Reply-To: <20210328225709.18541-3-daniele.ceraolospurio@intel.com> Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH v3 02/16] mei: pxp: export pavp client to me client bus 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" CgpPbiAyOS4wMy4yMDIxIDAwOjU2LCBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIHdyb3RlOgo+IEZy b206IFZpdGFseSBMdWJhcnQgPHZpdGFseS5sdWJhcnRAaW50ZWwuY29tPgo+IAo+IEV4cG9ydCBQ QVZQIGNsaWVudCB0byB3b3JrIHdpdGggaTkxNSBkcml2ZXIsCj4gZm9yIGJpbmRpbmcgaXQgdXNl cyBrZXJuZWwgY29tcG9uZW50IGZyYW1ld29yay4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBWaXRhbHkg THViYXJ0IDx2aXRhbHkubHViYXJ0QGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBUb21hcyBX aW5rbGVyIDx0b21hcy53aW5rbGVyQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWxl IENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+IC0tLQo+ ICBkcml2ZXJzL21pc2MvbWVpL0tjb25maWcgICAgICAgfCAgIDIgKwo+ICBkcml2ZXJzL21pc2Mv bWVpL01ha2VmaWxlICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL21pc2MvbWVpL3B4cC9LY29uZmln ICAgfCAgMTMgKysKPiAgZHJpdmVycy9taXNjL21laS9weHAvTWFrZWZpbGUgIHwgICA3ICsKPiAg ZHJpdmVycy9taXNjL21laS9weHAvbWVpX3B4cC5jIHwgMjMzICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwo+ICBkcml2ZXJzL21pc2MvbWVpL3B4cC9tZWlfcHhwLmggfCAgMTggKysr Cj4gIDYgZmlsZXMgY2hhbmdlZCwgMjc0IGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvbWlzYy9tZWkvcHhwL0tjb25maWcKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvbWlzYy9tZWkvcHhwL01ha2VmaWxlCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L21pc2MvbWVpL3B4cC9tZWlfcHhwLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbWlz Yy9tZWkvcHhwL21laV9weHAuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvbWVpL0tj b25maWcgYi9kcml2ZXJzL21pc2MvbWVpL0tjb25maWcKPiBpbmRleCBmNWZkNWI3ODY2MDcuLjBl MGJjZDBkYTg1MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21pc2MvbWVpL0tjb25maWcKPiArKysg Yi9kcml2ZXJzL21pc2MvbWVpL0tjb25maWcKPiBAQCAtNDcsMyArNDcsNSBAQCBjb25maWcgSU5U RUxfTUVJX1RYRQo+ICAJICBJbnRlbCBCYXkgVHJhaWwKPiAgCj4gIHNvdXJjZSAiZHJpdmVycy9t aXNjL21laS9oZGNwL0tjb25maWciCj4gK3NvdXJjZSAiZHJpdmVycy9taXNjL21laS9weHAvS2Nv bmZpZyIKPiArCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9tZWkvTWFrZWZpbGUgYi9kcml2 ZXJzL21pc2MvbWVpL01ha2VmaWxlCj4gaW5kZXggZjFjNzZmN2VlODA0Li5kOGU1MTY1OTE3ZjIg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9taXNjL21laS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMv bWlzYy9tZWkvTWFrZWZpbGUKPiBAQCAtMjYsMyArMjYsNCBAQCBtZWktJChDT05GSUdfRVZFTlRf VFJBQ0lORykgKz0gbWVpLXRyYWNlLm8KPiAgQ0ZMQUdTX21laS10cmFjZS5vID0gLUkkKHNyYykK PiAgCj4gIG9iai0kKENPTkZJR19JTlRFTF9NRUlfSERDUCkgKz0gaGRjcC8KPiArb2JqLSQoQ09O RklHX0lOVEVMX01FSV9QWFApICs9IHB4cC8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL21l aS9weHAvS2NvbmZpZyBiL2RyaXZlcnMvbWlzYy9tZWkvcHhwL0tjb25maWcKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNDAyOWI5NmFmYzA0Cj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL2RyaXZlcnMvbWlzYy9tZWkvcHhwL0tjb25maWcKPiBAQCAtMCwwICsxLDEz IEBACj4gKwo+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gKyMgQ29weXJp Z2h0IChjKSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KPiAr Iwo+ICtjb25maWcgSU5URUxfTUVJX1BYUAo+ICsJdHJpc3RhdGUgIkludGVsIFBYUCBzZXJ2aWNl cyBvZiBNRSBJbnRlcmZhY2UiCj4gKwlzZWxlY3QgSU5URUxfTUVJX01FCj4gKwlkZXBlbmRzIG9u IERSTV9JOTE1Cj4gKwloZWxwCj4gKwkgIE1FSSBTdXBwb3J0IGZvciBQWFAgU2VydmljZXMgb24g SW50ZWwgcGxhdGZvcm1zLgo+ICsKPiArCSAgRW5hYmxlcyB0aGUgTUUgRlcgc2VydmljZXMgcmVx dWlyZWQgZm9yIFBYUCBzdXBwb3J0IHRocm91Z2gKPiArCSAgSTkxNSBkaXNwbGF5IGRyaXZlciBv ZiBJbnRlbC4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL21laS9weHAvTWFrZWZpbGUgYi9k cml2ZXJzL21pc2MvbWVpL3B4cC9NYWtlZmlsZQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggMDAwMDAwMDAwMDAwLi4wMzI5OTUwZDU3OTQKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJp dmVycy9taXNjL21laS9weHAvTWFrZWZpbGUKPiBAQCAtMCwwICsxLDcgQEAKPiArIyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ICsjCj4gKyMgQ29weXJpZ2h0IChjKSAyMDIwLCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KPiArIwo+ICsjIE1ha2VmaWxl IC0gUFhQIGNsaWVudCBkcml2ZXIgZm9yIEludGVsIE1FSSBCdXMgRHJpdmVyLgo+ICsKPiArb2Jq LSQoQ09ORklHX0lOVEVMX01FSV9QWFApICs9IG1laV9weHAubwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL21pc2MvbWVpL3B4cC9tZWlfcHhwLmMgYi9kcml2ZXJzL21pc2MvbWVpL3B4cC9tZWlfcHhw LmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uY2FjZmJlZGI2 NDBhCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvbWlzYy9tZWkvcHhwL21laV9weHAu Ywo+IEBAIC0wLDAgKzEsMjMzIEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wCj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBvcmF0aW9uCj4gKyAq Lwo+ICsKPiArLyoqCj4gKyAqIERPQzogTUVJX1BYUCBDbGllbnQgRHJpdmVyCj4gKyAqCj4gKyAq IFRoZSBtZWlfcHhwIGRyaXZlciBhY3RzIGFzIGEgdHJhbnNsYXRpb24gbGF5ZXIgYmV0d2VlbiBQ WFAKPiArICogcHJvdG9jb2wgIGltcGxlbWVudGVyIChJOTE1KSBhbmQgTUUgRlcgYnkgdHJhbnNs YXRpbmcgUFhQCj4gKyAqIG5lZ290aWF0aW9uIG1lc3NhZ2VzIHRvIE1FIEZXIGNvbW1hbmQgcGF5 bG9hZHMgYW5kIHZpY2UgdmVyc2EuCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L21vZHVs ZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ICsjaW5jbHVkZSA8bGludXgvdXVpZC5o Pgo+ICsjaW5jbHVkZSA8bGludXgvbWVpX2NsX2J1cy5oPgo+ICsjaW5jbHVkZSA8bGludXgvY29t cG9uZW50Lmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2Nvbm5lY3Rvci5oPgo+ICsjaW5jbHVkZSA8 ZHJtL2k5MTVfY29tcG9uZW50Lmg+Cj4gKyNpbmNsdWRlIDxkcm0vaTkxNV9weHBfdGVlX2ludGVy ZmFjZS5oPgo+ICsKPiArI2luY2x1ZGUgIm1laV9weHAuaCIKPiArCj4gKy8qKgo+ICsgKiBtZWlf cHhwX3NlbmRfbWVzc2FnZSgpIC0gU2VuZHMgYSBQWFAgbWVzc2FnZSB0byBNRSBGVy4KPiArICog QGRldjogZGV2aWNlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1laV9jbF9kZXZpY2UKPiArICogQG1l c3NhZ2U6IGEgbWVzc2FnZSBidWZmZXIgdG8gc2VuZAo+ICsgKiBAc2l6ZTogc2l6ZSBvZiB0aGUg bWVzc2FnZQo+ICsgKiBSZXR1cm46IDAgb24gU3VjY2VzcywgPDAgb24gRmFpbHVyZQo+ICsgKi8K PiArc3RhdGljIGludAo+ICttZWlfcHhwX3NlbmRfbWVzc2FnZShzdHJ1Y3QgZGV2aWNlICpkZXYs IGNvbnN0IHZvaWQgKm1lc3NhZ2UsIHNpemVfdCBzaXplKQo+ICt7Cj4gKwlzdHJ1Y3QgbWVpX2Ns X2RldmljZSAqY2xkZXY7Cj4gKwlzc2l6ZV90IGJ5dGU7Cj4gKwo+ICsJaWYgKCFkZXYgfHwgIW1l c3NhZ2UpCj4gKwkJcmV0dXJuIC1FSU5WQUw7CgpjYW4ndCB3ZSBqdXN0IHJlcXVpcmUgdmFsaWQg ZGV2IGFuZCBtZXNzYWdlIGFuZCB0aGVuIEJVR19PTiA/Cgo+ICsKPiArCWNsZGV2ID0gdG9fbWVp X2NsX2RldmljZShkZXYpOwo+ICsKPiArCS8qIHRlbXBvcmFyeSBkcm9wIGNvbnN0IHF1YWxpZmll ciB0aWxsIHRoZSBBUEkgaXMgZml4ZWQgKi8KPiArCWJ5dGUgPSBtZWlfY2xkZXZfc2VuZChjbGRl diwgKHU4ICopbWVzc2FnZSwgc2l6ZSk7Cj4gKwlpZiAoYnl0ZSA8IDApIHsKPiArCQlkZXZfZGJn KGRldiwgIm1laV9jbGRldl9zZW5kIGZhaWxlZC4gJXpkXG4iLCBieXRlKTsKPiArCQlyZXR1cm4g Ynl0ZTsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArLyoqCj4gKyAqIG1laV9w eHBfcmVjZWl2ZV9tZXNzYWdlKCkgLSBSZWNlaXZlcyBhIFBYUCBtZXNzYWdlIGZyb20gTUUgRlcu Cj4gKyAqIEBkZXY6IGRldmljZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBtZWlfY2xfZGV2aWNlCj4g KyAqIEBidWZmZXI6IGEgbWVzc2FnZSBidWZmZXIgdG8gY29udGFpbiB0aGUgcmVjZWl2ZWQgbWVz c2FnZQo+ICsgKiBAc2l6ZTogc2l6ZSBvZiB0aGUgYnVmZmVyCj4gKyAqIFJldHVybjogYnl0ZXMg c2VudCBvbiBTdWNjZXNzLCA8MCBvbiBGYWlsdXJlCgpieXRlcyByZWNlaXZlZCA/Cgo+ICsgKi8K PiArc3RhdGljIGludAo+ICttZWlfcHhwX3JlY2VpdmVfbWVzc2FnZShzdHJ1Y3QgZGV2aWNlICpk ZXYsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUpCj4gK3sKPiArCXN0cnVjdCBtZWlfY2xfZGV2 aWNlICpjbGRldjsKPiArCXNzaXplX3QgYnl0ZTsKPiArCj4gKwlpZiAoIWRldiB8fCAhYnVmZmVy KQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWNsZGV2ID0gdG9fbWVpX2NsX2RldmljZShk ZXYpOwo+ICsKPiArCWJ5dGUgPSBtZWlfY2xkZXZfcmVjdihjbGRldiwgYnVmZmVyLCBzaXplKTsK PiArCWlmIChieXRlIDwgMCkgewo+ICsJCWRldl9kYmcoZGV2LCAibWVpX2NsZGV2X3JlY3YgZmFp bGVkLiAlemRcbiIsIGJ5dGUpOwo+ICsJCXJldHVybiBieXRlOwo+ICsJfQo+ICsKPiArCXJldHVy biBieXRlOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcHhwX2NvbXBvbmVu dF9vcHMgbWVpX3B4cF9vcHMgPSB7Cj4gKwkub3duZXIgPSBUSElTX01PRFVMRSwKPiArCS5zZW5k ID0gbWVpX3B4cF9zZW5kX21lc3NhZ2UsCj4gKwkucmVjdiA9IG1laV9weHBfcmVjZWl2ZV9tZXNz YWdlLAo+ICt9Owo+ICsKPiArc3RhdGljIGludCBtZWlfY29tcG9uZW50X21hc3Rlcl9iaW5kKHN0 cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsJc3RydWN0IG1laV9jbF9kZXZpY2UgKmNsZGV2ID0g dG9fbWVpX2NsX2RldmljZShkZXYpOwo+ICsJc3RydWN0IGk5MTVfcHhwX2NvbXBvbmVudCAqY29t cF9tYXN0ZXIgPSBtZWlfY2xkZXZfZ2V0X2RydmRhdGEoY2xkZXYpOwo+ICsJaW50IHJldDsKPiAr Cj4gKwlkZXZfZGJnKGRldiwgIiVzXG4iLCBfX2Z1bmNfXyk7Cj4gKwljb21wX21hc3Rlci0+b3Bz ID0gJm1laV9weHBfb3BzOwo+ICsJY29tcF9tYXN0ZXItPnRlZV9kZXYgPSBkZXY7Cj4gKwlyZXQg PSBjb21wb25lbnRfYmluZF9hbGwoZGV2LCBjb21wX21hc3Rlcik7Cj4gKwlpZiAocmV0IDwgMCkK PiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCBtZWlfY29tcG9uZW50X21hc3Rlcl91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2KQo+ICt7Cj4g KwlzdHJ1Y3QgbWVpX2NsX2RldmljZSAqY2xkZXYgPSB0b19tZWlfY2xfZGV2aWNlKGRldik7Cj4g KwlzdHJ1Y3QgaTkxNV9weHBfY29tcG9uZW50ICpjb21wX21hc3RlciA9IG1laV9jbGRldl9nZXRf ZHJ2ZGF0YShjbGRldik7Cj4gKwo+ICsJZGV2X2RiZyhkZXYsICIlc1xuIiwgX19mdW5jX18pOwo+ ICsJY29tcG9uZW50X3VuYmluZF9hbGwoZGV2LCBjb21wX21hc3Rlcik7Cj4gK30KPiArCj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X21hc3Rlcl9vcHMgbWVpX2NvbXBvbmVudF9tYXN0 ZXJfb3BzID0gewo+ICsJLmJpbmQgPSBtZWlfY29tcG9uZW50X21hc3Rlcl9iaW5kLAo+ICsJLnVu YmluZCA9IG1laV9jb21wb25lbnRfbWFzdGVyX3VuYmluZCwKPiArfTsKPiArCj4gKy8qKgo+ICsg KiBtZWlfcHhwX2NvbXBvbmVudF9tYXRjaCAtIGNvbXBhcmUgZnVuY3Rpb24gZm9yIG1hdGNoaW5n IG1laSBweHAuCj4gKyAqCj4gKyAqICAgIFRoZSBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIGRyaXZl ciBpcyBpOTE1LCB0aGUgc3ViY29tcG9uZW50IGlzIFBYUAo+ICsgKiAgICBhbmQgdGhlIGdyYW5k IHBhcmVudCBvZiBweHAgYW5kIHRoZSBwYXJlbnQgb2YgaTkxNSBhcmUgdGhlIHNhbWUKPiArICog ICAgUENIIGRldmljZS4KPiArICoKPiArICogQGRldjogbWFzdGVyIGRldmljZQo+ICsgKiBAc3Vi Y29tcG9uZW50OiBzdWJjb21wb25lbnQgdG8gbWF0Y2ggKEk5MTVfQ09NUE9ORU5UX1BYUCkKPiAr ICogQGRhdGE6IGNvbXBhcmUgZGF0YSAobWVpIHB4cCBkZXZpY2UpCj4gKyAqCj4gKyAqIFJldHVy bjoKPiArICogKiAxIC0gaWYgY29tcG9uZW50cyBtYXRjaAo+ICsgKiAqIDAgLSBvdGhlcndpc2UK PiArICovCj4gK3N0YXRpYyBpbnQgbWVpX3B4cF9jb21wb25lbnRfbWF0Y2goc3RydWN0IGRldmlj ZSAqZGV2LCBpbnQgc3ViY29tcG9uZW50LAo+ICsJCQkJICAgdm9pZCAqZGF0YSkKPiArewo+ICsJ c3RydWN0IGRldmljZSAqYmFzZSA9IGRhdGE7Cj4gKwo+ICsJaWYgKHN1YmNvbXBvbmVudCAhPSBJ OTE1X0NPTVBPTkVOVF9QWFApCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJaWYgKHN0cmNtcChkZXYt PmRyaXZlci0+bmFtZSwgImk5MTUiKSA9PSAwKSB7Cj4gKwkJYmFzZSA9IGJhc2UtPnBhcmVudDsK PiArCQlpZiAoIWJhc2UpCj4gKwkJCXJldHVybiAwOwo+ICsKPiArCQliYXNlID0gYmFzZS0+cGFy ZW50Owo+ICsJCWRldiA9IGRldi0+cGFyZW50Owo+ICsJCXJldHVybiAoYmFzZSAmJiBkZXYgJiYg ZGV2ID09IGJhc2UpOwo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMg aW50IG1laV9weHBfcHJvYmUoc3RydWN0IG1laV9jbF9kZXZpY2UgKmNsZGV2LAo+ICsJCQkgY29u c3Qgc3RydWN0IG1laV9jbF9kZXZpY2VfaWQgKmlkKQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV9weHBf Y29tcG9uZW50ICpjb21wX21hc3RlcjsKPiArCXN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKm1hc3Rl cl9tYXRjaDsKPiArCWludCByZXQ7Cj4gKwo+ICsJcmV0ID0gbWVpX2NsZGV2X2VuYWJsZShjbGRl dik7Cj4gKwlpZiAocmV0IDwgMCkgewo+ICsJCWRldl9lcnIoJmNsZGV2LT5kZXYsICJtZWlfY2xk ZXZfZW5hYmxlIEZhaWxlZC4gJWRcbiIsIHJldCk7Cj4gKwkJZ290byBlbmFibGVfZXJyX2V4aXQ7 Cj4gKwl9Cj4gKwo+ICsJY29tcF9tYXN0ZXIgPSBremFsbG9jKHNpemVvZigqY29tcF9tYXN0ZXIp LCBHRlBfS0VSTkVMKTsKPiArCWlmICghY29tcF9tYXN0ZXIpIHsKPiArCQlyZXQgPSAtRU5PTUVN Owo+ICsJCWdvdG8gZXJyX2V4aXQ7Cj4gKwl9Cj4gKwo+ICsJbWFzdGVyX21hdGNoID0gTlVMTDsK PiArCWNvbXBvbmVudF9tYXRjaF9hZGRfdHlwZWQoJmNsZGV2LT5kZXYsICZtYXN0ZXJfbWF0Y2gs Cj4gKwkJCQkgIG1laV9weHBfY29tcG9uZW50X21hdGNoLCAmY2xkZXYtPmRldik7Cj4gKwlpZiAo SVNfRVJSX09SX05VTEwobWFzdGVyX21hdGNoKSkgewo+ICsJCXJldCA9IC1FTk9NRU07Cgp3aHkg RU5PTUVNIGFnYWluID8gaXQgc2hvdWxkIGJlIGRpZmZlcmVudCB0aGFuIGt6YWxsb2MgZmFpbHVy ZQoKPiArCQlnb3RvIGVycl9leGl0Owo+ICsJfQo+ICsKPiArCW1laV9jbGRldl9zZXRfZHJ2ZGF0 YShjbGRldiwgY29tcF9tYXN0ZXIpOwo+ICsJcmV0ID0gY29tcG9uZW50X21hc3Rlcl9hZGRfd2l0 aF9tYXRjaCgmY2xkZXYtPmRldiwKPiArCQkJCQkgICAgICAmbWVpX2NvbXBvbmVudF9tYXN0ZXJf b3BzLAo+ICsJCQkJCSAgICAgIG1hc3Rlcl9tYXRjaCk7Cj4gKwlpZiAocmV0IDwgMCkgewo+ICsJ CWRldl9lcnIoJmNsZGV2LT5kZXYsICJNYXN0ZXIgY29tcCBhZGQgZmFpbGVkICVkXG4iLCByZXQp Owo+ICsJCWdvdG8gZXJyX2V4aXQ7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gKwo+ICtlcnJf ZXhpdDoKPiArCW1laV9jbGRldl9zZXRfZHJ2ZGF0YShjbGRldiwgTlVMTCk7Cj4gKwlrZnJlZShj b21wX21hc3Rlcik7Cj4gKwltZWlfY2xkZXZfZGlzYWJsZShjbGRldik7Cj4gK2VuYWJsZV9lcnJf ZXhpdDoKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIG1laV9weHBfcmVt b3ZlKHN0cnVjdCBtZWlfY2xfZGV2aWNlICpjbGRldikKPiArewo+ICsJc3RydWN0IGk5MTVfcHhw X2NvbXBvbmVudCAqY29tcF9tYXN0ZXIgPSBtZWlfY2xkZXZfZ2V0X2RydmRhdGEoY2xkZXYpOwo+ ICsJaW50IHJldDsKPiArCj4gKwljb21wb25lbnRfbWFzdGVyX2RlbCgmY2xkZXYtPmRldiwgJm1l aV9jb21wb25lbnRfbWFzdGVyX29wcyk7Cj4gKwlrZnJlZShjb21wX21hc3Rlcik7Cj4gKwltZWlf Y2xkZXZfc2V0X2RydmRhdGEoY2xkZXYsIE5VTEwpOwoKc2hvdWxkbid0IHdlIGZpcnN0IHNldCBk cnZkYXRhIHRvIG51bGwgYW5kIHRoZW4ga2ZyZWUgPwoKPiArCj4gKwlyZXQgPSBtZWlfY2xkZXZf ZGlzYWJsZShjbGRldik7Cj4gKwlpZiAocmV0KQo+ICsJCWRldl93YXJuKCZjbGRldi0+ZGV2LCAi bWVpX2NsZGV2X2Rpc2FibGUoKSBmYWlsZWRcbiIpOwoKcHJpbnRpbmcgIiVkIiB3aXRoIHJldCBt aWdodCBiZSB1c2VmdWwgdG8gZmluZCBvdXQgd2h5IGl0IGZhaWxlZAoKPiArfQo+ICsKPiArLyog ZmJmNmZjZjEtOTZjZi00ZTJlLWE2YTYtMWJhYjhjYmUzNmIxIDogUEFWUCBHVUlEKi8KPiArI2Rl ZmluZSBNRUlfR1VJRF9QWFAgR1VJRF9JTklUKDB4ZmJmNmZjZjEsIDB4OTZjZiwgMHg0ZTJlLCAw eEE2LCBcCj4gKwkJCSAgICAgICAweGE2LCAweDFiLCAweGFiLCAweDhjLCAweGJlLCAweDM2LCAw eGIxKQo+ICsKPiArc3RhdGljIHN0cnVjdCBtZWlfY2xfZGV2aWNlX2lkIG1laV9weHBfdGJsW10g PSB7Cj4gKwl7IC51dWlkID0gTUVJX0dVSURfUFhQLCAudmVyc2lvbiA9IE1FSV9DTF9WRVJTSU9O X0FOWSB9LAo+ICsJeyB9Cj4gK307Cj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUobWVpLCBtZWlfcHhw X3RibCk7Cj4gKwo+ICtzdGF0aWMgc3RydWN0IG1laV9jbF9kcml2ZXIgbWVpX3B4cF9kcml2ZXIg PSB7Cj4gKwkuaWRfdGFibGUgPSBtZWlfcHhwX3RibCwKPiArCS5uYW1lID0gS0JVSUxEX01PRE5B TUUsCj4gKwkucHJvYmUgPSBtZWlfcHhwX3Byb2JlLAo+ICsJLnJlbW92ZQk9IG1laV9weHBfcmVt b3ZlLAo+ICt9Owo+ICsKPiArbW9kdWxlX21laV9jbF9kcml2ZXIobWVpX3B4cF9kcml2ZXIpOwo+ ICsKPiArTU9EVUxFX0FVVEhPUigiSW50ZWwgQ29ycG9yYXRpb24iKTsKPiArTU9EVUxFX0xJQ0VO U0UoIkdQTCIpOwo+ICtNT0RVTEVfREVTQ1JJUFRJT04oIk1FSSBQWFAiKTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9taXNjL21laS9weHAvbWVpX3B4cC5oIGIvZHJpdmVycy9taXNjL21laS9weHAv bWVpX3B4cC5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLmU3 YjE1MzczZmVmZAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL21pc2MvbWVpL3B4cC9t ZWlfcHhwLmgKPiBAQCAtMCwwICsxLDE4IEBACj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wICovCj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBvcmF0 aW9uCj4gKyAqCj4gKyAqIEF1dGhvcnM6Cj4gKyAqIFZpdGFseSBMdWJhcnQgPHZpdGFseS5sdWJh cnRAaW50ZWwuY29tPgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX19NRUlfUFhQX0hfXwo+ICsjZGVm aW5lIF9fTUVJX1BYUF9IX18KPiArCj4gKy8qIG1lX3B4cF9zdGF0dXM6IEVudW1lcmF0aW9uIG9m IGFsbCBQWFAgU3RhdHVzIENvZGVzICovCgp3aGVyZSBleGFjdGx5IHRoaXMgc3RhdHVzIHdpbGwg YmUgdXNlZCA/CmNhbid0IHNwb3QgaXQgaW4gdGhpcyBwYXRjaAoKPiArZW51bSBtZV9weHBfc3Rh dHVzIHsKCmluIG90aGVyIHBsYWNlcyAibWVpIiBwcmVmaXggaXMgdXNlZCwgd2h5ICJtZSIgaGVy ZSA/Cgo+ICsJTUVfUFhQX1NUQVRVU19TVUNDRVNTCQkJPSAweDAwMDAsCgpvciAiTUUiIGhlcmUg PwoKPiArCj4gK307Cj4gKwo+ICsjZW5kaWYgLyogX19NRUlfUFhQX0hfXyAqLwo+IApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK