From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/2] drm/i915: Make ips_enabled a property depending on whether IPS is enabled, v3. Date: Thu, 23 Nov 2017 16:36:23 +0200 Message-ID: <20171123143623.GS10981@intel.com> References: <20171122153456.GP10981@intel.com> <20171122183901.47720-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3A2256E7D6 for ; Thu, 23 Nov 2017 14:36:28 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20171122183901.47720-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBOb3YgMjIsIDIwMTcgYXQgMDc6Mzk6MDFQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gaXBzX2VuYWJsZWQgd2FzIHVzZWQgYXMgYSB2YXJpYWJsZSBvZiB3aGV0aGVy IElQUyBjYW4gYmUgZW5hYmxlZCBvciBub3QsCj4gYnV0IHNob3VsZCBiZSB1c2VkIHRvIHRlc3Qg d2hldGhlciBJUFMgaXMgYWN0dWFsbHkgZW5hYmxlZC4KPiAKPiBDaGFuZ2VzIHNpbmNlIHYxOgo+ IC0gQ2FsbCBuZWVkc19tb2Rlc2V0IG9uIG5ldyBjcnRjIHN0YXRlLiAoVmlsbGUpCj4gLSBJUFMg Y2FuIGJlIGVuYWJsZWQgd2l0aCBzcHJpdGUgcGxhbmUgZW5hYmxlZCB0b28uIChWaWxsZSkKPiAt IEZpeCBDRENMSyB2cyBJUFMgd29ya2Fyb3VuZC4gKFZpbGxlKQo+IENoYW5nZXMgc2luY2UgdjI6 Cj4gLSBPbmx5IHJlLWVuYWJsZSBmYXN0c2V0IHdoZW4gaW5oZXJpdGluZyBtb2RlLiAoVmlsbGUp Cj4gLSBQdXQgdGhlIGNvbmRpdGlvbnMgZm9yIGVuYWJsaW5nIGFuZCBkaXNhYmxpbmcgSVBTIGlu IGEgaGVscGVyLgo+IENoYW5nZXMgc2luY2UgdjM6Cj4gLSBLZWVwIHRoZSBtYXhfY2RjbGsgd29y a2Fyb3VuZCB3b3JraW5nLiAoVmlsbGUpCj4gLSBBbHNvIGNoZWNrIGxvZ2ljYWwgY2RjbGsgb3V0 IG9mIHBhcmFub2lhLgo+IC0gUmVtb3ZlIHBsYW5lcyBjaGVjayBmcm9tIElQUyBkaXNhYmxlIGZ1 bmN0aW9uIGZvciBpbml0aWFsIGRpc2FibGUuCj4gLSBSZW1vdmUgYXNzZXJ0X3BsYW5lX2VuYWJs ZWQvZGlzYWJsZWQgY2hlY2tzIGFuZCB1c2UKPiAgIGNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMg Zm9yIGhzd19lbmFibGVfaXBzIG9ubHksIGFsd2F5cyBhbGxvdwo+ICAgY2FsbGluZyBoc3dfZGlz YWJsZV9pcHMgdG8gZGlzYWJsZSBpdCBpbml0aWFsbHkgaW4gaHcuCj4gCj4gU2lnbmVkLW9mZi1i eTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4K PiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYyAgICB8ICAgMiArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgIHwgMTY4ICsrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMg fCAgIDIgLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDEwOSBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlv bnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMKPiBpbmRleCBlODg4NGMyYWRl OTguLjMwYWZmYTc5MDNkNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jZGNsay5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYwo+IEBA IC0xODk2LDcgKzE4OTYsNyBAQCBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX21pbl9jZGNsayhjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgCW1pbl9jZGNsayA9IGlu dGVsX3BpeGVsX3JhdGVfdG9fY2RjbGsoZGV2X3ByaXYsIGNydGNfc3RhdGUtPnBpeGVsX3JhdGUp Owo+ICAKPiAgCS8qIHBpeGVsIHJhdGUgbXVzdG4ndCBleGNlZWQgOTUlIG9mIGNkY2xrIHdpdGgg SVBTIG9uIEJEVyAqLwo+IC0JaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgJiYgY3J0Y19zdGF0 ZS0+aXBzX2VuYWJsZWQpCj4gKwlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSAmJiBoc3dfcGlw ZV9jb25maWdfaXBzX2NhcGFibGUoY3J0Y19zdGF0ZSkpCj4gIAkJbWluX2NkY2xrID0gRElWX1JP VU5EX1VQKG1pbl9jZGNsayAqIDEwMCwgOTUpOwo+ICAKPiAgCS8qIEJTcGVjIHNheXMgIkRvIG5v dCB1c2UgRGlzcGxheVBvcnQgd2l0aCBDRENMSyBsZXNzIHRoYW4gNDMyIE1IeiwKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggNjBkMGEyZDg1MzRjLi45NWRmNWMyMTI4 YjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTQ4OSw3ICs0 ODksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2xpbWl0IGludGVsX2xpbWl0c19ieHQg PSB7Cj4gIH07Cj4gIAo+ICBzdGF0aWMgYm9vbAo+IC1uZWVkc19tb2Rlc2V0KHN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqc3RhdGUpCj4gK25lZWRzX21vZGVzZXQoY29uc3Qgc3RydWN0IGRybV9jcnRj X3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJcmV0dXJuIGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rl c2V0KHN0YXRlKTsKPiAgfQo+IEBAIC00ODMzLDcgKzQ4MzMsNyBAQCB2b2lkIGhzd19lbmFibGVf aXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICAKPiAtCWlmICghY3J0Yy0+Y29uZmln LT5pcHNfZW5hYmxlZCkKPiArCWlmICghY3J0Y19zdGF0ZS0+aXBzX2VuYWJsZWQpCj4gIAkJcmV0 dXJuOwo+ICAKPiAgCS8qCj4gQEAgLTQ4NDEsOCArNDg0MSw3IEBAIHZvaWQgaHN3X2VuYWJsZV9p cHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAkgKiBUaGlz IGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIHBvc3RfcGxhbmVfdXBkYXRlLCB3aGljaCBpcyBydW4g YWZ0ZXIKPiAgCSAqIGEgdmJsYW5rIHdhaXQuCj4gIAkgKi8KPiAtCj4gLQlhc3NlcnRfcGxhbmVf ZW5hYmxlZCh0b19pbnRlbF9wbGFuZShjcnRjLT5iYXNlLnByaW1hcnkpKTsKPiArCVdBUk5fT04o IShjcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzICYgfkJJVChQTEFORV9DVVJTT1IpKSk7Cj4gIAo+ ICAJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKPiAgCQltdXRleF9sb2NrKCZkZXZfcHJp di0+cGN1X2xvY2spOwo+IEBAIC00ODc3LDggKzQ4NzYsNiBAQCB2b2lkIGhzd19kaXNhYmxlX2lw cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgCWlmICghY3J0 Y19zdGF0ZS0+aXBzX2VuYWJsZWQpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWFzc2VydF9wbGFuZV9l bmFibGVkKHRvX2ludGVsX3BsYW5lKGNydGMtPmJhc2UucHJpbWFyeSkpOwo+IC0KPiAgCWlmIChJ U19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Cj4gIAkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBjdV9s b2NrKTsKPiAgCQlXQVJOX09OKHNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKGRldl9wcml2LCBESVNQ TEFZX0lQU19DT05UUk9MLCAwKSk7Cj4gQEAgLTQ5MzEsMTQgKzQ5MjgsNiBAQCBpbnRlbF9wb3N0 X2VuYWJsZV9wcmltYXJ5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgCWludCBwaXBlID0gaW50 ZWxfY3J0Yy0+cGlwZTsKPiAgCj4gLQkvKgo+IC0JICogRklYTUUgSVBTIHNob3VsZCBiZSBmaW5l IGFzIGxvbmcgYXMgb25lIHBsYW5lIGlzCj4gLQkgKiBlbmFibGVkLCBidXQgaW4gcHJhY3RpY2Ug aXQgc2VlbXMgdG8gaGF2ZSBwcm9ibGVtcwo+IC0JICogd2hlbiBnb2luZyBmcm9tIHByaW1hcnkg b25seSB0byBzcHJpdGUgb25seSBhbmQgdmljZQo+IC0JICogdmVyc2EuCj4gLQkgKi8KPiAtCWhz d19lbmFibGVfaXBzKG5ld19jcnRjX3N0YXRlKTsKPiAtCj4gIAkvKgo+ICAJICogR2VuMiByZXBv cnRzIHBpcGUgdW5kZXJydW5zIHdoZW5ldmVyIGFsbCBwbGFuZXMgYXJlIGRpc2FibGVkLgo+ICAJ ICogU28gZG9uJ3QgZW5hYmxlIHVuZGVycnVuIHJlcG9ydGluZyBiZWZvcmUgYXQgbGVhc3Qgc29t ZSBwbGFuZXMKPiBAQCAtNDk1NCwxMCArNDk0Myw5IEBAIGludGVsX3Bvc3RfZW5hYmxlX3ByaW1h cnkoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJaW50ZWxfY2hlY2tfcGNoX2ZpZm9fdW5kZXJy dW5zKGRldl9wcml2KTsKPiAgfQo+ICAKPiAtLyogRklYTUUgbW92ZSBhbGwgdGhpcyB0byBwcmVf cGxhbmVfdXBkYXRlKCkgd2l0aCBwcm9wZXIgc3RhdGUgdHJhY2tpbmcgKi8KPiArLyogRklYTUUg Z2V0IHJpZCBvZiB0aGlzIGFuZCB1c2UgcHJlX3BsYW5lX3VwZGF0ZSAqLwo+ICBzdGF0aWMgdm9p ZAo+IC1pbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAt CQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gK2lu dGVsX3ByZV9kaXNhYmxlX3ByaW1hcnlfbm9hdG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IEBAIC00OTY2LDMyICs0 OTU0LDEyIEBAIGludGVsX3ByZV9kaXNhYmxlX3ByaW1hcnkoc3RydWN0IGRybV9jcnRjICpjcnRj LAo+ICAKPiAgCS8qCj4gIAkgKiBHZW4yIHJlcG9ydHMgcGlwZSB1bmRlcnJ1bnMgd2hlbmV2ZXIg YWxsIHBsYW5lcyBhcmUgZGlzYWJsZWQuCj4gLQkgKiBTbyBkaWFzYmxlIHVuZGVycnVuIHJlcG9y dGluZyBiZWZvcmUgYWxsIHRoZSBwbGFuZXMgZ2V0IGRpc2FibGVkLgo+IC0JICogRklYTUU6IE5l ZWQgdG8gZml4IHRoZSBsb2dpYyB0byB3b3JrIHdoZW4gd2UgdHVybiBvZmYgYWxsIHBsYW5lcwo+ IC0JICogYnV0IGxlYXZlIHRoZSBwaXBlIHJ1bm5pbmcuCj4gKwkgKiBTbyBkaXNhYmxlIHVuZGVy cnVuIHJlcG9ydGluZyBiZWZvcmUgYWxsIHRoZSBwbGFuZXMgZ2V0IGRpc2FibGVkLgo+ICAJICov Cj4gIAlpZiAoSVNfR0VOMihkZXZfcHJpdikpCj4gIAkJaW50ZWxfc2V0X2NwdV9maWZvX3VuZGVy cnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgcGlwZSwgZmFsc2UpOwo+ICAKPiAtCS8qCj4gLQkgKiBG SVhNRSBJUFMgc2hvdWxkIGJlIGZpbmUgYXMgbG9uZyBhcyBvbmUgcGxhbmUgaXMKPiAtCSAqIGVu YWJsZWQsIGJ1dCBpbiBwcmFjdGljZSBpdCBzZWVtcyB0byBoYXZlIHByb2JsZW1zCj4gLQkgKiB3 aGVuIGdvaW5nIGZyb20gcHJpbWFyeSBvbmx5IHRvIHNwcml0ZSBvbmx5IGFuZCB2aWNlCj4gLQkg KiB2ZXJzYS4KPiAtCSAqLwo+IC0JaHN3X2Rpc2FibGVfaXBzKG9sZF9jcnRjX3N0YXRlKTsKPiAt fQo+IC0KPiAtLyogRklYTUUgZ2V0IHJpZCBvZiB0aGlzIGFuZCB1c2UgcHJlX3BsYW5lX3VwZGF0 ZSAqLwo+IC1zdGF0aWMgdm9pZAo+IC1pbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5X25vYXRvbWlj KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAtewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGMtPmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjKTsKPiAtCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAtCj4gLQlpbnRlbF9w cmVfZGlzYWJsZV9wcmltYXJ5KGNydGMsIHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUp KTsKPiArCWhzd19kaXNhYmxlX2lwcyh0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKSk7 Cj4gIAo+ICAJLyoKPiAgCSAqIFZibGFuayB0aW1lIHVwZGF0ZXMgZnJvbSB0aGUgc2hhZG93IHRv IGxpdmUgcGxhbmUgY29udHJvbCByZWdpc3Rlcgo+IEBAIC01MDA3LDYgKzQ5NzUsMzggQEAgaW50 ZWxfcHJlX2Rpc2FibGVfcHJpbWFyeV9ub2F0b21pYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4g IAkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2LCBwaXBlKTsKPiAgfQo+ICAKPiArc3Rh dGljIGJvb2wgaHN3X3ByZV91cGRhdGVfZGlzYWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICsJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKPiArewo+ICsJaWYgKCFvbGRfY3J0Y19zdGF0 ZS0+aXBzX2VuYWJsZWQpCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsKPiArCWlmIChuZWVkc19tb2Rl c2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkpCj4gKwkJcmV0dXJuIHRydWU7Cj4gKwo+ICsJcmV0 dXJuICFuZXdfY3J0Y19zdGF0ZS0+aXBzX2VuYWJsZWQ7Cj4gK30KPiArCj4gK3N0YXRpYyBib29s IGhzd19wb3N0X3VwZGF0ZV9lbmFibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpvbGRfY3J0Y19zdGF0ZSwKPiArCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqbmV3X2NydGNfc3RhdGUpCj4gK3sKPiArCWlmICghbmV3X2NydGNfc3RhdGUtPmlwc19l bmFibGVkKQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwlpZiAobmVlZHNfbW9kZXNldCgmbmV3 X2NydGNfc3RhdGUtPmJhc2UpKQo+ICsJCXJldHVybiB0cnVlOwo+ICsKPiArCS8qCj4gKwkgKiBX ZSBjYW4ndCByZWFkIG91dCBJUFMgb24gYnJvYWR3ZWxsLCBhc3N1bWUgdGhlIHdvcnN0IGFuZAo+ ICsJICogZm9yY2libHkgZW5hYmxlIElQUyBvbiB0aGUgZmlyc3QgZmFzdHNldC4KPiArCSAqLwo+ ICsJaWYgKG5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSAmJgoKRG8gd2UgZXZlbiBuZWVkIHRo ZSB1cGRhdGVfcGlwZSBjaGVjayBub3c/IEllLiB3aHkgd291bGQgd2Ugc2tpcCB0aGlzIGlmIHRo ZQppbml0aWFsIHVwZGF0ZSBoYXBwZW5zIHRvIHVwZGF0ZSBqdXN0IHRoZSBwbGFuZXM/Cgo+ICsJ ICAgIG9sZF9jcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUucHJpdmF0ZV9mbGFncyAmIEk5 MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gKwlyZXR1cm4g IW9sZF9jcnRjX3N0YXRlLT5pcHNfZW5hYmxlZDsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgaW50 ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0 YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xk X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gQEAgLTUwMjMsNiArNTAyMyw5IEBAIHN0YXRpYyB2 b2lkIGludGVsX3Bvc3RfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRf Y3J0Y19zdGF0ZSkKPiAgCWlmIChwaXBlX2NvbmZpZy0+dXBkYXRlX3dtX3Bvc3QgJiYgcGlwZV9j b25maWctPmJhc2UuYWN0aXZlKQo+ICAJCWludGVsX3VwZGF0ZV93YXRlcm1hcmtzKGNydGMpOwo+ ICAKPiArCWlmIChoc3dfcG9zdF91cGRhdGVfZW5hYmxlX2lwcyhvbGRfY3J0Y19zdGF0ZSwgcGlw ZV9jb25maWcpKQo+ICsJCWhzd19lbmFibGVfaXBzKHBpcGVfY29uZmlnKTsKPiArCj4gIAlpZiAo b2xkX3ByaV9zdGF0ZSkgewo+ICAJCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHJpbWFyeV9z dGF0ZSA9Cj4gIAkJCWludGVsX2F0b21pY19nZXRfbmV3X3BsYW5lX3N0YXRlKHRvX2ludGVsX2F0 b21pY19zdGF0ZShvbGRfc3RhdGUpLAo+IEBAIC01MDUzLDYgKzUwNTYsOSBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0 Y19zdGF0ZSwKPiAgCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKm9sZF9pbnRlbF9zdGF0ZSA9 Cj4gIAkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG9sZF9zdGF0ZSk7Cj4gIAo+ICsJaWYgKGhzd19w cmVfdXBkYXRlX2Rpc2FibGVfaXBzKG9sZF9jcnRjX3N0YXRlLCBwaXBlX2NvbmZpZykpCj4gKwkJ aHN3X2Rpc2FibGVfaXBzKG9sZF9jcnRjX3N0YXRlKTsKPiArCj4gIAlpZiAob2xkX3ByaV9zdGF0 ZSkgewo+ICAJCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHJpbWFyeV9zdGF0ZSA9Cj4gIAkJ CWludGVsX2F0b21pY19nZXRfbmV3X3BsYW5lX3N0YXRlKG9sZF9pbnRlbF9zdGF0ZSwKPiBAQCAt NTA2MSwxMCArNTA2NywxMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiAgCQkJdG9faW50ZWxfcGxh bmVfc3RhdGUob2xkX3ByaV9zdGF0ZSk7Cj4gIAo+ICAJCWludGVsX2ZiY19wcmVfdXBkYXRlKGNy dGMsIHBpcGVfY29uZmlnLCBwcmltYXJ5X3N0YXRlKTsKPiAtCj4gLQkJaWYgKG9sZF9wcmltYXJ5 X3N0YXRlLT5iYXNlLnZpc2libGUgJiYKPiArCQkvKgo+ICsJCSAqIEdlbjIgcmVwb3J0cyBwaXBl IHVuZGVycnVucyB3aGVuZXZlciBhbGwgcGxhbmVzIGFyZSBkaXNhYmxlZC4KPiArCQkgKiBTbyBk aXNhYmxlIHVuZGVycnVuIHJlcG9ydGluZyBiZWZvcmUgYWxsIHRoZSBwbGFuZXMgZ2V0IGRpc2Fi bGVkLgo+ICsJCSAqLwo+ICsJCWlmIChJU19HRU4yKGRldl9wcml2KSAmJiBvbGRfcHJpbWFyeV9z dGF0ZS0+YmFzZS52aXNpYmxlICYmCj4gIAkJICAgIChtb2Rlc2V0IHx8ICFwcmltYXJ5X3N0YXRl LT5iYXNlLnZpc2libGUpKQo+IC0JCQlpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5KCZjcnRjLT5i YXNlLCBvbGRfY3J0Y19zdGF0ZSk7Cj4gKwkJCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9y ZXBvcnRpbmcoZGV2X3ByaXYsIGNydGMtPnBpcGUsIGZhbHNlKTsKPiAgCX0KPiAgCj4gIAkvKgo+ IEBAIC02MTk1LDE4ICs2MjA0LDIwIEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfZmRpX2NvbXB1dGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ICAJcmV0dXJuIHJldDsKPiAg fQo+ICAKPiAtc3RhdGljIGJvb2wgcGlwZV9jb25maWdfc3VwcG9ydHNfaXBzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnBpcGVfY29uZmlnKQo+ICtib29sIGhzd19waXBlX2NvbmZpZ19pcHNfY2FwYWJsZShjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCgpTaW5jZSB5b3UncmUgdG91 Y2hpbmcgcHJldHR5IG11Y2ggZXZlcnl0aGluZywgaG93IGFib3V0CnMvcGlwZV9jb25maWcvY3J0 Y19zdGF0ZS8gd2hpbGUgYXQgaXQ/Cgo+ICB7Cj4gLQlpZiAocGlwZV9jb25maWctPmlwc19mb3Jj ZV9kaXNhYmxlKQo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBp cGVfY29uZmlnLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gKwo+ICsJLyogSVBTIG9ubHkgZXhpc3Rz IG9uIFVMVCBtYWNoaW5lcyBhbmQgaXMgdGllZCB0byBwaXBlIEEuICovCj4gKwlpZiAoIWhzd19j cnRjX3N1cHBvcnRzX2lwcyhjcnRjKSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+IC0JaWYgKHBp cGVfY29uZmlnLT5waXBlX2JwcCA+IDI0KQo+ICsJaWYgKCFpOTE1X21vZHBhcmFtcy5lbmFibGVf aXBzKQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gLQkvKiBIU1cgY2FuIGhhbmRsZSBwaXhlbCBy YXRlIHVwIHRvIGNkY2xrPyAqLwo+IC0JaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKQo+IC0JCXJl dHVybiB0cnVlOwo+ICsJaWYgKHBpcGVfY29uZmlnLT5waXBlX2JwcCA+IDI0KQo+ICsJCXJldHVy biBmYWxzZTsKPiAgCj4gIAkvKgo+ICAJICogV2UgY29tcGFyZSBhZ2FpbnN0IG1heCB3aGljaCBt ZWFucyB3ZSBtdXN0IHRha2UKPiBAQCAtNjIxNSwxOSArNjIyNiw0MSBAQCBzdGF0aWMgYm9vbCBw aXBlX2NvbmZpZ19zdXBwb3J0c19pcHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJICoKPiAgCSAqIFNob3VsZCBtZWFzdXJlIHdoZXRoZXIgdXNpbmcgYSBsb3dlciBjZGNs ayB3L28gSVBTCj4gIAkgKi8KPiAtCXJldHVybiBwaXBlX2NvbmZpZy0+cGl4ZWxfcmF0ZSA8PQo+ IC0JCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSAqIDk1IC8gMTAwOwo+ICsJaWYgKElTX0JST0FE V0VMTChkZXZfcHJpdikgJiYgcGlwZV9jb25maWctPnBpeGVsX3JhdGUgPgo+ICsJICAgIGRldl9w cml2LT5tYXhfY2RjbGtfZnJlcSAqIDk1IC8gMTAwKQoKU3BsaXR0aW5nIHRoZSBsaW5lIGxpa2Ug dGhhdCBtYWtlcyBpdCBwcmV0dHkgaGFyZCB0byByZWFkLgoKaWYgKElTX0JST0FEV0VMTCguLi4p ICYmCiAgICBwaXBlX2NvbmZpZy0+cGl4ZWxfcmF0ZSA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJl cSAqIDk1IC8gMTAwKQoKd291bGQgbG9vayBtdWNoIGJldHRlciBJTU8uCgo+ICsJCXJldHVybiBm YWxzZTsKPiArCj4gKwlyZXR1cm4gdHJ1ZTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaHN3X2Nv bXB1dGVfaXBzX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAtCQkJCSAgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiArc3RhdGljIGJvb2wgaHN3X2NvbXB1 dGVfaXBzX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCgpzL3Bp cGVfY29uZmlnL2NydGNfc3RhdGUvIGFnYWluCgo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PQo+ICsJCXRvX2k5MTUocGlwZV9jb25maWctPmJhc2UuY3J0Yy0+ZGV2KTsKPiArCXN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0KPiArCQl0b19pbnRlbF9hdG9taWNfc3Rh dGUocGlwZV9jb25maWctPmJhc2Uuc3RhdGUpOwo+ICsKPiArCWlmICghaHN3X3BpcGVfY29uZmln X2lwc19jYXBhYmxlKHBpcGVfY29uZmlnKSkKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICsJaWYg KHBpcGVfY29uZmlnLT5pcHNfZm9yY2VfZGlzYWJsZSkKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ ICsJLyoKPiArCSAqIEZJWE1FIElQUyBzaG91bGQgYmUgZmluZSBhcyBsb25nIGFzIG9uZSBwbGFu ZSBpcwo+ICsJICogZW5hYmxlZCwgYnV0IGluIHByYWN0aWNlIGl0IHNlZW1zIHRvIGhhdmUgcHJv YmxlbXMKPiArCSAqIHdoZW4gZ29pbmcgZnJvbSBwcmltYXJ5IG9ubHkgdG8gc3ByaXRlIG9ubHkg YW5kIHZpY2UKPiArCSAqIHZlcnNhLgo+ICsJICovCj4gKwlpZiAoIShwaXBlX2NvbmZpZy0+YWN0 aXZlX3BsYW5lcyAmIEJJVChQTEFORV9QUklNQVJZKSkpCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICAK PiAtCXBpcGVfY29uZmlnLT5pcHNfZW5hYmxlZCA9IGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9pcHMg JiYKPiAtCQloc3dfY3J0Y19zdXBwb3J0c19pcHMoY3J0YykgJiYKPiAtCQlwaXBlX2NvbmZpZ19z dXBwb3J0c19pcHMoZGV2X3ByaXYsIHBpcGVfY29uZmlnKTsKPiArCS8qIHBpeGVsIHJhdGUgbXVz dG4ndCBleGNlZWQgOTUlIG9mIGNkY2xrIHdpdGggSVBTIG9uIEJEVyAqLwo+ICsJaWYgKElTX0JS T0FEV0VMTChkZXZfcHJpdikgJiYgcGlwZV9jb25maWctPnBpeGVsX3JhdGUgPgo+ICsJICAgIGlu dGVsX3N0YXRlLT5jZGNsay5sb2dpY2FsLmNkY2xrICogOTUgLyAxMDApCj4gKwkJcmV0dXJuIGZh bHNlOwoKQW5vdGhlciBoYXJkIHRvIHJlYWQgc3BsaXQuCgpBcGFydCBmcm9tIHRob3NlIG5pdHMs IHRoaXMgbGd0bSBzbwpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KCj4gKwo+ICsJcmV0dXJuIHRydWU7Cj4gIH0KPiAgCj4gIHN0YXRp YyBib29sIGludGVsX2NydGNfc3VwcG9ydHNfZG91YmxlX3dpZGUoY29uc3Qgc3RydWN0IGludGVs X2NydGMgKmNydGMpCj4gQEAgLTYzNDUsOSArNjM3OCw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0 Y19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCj4gIAlpbnRlbF9j cnRjX2NvbXB1dGVfcGl4ZWxfcmF0ZShwaXBlX2NvbmZpZyk7Cj4gIAo+IC0JaWYgKEhBU19JUFMo ZGV2X3ByaXYpKQo+IC0JCWhzd19jb21wdXRlX2lwc19jb25maWcoY3J0YywgcGlwZV9jb25maWcp Owo+IC0KPiAgCWlmIChwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKQo+ICAJCXJldHVybiBp cm9ubGFrZV9mZGlfY29tcHV0ZV9jb25maWcoY3J0YywgcGlwZV9jb25maWcpOwo+ICAKPiBAQCAt OTE4Myw2ICs5MjEzLDE5IEBAIHN0YXRpYyBib29sIGhhc3dlbGxfZ2V0X3BpcGVfY29uZmlnKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQlpcm9ubGFrZV9nZXRfcGZpdF9jb25maWcoY3J0 YywgcGlwZV9jb25maWcpOwo+ICAJfQo+ICAKPiArCWlmIChoc3dfY3J0Y19zdXBwb3J0c19pcHMo Y3J0YykpIHsKPiArCQlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpCj4gKwkJCXBpcGVfY29uZmln LT5pcHNfZW5hYmxlZCA9IEk5MTVfUkVBRChJUFNfQ1RMKSAmIElQU19FTkFCTEU7Cj4gKwkJZWxz ZSB7Cj4gKwkJCS8qCj4gKwkJCSAqIFdlIGNhbm5vdCByZWFkb3V0IElQUyBzdGF0ZSBvbiBicm9h ZHdlbGwsIHNldCB0bwo+ICsJCQkgKiB0cnVlIHNvIHdlIGNhbiBzZXQgaXQgdG8gYSBkZWZpbmVk IHN0YXRlIG9uIGZpcnN0Cj4gKwkJCSAqIGNvbW1pdC4KPiArCQkJICovCj4gKwkJCXBpcGVfY29u ZmlnLT5pcHNfZW5hYmxlZCA9IHRydWU7Cj4gKwkJfQo+ICsJfQo+ICsKPiAgCWlmIChwaXBlX2Nv bmZpZy0+Y3B1X3RyYW5zY29kZXIgIT0gVFJBTlNDT0RFUl9FRFAgJiYKPiAgCSAgICAhdHJhbnNj b2Rlcl9pc19kc2kocGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyKSkgewo+ICAJCXBpcGVfY29u ZmlnLT5waXhlbF9tdWx0aXBsaWVyID0KPiBAQCAtMTA0MzYsNiArMTA0NzksOSBAQCBzdGF0aWMg aW50IGludGVsX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJ CQkJCSBwaXBlX2NvbmZpZyk7Cj4gIAl9Cj4gIAo+ICsJaWYgKEhBU19JUFMoZGV2X3ByaXYpKQo+ ICsJCXBpcGVfY29uZmlnLT5pcHNfZW5hYmxlZCA9IGhzd19jb21wdXRlX2lwc19jb25maWcocGlw ZV9jb25maWcpOwo+ICsKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiBpbmRleCA2MzVhOTZmY2Q3ODguLjRmNGNmNTEyOGUwYyAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTE0ODUsNiArMTQ4NSw3IEBAIGJvb2wgYnh0X2ZpbmRf YmVzdF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCBpbnQgdGFyZ2V0 X2Nsb2NrLAo+ICBpbnQgY2h2X2NhbGNfZHBsbF9wYXJhbXMoaW50IHJlZmNsaywgc3RydWN0IGRw bGwgKnBsbF9jbG9jayk7Cj4gIAo+ICBib29sIGludGVsX2NydGNfYWN0aXZlKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjKTsKPiArYm9vbCBoc3dfcGlwZV9jb25maWdfaXBzX2NhcGFibGUoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKPiAgdm9pZCBoc3dfZW5hYmxl X2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gIHZvaWQg aHN3X2Rpc2FibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KTsKPiAgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBpbnRlbF9wb3J0X3RvX3Bvd2Vy X2RvbWFpbihlbnVtIHBvcnQgcG9ydCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BpcGVfY3JjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2Ny Yy5jCj4gaW5kZXggNjE2NDFkNDc5YjkzLi4xZjVjZDU3MmE3ZmYgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BpcGVfY3JjLmMKPiBAQCAtNTQxLDggKzU0MSw2IEBAIHN0YXRpYyB2b2lk IGhzd19waXBlX0FfY3JjX3dhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAg CQkgKiBjb21wbGV0ZWx5IGRpc2FibGUgaXQuCj4gIAkJICovCj4gIAkJcGlwZV9jb25maWctPmlw c19mb3JjZV9kaXNhYmxlID0gZW5hYmxlOwo+IC0JCWlmIChwaXBlX2NvbmZpZy0+aXBzX2VuYWJs ZWQgPT0gZW5hYmxlKQo+IC0JCQlwaXBlX2NvbmZpZy0+YmFzZS5jb25uZWN0b3JzX2NoYW5nZWQg PSB0cnVlOwo+ICAJfQo+ICAKPiAgCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSkgewo+IC0tIAo+ IDIuMTUuMAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==