From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anshuman Gupta Subject: Re: [PATCH v7 6/7] drm/i915/tgl: switch between dc3co and dc5 based on display idleness Date: Tue, 10 Sep 2019 15:26:20 +0530 Message-ID: <20190910095615.GA6808@intel.com> References: <20190907171443.16181-1-anshuman.gupta@intel.com> <20190907171443.16181-7-anshuman.gupta@intel.com> <20190908175517.GD28096@ideak-desk.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id EA1956E83A for ; Tue, 10 Sep 2019 10:02:54 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190908175517.GD28096@ideak-desk.fi.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: jani.nikula@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMjAxOS0wOS0wOCBhdCAyMDo1NToxNyArMDMwMCwgSW1yZSBEZWFrIHdyb3RlOgpIaSBJbXJl ICwKVGhhbmtzIGZvciByZXZpZXcsIGNvdWxkIHlvdSBwbGVhc2UgcHJvdmlkZSB5b3VyIHJlc3Bv bnNlIG9uIGJlbG93CmNvbW1lbnRzLgo+IE9uIFNhdCwgU2VwIDA3LCAyMDE5IGF0IDEwOjQ0OjQy UE0gKzA1MzAsIEFuc2h1bWFuIEd1cHRhIHdyb3RlOgo+ID4gREMzQ08gaXMgdXNlZnVsIHBvd2Vy IHN0YXRlLCB3aGVuIERNQyBkZXRlY3RzIFBTUjIgaWRsZSBmcmFtZQo+ID4gd2hpbGUgYW4gYWN0 aXZlIHZpZGVvIHBsYXliYWNrLCBwbGF5aW5nIDMwZnBzIHZpZGVvIG9uIDYwaHogcGFuZWwKPiA+ IGlzIHRoZSBjbGFzc2ljIGV4YW1wbGUgb2YgdGhpcyB1c2UgY2FzZS4KPiA+IERDNSBhbmQgREM2 IHNhdmVzIG1vcmUgcG93ZXIsIGJ1dCBjYW4ndCBiZSBlbnRlcmVkIGR1cmluZyB2aWRlbwo+ID4g cGxheWJhY2sgYmVjYXVzZSB0aGVyZSBhcmUgbm90IGVub3VnaCBpZGxlIGZyYW1lcyBpbiBhIHJv dyB0byBtZWV0Cj4gPiBtb3N0IFBTUjIgcGFuZWwgZGVlcCBzbGVlcCBlbnRyeSByZXF1aXJlbWVu dCB0eXBpY2FsbHkgNCBmcmFtZXMuCj4gCj4gUGxlYXNlIGFsc28gZXhwbGFpbiB3aHkgREMzY28g d2lsbCBiZSBlbmFibGVkIG9ubHkgZm9yIGZsaXBzIGJ1dCBub3QgZm9yCj4gb3RoZXIgZnJvbnRi dWZmZXIgZmx1c2ggZXZlbnRzIChPUklHSU5fQ1MvRElSVFlGQiBldGMuKSBhbmQgdGhhdCB3ZQo+ IGNvdWxkIGVuYWJsZSBpdCBmb3IgdGhvc2UgdG9vIGJ5IHN3aXRjaGluZyB0byBtYW51YWwgUFNS IHRyYWNraW5nIGFuZAo+IHByb2dyYW1taW5nIG9ubHkgMSBpZGxlIGZyYW1lIGZvciBkZWVwIHNs ZWVwIChzZWUgYmVsb3cpLgo+IAo+IEFsc28gZXhwbGFpbmluZyB0aGF0IHRoZSBmcm9udGJ1ZmZl ciBpbnZhbGlkYXRlIGV2ZW50IGRvZXNuJ3QgbmVlZCB0byBiZQo+IGFjdGVkIG9uIChiL2Mgb2Yg UFNSIGV4aXQpIHdvdWxkIGJlIGhlbHBmdWwuCj4gCj4gPiAKPiA+IEl0IHdpbGwgYmUgd29ydGh5 IHRvIGVuYWJsZSBEQzNDTyBhZnRlciBjb21wbGV0aW9uIG9mIGVhY2ggZmxpcAo+ID4gYW5kIHN3 aXRjaCBiYWNrIHRvIERDNSB3aGVuIGRpc3BsYXkgaXMgaWRsZSwgYXMgZHJpdmVyIGRvZXNuJ3QK PiA+IGRpZmZlcmVudGlhdGUgYmV0d2VlbiB2aWRlbyBwbGF5YmFjayBhbmQgYSBub3JtYWwgZmxp cC4KPiA+IEl0IGlzIHNhZmVyIHRvIGFsbG93IERDNSBhZnRlciA2IGlkbGUgZnJhbWUsIGFzIFBT UjIgcmVxdWlyZXMKPiA+IG1pbmltdW0gNiBpZGxlIGZyYW1lLgo+IAo+IEl0IHdvdWxkIGJlIGNs ZWFyZXIgdG8gc2F5IGhlcmUgdGhhdCBhZnRlciBhIGZsaXAgd2UgZW5hYmxlIERDM2NvLCBhZnRl cgo+IHdoaWNoIHdlIHdhaXQgbWFudWFsbHkgNiBmcmFtZXMgKGJ5IHNjaGVkdWxpbmcgdGhlIGlk bGUgZnJhbWUgd29yaykgYXQKPiB3aGljaCBwb2ludCB3ZSBlbmFibGUgUFNSIGRlZXAgc2xlZXAg d2l0aCA2IGlkbGUgZnJhbWVzLiBBZnRlciB0aGlzIDYKPiBpZGxlIGZyYW1lcyB0aGUgSFcgd2ls bCBlbnRlciBkZWVwIHNsZWVwIGFuZCBEQzUgd2lsbCBiZSBlbnRlcmVkCj4gYWZ0ZXIgdGhpcyBi eSBETUMgYXQgc29tZSBwb2ludC4KPiAKPiBUaGUgY2xhaW0gdGhhdCB3ZSBfaGF2ZV8gdG8gbWFr ZSB0aGUgSFcgd2FpdCBmb3IgNiBpZGxlIGZyYW1lcyBiZWZvcmUgaXQKPiBlbnRlcnMgZGVlcCBz bGVlcCBkb2Vzbid0IG1ha2UgbXVjaCBzZW5zZSB0byBtZSwgd291bGQgYmUgZ29vZCB0byBzZWUg YQo+IHJlZmVyZW5jZSB0byB0aGF0IGlmIGl0IHJlYWxseSBleGlzdHMuIFRoYXQgc2V0dGluZyBz ZWVtcyB0byBvbmx5IHNlcnZlCj4gdGhlIHB1cnBvc2UgdG8gYXZvaWQgdXBkYXRlIGxhZ3MsIGJ1 dCBpbiB0aGUgZnV0dXJlIChhcyBkaXNjdXNzZWQgd2l0aAo+IFZpbGxlKSB3ZSBzaG91bGQgc3dp dGNoIHRvIG1hbnVhbCBQU1IgdHJhY2tpbmcgYW5kIGZvciB0aGF0IHdlIHdvdWxkCj4gcHJvZ3Jh bSB0aGUgSFcgdG8gd2FpdCBvbmx5IDEgaWRsZSBmcmFtZSBiZWZvcmUgZW50ZXJpbmcgZGVlcCBz bGVlcCBhbmQKPiByZWx5IG9ubHkgb24gdGhlIG1hbnVhbCA2IGlkbGUgZnJhbWUgd2FpdCAodmlh IHRoZSBpZGxlIGZyYW1lIHdvcmspIHRvCj4gYXZvaWQgdXBkYXRlIGxhZ3MuCj4gCj4gPiAKPiA+ IHYyOiBjYWxjdWxhdGVkIHMvdyBzdGF0ZSB0byBzd2l0Y2ggb3ZlciBkYzNjbyB3aGVuIHRoZXJl IGlzIGFuCj4gPiAgICAgdXBkYXRlLiBbSW1yZV0KPiA+ICAgICB1c2VkIGNhbmNlbF9kZWxheWVk X3dvcmtfc3luYygpIGluIG9yZGVyIHRvIGF2b2lkIGFueSByYWNlCj4gPiAgICAgd2l0aCBhbHJl YWR5IHNjaGVkdWxlZCBkZWxheWVkIHdvcmsuIFtJbXJlXQo+ID4gdjM6IGNhbmNlbF9kZWxheWVk X3dvcmtfc3luYygpIG1heSBibG9ja2VkIHRoZSBjb21taXQgd29yay4KPiA+ICAgICBIZW5jZSBk cm9wcGluZyBpdCwgZGM1X2lkbGVfdGhyZWFkKCkgY2hlY2tzIHRoZSB2YWxpZCB3YWtlcmVmIGJl Zm9yZQo+ID4gICAgIHB1dHRpbmcgdGhlIHJlZmVyZW5jZSBjb3VudCwgd2hpY2ggYXZvaWRzIGFu eSBjaGFuY2VzIG9mIGRyb3BwaW5nCj4gPiAgICAgYSB6ZXJvIHdha2VyZWYuIFtJbXJlIChJUkMp XQo+ID4gdjQ6IHVzZSBmcm9udGJ1ZmZlciBmbHVzaCBtZWNoYW5pc20uIFtJbXJlXQo+ID4gCj4g PiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiA+IENjOiBJbXJlIERl YWsgPGltcmUuZGVha0BpbnRlbC5jb20+Cj4gPiBDYzogQW5pbWVzaCBNYW5uYSA8YW5pbWVzaC5t YW5uYUBpbnRlbC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBBbnNodW1hbiBHdXB0YSA8YW5zaHVt YW4uZ3VwdGFAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5LmMgIHwgIDIgKwo+ID4gIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXlfcG93ZXIuYyAgICB8IDc5ICsrKysrKysrKysrKysrKysrKysKPiA+ICAuLi4v ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmggICAgfCAgNiArKwo+ID4gIC4u Li9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mcm9udGJ1ZmZlci5jICB8ICAxICsKPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICAgfCAgMSArCj4gPiAg NSBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4gPiBpbmRleCA4NDQ4OGY4N2QwNTgu LjI3NTRlOGVlNjkzZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTE2MjA2LDYgKzE2MjA2LDcgQEAgaW50IGludGVsX21v ZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAlpbml0X2xsaXN0X2hlYWQo JmRldl9wcml2LT5hdG9taWNfaGVscGVyLmZyZWVfbGlzdCk7Cj4gPiAgCUlOSVRfV09SSygmZGV2 X3ByaXYtPmF0b21pY19oZWxwZXIuZnJlZV93b3JrLAo+ID4gIAkJICBpbnRlbF9hdG9taWNfaGVs cGVyX2ZyZWVfc3RhdGVfd29ya2VyKTsKPiA+ICsJSU5JVF9ERUxBWUVEX1dPUksoJmRldl9wcml2 LT5jc3IuaWRsZV93b3JrLCB0Z2xfZGM1X2lkbGVfdGhyZWFkKTsKPiA+ICAKPiA+ICAJaW50ZWxf aW5pdF9xdWlya3MoZGV2X3ByaXYpOwo+ID4gIAo+ID4gQEAgLTE3MTQ3LDYgKzE3MTQ4LDcgQEAg dm9pZCBpbnRlbF9tb2Rlc2V0X2RyaXZlcl9yZW1vdmUoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiA+ICAJZmx1c2hfd29ya3F1ZXVlKGRldl9wcml2LT5tb2Rlc2V0X3dxKTsKPiA+ICAKPiA+ICAJ Zmx1c2hfd29yaygmZGV2X3ByaXYtPmF0b21pY19oZWxwZXIuZnJlZV93b3JrKTsKPiA+ICsJZmx1 c2hfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+Y3NyLmlkbGVfd29yayk7Cj4gCj4gVGhpcyBpcyBy YWN5IGFzIHRoZSB3b3JrIGNvdWxkIGJlIHN0aWxsIHJ1bm5pbmcsIGJ1dCBhbHNvIHdvdWxkIGxl YXZlIGEKPiBmZXcgb3RoZXIgcGxhY2VzIHdpdGggdGhlIHdvcmsgcnVubmluZyBsaWtlIHN1c3Bl bmQsIHNvIGxldCdzIGp1c3QgbWFrZQo+IHN1cmUgdGhhdCBpdCdzIG5vdCBydW5uaW5nIGFueSBt b3JlIGFmdGVyIGVuY29kZXIgZGlzYWJsaW5nLgo+IAo+ID4gIAlXQVJOX09OKCFsbGlzdF9lbXB0 eSgmZGV2X3ByaXYtPmF0b21pY19oZWxwZXIuZnJlZV9saXN0KSk7Cj4gPiAgCj4gPiAgCS8qCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 X3Bvd2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93 ZXIuYwo+ID4gaW5kZXggZWNjZTExOGI1YjBlLi5jMTEwZjA0Yzk3MzMgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMK PiA+IEBAIC0yMCw2ICsyMCw3IEBACj4gPiAgI2luY2x1ZGUgImludGVsX3NpZGViYW5kLmgiCj4g PiAgI2luY2x1ZGUgImludGVsX3RjLmgiCj4gPiAgI2luY2x1ZGUgImludGVsX3BtLmgiCj4gPiAr I2luY2x1ZGUgImludGVsX3Bzci5oIgo+ID4gIAo+ID4gIGJvb2wgaW50ZWxfZGlzcGxheV9wb3dl cl93ZWxsX2lzX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4g IAkJCQkJIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHBvd2VyX3dlbGxfaWQpOwo+ID4gQEAgLTc3 Myw2ICs3NzQsMjcgQEAgc3RhdGljIHZvaWQgZ2VuOV9zZXRfZGNfc3RhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgc3RhdGUpCj4gPiAgCWRldl9wcml2LT5jc3IuZGNf c3RhdGUgPSB2YWwgJiBtYXNrOwo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgdTMyIGludGVsX2dl dF9mcmFtZV90aW1lX3VzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCj4g PiArewo+ID4gKwl1MzIgcGl4ZWxfcmF0ZSwgY3J0Y19odG90YWwsIGNydGNfdnRvdGFsOwo+ID4g Kwl1MzIgZnJhbWV0aW1lX3VzOwo+ID4gKwo+ID4gKwlpZiAoIWNzdGF0ZSB8fCAhY3N0YXRlLT5i YXNlLmFjdGl2ZSkKPiA+ICsJCXJldHVybiAwOwo+ID4gKwo+ID4gKwlwaXhlbF9yYXRlID0gY3N0 YXRlLT5waXhlbF9yYXRlOwo+ID4gKwo+ID4gKwlpZiAoV0FSTl9PTihwaXhlbF9yYXRlID09IDAp KQo+ID4gKwkJcmV0dXJuIDA7Cj4gPiArCj4gPiArCWNydGNfaHRvdGFsID0gY3N0YXRlLT5iYXNl LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWw7Cj4gPiArCWNydGNfdnRvdGFsID0gY3N0YXRlLT5i YXNlLmFkanVzdGVkX21vZGUuY3J0Y192dG90YWw7Cj4gPiArCWZyYW1ldGltZV91cyA9IERJVl9S T1VORF9VUChjcnRjX2h0b3RhbCAqIGNydGNfdnRvdGFsICogMTAwMFVMTCwKPiA+ICsJCQkJICAg IHBpeGVsX3JhdGUpOwo+ID4gKwo+ID4gKwlyZXR1cm4gZnJhbWV0aW1lX3VzOwo+ID4gK30KPiA+ ICsKPiA+ICB2b2lkIHRnbF9kaXNhYmxlX3BzcjJfdHJhbnNjb2Rlcl9leGl0bGluZShjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsK PiA+IEBAIC04MTcsNiArODM5LDQ5IEBAIHZvaWQgdGdsX2VuYWJsZV9wc3IyX3RyYW5zY29kZXJf ZXhpdGxpbmUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKPiA+ICAJSTkx NV9XUklURShFWElUTElORShjc3RhdGUtPmNwdV90cmFuc2NvZGVyKSwgdmFsKTsKPiA+ICB9Cj4g PiAgCj4gPiArdm9pZCB0Z2xfZGMzY29fZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ID4gKwkJICAgICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cywgZW51bSBm Yl9vcF9vcmlnaW4gb3JpZ2luKQo+ID4gK3sKPiA+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNzdGF0ZTsKPiA+ICsJdTMyIGRlbGF5Owo+ID4gKwl1bnNpZ25lZCBpbnQgYnVzeV9mcm9udGJ1 ZmZlcl9iaXRzOwo+ID4gKwo+ID4gKwlpZiAoIUlTX1RJR0VSTEFLRShkZXZfcHJpdikpCj4gPiAr CQlyZXR1cm47Cj4gPiArCj4gPiArCWlmIChvcmlnaW4gIT0gT1JJR0lOX0ZMSVApCj4gPiArCQly ZXR1cm47Cj4gPiArCj4gPiArCWlmICghZGV2X3ByaXYtPmNzci5kYzNjb19jcnRjKQo+ID4gKwkJ cmV0dXJuOwo+ID4gKwo+ID4gKwljc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGRldl9wcml2 LT5jc3IuZGMzY29fY3J0Yy0+YmFzZS5zdGF0ZSk7Cj4gPiArCWZyb250YnVmZmVyX2JpdHMgJj0K PiA+ICsJCUlOVEVMX0ZST05UQlVGRkVSX0FMTF9NQVNLKGRldl9wcml2LT5jc3IuZGMzY29fY3J0 Yy0+cGlwZSk7Cj4gPiArCWJ1c3lfZnJvbnRidWZmZXJfYml0cyAmPSB+ZnJvbnRidWZmZXJfYml0 czsKPiAKPiBIcm0sIHRoaXMgbG9va3Mgd3JvbmcuIEFsc28gaXQgZGVwZW5kcyBvbiB0aGUgUFNS IG1lY2hhbmlzbSwgc28gdGhpcwo+IHdob2xlIERDM2NvIGZsdXNoIGxvZ2ljIHNob3VsZCByYXRo ZXIgYmUgZG9uZSBmcm9tIHRoZSBQU1IgZmx1c2ggZnVuYywKPiB1c2luZyBwc3IucGlwZS4KPiAK SG1tIGluaXRpYWxseSBpIGhhdmUgcGxhbm5lZCB0byBoYXZlIGVudGlyZSBsb2dpYyB1bmRlciBw c3IgZmx1c2ggZnVuYwpidXQgUFNSIGludmFsaWRhdGUvZmx1c2ggbG9naWMgZm9yIE9SSUdJTl9G TElQIHJlbGllcyBvbiBIL1cgdHJhY2tpbmcsIApQU1IgaW52YWxpZGF0ZSBhbmQgZmx1c2ggY2Fs bCBoYXMgZWFybHkgcmV0dXJuIGZvciBPUklHSU5fRkxJUCAKdW5saWtlIERDM0NPIGNhc2Ugd2hl cmUgd2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBPUklHSU5fRkxJUCByZXF1ZXN0cy4KPiA+ICsK PiA+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKPiA+ICsKPiA+ICsJaWYgKCFk ZXZfcHJpdi0+cHNyLnBzcjJfZW5hYmxlZCB8fCAhZGV2X3ByaXYtPnBzci5hY3RpdmUpCj4gPiAr CQlnb3RvIHVubG9jazsKPiA+ICsKPiA+ICsJLyoKPiA+ICsJICogQXQgZXZlcnkgZmxpcCBmcm9u dGJ1ZmZlciBmbHVzaCBmaXJzdCBjYW5jZWwgdGhlIGRlbGF5ZWQgd29yaywKPiA+ICsJICogd2hl biBkZWxheWVkIHNjaGVkdWxlcyB0aGF0IG1lYW5zIGRpc3BsYXkgaGFzIGJlZW4gaWRsZQo+ID4g KwkgKiBmb3IgdGhlIDYgaWRsZSBmcmFtZS4KPiA+ICsJICovCj4gPiArCWlmICghYnVzeV9mcm9u dGJ1ZmZlcl9iaXRzKSB7Cj4gPiArCQljYW5jZWxfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+Y3Ny LmlkbGVfd29yayk7Cj4gCj4gVGhlIGFib3ZlIGlzIHJhY3kuClllcyB0Z2xfZGM1X2lkbGVfdGhy ZWFkKCkgY2FuIGV2ZW4gcnVuIGFmdGVyIHRoaXMgYnV0IGluIHRoYXQgY2FzZSBhbHNvCnRnbF9z ZXRfdGFyZ2V0X3N0YXRlKCkgaXMgcHJvdGVjdGVkIGJ5IHRoZSBwb3dlciBkb21haW4gbG9ja3Mu CkRvIHUgc2VlIGFueSBvdGhlciBoYXJtIG9mIGl0IGFwYXJ0IGZyb20gc2V0dGluZyB0YXJnZXRf ZGNfc3RhdGUgCmltbWVkaWF0ZWx5IHRvIERDNS9EQzYgYWZ0ZXIgaXQgc2V0cyB0byBEQzNDTyAo SU1PIHRoaXMgd291bGQgYmUgYSBsaXR0bGUgCnBlbmFsdHkgZm9yIGEgVkJMQU5LIGluIG5leHQg cGFnZSBmbGlwIGl0IHdpbGwgYWdhaW4gc2V0IHRhcmdldF9kY19zdGF0ZSB0byBEQzNDTykuCiAK SSBjYW4gdGhpbmsgb2YgdHdvIHBvc3NpYmxlIHNvbHV0aW9ucyB0byBhdm9pZCB0aGlzIHJhY2Uu CjEuIGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygpLgoyLiBIYXZpbmcgYSBmbGFnIHRvIGluZGlj YXRlIHRoYXQgZGVsYXllZCB3b3JrIGhhcyBiZWVuIGNhbmNlbGVkCiAgIGFuZCBzYW1lIGNhbiBi ZSB1c2VkIGJ5IHRnbF9kYzVfaWRsZV90aHJlYWQoKSB0byBoYXZlIGFuIGVhcmx5IHJldHVybi4K UGxlYXNlIHN1Z2dlc3QgeW91ciBvcGluaW9uIG9uIGl0LiAKPiAKPiA+ICsJCXRnbF9zZXRfdGFy Z2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9FTl9EQzNDTywgZmFsc2UpOwo+ID4gKwkJ ZGVsYXkgPSBEQzVfUkVRX0lETEVfRlJBTUVTICogaW50ZWxfZ2V0X2ZyYW1lX3RpbWVfdXMoY3N0 YXRlKTsKPiA+ICsJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmZGV2X3ByaXYtPmNzci5pZGxlX3dv cmssCj4gPiArCQkJCSAgICAgIHVzZWNzX3RvX2ppZmZpZXMoZGVsYXkpKTsKPiA+ICsJfQo+ID4g Kwo+ID4gK3VubG9jazoKPiA+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgYm9vbCB0Z2xfZGMzY29faXNfZWRwX2Nvbm5lY3RlZChz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAgKmNydGNfc3RhdGUpCj4gPiAgewo+ID4gIAlzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwo+ID4gQEAg LTg4MCw2ICs5NDUsMTQgQEAgdm9pZCB0Z2xfZGMzY29fY3J0Y19nZXRfY29uZmlnKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gIAl9Cj4gPiAgfQo+ID4gIAo+ID4gK3Zv aWQgdGdsX2RjNV9pZGxlX3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gPiArewo+ ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+ID4gKwkJY29udGFpbmVy X29mKHdvcmssIHR5cGVvZigqZGV2X3ByaXYpLCBjc3IuaWRsZV93b3JrLndvcmspOwo+ID4gKwo+ ID4gKwl0Z2xfc2V0X3RhcmdldF9kY19zdGF0ZShkZXZfcHJpdiwgRENfU1RBVEVfRU5fVVBUT19E QzYsIHRydWUpOwo+IAo+IFNvIGl0IHdvdWxkIHJlc3VsdCBpbiBlbmFibGluZyBkZWVwIHNsZWVw LCBidXQgd2l0aG91dCB0aGUgUFNSIGxvY2suCj4gVGhhdCdzIG9uZSByZWFzb24gd2Ugc2hvdWxk IHJlYWxseSBrZWVwIHRoZSBQU1Igc3BlY2lmaWMgcGFydHMgaGVyZS4KPiAKPiA+ICt9Cj4gPiAr Cj4gPiAgc3RhdGljIHZvaWQgdGdsX2FsbG93X2RjM2NvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiA+ICB7Cj4gPiAgCWlmICghZGV2X3ByaXYtPnBzci5zaW5rX3BzcjJfc3Vw cG9ydCkKPiA+IEBAIC0xMTU1LDYgKzEyMjgsOSBAQCB2b2lkIHRnbF9zZXRfdGFyZ2V0X2RjX3N0 YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHN0YXRlLAo+ID4gIAlp ZiAoc3RhdGUgPT0gZGV2X3ByaXYtPmNzci5tYXhfZGNfc3RhdGUpCj4gPiAgCQlnb3RvIHVubG9j azsKPiA+ICAKPiA+ICsJaWYgKCFwc3IyX2RlZXBfc2xlZXApCj4gPiArCQl0Z2xfcHNyMl9kZWVw X3NsZWVwX2Rpc2FibGUoZGV2X3ByaXYpOwo+ID4gKwo+ID4gIAlpZiAoIWRjX29mZl9lbmFibGVk KSB7Cj4gPiAgCQkvKgo+ID4gIAkJICogTmVlZCB0byBkaXNhYmxlIHRoZSBEQyBvZmYgcG93ZXIg d2VsbCB0bwo+ID4gQEAgLTExNjcsNiArMTI0Myw5IEBAIHZvaWQgdGdsX3NldF90YXJnZXRfZGNf c3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgc3RhdGUsCj4gPiAg CX0KPiA+ICAJCWRldl9wcml2LT5jc3IubWF4X2RjX3N0YXRlID0gc3RhdGU7Cj4gPiAgCj4gPiAr CWlmIChwc3IyX2RlZXBfc2xlZXApCj4gPiArCQl0Z2xfcHNyMl9kZWVwX3NsZWVwX2VuYWJsZShk ZXZfcHJpdik7Cj4gPiArCj4gPiAgdW5sb2NrOgo+ID4gIAltdXRleF91bmxvY2soJnBvd2VyX2Rv bWFpbnMtPmxvY2spOwo+ID4gIH0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5oCj4gPiBpbmRleCBkNzdhNWE1M2Y1NDMuLmRmMDk2 ZDY0Yzc0NCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheV9wb3dlci5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXlfcG93ZXIuaAo+ID4gQEAgLTksNiArOSw5IEBACj4gPiAgI2luY2x1ZGUg ImludGVsX2Rpc3BsYXkuaCIKPiA+ICAjaW5jbHVkZSAiaW50ZWxfcnVudGltZV9wbS5oIgo+ID4g ICNpbmNsdWRlICJpOTE1X3JlZy5oIgo+ID4gKyNpbmNsdWRlICJpbnRlbF9mcm9udGJ1ZmZlci5o Igo+ID4gKwo+ID4gKyNkZWZpbmUgREM1X1JFUV9JRExFX0ZSQU1FUwk2Cj4gCj4gTm8gbmVlZCBm b3IgYSBkZWZpbmUgZm9yIHRoaXMuCj4gCj4gPiAgCj4gPiAgc3RydWN0IGRybV9pOTE1X3ByaXZh dGU7Cj4gPiAgc3RydWN0IGludGVsX2VuY29kZXI7Cj4gPiBAQCAtMjY2LDYgKzI2OSw5IEBAIHZv aWQgdGdsX2RjM2NvX2NydGNfY29tcHV0ZV9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ID4gIHZvaWQgdGdsX2RjM2NvX2NydGNfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gPiAgdm9pZCB0Z2xfZGlzYWJsZV9wc3IyX3Ry YW5zY29kZXJfZXhpdGxpbmUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnN0YXRlKTsK PiA+ICB2b2lkIHRnbF9lbmFibGVfcHNyMl90cmFuc2NvZGVyX2V4aXRsaW5lKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0ZSk7Cj4gPiArdm9pZCB0Z2xfZGMzY29fZmx1c2goc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gKwkJICAgICB1bnNpZ25lZCBpbnQg ZnJvbnRidWZmZXJfYml0cywgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luKTsKPiA+ICt2b2lkIHRn bF9kYzVfaWRsZV90aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKPiA+ICAKPiA+ICBj b25zdCBjaGFyICoKPiA+ICBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZW51bSBpbnRl bF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW4pOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZnJvbnRidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZnJvbnRidWZmZXIuYwo+ID4gaW5kZXggZmM0MGRjMWZkYmNj Li5jM2IxMGY2ZTQzODIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Zyb250YnVmZmVyLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZnJvbnRidWZmZXIuYwo+ID4gQEAgLTkwLDYgKzkwLDcgQEAgc3RhdGljIHZv aWQgZnJvbnRidWZmZXJfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gPiAg CW1pZ2h0X3NsZWVwKCk7Cj4gPiAgCWludGVsX2VkcF9kcnJzX2ZsdXNoKGk5MTUsIGZyb250YnVm ZmVyX2JpdHMpOwo+ID4gIAlpbnRlbF9wc3JfZmx1c2goaTkxNSwgZnJvbnRidWZmZXJfYml0cywg b3JpZ2luKTsKPiA+ICsJdGdsX2RjM2NvX2ZsdXNoKGk5MTUsIGZyb250YnVmZmVyX2JpdHMsIG9y aWdpbik7Cj4gPiAgCWludGVsX2ZiY19mbHVzaChpOTE1LCBmcm9udGJ1ZmZlcl9iaXRzLCBvcmln aW4pOwo+ID4gIH0KPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gaW5kZXggMzIx OGIwMzE5ODUyLi5mZTcxMTE5YTQ1OGUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4gPiBAQCAtMzM4LDYgKzMzOCw3IEBAIHN0cnVjdCBpbnRlbF9jc3Igewo+ID4gIAl1MzIgZGNf c3RhdGU7Cj4gPiAgCXUzMiBtYXhfZGNfc3RhdGU7Cj4gPiAgCXUzMiBhbGxvd2VkX2RjX21hc2s7 Cj4gPiArCXN0cnVjdCBkZWxheWVkX3dvcmsgaWRsZV93b3JrOwo+ID4gIAlpbnRlbF93YWtlcmVm X3Qgd2FrZXJlZjsKPiA+ICAJLyogY2FjaGUgdGhlIGNydGMgb24gd2hpY2ggREMzQ08gd2lsbCBi ZSBhbGxvd2VkICovCj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpkYzNjb19jcnRjOwo+ID4gLS0g Cj4gPiAyLjIxLjAKPiA+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZng=