From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 5/8] drm/i915/perf: lock powergating configuration to default when active Date: Wed, 15 Aug 2018 12:58:05 +0100 Message-ID: <7741f355-ea6f-1b60-b252-4cf7e07b3fd2@linux.intel.com> References: <20180814144058.19286-1-tvrtko.ursulin@linux.intel.com> <20180814144058.19286-6-tvrtko.ursulin@linux.intel.com> <0450a167-81f0-d839-b49a-0a99fedaec15@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 30CAB6E35F for ; Wed, 15 Aug 2018 11:58:37 +0000 (UTC) In-Reply-To: <0450a167-81f0-d839-b49a-0a99fedaec15@intel.com> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lionel Landwerlin , Tvrtko Ursulin , Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE0LzA4LzIwMTggMTU6NTksIExpb25lbCBMYW5kd2VybGluIHdyb3RlOgo+IEhleSBUdnJ0 a28sCj4gCj4gVGhhbmtzIGZvciB0YWtpbmcgb3ZlciB0aGlzIHNlcmllcy4KPiAKPiBJJ3ZlIGJl ZW4gdGFsa2luZyB0byBkZXZlbG9wZXJzIHVzaW5nIHRoZSBpOTE1L3BlcmYgaW50ZXJmYWNlIGFu ZCBmcm9tIAo+IHRoZWlyIHBvaW50IG9mIHZpZXcsIHRoZXkgZXhwZWN0IHRoZSBzeXN0ZW0gdG8g YmUgaW4gYSBzdGFibGUgCj4gY29uZmlndXJhdGlvbiB3aGVuIGRvaW5nIG1lYXN1cmVtZW50cy4K PiAKPiBPbmUgaXNzdWUgd2l0aCB0aGlzIHBhdGNoIG9uIEdlbjExIGlzIHRoYXQgaXQgd2lsbCBs b2NrIHRoZSBzeXN0ZW0gaW4gYSAKPiBjb25maWd1cmF0aW9uIHRoYXQgaXNuJ3Qgd29ya2FibGUg Zm9yIG1lZGlhIHdvcmtsb2FkcyAoYWxsIHN1YnNsaWNlcyAKPiBlbmFibGVkKS4KPiBTbyBJIHRo aW5rIHdlIHNob3VsZCBzZXQgdGhlIHZhbHVlIGZvciB0aGUgbG9ja2VkIGNvbmZpZ3VyYXRpb24g cGVyIAo+IGdlbmVyYXRpb24gKGdlbjgtMTA6IGFsbCBzbGljZXMvc3Vic2xpY2VzLCBnZW4xMTog b25seSBzdWJzbGljZXMgdGhhdCAKPiBjb250YWluIFZNRSBzYW1wbGVycykgc28gdGhhdCB3ZSBh bHdheXMgZ2V0IGEgZnVuY3Rpb25hbCBjb25maWd1cmF0aW9ucyAKPiBmb3IgYWxsIHdvcmtsb2Fk cy4KPiBDb3VsZCB3ZSB3YW50IHRvIHNlbGVjdCB0aGF0IGNvbmZpZ3VyYXRpb24gd2hlbiBvcGVu aW5nIHBlcmY/CgpUaGlzIHdvdWxkIGJlIHZpYSBpOTE1X3BlcmYuYy9nZW44X2NvbmZpZ3VyZV9h bGxfY29udGV4dHM/CgpTb3VuZHMgbGlrZSBhbiB1bmZvcnR1bmF0ZSBidXQgd29ya2FibGUgY29t cHJvbWlzZS4gQXMgbG9uZyBhcyB0aGVyZSAKZG9lc24ndCBhcHBlYXIgYW5vdGhlciBhc3ltbWV0 cmljIHNsaWNlIGZlYXR1cmUgaW4gdGhlIGZ1dHVyZSwgd2hpY2ggCmRvZXNuJ3QgYWxpZ24gd2l0 aCBWTUUuIExpa2Ugb25lIHdvcmtsb2FkcyB3YW50cyBzbGljZXMgMCAmIDIsIGFub3RoZXIgCndh bnRzIDEgJiAzLCBvciB3aGF0ZXZlci4gSWYgdGhhdCBoYXBwZW5zIHRoZW4gSSBkb24ndCBrbm93 IHdoYXQgd2UgZG8gCmFwYXJ0IGZyb20gbG9ja2luZyBvdXQgcGVyZi9PQS4KCj4gQW5vdGhlciBx dWVzdGlvbiBpcyBob3cgZG8gd2UgZXhwb3NlIHRoZSBzZWxlY3RlZCB2YWx1ZSB0byB0aGUgdXNl ci4gQnV0IAo+IHRoYXQgY2FuIGJlIHNvbHZlZCBpbiBhIGRpZmZlcmVudCBzZXJpZXMuCgpTU0VV IGdldF9wYXJhbSB3b3VsZCBjdXQgaXQ/IEFsdGhvdWdoIGl0IHdvdWxkIGJlIHBlcmhhcHMgYmUg dW5leHBlY3RlZCAKdG8gZ2V0IGRpZmZlcmVudCByZXN1bHRzIGRlcGVuZGluZyBvbiB3aGV0aGVy IHBlcmYvT0EgaXMgYWN0aXZlIG9yIG5vdC4uIApIbS4uLiBleHBvcnQgZGV2aWNlIGFuZCBhdmFp bGFibGUgYml0bWFza3MgdmlhIGdldCBwYXJhbT8gRGV2aWNlIGJpdG1hc2sgCndvdWxkIGJlIGZp eGVkIGFuZCBhdmFpbGFibGUgd291bGQgY2hhbmdlIGRlcGVuZGluZyBvbiB3aGV0aGVyIHBlcmYv T0EgCmlzIGFjdGl2ZSBvciBub3QuCgpSZWdhcmRzLAoKVHZydGtvCgo+IENoZWVycywKPiAKPiAt Cj4gTGlvbmVsCj4gCj4gT24gMTQvMDgvMTggMTU6NDAsIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+ PiBGcm9tOiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+ Cj4+Cj4+IElmIHNvbWUgb2YgdGhlIGNvbnRleHRzIHN1Ym1pdHRpbmcgd29ya2xvYWRzIHRvIHRo ZSBHUFUgaGF2ZSBiZWVuCj4+IGNvbmZpZ3VyZWQgdG8gc2h1dGRvd24gc2xpY2VzL3N1YnNsaWNl cywgd2UgbWlnaHQgbG9vc2UgdGhlIE5PQQo+PiBjb25maWd1cmF0aW9ucyB3cml0dGVuIGluIHRo ZSBOT0EgbXV4ZXMuCj4+Cj4+IE9uZSBwb3NzaWJsZSBzb2x1dGlvbiB0byB0aGlzIHByb2JsZW0g aXMgdG8gcmVwcm9ncmFtIHRoZSBOT0EgbXV4ZXMKPj4gd2hlbiB3ZSBzd2l0Y2ggdG8gYSBuZXcg Y29udGV4dC4gV2UgaW5pdGlhbGx5IHRyaWVkIHRoaXMgaW4gdGhlCj4+IHdvcmthcm91bmQgYmF0 Y2hidWZmZXIgYnV0IHNvbWUgY29uY2VybnMgd2hlcmUgcmFpc2VkIGFib3V0IHRoZSBjb3N0Cj4+ IG9mIHJlcHJvZ3JhbW1pbmcgYXQgZXZlcnkgY29udGV4dCBzd2l0Y2guIFRoaXMgc29sdXRpb24g aXMgYWxzbyBub3QKPj4gd2l0aG91dCBjb25zZXF1ZW5jZXMgZnJvbSB0aGUgdXNlcnNwYWNlIHBv aW50IG9mIHZpZXcuIFJlcHJvZ3JhbW1pbmcKPj4gb2YgdGhlIG11eGVzIGNhbiBvbmx5IGhhcHBl biBvbmNlIHRoZSBwb3dlcmdhdGluZyBjb25maWd1cmF0aW9uIGhhcwo+PiBjaGFuZ2VkICh3aGlj aCBoYXBwZW5zIGFmdGVyIGNvbnRleHQgc3dpdGNoKS4gVGhpcyBtZWFucyBmb3IgYSB3aW5kb3cK Pj4gb2YgdGltZSBkdXJpbmcgdGhlIHJlY29yZGluZywgY291bnRlcnMgcmVjb3JkZWQgYnkgdGhl IE9BIHVuaXQgbWlnaHQKPj4gYmUgaW52YWxpZC4gVGhpcyByZXF1aXJlcyB1c2Vyc3BhY2UgZGVh bGluZyB3aXRoIE9BIHJlcG9ydHMgdG8gZGlzY2FyZAo+PiB0aGUgaW52YWxpZCB2YWx1ZXMuCj4+ Cj4+IE1pbmltaXppbmcgdGhlIHJlcHJvZ3JhbW1pbmcgY291bGQgYmUgaW1wbGVtZW50ZWQgYnkg dHJhY2tpbmcgb2YgdGhlCj4+IGxhc3QgcHJvZ3JhbW1lZCBjb25maWd1cmF0aW9uIHNvbWV3aGVy ZSBpbiBHR1RUIGFuZCB1c2UgTUlfUFJFRElDQVRFCj4+IHRvIGRpc2NhcmQgc29tZSBvZiB0aGUg cHJvZ3JhbW1pbmcgY29tbWFuZHMsIGJ1dCB0aGUgY29tbWFuZCBzdHJlYW1lcgo+PiB3b3VsZCBz dGlsbCBoYXZlIHRvIHBhcnNlIGFsbCB0aGUgTUlfTFJJIGluc3RydWN0aW9ucyBpbiB0aGUKPj4g d29ya2Fyb3VuZCBiYXRjaGJ1ZmZlci4KPj4KPj4gQW5vdGhlciBzb2x1dGlvbiwgd2hpY2ggdGhp cyBjaGFuZ2UgaW1wbGVtZW50cywgaXMgdG8gc2ltcGx5IGRpc3JlZ2FyZAo+PiB0aGUgdXNlciBy ZXF1ZXN0ZWQgY29uZmlndXJhdGlvbiBmb3IgdGhlIHBlcmlvZCBvZiB0aW1lIHdoZW4gaTkxNS9w ZXJmCj4+IGlzIGFjdGl2ZS4gVGhlcmUgaXMgbm8ga25vd24gaXNzdWUgd2l0aCB0aGlzIGFwYXJ0 IGZyb20gYSBwZXJmb3JtYW5jZQo+PiBwZW5hbGl0eSBmb3Igc29tZSBtZWRpYSB3b3JrbG9hZHMg dGhhdCBiZW5lZml0IGZyb20gcnVubmluZyBvbiBhCj4+IHBhcnRpYWxseSBwb3dlcmdhdGVkIEdQ VS4gV2UgYWxyZWFkeSBwcmV2ZW50IFJDNiBmcm9tIGFmZmVjdGluZyB0aGUKPj4gcHJvZ3JhbW1p bmcgc28gaXQgZG9lc24ndCBzb3VuZCBjb21wbGV0ZWx5IHVucmVhc29uYWJsZSB0byBob2xkIG9u Cj4+IHBvd2VyZ2F0aW5nIGZvciB0aGUgc2FtZSByZWFzb24uCj4+Cj4+IHYyOiBMZWF2ZSBSUENT IHByb2dyYW1taW5nIGluIGludGVsX2xyYy5jIChMaW9uZWwpCj4+Cj4+IHYzOiBVcGRhdGUgZm9y IHMvdW5pb24gaW50ZWxfc3NldS9zdHJ1Y3QgaW50ZWxfc3NldS8gKExpb25lbCkKPj4gwqDCoMKg wqAgTW9yZSB0b19pbnRlbF9jb250ZXh0KCkgKFR2cnRrbykKPj4gwqDCoMKgwqAgcy9kZXZfcHJp di9pOTE1LyAoVHZydGtvKQo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBMaW9uZWwgTGFuZHdlcmxpbiA8 bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+Cj4+IC0tLQo+PiDCoCBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5owqAgfCAxNSArKysrKysrKysrKysrKysKPj4gwqAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgfCAyMyArKysrKysrKysrKysrKysrKystLS0tLQo+PiDC oCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyB8IDExICsrKysrKystLS0tCj4+IMKg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oIHzCoCAzICsrKwo+PiDCoCA0IGZpbGVz IGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIAo+PiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKPj4gaW5kZXggZDYwNDljM2Y5MTFiLi41YzEyZDI2NzY0MzUgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBAQCAtMzg1MSw0ICszODUxLDE5IEBAIHN0 YXRpYyBpbmxpbmUgaW50IAo+PiBpbnRlbF9od3NfY3NiX3dyaXRlX2luZGV4KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIEk5MTVfSFdT X0NTQl9XUklURV9JTkRFWDsKPj4gwqAgfQo+PiArc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxf c3NldQo+PiAraW50ZWxfZW5naW5lX3ByZXBhcmVfc3NldShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgaW50ZWxfc3Nl dSBzc2V1KQo+PiArewo+PiArwqDCoMKgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0g ZW5naW5lLT5pOTE1Owo+PiArCj4+ICvCoMKgwqAgLyoKPj4gK8KgwqDCoMKgICogSWYgaTkxNS9w ZXJmIGlzIGFjdGl2ZSwgd2Ugd2FudCBhIHN0YWJsZSBwb3dlcmdhdGluZyAKPj4gY29uZmlndXJh dGlvbgo+PiArwqDCoMKgwqAgKiBvbiB0aGUgc3lzdGVtLiBUaGUgbW9zdCBuYXR1cmFsIGNvbmZp Z3VyYXRpb24gdG8gdGFrZSBpbiB0aGF0IAo+PiBjYXNlCj4+ICvCoMKgwqDCoCAqIGlzIHRoZSBk ZWZhdWx0IChpLmUgbWF4aW11bSB0aGUgaGFyZHdhcmUgY2FuIGRvKS4KPj4gK8KgwqDCoMKgICov Cj4+ICvCoMKgwqAgcmV0dXJuIGk5MTUtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbSA/Cj4+ICvC oMKgwqDCoMKgwqDCoCBpbnRlbF9kZXZpY2VfZGVmYXVsdF9zc2V1KGk5MTUpIDogc3NldTsKPj4g K30KPj4gKwo+PiDCoCAjZW5kaWYKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcGVyZi5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCj4+IGlu ZGV4IGNjYjIwMjMwZGYyYy4uYzJmYzIzOTllMGVkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BlcmYuYwo+PiBAQCAtMTYzMSw3ICsxNjMxLDggQEAgc3RhdGljIHZvaWQgaHN3X2Rpc2FibGVf bWV0cmljX3NldChzdHJ1Y3QgCj4+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiDCoMKg ICovCj4+IMKgIHN0YXRpYyB2b2lkIGdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJ1 Y3QgaTkxNV9nZW1fY29udGV4dCAKPj4gKmN0eCwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHUzMiAqcmVnX3N0YXRlLAo+PiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3Qgc3RydWN0IGk5MTVfb2FfY29u ZmlnICpvYV9jb25maWcpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9jb25maWcgKm9hX2NvbmZpZywKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBpbnRlbF9zc2V1 IHNzZXUpCj4+IMKgIHsKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBjdHgtPmk5MTU7Cj4+IMKgwqDCoMKgwqAgdTMyIGN0eF9vYWN0eGN0cmwgPSBkZXZf cHJpdi0+cGVyZi5vYS5jdHhfb2FjdHhjdHJsX29mZnNldDsKPj4gQEAgLTE2NzcsNiArMTY3OCw5 IEBAIHN0YXRpYyB2b2lkIAo+PiBnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIENUWF9SRUcocmVn X3N0YXRlLCBzdGF0ZV9vZmZzZXQsIGZsZXhfcmVnc1tpXSwgdmFsdWUpOwo+PiDCoMKgwqDCoMKg IH0KPj4gKwo+PiArwqDCoMKgIENUWF9SRUcocmVnX3N0YXRlLCBDVFhfUl9QV1JfQ0xLX1NUQVRF LCBHRU44X1JfUFdSX0NMS19TVEFURSwKPj4gK8KgwqDCoMKgwqDCoMKgIGdlbjhfbWFrZV9ycGNz KCZJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldSwgc3NldSkpOwo+PiDCoCB9Cj4+IMKgIC8qCj4+ IEBAIC0xODA3LDYgKzE4MTEsNyBAQCBzdGF0aWMgaW50IAo+PiBnZW44X3N3aXRjaF90b191cGRh dGVkX2tlcm5lbF9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHIKPj4gwqAg c3RhdGljIGludCBnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgCj4+ICpkZXZfcHJpdiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGNvbnN0IHN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmlnKQo+ PiDCoCB7Cj4+ICvCoMKgwqAgc3RydWN0IGludGVsX3NzZXUgZGVmYXVsdF9zc2V1ID0gCj4+IGlu dGVsX2RldmljZV9kZWZhdWx0X3NzZXUoZGV2X3ByaXYpOwo+PiDCoMKgwqDCoMKgIHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGRldl9wcml2LT5lbmdpbmVbUkNTXTsKPj4gwqDCoMKg wqDCoCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4Owo+PiDCoMKgwqDCoMKgIGludCByZXQ7 Cj4+IEBAIC0xODU0LDcgKzE4NTksOCBAQCBzdGF0aWMgaW50IGdlbjhfY29uZmlndXJlX2FsbF9j b250ZXh0cyhzdHJ1Y3QgCj4+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiDCoMKgwqDC oMKgwqDCoMKgwqAgY2UtPnN0YXRlLT5vYmotPm1tLmRpcnR5ID0gdHJ1ZTsKPj4gwqDCoMKgwqDC oMKgwqDCoMKgIHJlZ3MgKz0gTFJDX1NUQVRFX1BOICogUEFHRV9TSVpFIC8gc2l6ZW9mKCpyZWdz KTsKPj4gLcKgwqDCoMKgwqDCoMKgIGdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChjdHgs IHJlZ3MsIG9hX2NvbmZpZyk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBnZW44X3VwZGF0ZV9yZWdfc3Rh dGVfdW5sb2NrZWQoY3R4LCByZWdzLCBvYV9jb25maWcsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG9hX2NvbmZpZyA/IGRlZmF1bHRfc3Nl dSA6IGNlLT5zc2V1KTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGk5MTVfZ2VtX29iamVjdF91bnBp bl9tYXAoY2UtPnN0YXRlLT5vYmopOwo+PiDCoMKgwqDCoMKgIH0KPj4gQEAgLTIyMjYsMTQgKzIy MzIsMjEgQEAgdm9pZCBpOTE1X29hX2luaXRfcmVnX3N0YXRlKHN0cnVjdCAKPj4gaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3Ry dWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB1MzIgKnJlZ19zdGF0ZSkKPj4gwqAgewo+PiArwqDCoMKgIHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1ID0gZW5naW5lLT5pOTE1Owo+PiDCoMKgwqDCoMKgIHN0cnVjdCBpOTE1 X3BlcmZfc3RyZWFtICpzdHJlYW07Cj4+IMKgwqDCoMKgwqAgaWYgKGVuZ2luZS0+aWQgIT0gUkNT KQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuOwo+PiAtwqDCoMKgIHN0cmVhbSA9IGVuZ2lu ZS0+aTkxNS0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtOwo+PiAtwqDCoMKgIGlmIChzdHJlYW0p Cj4+IC3CoMKgwqDCoMKgwqDCoCBnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoY3R4LCBy ZWdfc3RhdGUsIAo+PiBzdHJlYW0tPm9hX2NvbmZpZyk7Cj4+ICvCoMKgwqAgc3RyZWFtID0gaTkx NS0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtOwo+PiArwqDCoMKgIGlmIChzdHJlYW0pIHsKPj4g K8KgwqDCoMKgwqDCoMKgIHN0cnVjdCBpbnRlbF9zc2V1IGRlZmF1bHRfc3NldSA9Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGludGVsX2RldmljZV9kZWZhdWx0X3NzZXUoaTkxNSk7Cj4+ICsK Pj4gK8KgwqDCoMKgwqDCoMKgIGdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChjdHgsIHJl Z19zdGF0ZSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgc3RyZWFtLT5vYV9jb25maWcsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlZmF1bHRfc3NldSk7Cj4+ICvCoMKgwqAgfQo+ PiDCoCB9Cj4+IMKgIC8qKgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4gaW5kZXgg N2IyZjJkNmJiMDU3Li44YTI5OTdiZTdlZjcgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCj4+IEBAIC0yNDg0LDggKzI0ODQsOCBAQCBpbnQgbG9naWNhbF94Y3NfcmluZ19pbml0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgCj4+ICplbmdpbmUpCj4+IMKgwqDCoMKgwqAgcmV0dXJuIGxv Z2ljYWxfcmluZ19pbml0KGVuZ2luZSk7Cj4+IMKgIH0KPj4gLXN0YXRpYyB1MzIgbWFrZV9ycGNz KGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LAo+PiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHN0cnVjdCBpbnRlbF9zc2V1IGN0eF9zc2V1KQo+PiArdTMyIGdlbjhfbWFrZV9ycGNz KGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqAgc3RydWN0IGludGVsX3NzZXUgY3R4X3NzZXUpCj4+IMKgIHsKPj4gwqDCoMKgwqDCoCB1MzIg cnBjcyA9IDA7Cj4+IEBAIC0yNjM1LDEwICsyNjM1LDEzIEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0 c19pbml0X3JlZ19zdGF0ZSh1MzIgKnJlZ3MsCj4+IMKgwqDCoMKgwqAgfQo+PiDCoMKgwqDCoMKg IGlmIChyY3MpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCBpbnRlbF9zc2V1IHNzZXUgPSB0 b19pbnRlbF9jb250ZXh0KGN0eCwgZW5naW5lKS0+c3NldTsKPj4gKwo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgcmVnc1tDVFhfTFJJX0hFQURFUl8yXSA9IE1JX0xPQURfUkVHSVNURVJfSU1NKDEpOwo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgQ1RYX1JFRyhyZWdzLCBDVFhfUl9QV1JfQ0xLX1NUQVRFLCBH RU44X1JfUFdSX0NMS19TVEFURSwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWFrZV9ycGNz KCZJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldSwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgdG9faW50ZWxfY29udGV4dChjdHgsIGVuZ2luZSktPnNzZXUpKTsKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgZ2VuOF9tYWtlX3JwY3MoJklOVEVMX0lORk8oZGV2X3ByaXYp LT5zc2V1LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg aW50ZWxfZW5naW5lX3ByZXBhcmVfc3NldShlbmdpbmUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNzZXUpKSk7Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCBpOTE1X29hX2luaXRfcmVnX3N0YXRlKGVuZ2luZSwgY3R4LCBy ZWdzKTsKPj4gwqDCoMKgwqDCoCB9Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+PiBp bmRleCBmNWE1NTAyZWNmNzAuLmJmM2FjZGMzZDBhZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmgKPj4gQEAgLTEwNCw0ICsxMDQsNyBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfcmVz dW1lKHN0cnVjdCAKPj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiDCoCB2b2lkIGlu dGVsX2V4ZWNsaXN0c19zZXRfZGVmYXVsdF9zdWJtaXNzaW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgCj4+ICplbmdpbmUpOwo+PiArdTMyIGdlbjhfbWFrZV9ycGNzKGNvbnN0IHN0cnVjdCBzc2V1 X2Rldl9pbmZvICpzc2V1LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGludGVsX3Nz ZXUgY3R4X3NzZXUpOwo+PiArCj4+IMKgICNlbmRpZiAvKiBfSU5URUxfTFJDX0hfICovCj4gCj4g Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRl bC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=