From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Goel, Akash" Subject: Re: [PATCH] drm/i915: Support to enable TRTT on GEN9 Date: Mon, 11 Jan 2016 17:59:53 +0530 Message-ID: <5693A041.8010301@intel.com> References: <1452339021-3177-1-git-send-email-akash.goel@intel.com> <20160110173913.GI652@nuc-i3427.alporthouse.com> <56935C46.4040309@intel.com> <20160111084900.GL652@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id F15306E4B8 for ; Mon, 11 Jan 2016 04:30:14 -0800 (PST) In-Reply-To: <20160111084900.GL652@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: akash.goel@intel.com List-Id: intel-gfx@lists.freedesktop.org CgpPbiAxLzExLzIwMTYgMjoxOSBQTSwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+IE9uIE1vbiwgSmFu IDExLCAyMDE2IGF0IDAxOjA5OjUwUE0gKzA1MzAsIEdvZWwsIEFrYXNoIHdyb3RlOgo+Pgo+Pgo+ PiBPbiAxLzEwLzIwMTYgMTE6MDkgUE0sIENocmlzIFdpbHNvbiB3cm90ZToKPj4+IE9uIFNhdCwg SmFuIDA5LCAyMDE2IGF0IDA1OjAwOjIxUE0gKzA1MzAsIGFrYXNoLmdvZWxAaW50ZWwuY29tIHdy b3RlOgo+Pj4+IEZyb206IEFrYXNoIEdvZWwgPGFrYXNoLmdvZWxAaW50ZWwuY29tPgo+Pj4+Cj4+ Pj4gR2VuOSBoYXMgYW4gYWRkaXRpb25hbCBhZGRyZXNzIHRyYW5zbGF0aW9uIGhhcmR3YXJlIHN1 cHBvcnQgaW4gZm9ybSBvZgo+Pj4+IFRpbGVkIFJlc291cmNlIFRyYW5zbGF0aW9uIFRhYmxlIChU Ui1UVCkgd2hpY2ggcHJvdmlkZXMgYW4gZXh0cmEgbGV2ZWwKPj4+PiBvZiBhYnN0cmFjdGlvbiBv dmVyIFBQR1RULgo+Pj4+IFRoaXMgaXMgdXNlZnVsIGZvciBtYXBwaW5nIFNwYXJzZS9UaWxlZCB0 ZXh0dXJlIHJlc291cmNlcy4KPj4+PiBTcGFyc2UgcmVzb3VyY2VzIGFyZSBjcmVhdGVkIGFzIHZp cnR1YWwtb25seSBhbGxvY2F0aW9ucy4gUmVnaW9ucyBvZiB0aGUKPj4+PiByZXNvdXJjZSB0aGF0 IHRoZSBhcHBsaWNhdGlvbiBpbnRlbmRzIHRvIHVzZSBpcyBib3VuZCB0byB0aGUgcGh5c2ljYWwg bWVtb3J5Cj4+Pj4gb24gdGhlIGZseSBhbmQgY2FuIGJlIHJlLWJvdW5kIHRvIGRpZmZlcmVudCBt ZW1vcnkgYWxsb2NhdGlvbnMgb3ZlciB0aGUKPj4+PiBsaWZldGltZSBvZiB0aGUgcmVzb3VyY2Uu Cj4+Pj4KPj4+PiBUUi1UVCBpcyB0aWdodGx5IGNvdXBsZWQgd2l0aCBQUEdUVCwgYSBuZXcgaW5z dGFuY2Ugb2YgVFItVFQgd2lsbCBiZSByZXF1aXJlZAo+Pj4+IGZvciBhIG5ldyBQUEdUVCBpbnN0 YW5jZSwgYnV0IFRSLVRUIG1heSBub3QgZW5hYmxlZCBmb3IgZXZlcnkgY29udGV4dC4KPj4+PiAx LzE2dGggb2YgdGhlIDQ4Yml0IFBQR1RUIHNwYWNlIGlzIGVhcm1hcmtlZCBmb3IgdGhlIHRyYW5z bGF0aW9uIGJ5IFRSLVRULAo+Pj4+IHdoaWNoIHN1Y2ggY2h1bmsgdG8gdXNlIGlzIGNvbnZleWVk IHRvIEhXIHRocm91Z2ggYSByZWdpc3Rlci4KPj4+PiBBbnkgR0ZYIGFkZHJlc3MsIHdoaWNoIGxp ZXMgaW4gdGhhdCByZXNlcnZlZCA0NCBiaXQgcmFuZ2Ugd2lsbCBiZSB0cmFuc2xhdGVkCj4+Pj4g dGhyb3VnaCBUUi1UVCBmaXJzdCBhbmQgdGhlbiB0aHJvdWdoIFBQR1RUIHRvIGdldCB0aGUgYWN0 dWFsIHBoeXNpY2FsIGFkZHJlc3MsCj4+Pj4gc28gdGhlIG91dHB1dCBvZiB0cmFuc2xhdGlvbiBm cm9tIFRSLVRUIHdpbGwgYmUgYSBQUEdUVCBvZmZzZXQuCj4+Pj4KPj4+PiBUUlRUIGlzIGNvbnN0 cnVjdGVkIGFzIGEgMyBsZXZlbCB0aWxlIFRhYmxlLiBFYWNoIHRpbGUgaXMgNjRLQiBpcyBzaXpl IHdoaWNoCj4+Pj4gbGVhdmVzIGJlaGluZCA0NC0xNj0yOCBhZGRyZXNzIGJpdHMuIDI4Yml0cyBh cmUgcGFydGl0aW9uZWQgYXMgOSs5KzEwLCBhbmQKPj4+PiBlYWNoIGxldmVsIGlzIGNvbnRhaW5l ZCB3aXRoaW4gYSA0S0IgcGFnZSBoZW5jZSBMMyBhbmQgTDIgaXMgY29tcG9zZWQgb2YKPj4+PiA1 MTIgNjRiIGVudHJpZXMgYW5kIEwxIGlzIGNvbXBvc2VkIG9mIDEwMjQgMzJiIGVudHJpZXMuCj4+ Pj4KPj4+PiBUaGVyZSBpcyBhIHByb3Zpc2lvbiB0byBrZWVwIFRSLVRUIFRhYmxlcyBpbiB2aXJ0 dWFsIHNwYWNlLCB3aGVyZSB0aGUgcGFnZXMgb2YKPj4+PiBUUlRUIHRhYmxlcyB3aWxsIGJlIG1h cHBlZCB0byBQUEdUVC4KPj4+PiBDdXJyZW50bHkgdGhpcyBpcyB0aGUgc3VwcG9ydGVkIG1vZGUs IGluIHRoaXMgbW9kZSBVTUQgd2lsbCBoYXZlIGEgZnVsbCBjb250cm9sCj4+Pj4gb24gVFItVFQg bWFuYWdlbWVudCwgd2l0aCBiYXJlIG1pbmltdW0gc3VwcG9ydCBmcm9tIEtNRC4KPj4+PiBTbyB0 aGUgZW50cmllcyBvZiBMMyB0YWJsZSB3aWxsIGNvbnRhaW4gdGhlIFBQR1RUIG9mZnNldCBvZiBM MiBUYWJsZSBwYWdlcywKPj4+PiBzaW1pbGFybHkgZW50cmllcyBvZiBMMiB0YWJsZSB3aWxsIGNv bnRhaW4gdGhlIFBQR1RUIG9mZnNldCBvZiBMMSBUYWJsZSBwYWdlcy4KPj4+PiBUaGUgZW50cmll cyBvZiBMMSB0YWJsZSB3aWxsIGNvbnRhaW4gdGhlIFBQR1RUIG9mZnNldCBvZiBCT3MgYWN0dWFs bHkgYmFja2luZwo+Pj4+IHRoZSBTcGFyc2UgcmVzb3VyY2VzLgo+Pj4KPj4+PiBUaGUgYXNzdW1w dGlvbiBoZXJlIGlzIHRoYXQgVU1EIG9ubHkgd2lsbCBkbyB0aGUgY29tcGxldGUgUFBHVFQgYWRk cmVzcyBzcGFjZQo+Pj4+IG1hbmFnZW1lbnQgYW5kIHVzZSB0aGUgU29mdCBQaW4gQVBJIGZvciBh bGwgdGhlIGJ1ZmZlciBvYmplY3RzIGFzc29jaWF0ZWQgd2l0aAo+Pj4+IGEgZ2l2ZW4gQ29udGV4 dC4KPj4+Cj4+PiBUaGF0IGlzIGEgcG9vciBhc3N1bXB0aW9uLCBhbmQgbm90IG9uZSByZXF1aXJl ZCBmb3IgdGhpcyB0byB3b3JrLgo+Pj4KPj4gVGhpcyBpcyBub3QgYSBzdHJpY3QgcmVxdWlyZW1l bnQuCj4+IEJ1dCBJIHRob3VnaHQgdGhhdCBjb25mbGljdHMgd2lsbCBiZSBtaW5pbWl6ZWQgaWYg VU1EIGl0c2VsZiBjYW4gZG8KPj4gdGhlIGZ1bGwgYWRkcmVzcyBzcGFjZSBtYW5hZ2VtZW50Lgo+ PiBBdCBsZWFzdCBVTUQgaGFzIHRvIGVuc3VyZSB0aGF0IFBQR1RUIG9mZnNldCBvZiBMMyB0YWJs ZSByZW1haW5zCj4+IHNhbWUgdGhyb3VnaG91dC4KPgo+IFllcywgdXNlcnNwYWNlIG11c3QgY29u dHJvbCB0aGF0IG9iamVjdCwgYW5kIHRoYXQgd291bGQgcmVxdWlyZSBzb2Z0cGluCj4gdG8gcHJl c2VydmUgaXQgYWNyb3NzIGV4ZWNidWZmZXIgY2FsbHMuIFRoZSBrZXJuZWwgZG9lcyBub3QgcmVx dWlyZSB0aGF0Cj4gYWxsIGFkZHJlc3NlcyBiZSBoYW5kbGVkIGluIHVzZXJzcGFjZSBhZnRlcndh cmRzLCB0aGF0J3MgdGhlIGxhbmd1YWdlIEkKPiB3aXNoIHRvIGF2b2lkLiAoSGVuY2UgSSBkb24n dCBsaWtlIHVzaW5nICJhc3N1bXB0aW9uIiBhcyB0aGF0IGp1c3QKPiBpbnZpdGVzIHVzZXJzcGFj ZSB0byBicmVhayB0aGUga2VybmVsLikKPgpGaW5lIHdpbGwgcmVtb3ZlIHRoZSB3b3JkICJhc3N1 bXB0aW9uIiwgaW5zdGVhZCBjYW4gSSBwdXQgaXQgYXMgIlVNRCBtYXkgCmRvIHRoZSBjb21wbGV0 ZSBQUEdUVCBhZGRyZXNzIHNwYWNlIG1hbmFnZW1lbnQsIG9uIHRoZSBwcmV0ZXh0IHRoYXQgaXQg CmNvdWxkIGhlbHAgdG8gbWlnaHQgbWluaW1pemUgdGhlIGNvbmZsaWN0cyIuCgo+Pj4+IFNvIFVN RCB3aWxsIGFsc28gaGF2ZSB0byBhbGxvY2F0ZSB0aGUgTDMvTDIvTDEgdGFibGUgcGFnZXMKPj4+ PiBhcyBhIHJlZ3VsYXIgR0VNIEJPIG9ubHkgJiBhc3NpZ24gdGhlbSBhIFBQR1RUIGFkZHJlc3Mg dGhyb3VnaCB0aGUgU29mdCBQaW4gQVBJLgo+Pj4+IFVNRCB3b3VsZCBoYXZlIHRvIGVtaXQgdGhl IE1JX1NUT1JFX0RBVEFfSU1NIGNvbW1hbmRzIGluIHRoZSBiYXRjaCBidWZmZXIgdG8KPj4+PiBw cm9ncmFtIHRoZSByZWxldmFudCBlbnRyaWVzIG9mIEwzL0wyL0wxIHRhYmxlcy4KPj4+Cj4+PiBU aGlzIG9ubHkgYXBwbGllcyB0byB0ZSBUUi1UVCBMMS1MMyBjYWNoZSwgcmlnaHQ/Cj4+Pgo+PiBZ ZXMgYXBwbGllcyBvbmx5IHRvIHRoZSBUUi1UVCBMMS1MMyB0YWJsZXMuCj4+IFRoZSBiYWNraW5n IHBhZ2VzIG9mIEwzL0wyL0wxIHRhYmxlcyBzaGFsbCBiZSBhbGxvY2F0ZWQgYXMgYSBCTywKPj4g d2hpY2ggc2hvdWxkIGJlIGFzc2lnbmVkIGEgUFBHVFQgYWRkcmVzcy4KPj4gVGhlIHRhYmxlIGVu dHJpZXMgY291bGQgYmUgd3JpdHRlbiBkaXJlY3RseSBhbHNvIGJ5IFVNRCBieSBtbWFwcGluZwo+ PiB0aGUgdGFibGUgQk9zLCBidXQgYWRkaW5nIE1JX1NUT1JFX0RBVEFfSU1NIGNvbW1hbmRzIGlu IHRoZSBiYXRjaAo+PiBidWZmZXIgaXRzZWxmIHdvdWxkIGhlbHAgdG8gYWNoaWV2ZSBzZXJpYWxp emF0aW9uIChpbXBsaWNpdGx5KS4KPgo+IENhbiB5b3UgdGlnaHRlbiB1cCB0aGUgcGhyYXNpbmcg aGVyZT8gTXkgZmlyc3QgcmVhZCB3YXMgdGhhdCB5b3UgaW5kZWVkCj4gZm9yIGFsbCBQVEUgd3Jp dGVzIHRvIGJlIGluIHVzZXJzcGFjZSwgd2hpY2ggaXMgc2NhcnkuCj4KPiAiVU1EIHdpbGwgdGhl biBhbGxvY2F0ZSB0aGUgTDMvTDMyL0wxIHBhZ2UgdGFibGVzIGZvciBUUi1UVCBhcyBhIHJlZ3Vs YXIKPiBibywgYW5kIHdpbGwgdXNlIHNvZnRwaW4gdG8gYXNzaWduIGl0IHRvIHRoZSBsM190YWJs ZV9hZGRyZXNzIHdoZW4gdXNlZC4KPiBVTUQgd2lsbCBhbHNvIG1haW50YWluIHRoZSBlbnRyaWVz IGluIHRoZSBUUi1UVCBwYWdlIHRhYmxlcyB1c2luZwo+IHJlZ3VsYXIgYmF0Y2ggY29tbWFuZHMg KE1JX1NUT1JFX0RBVEFfSU1NKSwgb3IgdmlhIG1tYXBwaW5nIG9mIHRoZSBwYWdlCj4gdGFibGUg Ym8uIgo+CgpZZXMsIFVNRCB3aWxsIGhhdmUgdG8gdXNlIHNvZnRwaW4gdG8gYXNzaWduIGwzX3Rh YmxlX2FkZHJlc3MgdG8gTDMgdGFibGUgQk8uClNpbWlsYXJseSB0aGUgc29mdHBpbiB3aWxsIGJl IG5lZWRlZCBmb3IgTDIvTDEgdGFibGUgQk9zLgoKPj4+PiBhdXRvbm9tb3VzbHkgYW5kIEtNRCB3 aWxsIGJlIG9ibGl2aW91cyBvZiBpdC4KPj4+PiBUaGUgQk9zIG11c3Qgbm90IGJlIGFzc2lnbmVk IGFuIGFkZHJlc3MgZnJvbSBUUi1UVCBzZWdtZW50LCB0aGV5IHdpbGwgYmUgbWFwcGVkCj4+Pgo+ Pj4gcy9UaGUgQk9zL0FueSBvYmplY3QvCj4+Pgo+PiBPayB3aWxsIHVzZSAnQW55IG9iamVjdCcK Pj4+PiB0byBQUEdUVCBpbiBhIHJlZ3VsYXIgd2F5IGJ5IEtNRAo+Pj4KPj4+IHMvdXNpbmcgdGhl IFNvZnQgUGluIG9mZnNldCBwcm92aWRlZCBieSBVTUQvLyBhcyB0aGlzIGlzIGlycmVsZXZhbnQu Cj4+Pgo+PiBZb3UgbWVhbiB0byBzYXkgdGhhdCBpdCBpcyBuZWVkbGVzcyBvciBpbmFwcHJvcHJp YXRlIHRvIHN0YXRlIHRoYXQKPj4gS01EIHdpbGwgdXNlIHRoZSBTb2Z0IFBJTiBvZmZzZXQgcHJv dmlkZWQgYnkgVU1ELCBpdCBkb2Vzbid0IG1hdHRlcgo+PiB0aGF0IHdoZXRoZXIgdGhlIFNvZnQg UElOIG9mZnNldCBpcyB1c2VkIG9yIEtNRCBpdHNlbGYgYXNzaWducyBhbgo+PiBhZGRyZXNzLgo+ Cj4gSSBqdXN0IHdhbnQgdG8gYXZvaWQgaW1wbHlpbmcgdGhhdCB1c2Vyc3BhY2UgbXVzdCB1c2Ug c29mdHBpbiBvbiBldmVyeQo+IHNpbmdsZSBibyBmb3IgdGhpcyB0byB3b3JrLiAoTWFpbmx5IGJl Y2F1c2UgSSBkb24ndCByZWFsbHkgd2FudAo+IHVzZXJzcGFjZSB0byBoYXZlIHRvIGRvIGZ1bGwg YWRkcmVzcyBzcGFjZSBtYW5hZ2VtZW50LCBhcyB3ZSB3aWxsIGFsd2F5cwo+IGhhdmUgdG8gZG8g dGhlIGRvdWJsZSBjaGVjayBpbnNpZGUgdGhlIGtlcm5lbC4gVW5sZXNzIHRoZXJlIGlzIGEgcmVh bAo+IG5lZWQgKGUuZy4gc3ZtKSwgSSdkIHJhdGhlciBpbXByb3ZlIHRoZSBrZXJuZWwgYWxsb2Nh dG9yL3ZlcmlmaWNhdGlvbiwgcmF0aGVyCj4gdGhhbiB0cnkgYW5kIGNpcmN1bXZlbnQgaXQuKQo+ Cj4+Pj4gQEAgLTE3Miw2ICsxNzIsOSBAQCBzdGF0aWMgaW50IGk5MTVfZ2V0cGFyYW0oc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4+PiAgIAljYXNlIEk5MTVfUEFSQU1fSEFT X0VYRUNfU09GVFBJTjoKPj4+PiAgIAkJdmFsdWUgPSAxOwo+Pj4+ICAgCQlicmVhazsKPj4+PiAr CWNhc2UgSTkxNV9QQVJBTV9IQVNfVFJUVDoKPj4+PiArCQl2YWx1ZSA9IEhBU19UUlRUKGRldik7 Cj4+Pj4gKwkJYnJlYWs7Cj4+Pgo+Pj4gU2hvdWxkIHdlIGRvIHRoaXMgaGVyZSwgb3IganVzdCBx dWVyeSB0aGUgY29udGV4dD8gSW4gZmFjdCB5b3UgYXJlCj4+PiBtaXNzaW5nIHRoZSBjb250ZXh0 IGdldHBhcmFtIHBhdGggYW55IHdheS4KPj4+Cj4+IFNvcnJ5LCBkbyB5b3UgbWVhbiB0byBzYXkg dGhhdCB3aXRoIC1FTk9ERVYgZXJyb3IgYWxzbywgb24gY29udGV4dAo+PiBzZXRwYXJhbSwgVXNl ciBjYW4gbWFrZSBvdXQgdGhlIFRSLVRUIHN1cHBvcnQsIHNvIG5vIG5lZWQgdG8gaGF2ZSBhbgo+ PiBleHBsaWNpdCBnZXRwYXJhbSBjYXNlLgo+Pgo+PiBXb3VsZCB0aGUgY29udGV4dCBnZXRwYXJh bSBwYXRoIGJlIHJlYWxseSB1c2VmdWwgZm9yIFRSLVRUPy4KPj4gSWYgaXRzIG5lZWRlZCwgdGhl biB3b3VsZCBiZSBiZXR0ZXIgdG8gcmVuYW1lCj4+IEk5MTVfQ09OVEVYVF9QQVJBTV9FTkFCTEVf VFJUVCB0byBJOTE1X0NPTlRFWFRfUEFSQU1fVFJUVF9JTkZPID8KPgo+IFRoZSBxdWVzdGlvbiBJ IGhhdmUgaXMgZG8gd2Ugd2FudDoKPgo+IEdFVFBBUkFNICsgQ09OVEVYVF9TRVRQQVJBTQo+Cj4g b3IKPgo+IENPTlRFWFRfR0VUUEFSQU0gKyBDT05URVhUX1NFVFBBUkFNCj4KPiB0aGUgbGF0dGVy IHNlZW1zIG1vcmUgc3ltbWV0cmljIGFuZCBmbGV4aWJsZSwgYW5kIHdlIGNhbiB1c2UgYXMgYSBk b3VibGUKPiBjaGVjayBsYXRlciBvbiB0aGF0IHdlIHNldCB0aGUgcmlnaHQgYWRkcmVzcyBldGMu Cj4KPiBJbmRlZWQsIGhpbmRzaWdodCBzYXlzIEVOQUJMRV9UUlRUIGlzIGEgYmFkIG5hbWUgOikK Pgo+IEk5MTVfQ09OVEVYVF9QQVJBTV9UUlRUIChsZXQncyBhc3N1bWUgZm9yIG5vdyAgdGhpcyB3 aWxsIGJlIHRoZSBsYXN0LAo+IGFueSBmdXR1cmUgUEFSQU1fVFJUVCBjYW4gdGhpbmsgb2YgYSBn b29kIG5hbWUgZm9yIGl0cyBleHRlbnNpb24pLgo+CgpmaW5lLCB3aWxsIHJlbmFtZSBhcyBJOTE1 X0NPTlRFWFRfUEFSQU1fVFJUVC4KQW5kIHVzZSB0aGUgQ09OVEVYVF9HRVRQQVJBTSArIENPTlRF WFRfU0VUUEFSQU0gcGFpci4KCldvdWxkIHRoZSBmb2xsb3dpbmcgY2hhbmdlIGJlIGZpbmUgPwoK QEAgLTk3NCw2ICs5ODcsMjQgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFyYW1faW9jdGwo c3RydWN0IApkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAgCQllbHNlCiAgCQkJYXJncy0+ dmFsdWUgPSB0b19pOTE1KGRldiktPmd0dC5iYXNlLnRvdGFsOwogIAkJYnJlYWs7CisJY2FzZSBJ OTE1X0NPTlRFWFRfUEFSQU1fVFJUVDoKKwkJaWYgKCFIQVNfVFJUVChkZXYpIHx8ICFVU0VTX0ZV TExfNDhCSVRfUFBHVFQoZGV2KSkKKwkJCXJldHVybiAtRU5PREVWOworCQllbHNlIGlmIChhcmdz LT5zaXplIDwgc2l6ZW9mKHRydHRfcGFyYW1zKSkKKwkJCXJldCA9IC1FSU5WQUw7CisJCWVsc2Ug eworCQkJdHJ0dF9wYXJhbXMubDNfdGFibGVfYWRkcmVzcyA9CisJCQkJY3R4LT50cnR0X2luZm8u bDNfdGFibGVfYWRkcmVzczsKKwkJCXRydHRfcGFyYW1zLm51bGxfdGlsZV92YWwgPQorCQkJCWN0 eC0+dHJ0dF9pbmZvLm51bGxfdGlsZV92YWw7CisJCQl0cnR0X3BhcmFtcy5pbnZkX3RpbGVfdmFs ID0KKwkJCQljdHgtPnRydHRfaW5mby5pbnZkX3RpbGVfdmFsOworCisJCQlpZiAoX19jb3B5X3Rv X3VzZXIodG9fdXNlcl9wdHIoYXJncy0+dmFsdWUpLAorCQkJCQkgICAmdHJ0dF9wYXJhbXMsCisJ CQkJCSAgIHNpemVvZih0cnR0X3BhcmFtcykpKQorCQkJCXJldCA9IC1FRkFVTFQ7CisJCX0KICAJ ZGVmYXVsdDoKCj4+Pj4gICAJZGVmYXVsdDoKPj4+PiAgIAkJRFJNX0RFQlVHKCJVbmtub3duIHBh cmFtZXRlciAlZFxuIiwgcGFyYW0tPnBhcmFtKTsKPj4+PiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+Pj4gaW5kZXggYzZkZDRkYi4uMTJjNjEyZSAxMDA2 NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4+IEBAIC04MzksNiArODM5LDcgQEAg c3RydWN0IGk5MTVfY3R4X2hhbmdfc3RhdHMgewo+Pj4+ICAgI2RlZmluZSBERUZBVUxUX0NPTlRF WFRfSEFORExFIDAKPj4+Pgo+Pj4+ICAgI2RlZmluZSBDT05URVhUX05PX1pFUk9NQVAgKDE8PDAp Cj4+Pj4gKyNkZWZpbmUgQ09OVEVYVF9VU0VfVFJUVCAgICgxPDwxKQo+Pj4KPj4+IE1ha2UgZmxh Z3MgdW5zaWduZWQgd2hpbHN0IHlvdSBhcmUgaGVyZSwgYW5kIGZpeCB0aGUgaG9sZXMhCj4+Pgo+ Pgo+PiBPayB3aWxsIGNoYW5nZSB0aGUgdHlwZSBvZiAnZmxhZ3MnIGZpZWxkIGluc2lkZSAnaW50 ZWxfY29udGV4dCcgdG8gdW5zaWduZWQuCj4+IFNvcnJ5LCBidXQgYXBhcnQgZnJvbSB0aGlzIGFu eXRoaW5nIGVsc2UgcmVxdWlyZWQgaGVyZSA/Cj4KPiBObywgaXQncyBqdXN0IGJlbGF0ZWQgYW5n ZXIgYWJvdXQgdGhlIHNpbGx5ICJpbnQgZmxhZ3MiLgo+CgpGaW5lIHdpbGwgbW9kaWZ5IHRoZSB0 eXBlIGluIHRoaXMgcGF0Y2ggb25seS4KCj4+Cj4+Pj4gICAvKioKPj4+PiAgICAqIHN0cnVjdCBp bnRlbF9jb250ZXh0IC0gYXMgdGhlIG5hbWUgaW1wbGllcywgcmVwcmVzZW50cyBhIGNvbnRleHQu Cj4+Pj4gICAgKiBAcmVmOiByZWZlcmVuY2UgY291bnQuCj4+Pj4gQEAgLTg4MSw2ICs4ODIsMTUg QEAgc3RydWN0IGludGVsX2NvbnRleHQgewo+Pj4+ICAgCQlpbnQgcGluX2NvdW50Owo+Pj4+ICAg CX0gZW5naW5lW0k5MTVfTlVNX1JJTkdTXTsKPj4+Pgo+Pj4+ICsJLyogVFJUVCBpbmZvICovCj4+ Pj4gKwlzdHJ1Y3Qgewo+Pj4KPj4+IEdpdmUgdGhpcyBhIG5hbWUgbm93LCB3ZSB3aWxsIGJlIHRo YW5rZnVsIGluIHRoZSBmdXR1cmUuCj4+Pgo+PiBXb3VsZCBjdHhfdHJ0dF9wYXJhbXMgYmUgZmlu ZSA/Cj4KPiBzdHJ1Y3QgaW50ZWxfY29udGV4dF90cnR0Cj4KPiAoQXZvaWQgdXNpbmcgcGFyYW1z IGZvciBpbnRlcm5hbHMsIGxldCdzIGtlZXAgdGhvc2UgZm9yIHVBUEkgLSB0aGF0Cj4gaGVscHMg dXMgZGlzdGluZ3Vpc2ggcGllY2VzIG9mIGNvZGUgLyBjb250ZXh0LikKPgpUaGFua3MsIGludGVs X2NvbnRleHRfdHJ0dCBpcyBtb3JlIGFwcHJvcHJpYXRlLgoKPj4+Pgo+Pj4+ICAgdm9pZCBpOTE1 X2dlbV9jb250ZXh0X2ZyZWUoc3RydWN0IGtyZWYgKmN0eF9yZWYpCj4+Pj4gQEAgLTUxMiw2ICs1 MTUsMzUgQEAgaTkxNV9nZW1fY29udGV4dF9nZXQoc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0 ZSAqZmlsZV9wcml2LCB1MzIgaWQpCj4+Pj4gICAJcmV0dXJuIGN0eDsKPj4+PiAgIH0KPj4+Pgo+ Pj4+ICtzdGF0aWMgaW50Cj4+Pj4gK2k5MTVfc2V0dXBfdHJ0dF9jdHgoc3RydWN0IGludGVsX2Nv bnRleHQgKmN0eCwKPj4+PiArCQkgICAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3RydHRf cGFyYW0gKnRydHRfcGFyYW1zKQo+Pj4+ICt7Cj4+Pj4gKwlpZiAoY3R4LT5mbGFncyAmIENPTlRF WFRfVVNFX1RSVFQpCj4+Pj4gKwkJcmV0dXJuIC1FRVhJU1Q7Cj4+Pj4gKwo+Pj4+ICsJLyogYmFz aWMgc2FuaXR5IGNoZWNrcyBmb3IgdGhlIGwzIHRhYmxlIHBvaW50ZXIgKi8KPj4+PiArCWlmICgo Y3R4LT50cnR0X2luZm8ubDNfdGFibGVfYWRkcmVzcyA+PSBHRU45X1RSVFRfU0VHTUVOVF9TVEFS VCkgJiYKPj4+PiArCSAgICAoY3R4LT50cnR0X2luZm8ubDNfdGFibGVfYWRkcmVzcyA8Cj4+Pj4g KwkJCShHRU45X1RSVFRfU0VHTUVOVF9TVEFSVCArIEdFTjlfVFJUVF9TRUdNRU5UX1NJWkUpKSkK Pj4+Cj4+PiBQcmVzdW1hYmx5IGwzX3RhYmxlIGhhcyBhbiBhY3R1YWwgc2l6ZSBhbmQgeW91IHdh bnQgdG8gZG8gYSByYW5nZQo+Pj4gb3ZlcmxhcCB0ZXN0LCBub3QganVzdCB0aGUgc3RhcnQgYWRk cmVzcy4KPj4+Cj4+IFllcyBpbnRlbmQgdG8gZG8gYSByYW5nZSBvdmVybGFwIHRlc3Qgb25seS4g QnV0IHNpbmNlIEwzIHRhYmxlIHNpemUKPj4gaXMgZml4ZWQgYXMgNEtCLCB0aG91Z2h0IHRoZXJl IGlzIG5vIHJlYWwgbmVlZCB0byBhbHNvIGluY2x1ZGUgdGhlCj4+IHNpemUgaW4gdGhlIHJhbmdl IGNoZWNrLCBjb25zaWRlcmluZyB0aGUgYWxsb2NhdGlvbnMgYXJlIGFsd2F5cyBpbgo+PiBtdWx0 aXBsZSBvZiA0S0IuCj4KPiBPay4gWW91IGhhdmUgYSBjaG9pY2Ugb2Ygd3JpdHRpbmcgdGhhdCB1 cCBhcyBhIGNvbW1lbnQsIG9yIGp1c3QgZG9pbmcKPiB0aGUgcGFnZSBvdmVybGFwIHRlc3QgOikg SG9uZXN0bHksIEkgd291bGQganVzdCBnbyBmb3IgdGhlIHJhbmdlIHRlc3QKPiBzaW5jZSB0aGlz IGlzIGEgb25lLW9mZiBpbml0IHBhdGggYW5kIHRoZSByZWFkZXIgdGhlbiBkb2Vzbid0IGV2ZW4g aGF2ZQo+IHRvIHRoaW5rLgo+CgpGaW5lLCB3aWxsIGRvIHRoZSBwYWdlIG92ZXJsYXAgdGVzdC4K Cj4+Pj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+Pj4gKwo+Pj4+ICsJaWYgKGN0eC0+dHJ0dF9pbmZv LmwzX3RhYmxlX2FkZHJlc3MgJiB+R0VOOV9UUlRUX0wzX0dGWEFERFJfTUFTSykKPj4+PiArCQly ZXR1cm4gLUVJTlZBTDsKPj4+Cj4+PiBUaGVzZSBhcmUgd29ydGggYWRkaW5nIERSTV9ERUJVRygp IG9yIGV2ZW4gYmV0dGVyIHN0YXJ0IHVzaW5nIGRldl9kZWJ1ZygpCj4+PiBzbyB0aGF0IHdlIGNh biBkZWJ1ZyB1c2Vyc3BhY2Ugc3RhcnR1cCBpc3N1ZXMuCj4+Pgo+PiBGaW5lLCBJIHRoaW5rIERS TV9ERUJVR19EUklWRVIgd2lsbCBiZSBtb3JlIGFwcHJvcHJpYXRlIGNvbXBhcmVkIHRvCj4+IERS TV9ERUJVRy4KPgo+IE5vLCB0aGVzZSBhcmUgdXNlcnNwYWNlIGVycm9ycyBmb3Igd2hpY2ggd2Ug dXNlIERSTV9ERUJVRy4KPiBEUk1fREVCVUdfRFJJVkVSIGlzIGZvciBhIGRyaXZlciBlcnJvciA6 KQo+Cj4+IE9yCj4+IAlkZXZfZGJnKGRldi0+ZGV2LCAiaW52YWxpZCBsMyB0YWJsZSBhZGRyZXNz XG4iKTsKPgo+IEluY2x1ZGUgYXMgbXVjaCBpbmZvIGFzIHlvdSBjYW4gKHdpdGhvdXQgZ2l2aW5n IGF3YXkga2VybmVsIGludGVybmFscyksCj4gc2luY2UgdGhlIHVzZXIgZ2F2ZSB1c2UgdGhlIGwz X2FkZHJlc3MgdGhhdCB3ZSByZWplY3QsIHJlcG9ydCBpdC4gVGhhdAo+IG1ha2VzIGl0IGVhc2ll ciB0byBzcG90IGlmIGl0IGlzIHRoZSBzYW1lIGFkZHJlc3MgYXMgdGhleSBleHBlY3RlZC4KPgo+ IGRldl9kYmcoKSB3b3VsZCBiZSBteSBwcmVmZXJlbmNlLgo+Cj4gI2RlZmluZSBpOTE1X2RiZyhE RVYsIGFyZ3MuLi4pIGRldl9kYmcoX19JOTE1X18oREVWKS0+ZGV2LT5kZXYsICMjYXJncykKPiAo bm90IHRoZSBwcmV0dGllc3QgeWV0LCB0aGUgcG9pbnRlciBkYW5jaW5nIGlzIGluIHRoZSB3cm9u ZyBkaXJlY3Rpb24hKQo+Cj4gYW5kIGxldCdzIGdldCB0aGUgYmFsbCByb2xsaW5nLgo+CgpUaGlz IHdpbGwgYWxzbyBnbyBhcyBhIHNlcGFyYXRlIHBhdGNoLgpPbmUgZG91YnQgaGVyZSwgYnkgdXNp bmcgZGV2X2RiZygpIHdlIGludGVuZCB0byBhdm9pZCBkZXBlbmRlbmN5IG9uIHRoZSAKdmFsdWUg b2YgZHJtLmRlYnVnIHBhcmFtZXRlciBhbmQgYWx3YXlzIGdldCBjZXJ0YWluIGVycm9yIG1lc3Nh Z2VzID8uIApTb3JyeSBqdXN0IHdhbnQgdG8gdW5kZXJzdGFuZCB0aGUgcmF0aW9uYWxlIGJlaGlu ZCBpdC4KCj4+Pj4gICBpbnQgaTkxNV9wcGd0dF9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4+Pj4gICB7Cj4+Pj4gKwlpZiAoSEFTX1RSVFQoZGV2KSAmJiBVU0VTX0ZVTExfNDhCSVRf UFBHVFQoZGV2KSkgewo+Pj4+ICsJCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Cj4+Pj4gKwo+Pj4+ICsJCUk5MTVfV1JJVEUoR0VOOV9UUl9DSElD S0VOX0JJVF9WRUNUT1IsCj4+Pj4gKwkJCSAgIEdFTjlfVFJUVF9CWVBBU1NfRElTQUJMRSk7Cj4+ Pgo+Pj4gU2hvdWxkbid0IHRoaXMgYmUgYSBjb250ZXh0IHNwZWNpZmljIHJlZ2lzdGVyPyBJbiB3 aGljaCBjYXNlIHlvdSBuZWVkIHRvCj4+PiBzZXQgaXQgaW4gdGhlIGNvbnRleHQgaW1hZ2UgaW5z dGVhZC4KPj4+Cj4+PiBIbW0uIGdpdmVuIHlvdSBhbHJlYWR5IGRvIHRoZSBjb250ZXh0IGltYWdl IHR3ZWFrcywgaG93IGRvZXMgd29yayB3aXRoCj4+PiBub24tdHJ0dCBjb250ZXh0cz8KPj4+Cj4+ Cj4+IEdFTjlfVFJfQ0hJQ0tFTl9CSVRfVkVDVE9SIGlzIG5vdCBhIGNvbnRleHQgc3BlY2lmaWMg cmVnaXN0ZXIuCj4+IEl0IGdsb2JhbGx5IGVuYWJsZXMgVFItVFQgc3VwcG9ydCBpbiBIdy4gU3Rp bGwgVFItVFQgZW5hYmxpbmcgb24gcGVyCj4+IGNvbnRleHQgYmFzaXMgaXMgcmVxdWlyZWQuCj4+ IE5vbi10cnR0IGNvbnRleHRzIGFyZSBub3QgYWZmZWN0ZWQgYnkgdGhpcyBzZXR0aW5nLgo+Cj4g UGxlYXNlIGFkZCB0aGF0IGFzIGEgY29tbWVudCBoZXJlLiBXaGF0IGFyZSB0aGUgZG93bnNpZGVz LCBwb3RlbnRpYWwKPiByZWdyZXNzaW9ucz8gSXQncyBiZWhpbmQgYSBjaGlja2VuIGJpdCBhZnRl ciBhbGwuLi4KPgpGaW5lLCB3aWxsIGFkZCBhIGNvbW1lbnQgaGVyZSBmb3IgY2xhcml0eS4KU28g bm90IGF3YXJlIG9mIGRvd25zaWRlcywgdGhpcyBzZXR0aW5nIHNob3VsZCBjb21lIGludG8gcGlj dHVyZSBvbmx5IAp3aGVuIFRSLVRUIGlzIGVuYWJsZWQgZm9yIGEgY29udGV4dC4KCj4+IE9rIHNv IG5lZWQgdG8gZGVmaW5lIGEgbmV3IHdyYXBwZXIgZnVuY3Rpb24sCj4+IAlpOTE1X3ZtX3Jlc2Vy dmVfbm9kZSh2bSwgU1RBUlQsIFNJWkUsICZ2bWEpLgo+Pgo+PiBBZnRlciBsb29raW5nIGF0IHRo ZSBvdGhlciBjYWxsc2l0ZXMgb2YgZHJtX21tX3Jlc2VydmVfbm9kZSwKPj4gaW5jbHVkaW5nIGk5 MTVfdmdwdSwgSSB0aGluayBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gaGF2ZSB0aGUKPj4gcHJvdG90 eXBlIGFzLAo+PiAgICAgaTkxNV92bV9yZXNlcnZlX25vZGUodm0sICZub2RlKTsKPj4KPj4gSG93 ZXZlciB0aGlzIHNob3VsZCBiZSBkb25lIGFzIGEgc2VwYXJhdGUgcGF0Y2ggPwo+Cj4gWWVzLCBJ IHdhcyBqdXN0IHJlY29nbmlzaW5nIHRoZSBjb2RlIGR1cGxpY2F0aW9uIGFuZCBmb3VuZCAzIHBs YWNlcwo+IHdoZXJlIHdlIGNvdWxkIHVzZSBpdCAtIDMgYmVpbmcgdGhlIG1hZ2ljIG51bWJlciB0 byByZWZhY3Rvci4KPgo+Pj4+ICtzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfdHJ0dF9wYXJh bSB7Cj4+Pj4gKwlfX3U2NCBsM190YWJsZV9hZGRyZXNzOwo+Pj4+ICsJX191MzIgaW52ZF90aWxl X3ZhbDsKPj4+PiArCV9fdTMyIG51bGxfdGlsZV92YWw7Cj4+Pj4gK307Cj4+Pgo+Pj4gUGFzc2Vz IHRoZSBBQkkgc3RydWN0dXJlIHNhbml0eSBjaGVja3MuCj4+Cj4+IFNob3VsZCB3ZSBhbGxvdyBV c2VyIHRvIGFsc28gY2hvb3NlIHRoZSBsb2NhdGlvbiBvZiBUUi1UVCBzZWdtZW50Cj4+IChzaXpl IGlzIGFueXdheXMgZml4ZWQgYXMgMTw8NDQpLgo+Cj4gVGhlIGtlcm5lbCBpcyBtdWNoIG1vcmUg YWdub3N0aWMgd2l0aCB5b3VyIGFwcHJvYWNoIHRoYW4gSSBhbnRpY2lwYXRlZCwKPiBzbyBmcm9t IG91ciBwb3YsIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNob290IHRoZW1zZWx2ZXMgaW4gdGhlIGZv b3QgaXMKPiBvay4KPgo+IFRoZXJlIGlzIG9ubHkgb25lIHNlbnNpYmxlIGxvY2F0aW9uLCBidXQg dGhhdCBvbmUgbG9jYXRpb24gbWF5IGJlCj4gc2Vuc2libGUgZm9yIGEgZmV3IHRoaW5ncy4KPgo+ IGkuZS4gaXQgc2hvdWxkbid0IGJlIGJlbG93IDE8PDQwIHNvIHRoYXQgeW91IGNhbiBkbyBmdWxs IGFsaWFzaW5nCj4gYmV0d2VlbiBDUFUgYW5kIEdQVSBhZGRyZXNzZXMsIGFuZCB5b3Ugd2FudCB0 byBhdm9pZCBjdXR0aW5nIHlvdXIKPiBhZGRyZXNzIHNwYWNlIGluIHR3bywgc28gaXQgaGFzIHRv IGdvIGF0IHRoZSBlbmRzLCBlcmdvIGl0IHNob3VsZCBiZSBhdAo+IHRoZSB2ZXJ5IHRvcC4KClNv IFRvcCBtb3N0IHJlZ2lvbiBpcyB0aGUgbW9zdCBzdWl0YWJsZSBsb2NhdGlvbiwgaGVuY2Ugc2hv dWxkIGJlIHVzZWQgCmFsd2F5cy4KCkJlc3QgcmVnYXJkcwpBa2FzaAoKPiAtQ2hyaXMKPgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=