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: Wed, 11 Sep 2019 15:27:12 +0530 Message-ID: <20190911095712.GA20243@intel.com> References: <20190907171443.16181-1-anshuman.gupta@intel.com> <20190907171443.16181-7-anshuman.gupta@intel.com> <20190908175517.GD28096@ideak-desk.fi.intel.com> <20190910095615.GA6808@intel.com> <20190911085026.GB943@ideak-desk.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 050D66E218 for ; Wed, 11 Sep 2019 10:03:44 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190911085026.GB943@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 T24gMjAxOS0wOS0xMSBhdCAxMTo1MDoyNiArMDMwMCwgSW1yZSBEZWFrIHdyb3RlOgo+IE9uIFR1 ZSwgU2VwIDEwLCAyMDE5IGF0IDAzOjI2OjIwUE0gKzA1MzAsIEFuc2h1bWFuIEd1cHRhIHdyb3Rl Ogo+ID4gT24gMjAxOS0wOS0wOCBhdCAyMDo1NToxNyArMDMwMCwgSW1yZSBEZWFrIHdyb3RlOgo+ ID4gSGkgSW1yZSAsCj4gPiBUaGFua3MgZm9yIHJldmlldywgY291bGQgeW91IHBsZWFzZSBwcm92 aWRlIHlvdXIgcmVzcG9uc2Ugb24gYmVsb3cKPiA+IGNvbW1lbnRzLgo+ID4gPiBPbiBTYXQsIFNl cCAwNywgMjAxOSBhdCAxMDo0NDo0MlBNICswNTMwLCBBbnNodW1hbiBHdXB0YSB3cm90ZToKPiA+ ID4gPiBEQzNDTyBpcyB1c2VmdWwgcG93ZXIgc3RhdGUsIHdoZW4gRE1DIGRldGVjdHMgUFNSMiBp ZGxlIGZyYW1lCj4gPiA+ID4gd2hpbGUgYW4gYWN0aXZlIHZpZGVvIHBsYXliYWNrLCBwbGF5aW5n IDMwZnBzIHZpZGVvIG9uIDYwaHogcGFuZWwKPiA+ID4gPiBpcyB0aGUgY2xhc3NpYyBleGFtcGxl IG9mIHRoaXMgdXNlIGNhc2UuCj4gPiA+ID4gREM1IGFuZCBEQzYgc2F2ZXMgbW9yZSBwb3dlciwg YnV0IGNhbid0IGJlIGVudGVyZWQgZHVyaW5nIHZpZGVvCj4gPiA+ID4gcGxheWJhY2sgYmVjYXVz ZSB0aGVyZSBhcmUgbm90IGVub3VnaCBpZGxlIGZyYW1lcyBpbiBhIHJvdyB0byBtZWV0Cj4gPiA+ ID4gbW9zdCBQU1IyIHBhbmVsIGRlZXAgc2xlZXAgZW50cnkgcmVxdWlyZW1lbnQgdHlwaWNhbGx5 IDQgZnJhbWVzLgo+ID4gPiAKPiA+ID4gUGxlYXNlIGFsc28gZXhwbGFpbiB3aHkgREMzY28gd2ls bCBiZSBlbmFibGVkIG9ubHkgZm9yIGZsaXBzIGJ1dCBub3QgZm9yCj4gPiA+IG90aGVyIGZyb250 YnVmZmVyIGZsdXNoIGV2ZW50cyAoT1JJR0lOX0NTL0RJUlRZRkIgZXRjLikgYW5kIHRoYXQgd2UK PiA+ID4gY291bGQgZW5hYmxlIGl0IGZvciB0aG9zZSB0b28gYnkgc3dpdGNoaW5nIHRvIG1hbnVh bCBQU1IgdHJhY2tpbmcgYW5kCj4gPiA+IHByb2dyYW1taW5nIG9ubHkgMSBpZGxlIGZyYW1lIGZv ciBkZWVwIHNsZWVwIChzZWUgYmVsb3cpLgo+ID4gPiAKPiA+ID4gQWxzbyBleHBsYWluaW5nIHRo YXQgdGhlIGZyb250YnVmZmVyIGludmFsaWRhdGUgZXZlbnQgZG9lc24ndCBuZWVkIHRvIGJlCj4g PiA+IGFjdGVkIG9uIChiL2Mgb2YgUFNSIGV4aXQpIHdvdWxkIGJlIGhlbHBmdWwuCj4gPiA+IAo+ ID4gPiA+IAo+ID4gPiA+IEl0IHdpbGwgYmUgd29ydGh5IHRvIGVuYWJsZSBEQzNDTyBhZnRlciBj b21wbGV0aW9uIG9mIGVhY2ggZmxpcAo+ID4gPiA+IGFuZCBzd2l0Y2ggYmFjayB0byBEQzUgd2hl biBkaXNwbGF5IGlzIGlkbGUsIGFzIGRyaXZlciBkb2Vzbid0Cj4gPiA+ID4gZGlmZmVyZW50aWF0 ZSBiZXR3ZWVuIHZpZGVvIHBsYXliYWNrIGFuZCBhIG5vcm1hbCBmbGlwLgo+ID4gPiA+IEl0IGlz IHNhZmVyIHRvIGFsbG93IERDNSBhZnRlciA2IGlkbGUgZnJhbWUsIGFzIFBTUjIgcmVxdWlyZXMK PiA+ID4gPiBtaW5pbXVtIDYgaWRsZSBmcmFtZS4KPiA+ID4gCj4gPiA+IEl0IHdvdWxkIGJlIGNs ZWFyZXIgdG8gc2F5IGhlcmUgdGhhdCBhZnRlciBhIGZsaXAgd2UgZW5hYmxlIERDM2NvLCBhZnRl cgo+ID4gPiB3aGljaCB3ZSB3YWl0IG1hbnVhbGx5IDYgZnJhbWVzIChieSBzY2hlZHVsaW5nIHRo ZSBpZGxlIGZyYW1lIHdvcmspIGF0Cj4gPiA+IHdoaWNoIHBvaW50IHdlIGVuYWJsZSBQU1IgZGVl cCBzbGVlcCB3aXRoIDYgaWRsZSBmcmFtZXMuIEFmdGVyIHRoaXMgNgo+ID4gPiBpZGxlIGZyYW1l cyB0aGUgSFcgd2lsbCBlbnRlciBkZWVwIHNsZWVwIGFuZCBEQzUgd2lsbCBiZSBlbnRlcmVkCj4g PiA+IGFmdGVyIHRoaXMgYnkgRE1DIGF0IHNvbWUgcG9pbnQuCj4gPiA+IAo+ID4gPiBUaGUgY2xh aW0gdGhhdCB3ZSBfaGF2ZV8gdG8gbWFrZSB0aGUgSFcgd2FpdCBmb3IgNiBpZGxlIGZyYW1lcyBi ZWZvcmUgaXQKPiA+ID4gZW50ZXJzIGRlZXAgc2xlZXAgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2Ug dG8gbWUsIHdvdWxkIGJlIGdvb2QgdG8gc2VlIGEKPiA+ID4gcmVmZXJlbmNlIHRvIHRoYXQgaWYg aXQgcmVhbGx5IGV4aXN0cy4gVGhhdCBzZXR0aW5nIHNlZW1zIHRvIG9ubHkgc2VydmUKPiA+ID4g dGhlIHB1cnBvc2UgdG8gYXZvaWQgdXBkYXRlIGxhZ3MsIGJ1dCBpbiB0aGUgZnV0dXJlIChhcyBk aXNjdXNzZWQgd2l0aAo+ID4gPiBWaWxsZSkgd2Ugc2hvdWxkIHN3aXRjaCB0byBtYW51YWwgUFNS IHRyYWNraW5nIGFuZCBmb3IgdGhhdCB3ZSB3b3VsZAo+ID4gPiBwcm9ncmFtIHRoZSBIVyB0byB3 YWl0IG9ubHkgMSBpZGxlIGZyYW1lIGJlZm9yZSBlbnRlcmluZyBkZWVwIHNsZWVwIGFuZAo+ID4g PiByZWx5IG9ubHkgb24gdGhlIG1hbnVhbCA2IGlkbGUgZnJhbWUgd2FpdCAodmlhIHRoZSBpZGxl IGZyYW1lIHdvcmspIHRvCj4gPiA+IGF2b2lkIHVwZGF0ZSBsYWdzLgo+ID4gPiAKPiA+ID4gPiAK PiA+ID4gPiB2MjogY2FsY3VsYXRlZCBzL3cgc3RhdGUgdG8gc3dpdGNoIG92ZXIgZGMzY28gd2hl biB0aGVyZSBpcyBhbgo+ID4gPiA+ICAgICB1cGRhdGUuIFtJbXJlXQo+ID4gPiA+ICAgICB1c2Vk IGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygpIGluIG9yZGVyIHRvIGF2b2lkIGFueSByYWNlCj4g PiA+ID4gICAgIHdpdGggYWxyZWFkeSBzY2hlZHVsZWQgZGVsYXllZCB3b3JrLiBbSW1yZV0KPiA+ ID4gPiB2MzogY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCkgbWF5IGJsb2NrZWQgdGhlIGNvbW1p dCB3b3JrLgo+ID4gPiA+ICAgICBIZW5jZSBkcm9wcGluZyBpdCwgZGM1X2lkbGVfdGhyZWFkKCkg Y2hlY2tzIHRoZSB2YWxpZCB3YWtlcmVmIGJlZm9yZQo+ID4gPiA+ICAgICBwdXR0aW5nIHRoZSBy ZWZlcmVuY2UgY291bnQsIHdoaWNoIGF2b2lkcyBhbnkgY2hhbmNlcyBvZiBkcm9wcGluZwo+ID4g PiA+ICAgICBhIHplcm8gd2FrZXJlZi4gW0ltcmUgKElSQyldCj4gPiA+ID4gdjQ6IHVzZSBmcm9u dGJ1ZmZlciBmbHVzaCBtZWNoYW5pc20uIFtJbXJlXQo+ID4gPiA+IAo+ID4gPiA+IENjOiBKYW5p IE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+ID4gPiA+IENjOiBJbXJlIERlYWsgPGlt cmUuZGVha0BpbnRlbC5jb20+Cj4gPiA+ID4gQ2M6IEFuaW1lc2ggTWFubmEgPGFuaW1lc2gubWFu bmFAaW50ZWwuY29tPgo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEFuc2h1bWFuIEd1cHRhIDxhbnNo dW1hbi5ndXB0YUBpbnRlbC5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICB8ICAyICsKPiA+ID4gPiAgLi4uL2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jICAgIHwgNzkgKysrKysrKysrKysrKysr KysrKwo+ID4gPiA+ICAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmgg ICAgfCAgNiArKwo+ID4gPiA+ICAuLi4vZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZnJvbnRi dWZmZXIuYyAgfCAgMSArCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg ICAgICAgICAgICAgICB8ICAxICsKPiA+ID4gPiAgNSBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRp b25zKCspCj4gPiA+ID4gCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmMKPiA+ID4gPiBpbmRleCA4NDQ4OGY4N2QwNTguLjI3NTRlOGVlNjkzZiAx MDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXkuYwo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheS5jCj4gPiA+ID4gQEAgLTE2MjA2LDYgKzE2MjA2LDcgQEAgaW50IGludGVsX21vZGVz ZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gPiA+ICAJaW5pdF9sbGlzdF9oZWFk KCZkZXZfcHJpdi0+YXRvbWljX2hlbHBlci5mcmVlX2xpc3QpOwo+ID4gPiA+ICAJSU5JVF9XT1JL KCZkZXZfcHJpdi0+YXRvbWljX2hlbHBlci5mcmVlX3dvcmssCj4gPiA+ID4gIAkJICBpbnRlbF9h dG9taWNfaGVscGVyX2ZyZWVfc3RhdGVfd29ya2VyKTsKPiA+ID4gPiArCUlOSVRfREVMQVlFRF9X T1JLKCZkZXZfcHJpdi0+Y3NyLmlkbGVfd29yaywgdGdsX2RjNV9pZGxlX3RocmVhZCk7Cj4gPiA+ ID4gIAo+ID4gPiA+ICAJaW50ZWxfaW5pdF9xdWlya3MoZGV2X3ByaXYpOwo+ID4gPiA+ICAKPiA+ ID4gPiBAQCAtMTcxNDcsNiArMTcxNDgsNyBAQCB2b2lkIGludGVsX21vZGVzZXRfZHJpdmVyX3Jl bW92ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gPiA+ICAJZmx1c2hfd29ya3F1ZXVlKGRl dl9wcml2LT5tb2Rlc2V0X3dxKTsKPiA+ID4gPiAgCj4gPiA+ID4gIAlmbHVzaF93b3JrKCZkZXZf cHJpdi0+YXRvbWljX2hlbHBlci5mcmVlX3dvcmspOwo+ID4gPiA+ICsJZmx1c2hfZGVsYXllZF93 b3JrKCZkZXZfcHJpdi0+Y3NyLmlkbGVfd29yayk7Cj4gPiA+IAo+ID4gPiBUaGlzIGlzIHJhY3kg YXMgdGhlIHdvcmsgY291bGQgYmUgc3RpbGwgcnVubmluZywgYnV0IGFsc28gd291bGQgbGVhdmUg YQo+ID4gPiBmZXcgb3RoZXIgcGxhY2VzIHdpdGggdGhlIHdvcmsgcnVubmluZyBsaWtlIHN1c3Bl bmQsIHNvIGxldCdzIGp1c3QgbWFrZQo+ID4gPiBzdXJlIHRoYXQgaXQncyBub3QgcnVubmluZyBh bnkgbW9yZSBhZnRlciBlbmNvZGVyIGRpc2FibGluZy4KPiA+ID4gCj4gPiA+ID4gIAlXQVJOX09O KCFsbGlzdF9lbXB0eSgmZGV2X3ByaXYtPmF0b21pY19oZWxwZXIuZnJlZV9saXN0KSk7Cj4gPiA+ ID4gIAo+ID4gPiA+ICAJLyoKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwo+ID4gPiA+IGluZGV4IGVjY2UxMThiNWIwZS4u YzExMGYwNGM5NzMzIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMKPiA+ID4gPiBAQCAtMjAsNiArMjAs NyBAQAo+ID4gPiA+ICAjaW5jbHVkZSAiaW50ZWxfc2lkZWJhbmQuaCIKPiA+ID4gPiAgI2luY2x1 ZGUgImludGVsX3RjLmgiCj4gPiA+ID4gICNpbmNsdWRlICJpbnRlbF9wbS5oIgo+ID4gPiA+ICsj aW5jbHVkZSAiaW50ZWxfcHNyLmgiCj4gPiA+ID4gIAo+ID4gPiA+ICBib29sIGludGVsX2Rpc3Bs YXlfcG93ZXJfd2VsbF9pc19lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPiA+ID4gPiAgCQkJCQkgZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgcG93ZXJfd2VsbF9pZCk7 Cj4gPiA+ID4gQEAgLTc3Myw2ICs3NzQsMjcgQEAgc3RhdGljIHZvaWQgZ2VuOV9zZXRfZGNfc3Rh dGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgc3RhdGUpCj4gPiA+ID4g IAlkZXZfcHJpdi0+Y3NyLmRjX3N0YXRlID0gdmFsICYgbWFzazsKPiA+ID4gPiAgfQo+ID4gPiA+ ICAKPiA+ID4gPiArc3RhdGljIHUzMiBpbnRlbF9nZXRfZnJhbWVfdGltZV91cyhjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwl1MzIgcGl4 ZWxfcmF0ZSwgY3J0Y19odG90YWwsIGNydGNfdnRvdGFsOwo+ID4gPiA+ICsJdTMyIGZyYW1ldGlt ZV91czsKPiA+ID4gPiArCj4gPiA+ID4gKwlpZiAoIWNzdGF0ZSB8fCAhY3N0YXRlLT5iYXNlLmFj dGl2ZSkKPiA+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gPiArCj4gPiA+ID4gKwlwaXhlbF9yYXRl ID0gY3N0YXRlLT5waXhlbF9yYXRlOwo+ID4gPiA+ICsKPiA+ID4gPiArCWlmIChXQVJOX09OKHBp eGVsX3JhdGUgPT0gMCkpCj4gPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJ Y3J0Y19odG90YWwgPSBjc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbDsKPiA+ ID4gPiArCWNydGNfdnRvdGFsID0gY3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192dG90 YWw7Cj4gPiA+ID4gKwlmcmFtZXRpbWVfdXMgPSBESVZfUk9VTkRfVVAoY3J0Y19odG90YWwgKiBj cnRjX3Z0b3RhbCAqIDEwMDBVTEwsCj4gPiA+ID4gKwkJCQkgICAgcGl4ZWxfcmF0ZSk7Cj4gPiA+ ID4gKwo+ID4gPiA+ICsJcmV0dXJuIGZyYW1ldGltZV91czsKPiA+ID4gPiArfQo+ID4gPiA+ICsK PiA+ID4gPiAgdm9pZCB0Z2xfZGlzYWJsZV9wc3IyX3RyYW5zY29kZXJfZXhpdGxpbmUoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKPiA+ID4gPiAgewo+ID4gPiA+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjc3RhdGUtPmJhc2UuY3J0 Yy0+ZGV2KTsKPiA+ID4gPiBAQCAtODE3LDYgKzgzOSw0OSBAQCB2b2lkIHRnbF9lbmFibGVfcHNy Ml90cmFuc2NvZGVyX2V4aXRsaW5lKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3Rh dGUpCj4gPiA+ID4gIAlJOTE1X1dSSVRFKEVYSVRMSU5FKGNzdGF0ZS0+Y3B1X3RyYW5zY29kZXIp LCB2YWwpOwo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+ICt2b2lkIHRnbF9kYzNjb19mbHVz aChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gKwkJICAgICB1bnNp Z25lZCBpbnQgZnJvbnRidWZmZXJfYml0cywgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luKQo+ID4g PiA+ICt7Cj4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlOwo+ID4gPiA+ ICsJdTMyIGRlbGF5Owo+ID4gPiA+ICsJdW5zaWduZWQgaW50IGJ1c3lfZnJvbnRidWZmZXJfYml0 czsKPiA+ID4gPiArCj4gPiA+ID4gKwlpZiAoIUlTX1RJR0VSTEFLRShkZXZfcHJpdikpCj4gPiA+ ID4gKwkJcmV0dXJuOwo+ID4gPiA+ICsKPiA+ID4gPiArCWlmIChvcmlnaW4gIT0gT1JJR0lOX0ZM SVApCj4gPiA+ID4gKwkJcmV0dXJuOwo+ID4gPiA+ICsKPiA+ID4gPiArCWlmICghZGV2X3ByaXYt PmNzci5kYzNjb19jcnRjKQo+ID4gPiA+ICsJCXJldHVybjsKPiA+ID4gPiArCj4gPiA+ID4gKwlj c3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGRldl9wcml2LT5jc3IuZGMzY29fY3J0Yy0+YmFz ZS5zdGF0ZSk7Cj4gPiA+ID4gKwlmcm9udGJ1ZmZlcl9iaXRzICY9Cj4gPiA+ID4gKwkJSU5URUxf RlJPTlRCVUZGRVJfQUxMX01BU0soZGV2X3ByaXYtPmNzci5kYzNjb19jcnRjLT5waXBlKTsKPiA+ ID4gPiArCWJ1c3lfZnJvbnRidWZmZXJfYml0cyAmPSB+ZnJvbnRidWZmZXJfYml0czsKPiA+ID4g Cj4gPiA+IEhybSwgdGhpcyBsb29rcyB3cm9uZy4gQWxzbyBpdCBkZXBlbmRzIG9uIHRoZSBQU1Ig bWVjaGFuaXNtLCBzbyB0aGlzCj4gPiA+IHdob2xlIERDM2NvIGZsdXNoIGxvZ2ljIHNob3VsZCBy YXRoZXIgYmUgZG9uZSBmcm9tIHRoZSBQU1IgZmx1c2ggZnVuYywKPiA+ID4gdXNpbmcgcHNyLnBp cGUuCj4gPiA+IAo+ID4gSG1tIGluaXRpYWxseSBpIGhhdmUgcGxhbm5lZCB0byBoYXZlIGVudGly ZSBsb2dpYyB1bmRlciBwc3IgZmx1c2ggZnVuYwo+ID4gYnV0IFBTUiBpbnZhbGlkYXRlL2ZsdXNo IGxvZ2ljIGZvciBPUklHSU5fRkxJUCByZWxpZXMgb24gSC9XIHRyYWNraW5nLCAKPiA+IFBTUiBp bnZhbGlkYXRlIGFuZCBmbHVzaCBjYWxsIGhhcyBlYXJseSByZXR1cm4gZm9yIE9SSUdJTl9GTElQ IAo+ID4gdW5saWtlIERDM0NPIGNhc2Ugd2hlcmUgd2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBP UklHSU5fRkxJUCByZXF1ZXN0cy4KPiAKPiBpbnRlbF9wc3JfZmx1c2goKSB3b3VsZCBiZSB2ZXJ5 IHNpbWlsYXIgdG8gd2hhdCB3ZSBuZWVkIHRvIGRvIGZvcgo+IERDM2NvL09SSUdJTl9GTElQLCBl eGNlcHQgYWRqdXN0aW5nIHBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMuIEkgdGhpbmsKPiBldmVu dHVhbGx5IHdlIGNvdWxkIHN3aXRjaCB0byBmdWxsIG1hbnVhbCB0cmFja2luZyBhcyBtZW50aW9u ZWQgZWFybGllciwKPiBzbyB3ZSdkIGFsc28gZW5hYmxlL2Rpc2FibGUgUFNSIG1hbnVhbGx5IGlu IGNhc2Ugb2YgT1JJR0lOX0ZMSVAuCiAgU28gaSB3aWxsIHVzZSB0aGUgZGlmZmVyZW50IGZ1bmN0 aW9uIHRnbF9kYzNjb19mbHVzaCgpIHdpdGggYSBjb21tZW50ICJpbgogIGZ1dHVyZSB3ZSB3aWxs IHVzZSBpbnRlbF9wc3JfZmx1c2ggd2hlbiB3ZSB3aWxsIHN3aXRjaCB0byBmdWxsIG1hbnVhbCB0 cmFja2luZwogIGZvciBQU1IiIGFuZCB3aWxsIHVzZSB0aGUgcHNyLnBpcGUuCj4gCj4gPiA+ID4g Kwo+ID4gPiA+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKPiA+ID4gPiArCj4g PiA+ID4gKwlpZiAoIWRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkIHx8ICFkZXZfcHJpdi0+cHNy LmFjdGl2ZSkKPiA+ID4gPiArCQlnb3RvIHVubG9jazsKPiA+ID4gPiArCj4gPiA+ID4gKwkvKgo+ ID4gPiA+ICsJICogQXQgZXZlcnkgZmxpcCBmcm9udGJ1ZmZlciBmbHVzaCBmaXJzdCBjYW5jZWwg dGhlIGRlbGF5ZWQgd29yaywKPiA+ID4gPiArCSAqIHdoZW4gZGVsYXllZCBzY2hlZHVsZXMgdGhh dCBtZWFucyBkaXNwbGF5IGhhcyBiZWVuIGlkbGUKPiA+ID4gPiArCSAqIGZvciB0aGUgNiBpZGxl IGZyYW1lLgo+ID4gPiA+ICsJICovCj4gPiA+ID4gKwlpZiAoIWJ1c3lfZnJvbnRidWZmZXJfYml0 cykgewo+ID4gPiA+ICsJCWNhbmNlbF9kZWxheWVkX3dvcmsoJmRldl9wcml2LT5jc3IuaWRsZV93 b3JrKTsKPiA+ID4gCj4gPiA+IFRoZSBhYm92ZSBpcyByYWN5Lgo+ID4gWWVzIHRnbF9kYzVfaWRs ZV90aHJlYWQoKSBjYW4gZXZlbiBydW4gYWZ0ZXIgdGhpcyBidXQgaW4gdGhhdCBjYXNlIGFsc28K PiA+IHRnbF9zZXRfdGFyZ2V0X3N0YXRlKCkgaXMgcHJvdGVjdGVkIGJ5IHRoZSBwb3dlciBkb21h aW4gbG9ja3MuCj4gPiBEbyB1IHNlZSBhbnkgb3RoZXIgaGFybSBvZiBpdCBhcGFydCBmcm9tIHNl dHRpbmcgdGFyZ2V0X2RjX3N0YXRlIAo+ID4gaW1tZWRpYXRlbHkgdG8gREM1L0RDNiBhZnRlciBp dCBzZXRzIHRvIERDM0NPIChJTU8gdGhpcyB3b3VsZCBiZSBhIGxpdHRsZSAKPiA+IHBlbmFsdHkg Zm9yIGEgVkJMQU5LIGluIG5leHQgcGFnZSBmbGlwIGl0IHdpbGwgYWdhaW4gc2V0IHRhcmdldF9k Y19zdGF0ZSB0byBEQzNDTykuCj4gPiAgCj4gPiBJIGNhbiB0aGluayBvZiB0d28gcG9zc2libGUg c29sdXRpb25zIHRvIGF2b2lkIHRoaXMgcmFjZS4KPiA+IDEuIGNhbmNlbF9kZWxheWVkX3dvcmtf c3luYygpLgo+ID4gMi4gSGF2aW5nIGEgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IGRlbGF5ZWQgd29y ayBoYXMgYmVlbiBjYW5jZWxlZAo+ID4gICAgYW5kIHNhbWUgY2FuIGJlIHVzZWQgYnkgdGdsX2Rj NV9pZGxlX3RocmVhZCgpIHRvIGhhdmUgYW4gZWFybHkgcmV0dXJuLgo+ID4gUGxlYXNlIHN1Z2dl c3QgeW91ciBvcGluaW9uIG9uIGl0LiAKPiAKPiBPbmUgd2F5IHdvdWxkIGJlLCBpbnN0ZWFkIG9m IGNhbmNlbGluZyB0aGUgd29yayBhbmQgc2NoZWR1bGluZyBhIG5ldyBvbmUsCj4gZXh0ZW5kIHRo ZSB0aW1lciBvZiBpdCBhbmQgZG8gYW4gZWFybHkgcmV0dXJuIGluIHRoZSB3b3JrIGlmIGFub3Ro ZXIgb25lCj4gaXMgYWxyZWFkeSBwZW5kaW5nIChkdWUgdG8gdGhlIGV4dGVuc2lvbikuCj4gCj4g RHVyaW5nIFBTUiBkaXNhYmxpbmcgKGFzIHBhcnQgb2YgZW5jb2RlciBkaXNhYmxpbmcpCj4gY2Fu Y2VsX2RlbGF5ZWRfd29ya19zeW5jKCkgY291bGQgYmUgdXNlZCB0aGVuLgogIEkgYW0gdXNpbmcg Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCkgZm9yIG5leHQgdmVyc2lvbgogIGluIHRnbF9kaXNh YmxlX3BzcjJfdHJhbnNjb2Rlcl9leGl0bGluZSgpIGZ1bmMgd2hpY2ggY2FsbHMgZnJvbSAKICBp bnRlbF9wc3JfZGlzYWJsZSgpIGFzIHBhcnQgb2YgZW5jb2RlciBkaXNhYmxlLgoKVGhhbmtzLApB bnNodW1hbiBHdXB0YS4KPiAKPiA+ID4gCj4gPiA+ID4gKwkJdGdsX3NldF90YXJnZXRfZGNfc3Rh dGUoZGV2X3ByaXYsIERDX1NUQVRFX0VOX0RDM0NPLCBmYWxzZSk7Cj4gPiA+ID4gKwkJZGVsYXkg PSBEQzVfUkVRX0lETEVfRlJBTUVTICogaW50ZWxfZ2V0X2ZyYW1lX3RpbWVfdXMoY3N0YXRlKTsK PiA+ID4gPiArCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmRldl9wcml2LT5jc3IuaWRsZV93b3Jr LAo+ID4gPiA+ICsJCQkJICAgICAgdXNlY3NfdG9famlmZmllcyhkZWxheSkpOwo+ID4gPiA+ICsJ fQo+ID4gPiA+ICsKPiA+ID4gPiArdW5sb2NrOgo+ID4gPiA+ICsJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+cHNyLmxvY2spOwo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ICBzdGF0aWMgYm9v bCB0Z2xfZGMzY29faXNfZWRwX2Nvbm5lY3RlZChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAgKmNy dGNfc3RhdGUpCj4gPiA+ID4gIHsKPiA+ID4gPiAgCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7Cj4gPiA+ID4gQEAgLTg4MCw2ICs5NDUsMTQg QEAgdm9pZCB0Z2xfZGMzY29fY3J0Y19nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQo+ID4gPiA+ICAJfQo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+ICt2 b2lkIHRnbF9kYzVfaWRsZV90aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ID4gPiA+ ICt7Cj4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+ID4gPiA+ ICsJCWNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKmRldl9wcml2KSwgY3NyLmlkbGVfd29yay53 b3JrKTsKPiA+ID4gPiArCj4gPiA+ID4gKwl0Z2xfc2V0X3RhcmdldF9kY19zdGF0ZShkZXZfcHJp diwgRENfU1RBVEVfRU5fVVBUT19EQzYsIHRydWUpOwo+ID4gPiAKPiA+ID4gU28gaXQgd291bGQg cmVzdWx0IGluIGVuYWJsaW5nIGRlZXAgc2xlZXAsIGJ1dCB3aXRob3V0IHRoZSBQU1IgbG9jay4K PiA+ID4gVGhhdCdzIG9uZSByZWFzb24gd2Ugc2hvdWxkIHJlYWxseSBrZWVwIHRoZSBQU1Igc3Bl Y2lmaWMgcGFydHMgaGVyZS4KPiA+ID4gCj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gIHN0 YXRpYyB2b2lkIHRnbF9hbGxvd19kYzNjbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gPiA+ID4gIHsKPiA+ID4gPiAgCWlmICghZGV2X3ByaXYtPnBzci5zaW5rX3BzcjJfc3Vw cG9ydCkKPiA+ID4gPiBAQCAtMTE1NSw2ICsxMjI4LDkgQEAgdm9pZCB0Z2xfc2V0X3RhcmdldF9k Y19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBzdGF0ZSwKPiA+ ID4gPiAgCWlmIChzdGF0ZSA9PSBkZXZfcHJpdi0+Y3NyLm1heF9kY19zdGF0ZSkKPiA+ID4gPiAg CQlnb3RvIHVubG9jazsKPiA+ID4gPiAgCj4gPiA+ID4gKwlpZiAoIXBzcjJfZGVlcF9zbGVlcCkK PiA+ID4gPiArCQl0Z2xfcHNyMl9kZWVwX3NsZWVwX2Rpc2FibGUoZGV2X3ByaXYpOwo+ID4gPiA+ ICsKPiA+ID4gPiAgCWlmICghZGNfb2ZmX2VuYWJsZWQpIHsKPiA+ID4gPiAgCQkvKgo+ID4gPiA+ ICAJCSAqIE5lZWQgdG8gZGlzYWJsZSB0aGUgREMgb2ZmIHBvd2VyIHdlbGwgdG8KPiA+ID4gPiBA QCAtMTE2Nyw2ICsxMjQzLDkgQEAgdm9pZCB0Z2xfc2V0X3RhcmdldF9kY19zdGF0ZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBzdGF0ZSwKPiA+ID4gPiAgCX0KPiA+ID4g PiAgCQlkZXZfcHJpdi0+Y3NyLm1heF9kY19zdGF0ZSA9IHN0YXRlOwo+ID4gPiA+ICAKPiA+ID4g PiArCWlmIChwc3IyX2RlZXBfc2xlZXApCj4gPiA+ID4gKwkJdGdsX3BzcjJfZGVlcF9zbGVlcF9l bmFibGUoZGV2X3ByaXYpOwo+ID4gPiA+ICsKPiA+ID4gPiAgdW5sb2NrOgo+ID4gPiA+ICAJbXV0 ZXhfdW5sb2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKPiA+ID4gPiAgfQo+ID4gPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5oCj4g PiA+ID4gaW5kZXggZDc3YTVhNTNmNTQzLi5kZjA5NmQ2NGM3NDQgMTAwNjQ0Cj4gPiA+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmgKPiA+ ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93 ZXIuaAo+ID4gPiA+IEBAIC05LDYgKzksOSBAQAo+ID4gPiA+ICAjaW5jbHVkZSAiaW50ZWxfZGlz cGxheS5oIgo+ID4gPiA+ICAjaW5jbHVkZSAiaW50ZWxfcnVudGltZV9wbS5oIgo+ID4gPiA+ICAj aW5jbHVkZSAiaTkxNV9yZWcuaCIKPiA+ID4gPiArI2luY2x1ZGUgImludGVsX2Zyb250YnVmZmVy LmgiCj4gPiA+ID4gKwo+ID4gPiA+ICsjZGVmaW5lIERDNV9SRVFfSURMRV9GUkFNRVMJNgo+ID4g PiAKPiA+ID4gTm8gbmVlZCBmb3IgYSBkZWZpbmUgZm9yIHRoaXMuCj4gPiA+IAo+ID4gPiA+ICAK PiA+ID4gPiAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7Cj4gPiA+ID4gIHN0cnVjdCBpbnRlbF9l bmNvZGVyOwo+ID4gPiA+IEBAIC0yNjYsNiArMjY5LDkgQEAgdm9pZCB0Z2xfZGMzY29fY3J0Y19j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4g IHZvaWQgdGdsX2RjM2NvX2NydGNfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSk7Cj4gPiA+ID4gIHZvaWQgdGdsX2Rpc2FibGVfcHNyMl90cmFuc2NvZGVyX2V4 aXRsaW5lKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0ZSk7Cj4gPiA+ID4gIHZv aWQgdGdsX2VuYWJsZV9wc3IyX3RyYW5zY29kZXJfZXhpdGxpbmUoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnN0YXRlKTsKPiA+ID4gPiArdm9pZCB0Z2xfZGMzY29fZmx1c2goc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ICsJCSAgICAgdW5zaWduZWQgaW50 IGZyb250YnVmZmVyX2JpdHMsIGVudW0gZmJfb3Bfb3JpZ2luIG9yaWdpbik7Cj4gPiA+ID4gK3Zv aWQgdGdsX2RjNV9pZGxlX3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwo+ID4gPiA+ ICAKPiA+ID4gPiAgY29uc3QgY2hhciAqCj4gPiA+ID4gIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9t YWluX3N0cihlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbik7Cj4gPiA+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZnJvbnRidWZm ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZnJvbnRidWZmZXIuYwo+ ID4gPiA+IGluZGV4IGZjNDBkYzFmZGJjYy4uYzNiMTBmNmU0MzgyIDEwMDY0NAo+ID4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZnJvbnRidWZmZXIuYwo+ID4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZnJvbnRidWZmZXIu Ywo+ID4gPiA+IEBAIC05MCw2ICs5MCw3IEBAIHN0YXRpYyB2b2lkIGZyb250YnVmZmVyX2ZsdXNo KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ID4gPiA+ICAJbWlnaHRfc2xlZXAoKTsK PiA+ID4gPiAgCWludGVsX2VkcF9kcnJzX2ZsdXNoKGk5MTUsIGZyb250YnVmZmVyX2JpdHMpOwo+ ID4gPiA+ICAJaW50ZWxfcHNyX2ZsdXNoKGk5MTUsIGZyb250YnVmZmVyX2JpdHMsIG9yaWdpbik7 Cj4gPiA+ID4gKwl0Z2xfZGMzY29fZmx1c2goaTkxNSwgZnJvbnRidWZmZXJfYml0cywgb3JpZ2lu KTsKPiA+ID4gPiAgCWludGVsX2ZiY19mbHVzaChpOTE1LCBmcm9udGJ1ZmZlcl9iaXRzLCBvcmln aW4pOwo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ ID4gPiA+IGluZGV4IDMyMThiMDMxOTg1Mi4uZmU3MTExOWE0NThlIDEwMDY0NAo+ID4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+ID4gQEAgLTMzOCw2ICszMzgsNyBAQCBzdHJ1 Y3QgaW50ZWxfY3NyIHsKPiA+ID4gPiAgCXUzMiBkY19zdGF0ZTsKPiA+ID4gPiAgCXUzMiBtYXhf ZGNfc3RhdGU7Cj4gPiA+ID4gIAl1MzIgYWxsb3dlZF9kY19tYXNrOwo+ID4gPiA+ICsJc3RydWN0 IGRlbGF5ZWRfd29yayBpZGxlX3dvcms7Cj4gPiA+ID4gIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJl ZjsKPiA+ID4gPiAgCS8qIGNhY2hlIHRoZSBjcnRjIG9uIHdoaWNoIERDM0NPIHdpbGwgYmUgYWxs b3dlZCAqLwo+ID4gPiA+ICAJc3RydWN0IGludGVsX2NydGMgKmRjM2NvX2NydGM7Cj4gPiA+ID4g LS0gCj4gPiA+ID4gMi4yMS4wCj4gPiA+ID4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeA==