From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3] drm/i915/glk: Refactor handling of PLANE_COLOR_CTL for GLK+ Date: Fri, 10 Nov 2017 21:20:56 +0200 Message-ID: <20171110192056.GF10981@intel.com> References: <20171102230049.10952-1-james.ausmus@intel.com> <20171103204354.5139-1-james.ausmus@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8788F6EB29 for ; Fri, 10 Nov 2017 19:21:00 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20171103204354.5139-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 T24gRnJpLCBOb3YgMDMsIDIwMTcgYXQgMDE6NDM6NTRQTSAtMDcwMCwgSmFtZXMgQXVzbXVzIHdy b3RlOgo+IFNpbmNlIEdMSywgc29tZSBwbGFuZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGhhdmUg bW92ZWQgdG8gdGhlCj4gUExBTkVfQ09MT1JfQ1RMIHJlZ2lzdGVyLiBSZWZhY3RvciBoYW5kbGlu ZyBvZiB0aGUgcmVnaXN0ZXIgdG8gd29yayBsaWtlCj4gUExBTkVfQ1RMLiBUaGlzIGFsc28gYWxs b3dzIHVzIHRvIGZpeCB0aGUgc2V0L3JlYWQgb2YgdGhlIHBsYW5lIEFscGhhCj4gTW9kZSBmb3Ig R0xLKy4KPiAKPiB2MjogQWRqdXN0IG9yZGVyaW5nIG9mIHBsYXRmb3JtIGNoZWNrcyB0byBiZSBu ZXdlc3QtPm9sZGVzdCwgZHJvcAo+IHJlZHVuZGFudCBjb21tZW50IGFib3V0IGFscGhhIGJsZW5k aW5nLiAoVmlsbGUpCj4gCj4gdjM6IE1vdmUgQWxwaGEgTW9kZSBiaXRzIG91dCBvZiBza2xfcGxh bmVfY3RsX2Zvcm1hdCBpbnRvCj4gc2tsX3BsYW5lX2N0bF9hbHBoYSwgYW5kIGRyb3AgZ2xrX3Bs YW5lX2N0bF9mb3JtYXQsIGRyb3AgaW5pdGlhbGl6YXRpb24KPiBvZiBzdGF0ZS0+Y29sb3JfY3Rs IG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IHVzZSBpdCwgYW5kIGRyb3AgY29sb3JfY3RsCj4gbG9j YWwgdmFyLiAoVmlsbGUpCj4gCj4gU2lnbmVkLW9mZi1ieTogSmFtZXMgQXVzbXVzIDxqYW1lcy5h dXNtdXNAaW50ZWwuY29tPgo+IENjOiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVs LmNvbT4KPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgMTIgKysr Ky0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDcxICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCAgICAgfCAgNSArKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRl LmMgIHwgMTEgKysrLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgMjMg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggZjBmOGY2MDU5 NjUyLi5lY2Q2YjIzNmUwMDUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtNjI2 Myw3ICs2MjYzLDcgQEAgZW51bSB7Cj4gICNkZWZpbmUgX1BMQU5FX0NUTF8yX0EJCQkJMHg3MDI4 MAo+ICAjZGVmaW5lIF9QTEFORV9DVExfM19BCQkJCTB4NzAzODAKPiAgI2RlZmluZSAgIFBMQU5F X0NUTF9FTkFCTEUJCQkoMSA8PCAzMSkKPiAtI2RlZmluZSAgIFBMQU5FX0NUTF9QSVBFX0dBTU1B X0VOQUJMRQkJKDEgPDwgMzApCj4gKyNkZWZpbmUgICBQTEFORV9DVExfUElQRV9HQU1NQV9FTkFC TEUJCSgxIDw8IDMwKSAgIC8qIFByZS1HTEsgKi8KPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9GT1JN QVRfTUFTSwkJCSgweGYgPDwgMjQpCj4gICNkZWZpbmUgICBQTEFORV9DVExfRk9STUFUX1lVVjQy MgkJKCAgMCA8PCAyNCkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9GT1JNQVRfTlYxMgkJCSggIDEg PDwgMjQpCj4gQEAgLTYyNzMsNyArNjI3Myw3IEBAIGVudW0gewo+ICAjZGVmaW5lICAgUExBTkVf Q1RMX0ZPUk1BVF9BWVVWCQkJKCAgOCA8PCAyNCkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9GT1JN QVRfSU5ERVhFRAkJKCAxMiA8PCAyNCkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9GT1JNQVRfUkdC XzU2NQkJKCAxNCA8PCAyNCkKPiAtI2RlZmluZSAgIFBMQU5FX0NUTF9QSVBFX0NTQ19FTkFCTEUJ CSgxIDw8IDIzKQo+ICsjZGVmaW5lICAgUExBTkVfQ1RMX1BJUEVfQ1NDX0VOQUJMRQkJKDEgPDwg MjMpIC8qIFByZS1HTEsgKi8KPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9LRVlfRU5BQkxFX01BU0sJ CSgweDMgPDwgMjEpCj4gICNkZWZpbmUgICBQTEFORV9DVExfS0VZX0VOQUJMRV9TT1VSQ0UJCSgg IDEgPDwgMjEpCj4gICNkZWZpbmUgICBQTEFORV9DVExfS0VZX0VOQUJMRV9ERVNUSU5BVElPTgko ICAyIDw8IDIxKQo+IEBAIC02Mjg2LDEzICs2Mjg2LDEzIEBAIGVudW0gewo+ICAjZGVmaW5lICAg UExBTkVfQ1RMX1lVVjQyMl9WWVVZCQkJKCAgMyA8PCAxNikKPiAgI2RlZmluZSAgIFBMQU5FX0NU TF9ERUNPTVBSRVNTSU9OX0VOQUJMRQkoMSA8PCAxNSkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9U UklDS0xFX0ZFRURfRElTQUJMRQkoMSA8PCAxNCkKPiAtI2RlZmluZSAgIFBMQU5FX0NUTF9QTEFO RV9HQU1NQV9ESVNBQkxFCQkoMSA8PCAxMykKPiArI2RlZmluZSAgIFBMQU5FX0NUTF9QTEFORV9H QU1NQV9ESVNBQkxFCQkoMSA8PCAxMykgLyogUHJlLUdMSyAqLwo+ICAjZGVmaW5lICAgUExBTkVf Q1RMX1RJTEVEX01BU0sJCQkoMHg3IDw8IDEwKQo+ICAjZGVmaW5lICAgUExBTkVfQ1RMX1RJTEVE X0xJTkVBUgkJKCAgMCA8PCAxMCkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9USUxFRF9YCQkJKCAg MSA8PCAxMCkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9USUxFRF9ZCQkJKCAgNCA8PCAxMCkKPiAg I2RlZmluZSAgIFBMQU5FX0NUTF9USUxFRF9ZRgkJCSggIDUgPDwgMTApCj4gLSNkZWZpbmUgICBQ TEFORV9DVExfQUxQSEFfTUFTSwkJCSgweDMgPDwgNCkKPiArI2RlZmluZSAgIFBMQU5FX0NUTF9B TFBIQV9NQVNLCQkJKDB4MyA8PCA0KSAvKiBQcmUtR0xLICovCj4gICNkZWZpbmUgICBQTEFORV9D VExfQUxQSEFfRElTQUJMRQkJKCAgMCA8PCA0KQo+ICAjZGVmaW5lICAgUExBTkVfQ1RMX0FMUEhB X1NXX1BSRU1VTFRJUExZCSggIDIgPDwgNCkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9BTFBIQV9I V19QUkVNVUxUSVBMWQkoICAzIDw8IDQpCj4gQEAgLTYzMzIsNiArNjMzMiwxMCBAQCBlbnVtIHsK PiAgI2RlZmluZSAgIFBMQU5FX0NPTE9SX1BJUEVfR0FNTUFfRU5BQkxFCQkoMSA8PCAzMCkKPiAg I2RlZmluZSAgIFBMQU5FX0NPTE9SX1BJUEVfQ1NDX0VOQUJMRQkJKDEgPDwgMjMpCj4gICNkZWZp bmUgICBQTEFORV9DT0xPUl9QTEFORV9HQU1NQV9ESVNBQkxFCSgxIDw8IDEzKQo+ICsjZGVmaW5l ICAgUExBTkVfQ09MT1JfQUxQSEFfTUFTSwkJKDB4MyA8PCA0KQo+ICsjZGVmaW5lICAgUExBTkVf Q09MT1JfQUxQSEFfRElTQUJMRQkJKDAgPDwgNCkKPiArI2RlZmluZSAgIFBMQU5FX0NPTE9SX0FM UEhBX1NXX1BSRU1VTFRJUExZCSgyIDw8IDQpCj4gKyNkZWZpbmUgICBQTEFORV9DT0xPUl9BTFBI QV9IV19QUkVNVUxUSVBMWQkoMyA8PCA0KQo+ICAjZGVmaW5lIF9QTEFORV9CVUZfQ0ZHXzFfQQkJ CTB4NzAyN2MKPiAgI2RlZmluZSBfUExBTkVfQlVGX0NGR18yX0EJCQkweDcwMzdjCj4gICNkZWZp bmUgX1BMQU5FX05WMTJfQlVGX0NGR18xX0EJCTB4NzAyNzgKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gaW5kZXggNzM3ZGUyNTFkMGY4Li4yMTRjMGMxMTkwMDIgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTM0MzYsMTcgKzM0MzYsMTAgQEAg c3RhdGljIHUzMiBza2xfcGxhbmVfY3RsX2Zvcm1hdCh1aW50MzJfdCBwaXhlbF9mb3JtYXQpCj4g IAkJcmV0dXJuIFBMQU5FX0NUTF9GT1JNQVRfWFJHQl84ODg4IHwgUExBTkVfQ1RMX09SREVSX1JH Qlg7Cj4gIAljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6Cj4gIAkJcmV0dXJuIFBMQU5FX0NUTF9G T1JNQVRfWFJHQl84ODg4Owo+IC0JLyoKPiAtCSAqIFhYWDogRm9yIEFSQkcvQUJHUiBmb3JtYXRz IHdlIGRlZmF1bHQgdG8gZXhwZWN0aW5nIHNjYW5vdXQgYnVmZmVycwo+IC0JICogdG8gYmUgYWxy ZWFkeSBwcmUtbXVsdGlwbGllZC4gV2UgbmVlZCB0byBhZGQgYSBrbm9iIChvciBhIGRpZmZlcmVu dAo+IC0JICogRFJNX0ZPUk1BVCkgZm9yIHVzZXItc3BhY2UgdG8gY29uZmlndXJlIHRoYXQuCj4g LQkgKi8KPiAgCWNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoKPiAtCQlyZXR1cm4gUExBTkVfQ1RM X0ZPUk1BVF9YUkdCXzg4ODggfCBQTEFORV9DVExfT1JERVJfUkdCWCB8Cj4gLQkJCVBMQU5FX0NU TF9BTFBIQV9TV19QUkVNVUxUSVBMWTsKPiArCQlyZXR1cm4gUExBTkVfQ1RMX0ZPUk1BVF9YUkdC Xzg4ODggfCBQTEFORV9DVExfT1JERVJfUkdCWDsKPiAgCWNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4 ODoKPiAtCQlyZXR1cm4gUExBTkVfQ1RMX0ZPUk1BVF9YUkdCXzg4ODggfAo+IC0JCQlQTEFORV9D VExfQUxQSEFfU1dfUFJFTVVMVElQTFk7Cj4gKwkJcmV0dXJuIFBMQU5FX0NUTF9GT1JNQVRfWFJH Ql84ODg4OwoKSSBiZWxpZXZlIHNvbWUgb2YgdGhlIGNhc2VzIGFyZSBub3cgcmV0dXJuaW5nIGlk ZW50aWNhbCB2YWx1ZXMuIENvdWxkCmNvbGxhcHNlIHRob3NlIHRvZ2V0aGVyLgoKT3RoZXJ3aXNl IGxndG0gc28KUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+Cgo+ICAJY2FzZSBEUk1fRk9STUFUX1hSR0IyMTAxMDEwOgo+ICAJCXJldHVy biBQTEFORV9DVExfRk9STUFUX1hSR0JfMjEwMTAxMDsKPiAgCWNhc2UgRFJNX0ZPUk1BVF9YQkdS MjEwMTAxMDoKPiBAQCAtMzQ2Niw2ICszNDU5LDMzIEBAIHN0YXRpYyB1MzIgc2tsX3BsYW5lX2N0 bF9mb3JtYXQodWludDMyX3QgcGl4ZWxfZm9ybWF0KQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4g Ky8qCj4gKyAqIFhYWDogRm9yIEFSQkcvQUJHUiBmb3JtYXRzIHdlIGRlZmF1bHQgdG8gZXhwZWN0 aW5nIHNjYW5vdXQgYnVmZmVycwo+ICsgKiB0byBiZSBhbHJlYWR5IHByZS1tdWx0aXBsaWVkLiBX ZSBuZWVkIHRvIGFkZCBhIGtub2IgKG9yIGEgZGlmZmVyZW50Cj4gKyAqIERSTV9GT1JNQVQpIGZv ciB1c2VyLXNwYWNlIHRvIGNvbmZpZ3VyZSB0aGF0Lgo+ICsgKi8KPiArc3RhdGljIHUzMiBza2xf cGxhbmVfY3RsX2FscGhhKHVpbnQzMl90IHBpeGVsX2Zvcm1hdCkKPiArewo+ICsJc3dpdGNoIChw aXhlbF9mb3JtYXQpIHsKPiArCWNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoKPiArCWNhc2UgRFJN X0ZPUk1BVF9BUkdCODg4ODoKPiArCQlyZXR1cm4gUExBTkVfQ1RMX0FMUEhBX1NXX1BSRU1VTFRJ UExZOwo+ICsJZGVmYXVsdDoKPiArCQlyZXR1cm4gUExBTkVfQ1RMX0FMUEhBX0RJU0FCTEU7Cj4g Kwl9Cj4gK30KPiArCj4gK3N0YXRpYyB1MzIgZ2xrX3BsYW5lX2NvbG9yX2N0bF9hbHBoYSh1aW50 MzJfdCBwaXhlbF9mb3JtYXQpCj4gK3sKPiArCXN3aXRjaCAocGl4ZWxfZm9ybWF0KSB7Cj4gKwlj YXNlIERSTV9GT1JNQVRfQUJHUjg4ODg6Cj4gKwljYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6Cj4g KwkJcmV0dXJuIFBMQU5FX0NPTE9SX0FMUEhBX1NXX1BSRU1VTFRJUExZOwo+ICsJZGVmYXVsdDoK PiArCQlyZXR1cm4gUExBTkVfQ09MT1JfQUxQSEFfRElTQUJMRTsKPiArCX0KPiArfQo+ICsKPiAg c3RhdGljIHUzMiBza2xfcGxhbmVfY3RsX3RpbGluZyh1aW50NjRfdCBmYl9tb2RpZmllcikKPiAg ewo+ICAJc3dpdGNoIChmYl9tb2RpZmllcikgewo+IEBAIC0zNTIyLDcgKzM1NDIsOCBAQCB1MzIg c2tsX3BsYW5lX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK PiAgCj4gIAlwbGFuZV9jdGwgPSBQTEFORV9DVExfRU5BQkxFOwo+ICAKPiAtCWlmICghSVNfR0VN SU5JTEFLRShkZXZfcHJpdikgJiYgIUlTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSB7Cj4gKwlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA8IDEwICYmICFJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+ ICsJCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX2FscGhhKGZiLT5mb3JtYXQtPmZvcm1hdCk7 Cj4gIAkJcGxhbmVfY3RsIHw9Cj4gIAkJCVBMQU5FX0NUTF9QSVBFX0dBTU1BX0VOQUJMRSB8Cj4g IAkJCVBMQU5FX0NUTF9QSVBFX0NTQ19FTkFCTEUgfAo+IEBAIC0zNTQxLDYgKzM1NjIsMjAgQEAg dTMyIHNrbF9wbGFuZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCj4gIAlyZXR1cm4gcGxhbmVfY3RsOwo+ICB9Cj4gIAo+ICt1MzIgZ2xrX3BsYW5lX2NvbG9y X2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCQkJY29u c3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiArewo+ICsJY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKPiArCXUz MiBwbGFuZV9jb2xvcl9jdGwgPSAwOwo+ICsKPiArCXBsYW5lX2NvbG9yX2N0bCB8PSBQTEFORV9D T0xPUl9QSVBFX0dBTU1BX0VOQUJMRTsKPiArCXBsYW5lX2NvbG9yX2N0bCB8PSBQTEFORV9DT0xP Ul9QSVBFX0NTQ19FTkFCTEU7Cj4gKwlwbGFuZV9jb2xvcl9jdGwgfD0gUExBTkVfQ09MT1JfUExB TkVfR0FNTUFfRElTQUJMRTsKPiArCXBsYW5lX2NvbG9yX2N0bCB8PSBnbGtfcGxhbmVfY29sb3Jf Y3RsX2FscGhhKGZiLT5mb3JtYXQtPmZvcm1hdCk7Cj4gKwo+ICsJcmV0dXJuIHBsYW5lX2NvbG9y X2N0bDsKPiArfQo+ICsKPiAgc3RhdGljIGludAo+ICBfX2ludGVsX2Rpc3BsYXlfcmVzdW1lKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSwKPiBAQCAtODQyNiw3ICs4NDYxLDcgQEAgc2t5bGFrZV9nZXRfaW5pdGlhbF9wbGFu ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCXUzMiB2YWwsIGJhc2UsIG9mZnNldCwgc3RyaWRl X211bHQsIHRpbGluZzsKPiArCXUzMiB2YWwsIGJhc2UsIG9mZnNldCwgc3RyaWRlX211bHQsIHRp bGluZywgYWxwaGE7Cj4gIAlpbnQgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAlpbnQgZm91cmNjLCBw aXhlbF9mb3JtYXQ7Cj4gIAl1bnNpZ25lZCBpbnQgYWxpZ25lZF9oZWlnaHQ7Cj4gQEAgLTg0NDgs OSArODQ4MywxNiBAQCBza3lsYWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKPiAgCQlnb3RvIGVycm9yOwo+ICAKPiAgCXBpeGVsX2Zvcm1hdCA9IHZh bCAmIFBMQU5FX0NUTF9GT1JNQVRfTUFTSzsKPiArCj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSAxMCB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+ICsJCWFscGhhID0gSTkxNV9S RUFEKFBMQU5FX0NPTE9SX0NUTChwaXBlLCAwKSk7Cj4gKwkJYWxwaGEgJj0gUExBTkVfQ09MT1Jf QUxQSEFfTUFTSzsKPiArCX0gZWxzZSB7Cj4gKwkJYWxwaGEgPSB2YWwgJiBQTEFORV9DVExfQUxQ SEFfTUFTSzsKPiArCX0KPiArCj4gIAlmb3VyY2MgPSBza2xfZm9ybWF0X3RvX2ZvdXJjYyhwaXhl bF9mb3JtYXQsCj4gLQkJCQkgICAgICB2YWwgJiBQTEFORV9DVExfT1JERVJfUkdCWCwKPiAtCQkJ CSAgICAgIHZhbCAmIFBMQU5FX0NUTF9BTFBIQV9NQVNLKTsKPiArCQkJCSAgICAgIHZhbCAmIFBM QU5FX0NUTF9PUkRFUl9SR0JYLCBhbHBoYSk7Cj4gIAlmYi0+Zm9ybWF0ID0gZHJtX2Zvcm1hdF9p bmZvKGZvdXJjYyk7Cj4gIAo+ICAJdGlsaW5nID0gdmFsICYgUExBTkVfQ1RMX1RJTEVEX01BU0s7 Cj4gQEAgLTEyODMxLDYgKzEyODczLDkgQEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ICAJCXN0YXRlLT5jdGwgPSBpOXh4X3BsYW5lX2N0bChj cnRjX3N0YXRlLCBzdGF0ZSk7Cj4gIAl9Cj4gIAo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg Pj0gMTAgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4gKwkJc3RhdGUtPmNvbG9yX2N0bCA9 IGdsa19wbGFuZV9jb2xvcl9jdGwoY3J0Y19zdGF0ZSwgc3RhdGUpOwo+ICsKPiAgCXJldHVybiAw Owo+ICB9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggMDBiNDg4Njg4MDQy Li45MmJjMTMyNTcwMWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC00MjUs NiArNDI1LDkgQEAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlIHsKPiAgCS8qIHBsYW5lIGNvbnRy b2wgcmVnaXN0ZXIgKi8KPiAgCXUzMiBjdGw7Cj4gIAo+ICsJLyogcGxhbmUgY29sb3IgY29udHJv bCByZWdpc3RlciAqLwo+ICsJdTMyIGNvbG9yX2N0bDsKPiArCj4gIAkvKgo+ICAJICogc2NhbGVy X2lkCj4gIAkgKiAgICA9IC0xIDogbm90IHVzaW5nIGEgc2NhbGVyCj4gQEAgLTE1MDQsNiArMTUw Nyw4IEBAIHN0YXRpYyBpbmxpbmUgdTMyIGludGVsX3BsYW5lX2dndHRfb2Zmc2V0KGNvbnN0IHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4gIAlyZXR1cm4gaTkxNV9nZ3R0X29mZnNl dChzdGF0ZS0+dm1hKTsKPiAgfQo+ICAKPiArdTMyIGdsa19wbGFuZV9jb2xvcl9jdGwoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKwkJCWNvbnN0IHN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwo+ICB1MzIgc2tsX3BsYW5lX2N0bChjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkgIGNvbnN0IHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwo+ICB1MzIgc2tsX3BsYW5lX3N0cmlk ZShjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50IHBsYW5lLAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gaW5kZXggNGZjZjgwY2E5MWRkLi5jZTYxNTcwNDk4MmEg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IEBAIC0yNjMsMTMgKzI2Myw5 IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiAgCj4gIAlz cGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBpcnFmbGFncyk7Cj4gIAo+ IC0JaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpIHx8IElTX0NBTk5PTkxBS0UoZGV2X3ByaXYp KSB7Cj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCB8fCBJU19HRU1JTklMQUtFKGRl dl9wcml2KSkKPiAgCQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0NPTE9SX0NUTChwaXBlLCBwbGFuZV9p ZCksCj4gLQkJCSAgICAgIFBMQU5FX0NPTE9SX1BJUEVfR0FNTUFfRU5BQkxFIHwKPiAtCQkJICAg ICAgUExBTkVfQ09MT1JfUElQRV9DU0NfRU5BQkxFIHwKPiAtCQkJICAgICAgUExBTkVfQ09MT1Jf UExBTkVfR0FNTUFfRElTQUJMRSk7Cj4gLQl9Cj4gLQo+ICsJCQkgICAgICBwbGFuZV9zdGF0ZS0+ Y29sb3JfY3RsKTsKPiAgCWlmIChrZXktPmZsYWdzKSB7Cj4gIAkJSTkxNV9XUklURV9GVyhQTEFO RV9LRVlWQUwocGlwZSwgcGxhbmVfaWQpLCBrZXktPm1pbl92YWx1ZSk7Cj4gIAkJSTkxNV9XUklU RV9GVyhQTEFORV9LRVlNQVgocGlwZSwgcGxhbmVfaWQpLCBrZXktPm1heF92YWx1ZSk7Cj4gQEAg LTk3OCw2ICs5NzQsOSBAQCBpbnRlbF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGludGVsX3Bs YW5lICpwbGFuZSwKPiAgCQlzdGF0ZS0+Y3RsID0gZzR4X3Nwcml0ZV9jdGwoY3J0Y19zdGF0ZSwg c3RhdGUpOwo+ICAJfQo+ICAKPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwIHx8IElT X0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+ICsJCXN0YXRlLT5jb2xvcl9jdGwgPSBnbGtfcGxhbmVf Y29sb3JfY3RsKGNydGNfc3RhdGUsIHN0YXRlKTsKPiArCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAK PiAtLSAKPiAyLjE0LjEKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=