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:31:44 +0200 Message-ID: <20171103173144.GB10981@intel.com> References: <20171102230049.10952-1-james.ausmus@intel.com> <20171103165848.23407-1-james.ausmus@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1E3136E0CA for ; Fri, 3 Nov 2017 17:31:47 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20171103165848.23407-1-james.ausmus@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 T24gRnJpLCBOb3YgMDMsIDIwMTcgYXQgMDk6NTg6NDhBTSAtMDcwMCwgSmFtZXMgQXVzbXVzIHdy b3RlOgo+IFNpbmNlIEdMSywgc29tZSBwbGFuZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGhhdmUg bW92ZWQgdG8gdGhlCj4gUExBTkVfQ09MT1JfQ1RMIHJlZ2lzdGVyLiBSZWZhY3RvciBoYW5kbGlu ZyBvZiB0aGUgcmVnaXN0ZXIgdG8gd29yayBsaWtlCj4gUExBTkVfQ1RMLiBUaGlzIGFsc28gYWxs b3dzIHVzIHRvIGZpeCB0aGUgc2V0L3JlYWQgb2YgdGhlIHBsYW5lIEFscGhhCj4gTW9kZSBmb3Ig R0xLKy4KPiAKPiB2MjogQWRqdXN0IG9yZGVyaW5nIG9mIHBsYXRmb3JtIGNoZWNrcyB0byBiZSBu ZXdlc3QtPm9sZGVzdCwgZHJvcAo+IHJlZHVuZGFudCBjb21tZW50IGFib3V0IGFscGhhIGJsZW5k aW5nLiAoVmlsbGUpCj4gCj4gU2lnbmVkLW9mZi1ieTogSmFtZXMgQXVzbXVzIDxqYW1lcy5hdXNt dXNAaW50ZWwuY29tPgo+IENjOiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNv bT4KPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K PiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgMTIgKysrKyst LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgNTUgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oICAgICB8ICA1ICsrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRl LmMgIHwgMTQgKysrKystLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwg MTUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggZjBmOGY2 MDU5NjUyLi5lY2Q2YjIzNmUwMDUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAt NjI2Myw3ICs2MjYzLDcgQEAgZW51bSB7Cj4gICNkZWZpbmUgX1BMQU5FX0NUTF8yX0EJCQkJMHg3 MDI4MAo+ICAjZGVmaW5lIF9QTEFORV9DVExfM19BCQkJCTB4NzAzODAKPiAgI2RlZmluZSAgIFBM QU5FX0NUTF9FTkFCTEUJCQkoMSA8PCAzMSkKPiAtI2RlZmluZSAgIFBMQU5FX0NUTF9QSVBFX0dB TU1BX0VOQUJMRQkJKDEgPDwgMzApCj4gKyNkZWZpbmUgICBQTEFORV9DVExfUElQRV9HQU1NQV9F TkFCTEUJCSgxIDw8IDMwKSAgIC8qIFByZS1HTEsgKi8KPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9G T1JNQVRfTUFTSwkJCSgweGYgPDwgMjQpCj4gICNkZWZpbmUgICBQTEFORV9DVExfRk9STUFUX1lV VjQyMgkJKCAgMCA8PCAyNCkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9GT1JNQVRfTlYxMgkJCSgg IDEgPDwgMjQpCj4gQEAgLTYyNzMsNyArNjI3Myw3IEBAIGVudW0gewo+ICAjZGVmaW5lICAgUExB TkVfQ1RMX0ZPUk1BVF9BWVVWCQkJKCAgOCA8PCAyNCkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9G T1JNQVRfSU5ERVhFRAkJKCAxMiA8PCAyNCkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9GT1JNQVRf UkdCXzU2NQkJKCAxNCA8PCAyNCkKPiAtI2RlZmluZSAgIFBMQU5FX0NUTF9QSVBFX0NTQ19FTkFC TEUJCSgxIDw8IDIzKQo+ICsjZGVmaW5lICAgUExBTkVfQ1RMX1BJUEVfQ1NDX0VOQUJMRQkJKDEg PDwgMjMpIC8qIFByZS1HTEsgKi8KPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9LRVlfRU5BQkxFX01B U0sJCSgweDMgPDwgMjEpCj4gICNkZWZpbmUgICBQTEFORV9DVExfS0VZX0VOQUJMRV9TT1VSQ0UJ CSggIDEgPDwgMjEpCj4gICNkZWZpbmUgICBQTEFORV9DVExfS0VZX0VOQUJMRV9ERVNUSU5BVElP TgkoICAyIDw8IDIxKQo+IEBAIC02Mjg2LDEzICs2Mjg2LDEzIEBAIGVudW0gewo+ICAjZGVmaW5l ICAgUExBTkVfQ1RMX1lVVjQyMl9WWVVZCQkJKCAgMyA8PCAxNikKPiAgI2RlZmluZSAgIFBMQU5F X0NUTF9ERUNPTVBSRVNTSU9OX0VOQUJMRQkoMSA8PCAxNSkKPiAgI2RlZmluZSAgIFBMQU5FX0NU TF9UUklDS0xFX0ZFRURfRElTQUJMRQkoMSA8PCAxNCkKPiAtI2RlZmluZSAgIFBMQU5FX0NUTF9Q TEFORV9HQU1NQV9ESVNBQkxFCQkoMSA8PCAxMykKPiArI2RlZmluZSAgIFBMQU5FX0NUTF9QTEFO RV9HQU1NQV9ESVNBQkxFCQkoMSA8PCAxMykgLyogUHJlLUdMSyAqLwo+ICAjZGVmaW5lICAgUExB TkVfQ1RMX1RJTEVEX01BU0sJCQkoMHg3IDw8IDEwKQo+ICAjZGVmaW5lICAgUExBTkVfQ1RMX1RJ TEVEX0xJTkVBUgkJKCAgMCA8PCAxMCkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9USUxFRF9YCQkJ KCAgMSA8PCAxMCkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9USUxFRF9ZCQkJKCAgNCA8PCAxMCkK PiAgI2RlZmluZSAgIFBMQU5FX0NUTF9USUxFRF9ZRgkJCSggIDUgPDwgMTApCj4gLSNkZWZpbmUg ICBQTEFORV9DVExfQUxQSEFfTUFTSwkJCSgweDMgPDwgNCkKPiArI2RlZmluZSAgIFBMQU5FX0NU TF9BTFBIQV9NQVNLCQkJKDB4MyA8PCA0KSAvKiBQcmUtR0xLICovCj4gICNkZWZpbmUgICBQTEFO RV9DVExfQUxQSEFfRElTQUJMRQkJKCAgMCA8PCA0KQo+ICAjZGVmaW5lICAgUExBTkVfQ1RMX0FM UEhBX1NXX1BSRU1VTFRJUExZCSggIDIgPDwgNCkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9BTFBI QV9IV19QUkVNVUxUSVBMWQkoICAzIDw8IDQpCj4gQEAgLTYzMzIsNiArNjMzMiwxMCBAQCBlbnVt IHsKPiAgI2RlZmluZSAgIFBMQU5FX0NPTE9SX1BJUEVfR0FNTUFfRU5BQkxFCQkoMSA8PCAzMCkK PiAgI2RlZmluZSAgIFBMQU5FX0NPTE9SX1BJUEVfQ1NDX0VOQUJMRQkJKDEgPDwgMjMpCj4gICNk ZWZpbmUgICBQTEFORV9DT0xPUl9QTEFORV9HQU1NQV9ESVNBQkxFCSgxIDw8IDEzKQo+ICsjZGVm aW5lICAgUExBTkVfQ09MT1JfQUxQSEFfTUFTSwkJKDB4MyA8PCA0KQo+ICsjZGVmaW5lICAgUExB TkVfQ09MT1JfQUxQSEFfRElTQUJMRQkJKDAgPDwgNCkKPiArI2RlZmluZSAgIFBMQU5FX0NPTE9S X0FMUEhBX1NXX1BSRU1VTFRJUExZCSgyIDw8IDQpCj4gKyNkZWZpbmUgICBQTEFORV9DT0xPUl9B TFBIQV9IV19QUkVNVUxUSVBMWQkoMyA8PCA0KQo+ICAjZGVmaW5lIF9QTEFORV9CVUZfQ0ZHXzFf QQkJCTB4NzAyN2MKPiAgI2RlZmluZSBfUExBTkVfQlVGX0NGR18yX0EJCQkweDcwMzdjCj4gICNk ZWZpbmUgX1BMQU5FX05WMTJfQlVGX0NGR18xX0EJCTB4NzAyNzgKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gaW5kZXggNzM3ZGUyNTFkMGY4Li4zOTQ1MzI3NmRhZDEgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTM0NjYsNiArMzQ2NiwyMyBA QCBzdGF0aWMgdTMyIHNrbF9wbGFuZV9jdGxfZm9ybWF0KHVpbnQzMl90IHBpeGVsX2Zvcm1hdCkK PiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdTMyIGdsa19wbGFuZV9jdGxfZm9ybWF0 KHVpbnQzMl90IHBpeGVsX2Zvcm1hdCkKPiArewo+ICsJLyogR0xLKyBtb3ZlcyB0aGUgYWxwaGEg bWFzayB0byBhIGRpZmZlcmVudCByZWdpc3RlciAqLwo+ICsJcmV0dXJuIHNrbF9wbGFuZV9jdGxf Zm9ybWF0KHBpeGVsX2Zvcm1hdCkgJiB+UExBTkVfQ1RMX0FMUEhBX01BU0s7CgpJIHRoaW5rIGl0 IHdvdWxkIGJlIGxlc3MgY29uZnVzaW5nIHRvIGV4dHJhY3QgdGhlIGFscGhhIHN0dWZmCmZyb20g c2tsX3BsYW5lX2N0bF9mb3JtYXQoKSBpbnRvIHNrbF9wbGFuZV9jdGxfYWxwaGEoKS4KCkkgZ3Vl c3Mgd2l0aCB0aGF0IHdlIHdvdWxkbid0IGV2ZW4gbmVlZCBnbGtfcGxhbmVfY3RsX2Zvcm1hdCgp PwoKPiArfQo+ICsKPiArc3RhdGljIHUzMiBnbGtfcGxhbmVfY29sb3JfY3RsX2FscGhhKHVpbnQz Ml90IHBpeGVsX2Zvcm1hdCkKPiArewo+ICsJc3dpdGNoIChwaXhlbF9mb3JtYXQpIHsKPiArCWNh c2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoKPiArCWNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4ODoKPiAr CQlyZXR1cm4gUExBTkVfQ09MT1JfQUxQSEFfU1dfUFJFTVVMVElQTFk7Cj4gKwlkZWZhdWx0Ogo+ ICsJCXJldHVybiBQTEFORV9DT0xPUl9BTFBIQV9ESVNBQkxFOwo+ICsJfQo+ICt9Cj4gKwo+ICBz dGF0aWMgdTMyIHNrbF9wbGFuZV9jdGxfdGlsaW5nKHVpbnQ2NF90IGZiX21vZGlmaWVyKQo+ICB7 Cj4gIAlzd2l0Y2ggKGZiX21vZGlmaWVyKSB7Cj4gQEAgLTM1MjIsMTQgKzM1MzksMTYgQEAgdTMy IHNrbF9wbGFuZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs Cj4gIAo+ICAJcGxhbmVfY3RsID0gUExBTkVfQ1RMX0VOQUJMRTsKPiAgCj4gLQlpZiAoIUlTX0dF TUlOSUxBS0UoZGV2X3ByaXYpICYmICFJU19DQU5OT05MQUtFKGRldl9wcml2KSkgewo+ICsJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTAgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpIHsK PiArCQlwbGFuZV9jdGwgfD0gZ2xrX3BsYW5lX2N0bF9mb3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0 KTsKPiArCX0gZWxzZSB7Cj4gIAkJcGxhbmVfY3RsIHw9Cj4gIAkJCVBMQU5FX0NUTF9QSVBFX0dB TU1BX0VOQUJMRSB8Cj4gIAkJCVBMQU5FX0NUTF9QSVBFX0NTQ19FTkFCTEUgfAo+ICAJCQlQTEFO RV9DVExfUExBTkVfR0FNTUFfRElTQUJMRTsKPiArCQlwbGFuZV9jdGwgfD0gc2tsX3BsYW5lX2N0 bF9mb3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0KTsKPiAgCX0KPiAgCj4gLQlwbGFuZV9jdGwgfD0g c2tsX3BsYW5lX2N0bF9mb3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0KTsKPiAgCXBsYW5lX2N0bCB8 PSBza2xfcGxhbmVfY3RsX3RpbGluZyhmYi0+bW9kaWZpZXIpOwo+ICAJcGxhbmVfY3RsIHw9IHNr bF9wbGFuZV9jdGxfcm90YXRpb24ocm90YXRpb24pOwo+ICAKPiBAQCAtMzU0MSw2ICszNTYwLDIw IEBAIHUzMiBza2xfcGxhbmVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAo+ICAJcmV0dXJuIHBsYW5lX2N0bDsKPiAgfQo+ICAKPiArdTMyIGdsa19wbGFuZV9j b2xvcl9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKwkJ CWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gK3sKPiArCWNv bnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Cj4g Kwl1MzIgcGxhbmVfY29sb3JfY3RsID0gMDsKPiArCj4gKwlwbGFuZV9jb2xvcl9jdGwgfD0gUExB TkVfQ09MT1JfUElQRV9HQU1NQV9FTkFCTEU7Cj4gKwlwbGFuZV9jb2xvcl9jdGwgfD0gUExBTkVf Q09MT1JfUElQRV9DU0NfRU5BQkxFOwo+ICsJcGxhbmVfY29sb3JfY3RsIHw9IFBMQU5FX0NPTE9S X1BMQU5FX0dBTU1BX0RJU0FCTEU7Cj4gKwlwbGFuZV9jb2xvcl9jdGwgfD0gZ2xrX3BsYW5lX2Nv bG9yX2N0bF9hbHBoYShmYi0+Zm9ybWF0LT5mb3JtYXQpOwo+ICsKPiArCXJldHVybiBwbGFuZV9j b2xvcl9jdGw7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQKPiAgX19pbnRlbF9kaXNwbGF5X3Jlc3Vt ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUsCj4gQEAgLTg0MjYsNyArODQ1OSw3IEBAIHNreWxha2VfZ2V0X2luaXRpYWxf cGxhbmVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICB7Cj4gIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gLQl1MzIgdmFsLCBiYXNlLCBvZmZzZXQsIHN0 cmlkZV9tdWx0LCB0aWxpbmc7Cj4gKwl1MzIgdmFsLCBiYXNlLCBvZmZzZXQsIHN0cmlkZV9tdWx0 LCB0aWxpbmcsIGFscGhhOwo+ICAJaW50IHBpcGUgPSBjcnRjLT5waXBlOwo+ICAJaW50IGZvdXJj YywgcGl4ZWxfZm9ybWF0Owo+ICAJdW5zaWduZWQgaW50IGFsaWduZWRfaGVpZ2h0Owo+IEBAIC04 NDQ4LDkgKzg0ODEsMTYgQEAgc2t5bGFrZV9nZXRfaW5pdGlhbF9wbGFuZV9jb25maWcoc3RydWN0 IGludGVsX2NydGMgKmNydGMsCj4gIAkJZ290byBlcnJvcjsKPiAgCj4gIAlwaXhlbF9mb3JtYXQg PSB2YWwgJiBQTEFORV9DVExfRk9STUFUX01BU0s7Cj4gKwo+ICsJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gMTAgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpIHsKPiArCQlhbHBoYSA9IEk5 MTVfUkVBRChQTEFORV9DT0xPUl9DVEwocGlwZSwgMCkpOwo+ICsJCWFscGhhICY9IFBMQU5FX0NP TE9SX0FMUEhBX01BU0s7Cj4gKwl9IGVsc2Ugewo+ICsJCWFscGhhID0gdmFsICYgUExBTkVfQ1RM X0FMUEhBX01BU0s7Cj4gKwl9Cj4gKwo+ICAJZm91cmNjID0gc2tsX2Zvcm1hdF90b19mb3VyY2Mo cGl4ZWxfZm9ybWF0LAo+IC0JCQkJICAgICAgdmFsICYgUExBTkVfQ1RMX09SREVSX1JHQlgsCj4g LQkJCQkgICAgICB2YWwgJiBQTEFORV9DVExfQUxQSEFfTUFTSyk7Cj4gKwkJCQkgICAgICB2YWwg JiBQTEFORV9DVExfT1JERVJfUkdCWCwgYWxwaGEpOwo+ICAJZmItPmZvcm1hdCA9IGRybV9mb3Jt YXRfaW5mbyhmb3VyY2MpOwo+ICAKPiAgCXRpbGluZyA9IHZhbCAmIFBMQU5FX0NUTF9USUxFRF9N QVNLOwo+IEBAIC0xMjgzMSw2ICsxMjg3MSwxMSBAQCBpbnRlbF9jaGVja19wcmltYXJ5X3BsYW5l KHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gIAkJc3RhdGUtPmN0bCA9IGk5eHhfcGxhbmVf Y3RsKGNydGNfc3RhdGUsIHN0YXRlKTsKPiAgCX0KPiAgCj4gKwlpZiAoSU5URUxfR0VOKGRldl9w cml2KSA+PSAxMCB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkKPiArCQlzdGF0ZS0+Y29sb3Jf Y3RsID0gZ2xrX3BsYW5lX2NvbG9yX2N0bChjcnRjX3N0YXRlLCBzdGF0ZSk7Cj4gKwllbHNlCj4g KwkJc3RhdGUtPmNvbG9yX2N0bCA9IDA7CgpUaGUgZWxzZSBicmFuY2ggZG9lc24ndCBzZWVtIG5l Y2Vzc2FyeSBzaW5jZSB3ZSBuZXZlciB1c2UgY29sb3JfY3RsCm9uIG90aGVyIHBsYXRmb3Jtcy4K Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBp bmRleCAwMGI0ODg2ODgwNDIuLjkyYmMxMzI1NzAxYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gQEAgLTQyNSw2ICs0MjUsOSBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgewo+ ICAJLyogcGxhbmUgY29udHJvbCByZWdpc3RlciAqLwo+ICAJdTMyIGN0bDsKPiAgCj4gKwkvKiBw bGFuZSBjb2xvciBjb250cm9sIHJlZ2lzdGVyICovCj4gKwl1MzIgY29sb3JfY3RsOwo+ICsKPiAg CS8qCj4gIAkgKiBzY2FsZXJfaWQKPiAgCSAqICAgID0gLTEgOiBub3QgdXNpbmcgYSBzY2FsZXIK PiBAQCAtMTUwNCw2ICsxNTA3LDggQEAgc3RhdGljIGlubGluZSB1MzIgaW50ZWxfcGxhbmVfZ2d0 dF9vZmZzZXQoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKPiAgCXJldHVy biBpOTE1X2dndHRfb2Zmc2V0KHN0YXRlLT52bWEpOwo+ICB9Cj4gIAo+ICt1MzIgZ2xrX3BsYW5l X2NvbG9yX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAr CQkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cj4gIHUzMiBz a2xfcGxhbmVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ ICAJCSAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cj4gIHUz MiBza2xfcGxhbmVfc3RyaWRlKGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQg cGxhbmUsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCA0ZmNmODBjYTkx ZGQuLjE4YjljOThiYzgwMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4g QEAgLTI0MCw2ICsyNDAsNyBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUsCj4gIAllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gcGxhbmUtPmlkOwo+ICAJZW51bSBw aXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKPiAgCXUzMiBwbGFuZV9jdGwgPSBwbGFuZV9zdGF0ZS0+ Y3RsOwo+ICsJdTMyIHBsYW5lX2NvbG9yX2N0bCA9IHBsYW5lX3N0YXRlLT5jb2xvcl9jdGw7CgpI YXZpbmcgYSBsb2NhbCB2YXJpYWJsZSBmb3IgdGhpcyBzZWVtcyByYXRoZXIgcG9pbnRsZXNzLiBQ cm9iYWJseQp5b3UgY291bGQgZG8gYSBwYXRjaCB0byBudWtlIHRoZSBsb2NhbCB2YXJpYWJsZXMg Zm9yIHRoZSBjb250cm9sCnJlZ2lzdGVyIGFzIHdlbGwsIGZvciBhbGwgcGxhdGZvcm1zLgoKQW5v dGhlciB0aGluZyBJIHRoaW5rIHdlIHNob3VsZCBkbyBpcyBtb3ZlIG1vc3Qgb2YgdGhlIHByaW1h cnkgcGxhbmUKc3R1ZmYgZnJvbSBpbnRlbF9kaXNwbGF5LmMgdG8gaW50ZWxfc3ByaXRlLmMsIGFu ZCByZW5hbWUgaW50ZWxfc3ByaXRlLmMKdG8gaW50ZWxfcGxhbmUuYy4gV291bGQgYWxsb3cgdXMg dG8gbWFrZSBtb3JlIHRoaW5ncyBzdGF0aWMsIGFuZAppdCB3b3VsZCBzaHJpbmsgaW50ZWxfZGlz cGxheS5jIGEgbGl0dGxlIGJpdC4KCj4gIAljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9j b2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5Owo+ICAJdTMyIHN1cmZfYWRkciA9IHBs YW5lX3N0YXRlLT5tYWluLm9mZnNldDsKPiAgCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5l X3N0YXRlLT5iYXNlLnJvdGF0aW9uOwo+IEBAIC0yNjMsMTMgKzI2NCw5IEBAIHNrbF91cGRhdGVf cGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiAgCj4gIAlzcGluX2xvY2tfaXJxc2F2 ZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBpcnFmbGFncyk7Cj4gIAo+IC0JaWYgKElTX0dFTUlO SUxBS0UoZGV2X3ByaXYpIHx8IElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSB7Cj4gKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSAxMCB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkKPiAgCQlJ OTE1X1dSSVRFX0ZXKFBMQU5FX0NPTE9SX0NUTChwaXBlLCBwbGFuZV9pZCksCj4gLQkJCSAgICAg IFBMQU5FX0NPTE9SX1BJUEVfR0FNTUFfRU5BQkxFIHwKPiAtCQkJICAgICAgUExBTkVfQ09MT1Jf UElQRV9DU0NfRU5BQkxFIHwKPiAtCQkJICAgICAgUExBTkVfQ09MT1JfUExBTkVfR0FNTUFfRElT QUJMRSk7Cj4gLQl9Cj4gLQo+ICsJCQkgICAgICBwbGFuZV9jb2xvcl9jdGwpOwo+ICAJaWYgKGtl eS0+ZmxhZ3MpIHsKPiAgCQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0tFWVZBTChwaXBlLCBwbGFuZV9p ZCksIGtleS0+bWluX3ZhbHVlKTsKPiAgCQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0tFWU1BWChwaXBl LCBwbGFuZV9pZCksIGtleS0+bWF4X3ZhbHVlKTsKPiBAQCAtOTc4LDYgKzk3NSwxMSBAQCBpbnRl bF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiAgCQlzdGF0 ZS0+Y3RsID0gZzR4X3Nwcml0ZV9jdGwoY3J0Y19zdGF0ZSwgc3RhdGUpOwo+ICAJfQo+ICAKPiAr CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwIHx8IElTX0dFTUlOSUxBS0UoZGV2X3ByaXYp KQo+ICsJCXN0YXRlLT5jb2xvcl9jdGwgPSBnbGtfcGxhbmVfY29sb3JfY3RsKGNydGNfc3RhdGUs IHN0YXRlKTsKPiArCWVsc2UKPiArCQlzdGF0ZS0+Y29sb3JfY3RsID0gMDsKCk5vIG5lZWQgZm9y IHRoZSBlbHNlIGhlcmUgZWl0aGVyLgoKPiArCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtLSAK PiAyLjE0LjEKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=