From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH] drm/i915: Improve PSR activation timing Date: Thu, 8 Feb 2018 14:48:22 -0800 Message-ID: <20180208224822.evqmbd3rsxdok432@intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Andy Lutomirski Cc: intel-gfx@lists.freedesktop.org, Dhinakaran Pandiyan , DRI List-Id: dri-devel@lists.freedesktop.org CkhpIEFuZHksCgp0aGFua3MgZm9yIGdldHRpbmcgaW52b2x2ZWQgd2l0aCBQU1IgYW5kIHNvcnJ5 IGZvciBub3QgcmVwbHlpbmcgc29vbmVyLgoKSSBmaXJzdCBzYXcgdGhpcyBwYXRjaCBvbiB0aGF0 IGJ1Z3ppbGxhIGVudHJ5IGJ1dCBvbmx5IG5vdyBJIHN0b3AgdG8KcmVhbGx5IHRoaW5rIHdoeSBJ IGhhdmUgd3JpdHRlbiB0aGUgY29kZSB0aGF0IHdheS4KClNvIHNvbWUgY2xhcml0eSBiZWxvdy4K Ck9uIE1vbiwgRmViIDA1LCAyMDE4IGF0IDEwOjA3OjA5UE0gKzAwMDAsIEFuZHkgTHV0b21pcnNr aSB3cm90ZToKPiBUaGUgY3VycmVudCBQU1IgY29kZSBoYXMgYSB0d28gY2FsbCBzaXRlcyB0aGF0 IGVhY2ggc2NoZWR1bGUgZGVsYXllZAo+IHdvcmsgdG8gYWN0aXZhdGUgUFNSLiAgQXMgZmFyIGFz IEkgY2FuIHRlbGwsIGVhY2ggY2FsbCBzaXRlIGludGVuZHMKPiB0byBrZWVwIFBTUiBpbmFjdGl2 ZSBmb3IgdGhlIGdpdmVuIGFtb3VudCBvZiB0aW1lIGFuZCB0aGVuIGFsbG93IGl0Cj4gdG8gYmUg YWN0aXZhdGVkLgo+Cj4gVGhlIGNhbGwgc2l0ZXMgYXJlOgo+Cj4gIC0gaW50ZWxfcHNyX2VuYWJs ZSgpLCB3aGljaCBleHBsaWNpdGx5IHN0YXRlcyBpbiBhIGNvbW1lbnQgdGhhdAo+ICAgIGl0J3Mg dHJ5aW5nIHRvIGtlZXAgUFNSIG9mZiBhIHNob3J0IHRpbWUgYWZ0ZXIgdGhlIGRpc3BheSBpcwo+ ICAgIGluaXRpYWxpemVkIGFzIGEgd29ya2Fyb3VuZC4KCkZpcnN0IG9mIGFsbCBJIHJlYWxseSB3 YW50IHRvIGtpbGwgdGhpcyBjYWxsIGhlcmUgYW5kIHJlbW92ZSB0aGUKRklYTUUuIEl0IHdhcyBh biB1Z2x5IGhhY2sgdGhhdCBJIGFkZGVkIHRvIHNvbHZlIGEgY29ybmVyIGNhc2UKdGhhdCB3YXMg bGVhdmluZyBtZSB3aXRoIGJsYW5rIHNjcmVlbnMgd2hlbiBhY3RpdmF0aW5nIHNvIHNvb25lci4K Cj4KPiAgLSBpbnRlbF9wc3JfZmx1c2goKS4gIFRoZXJlIGlzbid0IGFuIGV4cGxjaXQgZXhwbGFu YXRpb24sIGJ1dCB0aGUKPiAgICBpbnRlbnQgaXMgcHJlc3VtYWJseSB0byBrZWVwIFBTUiBvZmYg dW50aWwgdGhlIGRpc3BsYXkgaGFzIGJlZW4KPiAgICBpZGxlIGZvciAxMDBtcy4KClRoZSByZWFz b24gZm9yIDEwMCBpcyBraW5kIG9mIHVnbHktbm9uc2Vuc2UtZW1waXJpY2FsIHZhbHVlCkkgY29u Y2x1ZGVkIGZyb20gVkxWL0NIViBleHBlcmllbmNlLgpPbiBwbGF0Zm9ybXMgd2l0aCBIVyB0cmFj a2luZyBIVyB3YWl0cyBmZXcgaWRlbnRpY2FsIGZyYW1lcwp1bnRpbCByZWFsbHkgYWN0aXZhdGlu ZyBQU1IuIFZMVi9DSFYgYWN0aXZhdGlvbiBpcyBpbW1lZGlhdGUuCkJ1dCBIVyBpcyBhbHNvIGRp ZmZlcmVudCBhbmQgdGhlcmUgaXQgc2VlbWVkIHRoYXQgaHcgbmVlZGVkIGEKZmV3IG1vcmUgdGlt ZSBiZWZvcmUgc3RhcnRpbmcgdGhlIHRyYW5zaXRpb25zLgpGdXJ0aGVybW9yZSBJIGRpZG4ndCB3 YW50IHRvIGFkZCB0aGF0IHNvIHF1aWNrbHkgYmVjYXVzZSBJIGRpZG4ndAp3YW50IHRvIHRha2Ug dGhlIHJpc2sgb2Yga2lsbGluZyBiYXR0ZXJ5IHdpdGggc29mdHdhcmUgdHJhY2tpbmcKd2hlbiBk b2luZyB0cmFuc2l0aW9ucyBzbyBxdWlja2x5IHVzaW5nIHNvZnR3YXJlIHRyYWNraW5nLgoKPgo+ IFRoZSBjdXJyZW50IGNvZGUgZG9lc24ndCBhY3R1YWxseSBhY2NvbXBsaXNoIGVpdGhlciBvZiB0 aGVzZSBnb2Fscy4KPiBSYXRoZXIgdGhhbiBrZWVwaW5nIFBTUiBpbmFjdGl2ZSBmb3IgdGhlIGdp dmVuIGFtb3VudCBvZiB0aW1lLCBpdAo+IHdpbGwgc2NoZWR1bGUgUFNSIGZvciBhY3RpdmF0aW9u IGFmdGVyIHRoZSBnaXZlbiB0aW1lLCB3aXRoIHRoZQo+IGVhcmxpZXN0IHRhcmdldCB0aW1lIGlu IHN1Y2ggYSByZXF1ZXN0IHdpbm5pbmcuCgpQdXR0aW5nIHRoYXQgd2F5IEkgd2FzIGFza2luZyBt eXNlbGYgaG93IHRoYXQgaGFjayBoYWQgZXZlciBmaXhlZApteSBpc3N1ZS4gQmVjYXVzZSB0aGUg d2F5IHlvdSBleHBsYWluZWQgaGVyZSBzZWVtcyBvYnZpb3VzIHRoYXQgaXQKd291bGRuJ3QgZXZl ciBmaXggbXkgYnVnIG9yIGFueSBvdGhlci4KClNvIEkgYXBwbGllZCB5b3VyIHBhdGNoIGFuZCBp dCBtYWRlIGV2ZW4gbW9yZSBzZW5zZSAod2l0aG91dCBjb25zaWRlcmluZwp0aGUgZmFjdCBJIHdh bnQgdG8ga2lsbCB0aGUgZmlyc3QgY2FsbCBhbnl3YXlzKS4KClNvIEkgY2FtZSBiYWNrLCByZW1v dmVkIHlvdXIgcGF0Y2ggYW5kIHRyaWVkIHRvIHVuZGVyc3RhbmQgaG93IGRpZAppdCBldmVyIHdv cmtlZC4KClNvLCB0aGUgdGhpbmcgaXMgdGhhdCBpbnRlbF9wc3JfZmx1c2ggd2lsbCBuZXZlciBi ZSByZWFsbHkgZXhlY3V0ZWQKaWYgaW50ZWxfcHNyX2VuYWJsZSB3YXNuJ3QgZXhlY3V0ZWQuIFRo YXQgaXMgZ3VhcmFudGVlZCBieToKCm11dGV4X2xvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cglp ZiAoIWRldl9wcml2LT5wc3IuZW5hYmxlZCkgewoKU28sIGludGVsX3Bzcl9lbmFibGUgd2lsbCBi ZSBmb3Igc3VyZSB0aGUgZmlyc3Qgb25lIHRvIHNjaGVkdWxlIHRoZQp3b3JrIGRlbGF5ZWQgdG8g dGhlIHVnbHkgaGlnaGVyIGRlbGF5LgoKPgo+IEluIG90aGVyIHdvcmRzLCBpZiBpbnRlbF9wc3Jf ZW5hYmxlKCkgaXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkKPiBpbnRlbF9wc3JfZmx1c2goKSwg dGhlbiBQU1Igd2lsbCBiZSBhY3RpdmF0ZWQgYWZ0ZXIgMTAwbXMgZXZlbiBpZgo+IGludGVsX3Bz cl9lbmFibGUoKSB3YW50ZWQgYSBsb25nZXIgZGVsYXkuICBBbmQsIGlmIHRoZSBzY3JlZW4gaXMK PiBiZWluZyBjb25zdGFudGx5IHVwZGF0ZWQgc28gdGhhdCBpbnRlbF9wc3JfZmx1c2goKSBpcyBj YWxsZWQgb25jZQo+IHBlciBmcmFtZSBhdCA2MEh6LCBQU1Igd2lsbCBzdGlsbCBiZSBhY3RpdmF0 ZWQgb25jZSBldmVyeSAxMDBtcy4KCkR1cmluZyB0aGlzIHRpbWUgeW91IGFyZSByaWdodCwgbWFu eSBjYWxscyBvZiBpbnRlbF9wc3JfZXhpdApjb21pbmcgZnJvbSBmbHVzaCBmdW5jdGlvbnMgY2Fu IGJlIGNhbGxlZC4uLiBCdXQgbm9uZSBvZgp0aGVtIHdpbGwgc2NoZWR1bGUgdGhlIHdvcmsgd2l0 aCAxMDAgZGVsYXkuCgp0aGV5IHdpbGwgc2tpcCBvbgppZiAoIXdvcmtfYnVzeSgmZGV2X3ByaXYt PnBzci53b3JrLndvcmspKQoKU28sIHRoZSBoaWdoZXIgZGVsYXllZCAqaGFjayogd2lsbCBiZSBy ZXNwZWN0ZWQgYW5kIFBTUiB3b24ndCBnZXQKYWN0aXZhdGVkIGJlZm9yZSB0aGF0LgoKT24gdGhl IG90aGVyIGhhbmQgeW91IG1pZ2h0IGFzayB3aGF0IGlmLApmb3Igc29tZSBzdHJhbmdlIHJlYXNv biwKKGludGVsX2RwLT5wYW5lbF9wb3dlcl9jeWNsZV9kZWxheSAqIDUpIGlzIGxlc3NlciB0aGFu IDEwMC4KV2VsbCwgb24gdGhpcyBjYXNlIHRoaXMgd291bGQgYmUgb2ssIGJlY2F1c2UgaXQgaGFw cGVucyBvbmx5Cm9uY2UgYW5kIG9ubHkgb24gZ2VuID4gOSB3aGVyZSBodyB0cmFja2luZyB3aWxs IHdhaXQgdGhlIG1pbmltYWwKbnVtYmVyIG9mIGZyYW1lcyBiZWZvcmUgdGhlIGFjdHVhbCB0cmFu c2l0aW9uIHRvIFBTUi4KCkluIGVpdGhlciBjYXNlcyBJIGJlbGlldmUgd2UgYXJlIHNhZmUuCgpU aGFua3MsClJvZHJpZ28uCgo+Cj4gUmV3cml0ZSB0aGUgY29kZSBzbyB0aGF0IGl0IGRvZXMgd2hh dCB3YXMgaW50ZW5kZWQuICBUaGlzIGFkZHMKPiBhIG5ldyBmdW5jdGlvbiBpbnRlbF9wc3Jfc2No ZWR1bGUoKSwgd2hpY2ggd2lsbCBlbmFibGUgUFNSIGFmdGVyCj4gdGhlIHJlcXVlc3RlZCB0aW1l IGJ1dCBubyBzb29uZXIuCj4KPiBTaWduZWQtb2ZmLWJ5OiBBbmR5IEx1dG9taXJza2kgPGx1dG9A a2VybmVsLm9yZz4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMg fCAgOSArKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8ICA0ICsr LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyAgICB8IDY5ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA3MSBpbnNlcnRp b25zKCspLCAxMSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j Cj4gaW5kZXggYzY1ZTM4MWI4NWYzLi5iNjdkYjkzZjkwNWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYwo+IEBAIC0yNjYzLDggKzI2NjMsMTMgQEAgc3RhdGljIGludCBpOTE1 X2VkcF9wc3Jfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAgCXNlcV9w cmludGYobSwgIkFjdGl2ZTogJXNcbiIsIHllc25vKGRldl9wcml2LT5wc3IuYWN0aXZlKSk7Cj4g IAlzZXFfcHJpbnRmKG0sICJCdXN5IGZyb250YnVmZmVyIGJpdHM6IDB4JTAzeFxuIiwKPiAgCQkg ICBkZXZfcHJpdi0+cHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0cyk7Cj4gLQlzZXFfcHJpbnRmKG0s ICJSZS1lbmFibGUgd29yayBzY2hlZHVsZWQ6ICVzXG4iLAo+IC0JCSAgIHllc25vKHdvcmtfYnVz eSgmZGV2X3ByaXYtPnBzci53b3JrLndvcmspKSk7Cj4gKwo+ICsJaWYgKHRpbWVyX3BlbmRpbmco JmRldl9wcml2LT5wc3IuYWN0aXZhdGVfdGltZXIpKQo+ICsJCXNlcV9wcmludGYobSwgIkFjdGl2 YXRlIHNjaGVkdWxlZDogeWVzLCBpbiAlbGRtc1xuIiwKPiArCQkJICAgKGxvbmcpKGRldl9wcml2 LT5wc3IuZWFybGllc3RfYWN0aXZhdGUgLSBqaWZmaWVzKSAqCj4gKwkJCSAgIDEwMDAgLyBIWik7 Cj4gKwllbHNlCj4gKwkJc2VxX3ByaW50ZihtLCAiUmUtZW5hYmxlIHNjaGVkdWxlZDogbm9cbiIp Owo+Cj4gIAlpZiAoSEFTX0RESShkZXZfcHJpdikpIHsKPiAgCQlpZiAoZGV2X3ByaXYtPnBzci5w c3IyX3N1cHBvcnQpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggNDZlYjcyOWIzNjdk Li5jMGZiN2Q2NWNkYTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMTE5Miw3 ICsxMTkyLDkgQEAgc3RydWN0IGk5MTVfcHNyIHsKPiAgCWJvb2wgc291cmNlX29rOwo+ICAJc3Ry dWN0IGludGVsX2RwICplbmFibGVkOwo+ICAJYm9vbCBhY3RpdmU7Cj4gLQlzdHJ1Y3QgZGVsYXll ZF93b3JrIHdvcms7Cj4gKwlzdHJ1Y3QgdGltZXJfbGlzdCBhY3RpdmF0ZV90aW1lcjsKPiArCXN0 cnVjdCB3b3JrX3N0cnVjdCBhY3RpdmF0ZV93b3JrOwo+ICsJdW5zaWduZWQgbG9uZyBlYXJsaWVz dF9hY3RpdmF0ZTsKPiAgCXVuc2lnbmVkIGJ1c3lfZnJvbnRidWZmZXJfYml0czsKPiAgCWJvb2wg cHNyMl9zdXBwb3J0Owo+ICAJYm9vbCBhdXhfZnJhbWVfc3luYzsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wc3IuYwo+IGluZGV4IDU1ZWE1ZWIzYjdkZi4uMzMzZDkwZDRlNWFmIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcHNyLmMKPiBAQCAtNDYxLDYgKzQ2MSwzMCBAQCBzdGF0aWMgdm9pZCBpbnRl bF9wc3JfYWN0aXZhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCWRldl9wcml2LT5w c3IuYWN0aXZlID0gdHJ1ZTsKPiAgfQo+Cj4gK3N0YXRpYyB2b2lkIGludGVsX3Bzcl9zY2hlZHVs ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgICAgICB1bnNpZ25l ZCBsb25nIG1pbl93YWl0X21zKQo+ICt7Cj4gKwl1bnNpZ25lZCBsb25nIG5leHQ7Cj4gKwo+ICsJ bG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBzci5sb2NrKTsKPiArCj4gKwkvKgo+ICsJ ICogV2UgdXBkYXRlIG5leHRfZW5hYmxlICphbmQqIGNhbGwgbW9kX3RpbWVyKCkgYmVjYXVzZSBp dCdzCj4gKwkgKiBwb3NzaWJsZSB0aGF0IGludGVsX3Bzcl93b3JrKCkgaGFzIGFscmVhZHkgYmVl biBjYWxsZWQgYW5kIGlzCj4gKwkgKiB3YWl0aW5nIGZvciBwc3IubG9jay4gIElmIHRoYXQncyB0 aGUgY2FzZSwgd2UgZG9uJ3Qgd2FudCBpdAo+ICsJICogdG8gaW1tZWRpYXRlbHkgZW5hYmxlIFBT Ui4KPiArCSAqCj4gKwkgKiBXZSBhbHNvIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgUFNSIGlzIG5l dmVyIGFjdGl2YXRlZCBlYXJsaWVyCj4gKwkgKiB0aGFuIHJlcXVlc3RlZCB0byBhdm9pZCBicmVh a2luZyBpbnRlbF9wc3JfZW5hYmxlKCkncyB3b3JrYXJvdW5kCj4gKwkgKiBmb3IgcHJlLWdlbjkg aGFyZHdhcmUuCj4gKwkgKi8KPiArCW5leHQgPSBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcyht aW5fd2FpdF9tcyk7Cj4gKwlpZiAodGltZV9hZnRlcihuZXh0LCBkZXZfcHJpdi0+cHNyLmVhcmxp ZXN0X2FjdGl2YXRlKSkgewo+ICsJCWRldl9wcml2LT5wc3IuZWFybGllc3RfYWN0aXZhdGUgPSBu ZXh0Owo+ICsJCW1vZF90aW1lcigmZGV2X3ByaXYtPnBzci5hY3RpdmF0ZV90aW1lciwgbmV4dCk7 Cj4gKwl9Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGhzd19wc3JfZW5hYmxlX3NvdXJjZShzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IEBAIC01NDQsOCArNTY4LDcgQEAgdm9pZCBpbnRlbF9w c3JfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJICogICAgIC0gT24gSFNX L0JEVyB3ZSBnZXQgYSByZWNvdmVyYWJsZSBmcm96ZW4gc2NyZWVuIHVudGlsCj4gIAkJICogICAg ICAgbmV4dCBleGl0LWFjdGl2YXRlIHNlcXVlbmNlLgo+ICAJCSAqLwo+IC0JCXNjaGVkdWxlX2Rl bGF5ZWRfd29yaygmZGV2X3ByaXYtPnBzci53b3JrLAo+IC0JCQkJICAgICAgbXNlY3NfdG9famlm ZmllcyhpbnRlbF9kcC0+cGFuZWxfcG93ZXJfY3ljbGVfZGVsYXkgKiA1KSk7Cj4gKwkJaW50ZWxf cHNyX3NjaGVkdWxlKGRldl9wcml2LCBpbnRlbF9kcC0+cGFuZWxfcG93ZXJfY3ljbGVfZGVsYXkg KiA1KTsKPiAgCX0KPgo+ICB1bmxvY2s6Cj4gQEAgLTY2MCwxMyArNjgzLDE0IEBAIHZvaWQgaW50 ZWxfcHNyX2Rpc2FibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCWRldl9wcml2LT5w c3IuZW5hYmxlZCA9IE5VTEw7Cj4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7 Cj4KPiAtCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmZGV2X3ByaXYtPnBzci53b3JrKTsKPiAr CWNhbmNlbF93b3JrX3N5bmMoJmRldl9wcml2LT5wc3IuYWN0aXZhdGVfd29yayk7Cj4gKwlkZWxf dGltZXJfc3luYygmZGV2X3ByaXYtPnBzci5hY3RpdmF0ZV90aW1lcik7Cj4gIH0KPgo+ICBzdGF0 aWMgdm9pZCBpbnRlbF9wc3Jfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gIHsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gLQkJY29udGFpbmVyX29mKHdv cmssIHR5cGVvZigqZGV2X3ByaXYpLCBwc3Iud29yay53b3JrKTsKPiArCQljb250YWluZXJfb2Yo d29yaywgdHlwZW9mKCpkZXZfcHJpdiksIHBzci5hY3RpdmF0ZV93b3JrKTsKPiAgCXN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAgPSBkZXZfcHJpdi0+cHNyLmVuYWJsZWQ7Cj4gIAlzdHJ1Y3QgZHJt X2NydGMgKmNydGMgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2UuYmFzZS5jcnRjOwo+ ICAJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5waXBlOwo+IEBAIC02NzYs NiArNzAwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0 ICp3b3JrKQo+ICAJICogUFNSIG1pZ2h0IHRha2Ugc29tZSB0aW1lIHRvIGdldCBmdWxseSBkaXNh YmxlZAo+ICAJICogYW5kIGJlIHJlYWR5IGZvciByZS1lbmFibGUuCj4gIAkgKi8KPiArCj4gIAlp ZiAoSEFTX0RESShkZXZfcHJpdikpIHsKPiAgCQlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBv cnQpIHsKPiAgCQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+IEBAIC03 MTIsNiArNzM3LDE4IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bzcl93b3JrKHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykKPiAgCWlmICghaW50ZWxfZHApCj4gIAkJZ290byB1bmxvY2s7Cj4KPiArCj4g KwlpZiAoIXRpbWVfYWZ0ZXJfZXEoamlmZmllcywgZGV2X3ByaXYtPnBzci5lYXJsaWVzdF9hY3Rp dmF0ZSkpIHsKPiArCQkvKgo+ICsJCSAqIFdlIHJhY2VkOiBpbnRlbF9wc3Jfc2NoZWR1bGUoKSB0 cmllZCB0byBkZWxheSB1cywgYnV0Cj4gKwkJICogd2Ugd2VyZSBhbHJlYWR5IGluIGludGVsX3Bz cl90aW1lcl9mbigpIG9yIGFscmVhZHkgaW4KPiArCQkgKiB0aGUgd29ya3F1ZXVlLiAgV2UgY2Fu IHNhZmVseSByZXR1cm4gLS0gdGhlCj4gKwkJICogaW50ZWxfcHNyX3NjaGVkdWxlKCkgY2FsbCB0 aGF0IHB1dCBlYXJsaWVzdF9hY3RpdmVhdGUKPiArCQkgKiBpbiB0aGUgZnV0dXJlIHdpbGwgaGF2 ZSBjYWxsZWQgbW9kX3RpbWVyKCkuCj4gKwkJICovCj4gKwkJZ290byB1bmxvY2s7Cj4gKwl9Cj4g Kwo+ICAJLyoKPiAgCSAqIFRoZSBkZWxheWVkIHdvcmsgY2FuIHJhY2Ugd2l0aCBhbiBpbnZhbGlk YXRlIGhlbmNlIHdlIG5lZWQgdG8KPiAgCSAqIHJlY2hlY2suIFNpbmNlIHBzcl9mbHVzaCBmaXJz dCBjbGVhcnMgdGhpcyBhbmQgdGhlbiByZXNjaGVkdWxlcyB3ZQo+IEBAIC03MjUsNiArNzYyLDIw IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bzcl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK PiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKPiAgfQo+Cj4gK3N0YXRpYyB2 b2lkIGludGVsX3Bzcl90aW1lcl9mbihzdHJ1Y3QgdGltZXJfbGlzdCAqdGltZXIpCj4gK3sKPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gKwkJY29udGFpbmVyX29mKHRp bWVyLCB0eXBlb2YoKmRldl9wcml2KSwgcHNyLmFjdGl2YXRlX3RpbWVyKTsKPiArCj4gKwkvKgo+ ICsJICogV2UgbmVlZCBhIG5vbi1hdG9taWMgY29udGV4dCB0byBhY3RpdmF0ZSBQU1IuICBVc2lu Zwo+ICsJICogZGVsYXllZF93b3JrIHdvdWxkbid0IGJlIGFuIGltcHJvdmVtZW50IC0tIGRlbGF5 ZWRfd29yayBpcwo+ICsJICoganVzdCBhIHRpbWVyIHRoYXQgc2NoZWR1bGVzIHdvcmsgd2hlbiBp dCBmaXJlcywgYnV0IHRoZXJlJ3MKPiArCSAqIG5vIGVxdWl2YWxlbnQgb2YgbW9kX3RpbWVyKCkg Zm9yIGRlbGF5ZWRfd29yay4KPiArCSAqLwo+ICsJc2NoZWR1bGVfd29yaygmZGV2X3ByaXYtPnBz ci5hY3RpdmF0ZV93b3JrKTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2V4aXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwID0gZGV2X3ByaXYtPnBzci5lbmFibGVkOwo+IEBAIC05MDUsOSArOTU2LDgg QEAgdm9pZCBpbnRlbF9wc3JfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJCWludGVsX3Bzcl9leGl0KGRldl9wcml2KTsKPgo+ICAJaWYgKCFkZXZfcHJpdi0+cHNy LmFjdGl2ZSAmJiAhZGV2X3ByaXYtPnBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMpCj4gLQkJaWYg KCF3b3JrX2J1c3koJmRldl9wcml2LT5wc3Iud29yay53b3JrKSkKPiAtCQkJc2NoZWR1bGVfZGVs YXllZF93b3JrKCZkZXZfcHJpdi0+cHNyLndvcmssCj4gLQkJCQkJICAgICAgbXNlY3NfdG9famlm ZmllcygxMDApKTsKPiArCQlpbnRlbF9wc3Jfc2NoZWR1bGUoZGV2X3ByaXYsIDEwMCk7Cj4gKwo+ ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ICB9Cj4KPiBAQCAtOTUxLDcg KzEwMDEsOCBAQCB2b2lkIGludGVsX3Bzcl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAgCQlkZXZfcHJpdi0+cHNyLmxpbmtfc3RhbmRieSA9IGZhbHNlOwo+ICAJfQo+ Cj4gLQlJTklUX0RFTEFZRURfV09SSygmZGV2X3ByaXYtPnBzci53b3JrLCBpbnRlbF9wc3Jfd29y ayk7Cj4gKwl0aW1lcl9zZXR1cCgmZGV2X3ByaXYtPnBzci5hY3RpdmF0ZV90aW1lciwgaW50ZWxf cHNyX3RpbWVyX2ZuLCAwKTsKPiArCUlOSVRfV09SSygmZGV2X3ByaXYtPnBzci5hY3RpdmF0ZV93 b3JrLCBpbnRlbF9wc3Jfd29yayk7Cj4gIAltdXRleF9pbml0KCZkZXZfcHJpdi0+cHNyLmxvY2sp Owo+Cj4gIAlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZf cHJpdikpIHsKPiBAQCAtOTY3LDQgKzEwMTgsNiBAQCB2b2lkIGludGVsX3Bzcl9pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlkZXZfcHJpdi0+cHNyLmFjdGl2YXRl ID0gaHN3X3Bzcl9hY3RpdmF0ZTsKPiAgCQlkZXZfcHJpdi0+cHNyLnNldHVwX3ZzYyA9IGhzd19w c3Jfc2V0dXBfdnNjOwo+ICAJfQo+ICsKPiArCWRldl9wcml2LT5wc3IuZWFybGllc3RfYWN0aXZh dGUgPSBqaWZmaWVzOwo+ICB9Cj4gLS0KPiAyLjE0LjMKPgo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IElu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK