From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2] drm/i915/glk: Refactor handling of PLANE_COLOR_CTL for GLK+ Date: Fri, 3 Nov 2017 19:59:42 +0200 Message-ID: <20171103175942.GE10981@intel.com> References: <20171102230049.10952-1-james.ausmus@intel.com> <20171103165848.23407-1-james.ausmus@intel.com> <20171103173144.GB10981@intel.com> <20171103174528.GA22971@jausmus-gentoo-dev6.jf.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 53FFE6EACB for ; Fri, 3 Nov 2017 17:59:46 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20171103174528.GA22971@jausmus-gentoo-dev6.jf.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: James Ausmus Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBOb3YgMDMsIDIwMTcgYXQgMTA6NDU6MzBBTSAtMDcwMCwgSmFtZXMgQXVzbXVzIHdy b3RlOgo+IE9uIEZyaSwgTm92IDAzLCAyMDE3IGF0IDA3OjMxOjQ0UE0gKzAyMDAsIFZpbGxlIFN5 cmrDpGzDpCB3cm90ZToKPiA+IE9uIEZyaSwgTm92IDAzLCAyMDE3IGF0IDA5OjU4OjQ4QU0gLTA3 MDAsIEphbWVzIEF1c211cyB3cm90ZToKPiA+ID4gU2luY2UgR0xLLCBzb21lIHBsYW5lIGNvbmZp Z3VyYXRpb24gc2V0dGluZ3MgaGF2ZSBtb3ZlZCB0byB0aGUKPiA+ID4gUExBTkVfQ09MT1JfQ1RM IHJlZ2lzdGVyLiBSZWZhY3RvciBoYW5kbGluZyBvZiB0aGUgcmVnaXN0ZXIgdG8gd29yayBsaWtl Cj4gPiA+IFBMQU5FX0NUTC4gVGhpcyBhbHNvIGFsbG93cyB1cyB0byBmaXggdGhlIHNldC9yZWFk IG9mIHRoZSBwbGFuZSBBbHBoYQo+ID4gPiBNb2RlIGZvciBHTEsrLgo+ID4gPiAKPiA+ID4gdjI6 IEFkanVzdCBvcmRlcmluZyBvZiBwbGF0Zm9ybSBjaGVja3MgdG8gYmUgbmV3ZXN0LT5vbGRlc3Qs IGRyb3AKPiA+ID4gcmVkdW5kYW50IGNvbW1lbnQgYWJvdXQgYWxwaGEgYmxlbmRpbmcuIChWaWxs ZSkKPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEphbWVzIEF1c211cyA8amFtZXMuYXVzbXVz QGludGVsLmNvbT4KPiA+ID4gQ2M6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwu Y29tPgo+ID4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAg ICAgfCAxMiArKysrKy0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgNTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCj4gPiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgNSArKysrCj4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAxNCArKysrKy0tLS0KPiA+ID4gIDQgZmls ZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gaW5kZXggZjBmOGY2MDU5NjUyLi5lY2Q2YjIz NmUwMDUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgK PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiBAQCAtNjI2 Myw3ICs2MjYzLDcgQEAgZW51bSB7Cj4gPiA+ICAjZGVmaW5lIF9QTEFORV9DVExfMl9BCQkJCTB4 NzAyODAKPiA+ID4gICNkZWZpbmUgX1BMQU5FX0NUTF8zX0EJCQkJMHg3MDM4MAo+ID4gPiAgI2Rl ZmluZSAgIFBMQU5FX0NUTF9FTkFCTEUJCQkoMSA8PCAzMSkKPiA+ID4gLSNkZWZpbmUgICBQTEFO RV9DVExfUElQRV9HQU1NQV9FTkFCTEUJCSgxIDw8IDMwKQo+ID4gPiArI2RlZmluZSAgIFBMQU5F X0NUTF9QSVBFX0dBTU1BX0VOQUJMRQkJKDEgPDwgMzApICAgLyogUHJlLUdMSyAqLwo+ID4gPiAg I2RlZmluZSAgIFBMQU5FX0NUTF9GT1JNQVRfTUFTSwkJCSgweGYgPDwgMjQpCj4gPiA+ICAjZGVm aW5lICAgUExBTkVfQ1RMX0ZPUk1BVF9ZVVY0MjIJCSggIDAgPDwgMjQpCj4gPiA+ICAjZGVmaW5l ICAgUExBTkVfQ1RMX0ZPUk1BVF9OVjEyCQkJKCAgMSA8PCAyNCkKPiA+ID4gQEAgLTYyNzMsNyAr NjI3Myw3IEBAIGVudW0gewo+ID4gPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9GT1JNQVRfQVlVVgkJ CSggIDggPDwgMjQpCj4gPiA+ICAjZGVmaW5lICAgUExBTkVfQ1RMX0ZPUk1BVF9JTkRFWEVECQko IDEyIDw8IDI0KQo+ID4gPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9GT1JNQVRfUkdCXzU2NQkJKCAx NCA8PCAyNCkKPiA+ID4gLSNkZWZpbmUgICBQTEFORV9DVExfUElQRV9DU0NfRU5BQkxFCQkoMSA8 PCAyMykKPiA+ID4gKyNkZWZpbmUgICBQTEFORV9DVExfUElQRV9DU0NfRU5BQkxFCQkoMSA8PCAy MykgLyogUHJlLUdMSyAqLwo+ID4gPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9LRVlfRU5BQkxFX01B U0sJCSgweDMgPDwgMjEpCj4gPiA+ICAjZGVmaW5lICAgUExBTkVfQ1RMX0tFWV9FTkFCTEVfU09V UkNFCQkoICAxIDw8IDIxKQo+ID4gPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9LRVlfRU5BQkxFX0RF U1RJTkFUSU9OCSggIDIgPDwgMjEpCj4gPiA+IEBAIC02Mjg2LDEzICs2Mjg2LDEzIEBAIGVudW0g ewo+ID4gPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9ZVVY0MjJfVllVWQkJCSggIDMgPDwgMTYpCj4g PiA+ICAjZGVmaW5lICAgUExBTkVfQ1RMX0RFQ09NUFJFU1NJT05fRU5BQkxFCSgxIDw8IDE1KQo+ ID4gPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9UUklDS0xFX0ZFRURfRElTQUJMRQkoMSA8PCAxNCkK PiA+ID4gLSNkZWZpbmUgICBQTEFORV9DVExfUExBTkVfR0FNTUFfRElTQUJMRQkJKDEgPDwgMTMp Cj4gPiA+ICsjZGVmaW5lICAgUExBTkVfQ1RMX1BMQU5FX0dBTU1BX0RJU0FCTEUJCSgxIDw8IDEz KSAvKiBQcmUtR0xLICovCj4gPiA+ICAjZGVmaW5lICAgUExBTkVfQ1RMX1RJTEVEX01BU0sJCQko MHg3IDw8IDEwKQo+ID4gPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9USUxFRF9MSU5FQVIJCSggIDAg PDwgMTApCj4gPiA+ICAjZGVmaW5lICAgUExBTkVfQ1RMX1RJTEVEX1gJCQkoICAxIDw8IDEwKQo+ ID4gPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9USUxFRF9ZCQkJKCAgNCA8PCAxMCkKPiA+ID4gICNk ZWZpbmUgICBQTEFORV9DVExfVElMRURfWUYJCQkoICA1IDw8IDEwKQo+ID4gPiAtI2RlZmluZSAg IFBMQU5FX0NUTF9BTFBIQV9NQVNLCQkJKDB4MyA8PCA0KQo+ID4gPiArI2RlZmluZSAgIFBMQU5F X0NUTF9BTFBIQV9NQVNLCQkJKDB4MyA8PCA0KSAvKiBQcmUtR0xLICovCj4gPiA+ICAjZGVmaW5l ICAgUExBTkVfQ1RMX0FMUEhBX0RJU0FCTEUJCSggIDAgPDwgNCkKPiA+ID4gICNkZWZpbmUgICBQ TEFORV9DVExfQUxQSEFfU1dfUFJFTVVMVElQTFkJKCAgMiA8PCA0KQo+ID4gPiAgI2RlZmluZSAg IFBMQU5FX0NUTF9BTFBIQV9IV19QUkVNVUxUSVBMWQkoICAzIDw8IDQpCj4gPiA+IEBAIC02MzMy LDYgKzYzMzIsMTAgQEAgZW51bSB7Cj4gPiA+ICAjZGVmaW5lICAgUExBTkVfQ09MT1JfUElQRV9H QU1NQV9FTkFCTEUJCSgxIDw8IDMwKQo+ID4gPiAgI2RlZmluZSAgIFBMQU5FX0NPTE9SX1BJUEVf Q1NDX0VOQUJMRQkJKDEgPDwgMjMpCj4gPiA+ICAjZGVmaW5lICAgUExBTkVfQ09MT1JfUExBTkVf R0FNTUFfRElTQUJMRQkoMSA8PCAxMykKPiA+ID4gKyNkZWZpbmUgICBQTEFORV9DT0xPUl9BTFBI QV9NQVNLCQkoMHgzIDw8IDQpCj4gPiA+ICsjZGVmaW5lICAgUExBTkVfQ09MT1JfQUxQSEFfRElT QUJMRQkJKDAgPDwgNCkKPiA+ID4gKyNkZWZpbmUgICBQTEFORV9DT0xPUl9BTFBIQV9TV19QUkVN VUxUSVBMWQkoMiA8PCA0KQo+ID4gPiArI2RlZmluZSAgIFBMQU5FX0NPTE9SX0FMUEhBX0hXX1BS RU1VTFRJUExZCSgzIDw8IDQpCj4gPiA+ICAjZGVmaW5lIF9QTEFORV9CVUZfQ0ZHXzFfQQkJCTB4 NzAyN2MKPiA+ID4gICNkZWZpbmUgX1BMQU5FX0JVRl9DRkdfMl9BCQkJMHg3MDM3Ywo+ID4gPiAg I2RlZmluZSBfUExBTkVfTlYxMl9CVUZfQ0ZHXzFfQQkJMHg3MDI3OAo+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+IGluZGV4IDczN2RlMjUxZDBmOC4uMzk0NTMyNzZk YWQxIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ IEBAIC0zNDY2LDYgKzM0NjYsMjMgQEAgc3RhdGljIHUzMiBza2xfcGxhbmVfY3RsX2Zvcm1hdCh1 aW50MzJfdCBwaXhlbF9mb3JtYXQpCj4gPiA+ICAJcmV0dXJuIDA7Cj4gPiA+ICB9Cj4gPiA+ICAK PiA+ID4gK3N0YXRpYyB1MzIgZ2xrX3BsYW5lX2N0bF9mb3JtYXQodWludDMyX3QgcGl4ZWxfZm9y bWF0KQo+ID4gPiArewo+ID4gPiArCS8qIEdMSysgbW92ZXMgdGhlIGFscGhhIG1hc2sgdG8gYSBk aWZmZXJlbnQgcmVnaXN0ZXIgKi8KPiA+ID4gKwlyZXR1cm4gc2tsX3BsYW5lX2N0bF9mb3JtYXQo cGl4ZWxfZm9ybWF0KSAmIH5QTEFORV9DVExfQUxQSEFfTUFTSzsKPiA+IAo+ID4gSSB0aGluayBp dCB3b3VsZCBiZSBsZXNzIGNvbmZ1c2luZyB0byBleHRyYWN0IHRoZSBhbHBoYSBzdHVmZgo+ID4g ZnJvbSBza2xfcGxhbmVfY3RsX2Zvcm1hdCgpIGludG8gc2tsX3BsYW5lX2N0bF9hbHBoYSgpLgo+ ID4gCj4gPiBJIGd1ZXNzIHdpdGggdGhhdCB3ZSB3b3VsZG4ndCBldmVuIG5lZWQgZ2xrX3BsYW5l X2N0bF9mb3JtYXQoKT8KPiAKPiBZZWFoLCBJIGxpa2UgdGhhdCBiZXR0ZXIuIEFzIGEgbWF0dGVy IG9mIGZhY3QsIHRoZSBtYXNrIGFuZCBkZWZpbml0aW9ucwo+IGFyZSB0aGUgc2FtZSBiZXR3ZWVu IFBMQU5FX0NUTCBhbmQgUExBTkVfQ09MT1JfQ1RMIC0gd291bGQgaXQgYmUgY2xlYW5lcgo+IHRv IGp1c3QgcmVuYW1lIHRoZSBkZWZpbmVzIHRvIFBMQU5FX0FMUEhBXyosIG5hbWUgdGhlIGZ1bmN0 aW9uCj4gc2tsX3BsYW5lX2FscGhhLCBhbmQgdGhlbiBiZSBhYmxlIHRvIHVzZSB0aGUgc2luZ2xl IGZ1bmN0aW9uIGZvciBib3RoCj4gUExBTkVfQ1RMIGFuZCBQTEFORV9DT0xPUl9DVEwgdXNhZ2Vz PwoKUHJvYmFibHkgbm90LiBBdCBsZWFzdCBJIHdhcyBzY3JhdGNoaW5nIG15IGhlYWQgYWdhaW4g cmVjZW50bHkgd2l0aAp0aGUgRERJX1BPUlRfV0lEVEgoKSBkZWZpbmVzIHdoaWNoIGdldCB1c2Vk IHdpdGggdHdvIG90aGVyd2lzZSB0b3RhbGx5CmRpZmZlcmVudCByZWdpc3RlcnMuIEkgY29va2Vk IHVwIGEgcGF0Y2ggdG8gZHVwbGljYXRlIHRoZSBkZWZpbmVzIHRvCm1ha2Ugc3VyZSBJIHdvbid0 IGhhdmUgdG8gYmUgY29uZnVzZWQgYWdhaW4uIERpZG4ndCBzZW5kIHRob3NlIG91dCB5ZXQKdGhv dWdoLgoKPiAKPiA+IAo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdTMyIGdsa19wbGFu ZV9jb2xvcl9jdGxfYWxwaGEodWludDMyX3QgcGl4ZWxfZm9ybWF0KQo+ID4gPiArewo+ID4gPiAr CXN3aXRjaCAocGl4ZWxfZm9ybWF0KSB7Cj4gPiA+ICsJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4 Ogo+ID4gPiArCWNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4ODoKPiA+ID4gKwkJcmV0dXJuIFBMQU5F X0NPTE9SX0FMUEhBX1NXX1BSRU1VTFRJUExZOwo+ID4gPiArCWRlZmF1bHQ6Cj4gPiA+ICsJCXJl dHVybiBQTEFORV9DT0xPUl9BTFBIQV9ESVNBQkxFOwo+ID4gPiArCX0KPiA+ID4gK30KPiA+ID4g Kwo+ID4gPiAgc3RhdGljIHUzMiBza2xfcGxhbmVfY3RsX3RpbGluZyh1aW50NjRfdCBmYl9tb2Rp ZmllcikKPiA+ID4gIHsKPiA+ID4gIAlzd2l0Y2ggKGZiX21vZGlmaWVyKSB7Cj4gPiA+IEBAIC0z NTIyLDE0ICszNTM5LDE2IEBAIHUzMiBza2xfcGxhbmVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gPiAgCj4gPiA+ICAJcGxhbmVfY3RsID0gUExBTkVf Q1RMX0VOQUJMRTsKPiA+ID4gIAo+ID4gPiAtCWlmICghSVNfR0VNSU5JTEFLRShkZXZfcHJpdikg JiYgIUlTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSB7Cj4gPiA+ICsJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gMTAgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpIHsKPiA+ID4gKwkJcGxhbmVf Y3RsIHw9IGdsa19wbGFuZV9jdGxfZm9ybWF0KGZiLT5mb3JtYXQtPmZvcm1hdCk7Cj4gPiA+ICsJ fSBlbHNlIHsKPiA+ID4gIAkJcGxhbmVfY3RsIHw9Cj4gPiA+ICAJCQlQTEFORV9DVExfUElQRV9H QU1NQV9FTkFCTEUgfAo+ID4gPiAgCQkJUExBTkVfQ1RMX1BJUEVfQ1NDX0VOQUJMRSB8Cj4gPiA+ ICAJCQlQTEFORV9DVExfUExBTkVfR0FNTUFfRElTQUJMRTsKPiA+ID4gKwkJcGxhbmVfY3RsIHw9 IHNrbF9wbGFuZV9jdGxfZm9ybWF0KGZiLT5mb3JtYXQtPmZvcm1hdCk7Cj4gPiA+ICAJfQo+ID4g PiAgCj4gPiA+IC0JcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9jdGxfZm9ybWF0KGZiLT5mb3JtYXQt PmZvcm1hdCk7Cj4gPiA+ICAJcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9jdGxfdGlsaW5nKGZiLT5t b2RpZmllcik7Cj4gPiA+ICAJcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9jdGxfcm90YXRpb24ocm90 YXRpb24pOwo+ID4gPiAgCj4gPiA+IEBAIC0zNTQxLDYgKzM1NjAsMjAgQEAgdTMyIHNrbF9wbGFu ZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiA+ICAJ cmV0dXJuIHBsYW5lX2N0bDsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiArdTMyIGdsa19wbGFuZV9j b2xvcl9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiA+ ICsJCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ID4gPiAr ewo+ID4gPiArCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUt PmJhc2UuZmI7Cj4gPiA+ICsJdTMyIHBsYW5lX2NvbG9yX2N0bCA9IDA7Cj4gPiA+ICsKPiA+ID4g KwlwbGFuZV9jb2xvcl9jdGwgfD0gUExBTkVfQ09MT1JfUElQRV9HQU1NQV9FTkFCTEU7Cj4gPiA+ ICsJcGxhbmVfY29sb3JfY3RsIHw9IFBMQU5FX0NPTE9SX1BJUEVfQ1NDX0VOQUJMRTsKPiA+ID4g KwlwbGFuZV9jb2xvcl9jdGwgfD0gUExBTkVfQ09MT1JfUExBTkVfR0FNTUFfRElTQUJMRTsKPiA+ ID4gKwlwbGFuZV9jb2xvcl9jdGwgfD0gZ2xrX3BsYW5lX2NvbG9yX2N0bF9hbHBoYShmYi0+Zm9y bWF0LT5mb3JtYXQpOwo+ID4gPiArCj4gPiA+ICsJcmV0dXJuIHBsYW5lX2NvbG9yX2N0bDsKPiA+ ID4gK30KPiA+ID4gKwo+ID4gPiAgc3RhdGljIGludAo+ID4gPiAgX19pbnRlbF9kaXNwbGF5X3Jl c3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gPiAgCQkgICAgICAgc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gPiBAQCAtODQyNiw3ICs4NDU5LDcgQEAgc2t5bGFrZV9n ZXRfaW5pdGlhbF9wbGFuZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gPiA+ICB7 Cj4gPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ID4gPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ID4g LQl1MzIgdmFsLCBiYXNlLCBvZmZzZXQsIHN0cmlkZV9tdWx0LCB0aWxpbmc7Cj4gPiA+ICsJdTMy IHZhbCwgYmFzZSwgb2Zmc2V0LCBzdHJpZGVfbXVsdCwgdGlsaW5nLCBhbHBoYTsKPiA+ID4gIAlp bnQgcGlwZSA9IGNydGMtPnBpcGU7Cj4gPiA+ICAJaW50IGZvdXJjYywgcGl4ZWxfZm9ybWF0Owo+ ID4gPiAgCXVuc2lnbmVkIGludCBhbGlnbmVkX2hlaWdodDsKPiA+ID4gQEAgLTg0NDgsOSArODQ4 MSwxNiBAQCBza3lsYWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKPiA+ID4gIAkJZ290byBlcnJvcjsKPiA+ID4gIAo+ID4gPiAgCXBpeGVsX2Zvcm1h dCA9IHZhbCAmIFBMQU5FX0NUTF9GT1JNQVRfTUFTSzsKPiA+ID4gKwo+ID4gPiArCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDEwIHx8IElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4gPiA+ ICsJCWFscGhhID0gSTkxNV9SRUFEKFBMQU5FX0NPTE9SX0NUTChwaXBlLCAwKSk7Cj4gPiA+ICsJ CWFscGhhICY9IFBMQU5FX0NPTE9SX0FMUEhBX01BU0s7Cj4gPiA+ICsJfSBlbHNlIHsKPiA+ID4g KwkJYWxwaGEgPSB2YWwgJiBQTEFORV9DVExfQUxQSEFfTUFTSzsKPiA+ID4gKwl9Cj4gPiA+ICsK PiA+ID4gIAlmb3VyY2MgPSBza2xfZm9ybWF0X3RvX2ZvdXJjYyhwaXhlbF9mb3JtYXQsCj4gPiA+ IC0JCQkJICAgICAgdmFsICYgUExBTkVfQ1RMX09SREVSX1JHQlgsCj4gPiA+IC0JCQkJICAgICAg dmFsICYgUExBTkVfQ1RMX0FMUEhBX01BU0spOwo+ID4gPiArCQkJCSAgICAgIHZhbCAmIFBMQU5F X0NUTF9PUkRFUl9SR0JYLCBhbHBoYSk7Cj4gPiA+ICAJZmItPmZvcm1hdCA9IGRybV9mb3JtYXRf aW5mbyhmb3VyY2MpOwo+ID4gPiAgCj4gPiA+ICAJdGlsaW5nID0gdmFsICYgUExBTkVfQ1RMX1RJ TEVEX01BU0s7Cj4gPiA+IEBAIC0xMjgzMSw2ICsxMjg3MSwxMSBAQCBpbnRlbF9jaGVja19wcmlt YXJ5X3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gPiA+ICAJCXN0YXRlLT5jdGwg PSBpOXh4X3BsYW5lX2N0bChjcnRjX3N0YXRlLCBzdGF0ZSk7Cj4gPiA+ICAJfQo+ID4gPiAgCj4g PiA+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTAgfHwgSVNfR0VNSU5JTEFLRShkZXZf cHJpdikpCj4gPiA+ICsJCXN0YXRlLT5jb2xvcl9jdGwgPSBnbGtfcGxhbmVfY29sb3JfY3RsKGNy dGNfc3RhdGUsIHN0YXRlKTsKPiA+ID4gKwllbHNlCj4gPiA+ICsJCXN0YXRlLT5jb2xvcl9jdGwg PSAwOwo+ID4gCj4gPiBUaGUgZWxzZSBicmFuY2ggZG9lc24ndCBzZWVtIG5lY2Vzc2FyeSBzaW5j ZSB3ZSBuZXZlciB1c2UgY29sb3JfY3RsCj4gPiBvbiBvdGhlciBwbGF0Zm9ybXMuCj4gCj4gT0sg LSB3YXNuJ3Qgc3VyZSBpZiBpdCB3YXMgYmV0dGVyIHRvIGxlYXZlIGl0IHVuaW5pdGlhbGl6ZWQg c2luY2UgaXQncwo+IG5vdCB1c2VkLCBvciB1c2VsZXNzbHkgaW5pdGlhbGl6ZSBpdC4gOikKCldl IHplcm8gaW5pdGlhbGl6ZSBtb3N0IHRoaW5ncyB3ZSBhbGxvY2F0ZSwgYW5kIGRlcGVuZCBvbiB0 aGF0IGZhY3QKZWxzZXdoZXJlIGFzIHdlbGwuCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9U QwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK