From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [Intel-gfx] [PATCH 3/4] drm/i915: preparations for enabling P010, P012, P016 formats Date: Thu, 30 Aug 2018 16:52:12 +0300 Message-ID: <20180830135212.GL5565@intel.com> References: <1535632874-29927-1-git-send-email-juhapekka.heikkila@gmail.com> <1535632874-29927-3-git-send-email-juhapekka.heikkila@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1535632874-29927-3-git-send-email-juhapekka.heikkila@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Juha-Pekka Heikkila Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBBdWcgMzAsIDIwMTggYXQgMDM6NDE6MTNQTSArMDMwMCwgSnVoYS1QZWtrYSBIZWlr a2lsYSB3cm90ZToKPiBQcmVwYXJhdGlvbnMgZm9yIGVuYWJsaW5nIFAwMTAsIFAwMTIgYW5kIFAw MTYgZm9ybWF0cy4gVGhlc2UKPiBmb3JtYXRzIHdpbGwgZXh0ZW5kIE5WMTIgZm9yIGxhcmdlciBi aXQgZGVwdGhzLgo+IAo+IChTaGFybWEsIFN3YXRpMik6IHJlbW92ZWQgdW5uZWNlc3NhcnkgY2hl Y2tzLCBjaGFuZ2VkIGRlYnVnIGVycm9yIG1lc3NhZ2UKPiB0byBiZSBtb3JlIGdlbmVyaWMuCj4g Cj4gU2lnbmVkLW9mZi1ieTogSnVoYS1QZWtrYSBIZWlra2lsYSA8anVoYXBla2thLmhlaWtraWxh QGdtYWlsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMg ICAgICAgfCAgMyArLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5l LmMgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICB8 IDQxICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggICAgICAgICAgfCAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMgICAgICAgICAgIHwgMTkgKysrKysrKy0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfc3ByaXRlLmMgICAgICAgfCAxOCArKysrKysrKysrKysrLQo+ICA2IGZpbGVz IGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F0b21pYy5jCj4gaW5kZXggYjA0OTUyYi4uYWI3NmI3MiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4gQEAgLTMzNCw4ICszMzQsNyBAQCBpbnQgaW50 ZWxfYXRvbWljX3NldHVwX3NjYWxlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJCS8qIHNldCBzY2FsZXIgbW9kZSAqLwo+ICAJCWlmICgoSU5URUxfR0VOKGRldl9wcml2 KSA+PSA5KSAmJgo+ICAJCSAgICBwbGFuZV9zdGF0ZSAmJiBwbGFuZV9zdGF0ZS0+YmFzZS5mYiAm Jgo+IC0JCSAgICBwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5mb3JtYXQgPT0KPiAtCQkg ICAgRFJNX0ZPUk1BVF9OVjEyKSB7Cj4gKwkJICAgIGlzX3BsYW5hcl95dXZfZm9ybWF0KHBsYW5l X3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmZvcm1hdCkpIHsKClNpbmNlIHRoZXJlIGlzIC5pc195 dXYgbm93IGl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gc3RpY2sgdGhpcyBpbnRvIHNvbWUKY29tbW9u IHBsYWNlIChkcm1fZm91cmNjLmggcGVyaGFwcykgYXMgc29tZXRoaW5nIGxpa2UKJ2lzX3l1diAm JiBudW1fcGxhbmVzID4gMScKCj4gIAkJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID09IDkgJiYK PiAgCQkJICAgICFJU19HRU1JTklMQUtFKGRldl9wcml2KSAmJgo+ICAJCQkgICAgIUlTX1NLWUxB S0UoZGV2X3ByaXYpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9h dG9taWNfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5j Cj4gaW5kZXggZmE3ZGY1Zi4uZDY0ZDk5MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F0b21pY19wbGFuZS5jCj4gQEAgLTE4NCw3ICsxODQsNyBAQCBpbnQgaW50ZWxfcGxhbmVf YXRvbWljX2NoZWNrX3dpdGhfc3RhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9s ZF9jcnRjXwo+ICAJZWxzZQo+ICAJCWNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMgJj0gfkJJVChp bnRlbF9wbGFuZS0+aWQpOwo+ICAKPiAtCWlmIChzdGF0ZS0+dmlzaWJsZSAmJiBzdGF0ZS0+ZmIt PmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMikKPiArCWlmIChzdGF0ZS0+dmlzaWJs ZSAmJiBpc19wbGFuYXJfeXV2X2Zvcm1hdChzdGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0KSkKPiAg CQljcnRjX3N0YXRlLT5udjEyX3BsYW5lcyB8PSBCSVQoaW50ZWxfcGxhbmUtPmlkKTsKPiAgCWVs c2UKPiAgCQljcnRjX3N0YXRlLT5udjEyX3BsYW5lcyAmPSB+QklUKGludGVsX3BsYW5lLT5pZCk7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDRiYjQ2ZjIuLjQzZWZl YjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTI2NzIsNiAr MjY3MiwxMiBAQCBpbnQgc2tsX2Zvcm1hdF90b19mb3VyY2MoaW50IGZvcm1hdCwgYm9vbCByZ2Jf b3JkZXIsIGJvb2wgYWxwaGEpCj4gIAkJcmV0dXJuIERSTV9GT1JNQVRfUkdCNTY1Owo+ICAJY2Fz ZSBQTEFORV9DVExfRk9STUFUX05WMTI6Cj4gIAkJcmV0dXJuIERSTV9GT1JNQVRfTlYxMjsKPiAr CWNhc2UgUExBTkVfQ1RMX0ZPUk1BVF9QMDEwOgo+ICsJCXJldHVybiBEUk1fRk9STUFUX1AwMTA7 Cj4gKwljYXNlIFBMQU5FX0NUTF9GT1JNQVRfUDAxMjoKPiArCQlyZXR1cm4gRFJNX0ZPUk1BVF9Q MDEyOwo+ICsJY2FzZSBQTEFORV9DVExfRk9STUFUX1AwMTY6Cj4gKwkJcmV0dXJuIERSTV9GT1JN QVRfUDAxNjsKPiAgCWRlZmF1bHQ6Cj4gIAljYXNlIFBMQU5FX0NUTF9GT1JNQVRfWFJHQl84ODg4 Ogo+ICAJCWlmIChyZ2Jfb3JkZXIpIHsKPiBAQCAtMzE4Nyw3ICszMTkzLDcgQEAgaW50IHNrbF9j aGVja19wbGFuZV9zdXJmYWNlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAo+ICAJICogSGFuZGxlIHRoZSBBVVggc3VyZmFjZSBmaXJzdCBzaW5jZQo+ICAJICogdGhl IG1haW4gc3VyZmFjZSBzZXR1cCBkZXBlbmRzIG9uIGl0Lgo+ICAJICovCj4gLQlpZiAoZmItPmZv cm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMikgewo+ICsJaWYgKGlzX3BsYW5hcl95dXZf Zm9ybWF0KGZiLT5mb3JtYXQtPmZvcm1hdCkpIHsKPiAgCQlyZXQgPSBza2xfY2hlY2tfbnYxMl9z dXJmYWNlKGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKTsKPiAgCQlpZiAocmV0KQo+ICAJCQlyZXR1 cm4gcmV0Owo+IEBAIC0zNTExLDYgKzM1MTcsMTIgQEAgc3RhdGljIHUzMiBza2xfcGxhbmVfY3Rs X2Zvcm1hdCh1aW50MzJfdCBwaXhlbF9mb3JtYXQpCj4gIAkJcmV0dXJuIFBMQU5FX0NUTF9GT1JN QVRfWVVWNDIyIHwgUExBTkVfQ1RMX1lVVjQyMl9WWVVZOwo+ICAJY2FzZSBEUk1fRk9STUFUX05W MTI6Cj4gIAkJcmV0dXJuIFBMQU5FX0NUTF9GT1JNQVRfTlYxMjsKPiArCWNhc2UgRFJNX0ZPUk1B VF9QMDEwOgo+ICsJCXJldHVybiBQTEFORV9DVExfRk9STUFUX1AwMTA7Cj4gKwljYXNlIERSTV9G T1JNQVRfUDAxMjoKPiArCQlyZXR1cm4gUExBTkVfQ1RMX0ZPUk1BVF9QMDEyOwo+ICsJY2FzZSBE Uk1fRk9STUFUX1AwMTY6Cj4gKwkJcmV0dXJuIFBMQU5FX0NUTF9GT1JNQVRfUDAxNjsKPiAgCWRl ZmF1bHQ6Cj4gIAkJTUlTU0lOR19DQVNFKHBpeGVsX2Zvcm1hdCk7Cj4gIAl9Cj4gQEAgLTQ4MTIs OCArNDgyNCw3IEBAIHNrbF91cGRhdGVfc2NhbGVyKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLCBib29sIGZvcmNlX2RldGFjaCwKPiAgCW5lZWRfc2NhbGluZyA9IHNyY193ICE9 IGRzdF93IHx8IHNyY19oICE9IGRzdF9oOwo+ICAKPiAgCWlmIChwbGFuZV9zY2FsZXJfY2hlY2sp Cj4gLQkJaWYgKHBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpCj4gLQkJCW5lZWRfc2Nh bGluZyA9IHRydWU7Cj4gKwkJbmVlZF9zY2FsaW5nID0gaXNfcGxhbmFyX3l1dl9mb3JtYXQocGl4 ZWxfZm9ybWF0KTsKPiAgCj4gIAlpZiAoY3J0Y19zdGF0ZS0+eWNiY3I0MjAgJiYgc2NhbGVyX3Vz ZXIgPT0gU0tMX0NSVENfSU5ERVgpCj4gIAkJbmVlZF9zY2FsaW5nID0gdHJ1ZTsKPiBAQCAtNDg1 NCw5ICs0ODY1LDkgQEAgc2tsX3VwZGF0ZV9zY2FsZXIoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsIGJvb2wgZm9yY2VfZGV0YWNoLAo+ICAJCXJldHVybiAwOwo+ICAJfQo+ICAK PiAtCWlmIChwbGFuZV9zY2FsZXJfY2hlY2sgJiYgcGl4ZWxfZm9ybWF0ID09IERSTV9GT1JNQVRf TlYxMiAmJgo+ICsJaWYgKHBsYW5lX3NjYWxlcl9jaGVjayAmJiBpc19wbGFuYXJfeXV2X2Zvcm1h dChwaXhlbF9mb3JtYXQpICYmCj4gIAkgICAgKHNyY19oIDwgU0tMX01JTl9ZVVZfNDIwX1NSQ19I IHx8IHNyY193IDwgU0tMX01JTl9ZVVZfNDIwX1NSQ19XKSkgewo+IC0JCURSTV9ERUJVR19LTVMo Ik5WMTI6IHNyYyBkaW1lbnNpb25zIG5vdCBtZXRcbiIpOwo+ICsJCURSTV9ERUJVR19LTVMoInBs YW5hciB5dXY6IHNyYyBkaW1lbnNpb25zIG5vdCBtZXRcbiIpOwo+ICAJCXJldHVybiAtRUlOVkFM Owo+ICAJfQo+ICAKPiBAQCAtNDk1OSw2ICs0OTcwLDkgQEAgc3RhdGljIGludCBza2xfdXBkYXRl X3NjYWxlcl9wbGFuZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCWNh c2UgRFJNX0ZPUk1BVF9VWVZZOgo+ICAJY2FzZSBEUk1fRk9STUFUX1ZZVVk6Cj4gIAljYXNlIERS TV9GT1JNQVRfTlYxMjoKPiArCWNhc2UgRFJNX0ZPUk1BVF9QMDEwOgo+ICsJY2FzZSBEUk1fRk9S TUFUX1AwMTI6Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAxNjoKPiAgCQlicmVhazsKPiAgCWRlZmF1 bHQ6Cj4gIAkJRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVkOiVzXSBGQjolZCB1bnN1cHBvcnRlZCBz Y2FsaW5nIGZvcm1hdCAweCV4XG4iLAo+IEBAIC0xMzE4Miw3ICsxMzE5Niw3IEBAIHNrbF9tYXhf c2NhbGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gIAkgKiAgICAgICAgICAgIG9y Cj4gIAkgKiAgICBjZGNsay9jcnRjX2Nsb2NrCj4gIAkgKi8KPiAtCW11bHQgPSBwaXhlbF9mb3Jt YXQgPT0gRFJNX0ZPUk1BVF9OVjEyID8gMiA6IDM7Cj4gKwltdWx0ID0gaXNfcGxhbmFyX3l1dl9m b3JtYXQocGl4ZWxfZm9ybWF0KSA/IDIgOiAzOwo+ICAJdG1wY2xrMSA9ICgxIDw8IDE2KSAqIG11 bHQgLSAxOwo+ICAJdG1wY2xrMiA9ICgxIDw8IDgpICogKChtYXhfZG90Y2xrIDw8IDgpIC8gY3J0 Y19jbG9jayk7Cj4gIAltYXhfc2NhbGUgPSBtaW4odG1wY2xrMSwgdG1wY2xrMik7Cj4gQEAgLTEz NDEzLDYgKzEzNDI3LDkgQEAgc3RhdGljIGJvb2wgc2tsX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9y dGVkKHN0cnVjdCBkcm1fcGxhbmUgKl9wbGFuZSwKPiAgCWNhc2UgRFJNX0ZPUk1BVF9VWVZZOgo+ ICAJY2FzZSBEUk1fRk9STUFUX1ZZVVk6Cj4gIAljYXNlIERSTV9GT1JNQVRfTlYxMjoKPiArCWNh c2UgRFJNX0ZPUk1BVF9QMDEwOgo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTI6Cj4gKwljYXNlIERS TV9GT1JNQVRfUDAxNjoKPiAgCQlpZiAobW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJ TEVEKQo+ICAJCQlyZXR1cm4gdHJ1ZTsKPiAgCQkvKiBmYWxsIHRocm91Z2ggKi8KPiBAQCAtMTQ1 NTYsNiArMTQ1NzMsMTYgQEAgc3RhdGljIGludCBpbnRlbF9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVj dCBpbnRlbF9mcmFtZWJ1ZmZlciAqaW50ZWxfZmIsCj4gIAkJCWdvdG8gZXJyOwo+ICAJCX0KPiAg CQlicmVhazsKPiArCWNhc2UgRFJNX0ZPUk1BVF9QMDEwOgo+ICsJY2FzZSBEUk1fRk9STUFUX1Aw MTI6Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAxNjoKPiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA8IDEwICYmICFJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+ICsJCQlEUk1fREVCVUdfS01T KCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVzXG4iLAo+ICsJCQkJICAgICAgZHJtX2dldF9m b3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0LAo+ICsJCQkJCQkJICAmZm9ybWF0X25h bWUpKTsKPiArCQkJZ290byBlcnI7Cj4gKwkJfQo+ICsJCWJyZWFrOwo+ICAJZGVmYXVsdDoKPiAg CQlEUk1fREVCVUdfS01TKCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVzXG4iLAo+ICAJCQkg ICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kLT5waXhlbF9mb3JtYXQsICZmb3JtYXRf bmFtZSkpOwo+IEBAIC0xNDU2OCw3ICsxNDU5NSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZnJhbWVi dWZmZXJfaW5pdChzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiLAo+ICAKPiAgCWRy bV9oZWxwZXJfbW9kZV9maWxsX2ZiX3N0cnVjdCgmZGV2X3ByaXYtPmRybSwgZmIsIG1vZGVfY21k KTsKPiAgCj4gLQlpZiAoZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMiAmJgo+ ICsJaWYgKGlzX3BsYW5hcl95dXZfZm9ybWF0KGZiLT5mb3JtYXQtPmZvcm1hdCkgJiYKPiAgCSAg ICAoZmItPndpZHRoIDwgU0tMX01JTl9ZVVZfNDIwX1NSQ19XIHx8Cj4gIAkgICAgIGZiLT5oZWln aHQgPCBTS0xfTUlOX1lVVl80MjBfU1JDX0ggfHwKPiAgCSAgICAgKGZiLT53aWR0aCAlIDQpICE9 IDAgfHwgKGZiLT5oZWlnaHQgJSA0KSAhPSAwKSkgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gaW5kZXggZjU3MzEyMS4uYjQ3MDFjYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gQEAgLTIxMTQsNiArMjExNCw3IEBAIGJvb2wgaW50ZWxfc2R2b19pbml0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCj4gIAo+ICAvKiBpbnRlbF9zcHJpdGUuYyAqLwo+ ICtib29sIGlzX3BsYW5hcl95dXZfZm9ybWF0KHVpbnQzMl90IHBpeGVsZm9ybWF0KTsKPiAgaW50 IGludGVsX3VzZWNzX3RvX3NjYW5saW5lcyhjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSwKPiAgCQkJICAgICBpbnQgdXNlY3MpOwo+ICBzdHJ1Y3QgaW50ZWxfcGxh bmUgKmludGVsX3Nwcml0ZV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IGQ5OWU1ZmEuLmUxMjkyYjIg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAtMzk0Miw3ICszOTQyLDcgQEAgc2ts X2RkYl9nZXRfaHdfcGxhbmVfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMSkKPiAgCQl2YWwyID0gSTkxNV9SRUFE KFBMQU5FX05WMTJfQlVGX0NGRyhwaXBlLCBwbGFuZV9pZCkpOwo+ICAKPiAtCWlmIChmb3VyY2Mg PT0gRFJNX0ZPUk1BVF9OVjEyKSB7Cj4gKwlpZiAoaXNfcGxhbmFyX3l1dl9mb3JtYXQoZm91cmNj KSkgewo+ICAJCXNrbF9kZGJfZW50cnlfaW5pdF9mcm9tX2h3KGRldl9wcml2LAo+ICAJCQkJCSAg ICZkZGItPnBsYW5lW3BpcGVdW3BsYW5lX2lkXSwgdmFsMik7Cj4gIAkJc2tsX2RkYl9lbnRyeV9p bml0X2Zyb21faHcoZGV2X3ByaXYsCj4gQEAgLTQxNTAsNyArNDE1MCw3IEBAIHNrbF9wbGFuZV9y ZWxhdGl2ZV9kYXRhX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwK PiAgCj4gIAlpZiAoaW50ZWxfcGxhbmUtPmlkID09IFBMQU5FX0NVUlNPUikKPiAgCQlyZXR1cm4g MDsKPiAtCWlmIChwbGFuZSA9PSAxICYmIGZvcm1hdCAhPSBEUk1fRk9STUFUX05WMTIpCj4gKwlp ZiAocGxhbmUgPT0gMSAmJiAhaXNfcGxhbmFyX3l1dl9mb3JtYXQoZm9ybWF0KSkKPiAgCQlyZXR1 cm4gMDsKPiAgCj4gIAkvKgo+IEBAIC00MTYyLDcgKzQxNjIsNyBAQCBza2xfcGxhbmVfcmVsYXRp dmVfZGF0YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4gIAlo ZWlnaHQgPSBkcm1fcmVjdF9oZWlnaHQoJmludGVsX3BzdGF0ZS0+YmFzZS5zcmMpID4+IDE2Owo+ ICAKPiAgCS8qIFVWIHBsYW5lIGRvZXMgMS8yIHBpeGVsIHN1Yi1zYW1wbGluZyAqLwo+IC0JaWYg KHBsYW5lID09IDEgJiYgZm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMikgewo+ICsJaWYgKHBsYW5l ID09IDEgJiYgaXNfcGxhbmFyX3l1dl9mb3JtYXQoZm9ybWF0KSkgewo+ICAJCXdpZHRoIC89IDI7 Cj4gIAkJaGVpZ2h0IC89IDI7Cj4gIAl9Cj4gQEAgLTQyMjksNyArNDIyOSw3IEBAIHNrbF9kZGJf bWluX2FsbG9jKGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZSwgY29uc3QgaW50 IHBsYW5lKQo+ICAJCXJldHVybiAwOwo+ICAKPiAgCS8qIEZvciBwYWNrZWQgZm9ybWF0cywgYW5k IHV2LXBsYW5lLCByZXR1cm4gMCAqLwo+IC0JaWYgKHBsYW5lID09IDEgJiYgZmItPmZvcm1hdC0+ Zm9ybWF0ICE9IERSTV9GT1JNQVRfTlYxMikKPiArCWlmIChwbGFuZSA9PSAxICYmICFpc19wbGFu YXJfeXV2X2Zvcm1hdChmYi0+Zm9ybWF0LT5mb3JtYXQpKQo+ICAJCXJldHVybiAwOwo+ICAKPiAg CS8qIEZvciBOb24gWS10aWxlIHJldHVybiA4LWJsb2NrcyAqLwo+IEBAIC00MjQ3LDcgKzQyNDcs NyBAQCBza2xfZGRiX21pbl9hbGxvYyhjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3Rh dGUsIGNvbnN0IGludCBwbGFuZSkKPiAgCXNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJmludGVsX3Bz dGF0ZS0+YmFzZS5zcmMpID4+IDE2Owo+ICAJc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJmludGVs X3BzdGF0ZS0+YmFzZS5zcmMpID4+IDE2Owo+ICAKPiAtCS8qIEhhbHZlIFVWIHBsYW5lIHdpZHRo IGFuZCBoZWlnaHQgZm9yIE5WMTIgKi8KPiArCS8qIEhhbHZlIFVWIHBsYW5lIHdpZHRoIGFuZCBo ZWlnaHQgZm9yIE5WMTIgYW5kIG90aGVyIHBsYW5hciB5dXYgKi8KPiAgCWlmIChwbGFuZSA9PSAx KSB7Cj4gIAkJc3JjX3cgLz0gMjsKPiAgCQlzcmNfaCAvPSAyOwo+IEBAIC00NTI2LDggKzQ1MjYs OCBAQCBza2xfY29tcHV0ZV9wbGFuZV93bV9wYXJhbXMoY29uc3Qgc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ICAJCXJldHVybiAwOwo+ICAKPiAgCS8qIG9ubHkgTlYxMiBmb3Jt YXQgaGFzIHR3byBwbGFuZXMgKi8KPiAtCWlmIChwbGFuZV9pZCA9PSAxICYmIGZiLT5mb3JtYXQt PmZvcm1hdCAhPSBEUk1fRk9STUFUX05WMTIpIHsKPiAtCQlEUk1fREVCVUdfS01TKCJOb24gTlYx MiBmb3JtYXQgaGF2ZSBzaW5nbGUgcGxhbmVcbiIpOwo+ICsJaWYgKHBsYW5lX2lkID09IDEgJiYg IWlzX3BsYW5hcl95dXZfZm9ybWF0KGZiLT5mb3JtYXQtPmZvcm1hdCkpIHsKPiArCQlEUk1fREVC VUdfS01TKCJOb24gcGxhbmFyIGZvcm1hdCBoYXZlIHNpbmdsZSBwbGFuZVxuIik7Cj4gIAkJcmV0 dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+IEBAIC00NTM4LDcgKzQ1MzgsNyBAQCBza2xfY29tcHV0 ZV9wbGFuZV93bV9wYXJhbXMoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJd3AtPnhfdGlsZWQgPSBmYi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1hfVElM RUQ7Cj4gIAl3cC0+cmNfc3VyZmFjZSA9IGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0Rf WV9USUxFRF9DQ1MgfHwKPiAgCQkJIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZf VElMRURfQ0NTOwo+IC0Jd3AtPmlzX3BsYW5hciA9IGZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1f Rk9STUFUX05WMTI7Cj4gKwl3cC0+aXNfcGxhbmFyID0gaXNfcGxhbmFyX3l1dl9mb3JtYXQoZmIt PmZvcm1hdC0+Zm9ybWF0KTsKPiAgCj4gIAlpZiAocGxhbmUtPmlkID09IFBMQU5FX0NVUlNPUikg ewo+ICAJCXdwLT53aWR0aCA9IGludGVsX3BzdGF0ZS0+YmFzZS5jcnRjX3c7Cj4gQEAgLTQ4MTMs OCArNDgxMyw3IEBAIHNrbF9jb21wdXRlX3dtX2xldmVscyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCXJldHVybiByZXQ7Cj4gIAl9Cj4gIAo+IC0JaWYgKGlu dGVsX3BzdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyKQo+ IC0JCXdtLT5pc19wbGFuYXIgPSB0cnVlOwo+ICsJd20tPmlzX3BsYW5hciA9IGlzX3BsYW5hcl95 dXZfZm9ybWF0KGludGVsX3BzdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5mb3JtYXQpOwo+ICAKPiAg CXJldHVybiAwOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCA5 NjAwY2NmLi4xZjEyNzZmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Nwcml0ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBA QCAtNDEsNiArNDEsMTkgQEAKPiAgI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgo+ICAjaW5jbHVk ZSAiaTkxNV9kcnYuaCIKPiAgCj4gK2Jvb2wgaXNfcGxhbmFyX3l1dl9mb3JtYXQodWludDMyX3Qg cGl4ZWxmb3JtYXQpCj4gK3sKPiArCXN3aXRjaCAocGl4ZWxmb3JtYXQpIHsKPiArCWNhc2UgRFJN X0ZPUk1BVF9OVjEyOgo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTA6Cj4gKwljYXNlIERSTV9GT1JN QVRfUDAxMjoKPiArCWNhc2UgRFJNX0ZPUk1BVF9QMDE2Ogo+ICsJCXJldHVybiB0cnVlOwo+ICsJ ZGVmYXVsdDoKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gK30KPiArCj4gIGludCBpbnRlbF91 c2Vjc190b19zY2FubGluZXMoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUsCj4gIAkJCSAgICAgaW50IHVzZWNzKQo+ICB7Cj4gQEAgLTEwNDEsNyArMTA1NCw3IEBA IGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKPiAgCQlzcmMtPnkyID0gKHNyY195ICsgc3JjX2gpIDw8IDE2Owo+ICAKPiAgCQlpZiAo ZmItPmZvcm1hdC0+aXNfeXV2ICYmCj4gLSAgICAJCSAgICBmYi0+Zm9ybWF0LT5mb3JtYXQgIT0g RFJNX0ZPUk1BVF9OVjEyICYmCj4gKwkJICAgICFpc19wbGFuYXJfeXV2X2Zvcm1hdChmYi0+Zm9y bWF0LT5mb3JtYXQpICYmCj4gIAkJICAgIChzcmNfeCAlIDIgfHwgc3JjX3cgJSAyKSkgewo+ICAJ CQlEUk1fREVCVUdfS01TKCJzcmMgeC93ICgldSwgJXUpIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAy IGZvciBZVVYgcGxhbmVzXG4iLAo+ICAJCQkJICAgICAgc3JjX3gsIHNyY193KTsKPiBAQCAtMTQy MCw2ICsxNDMzLDkgQEAgc3RhdGljIGJvb2wgc2tsX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVk KHN0cnVjdCBkcm1fcGxhbmUgKl9wbGFuZSwKPiAgCWNhc2UgRFJNX0ZPUk1BVF9VWVZZOgo+ICAJ Y2FzZSBEUk1fRk9STUFUX1ZZVVk6Cj4gIAljYXNlIERSTV9GT1JNQVRfTlYxMjoKPiArCWNhc2Ug RFJNX0ZPUk1BVF9QMDEwOgo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTI6Cj4gKwljYXNlIERSTV9G T1JNQVRfUDAxNjoKPiAgCQlpZiAobW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVE KQo+ICAJCQlyZXR1cm4gdHJ1ZTsKPiAgCQkvKiBmYWxsIHRocm91Z2ggKi8KPiAtLSAKPiAyLjcu NAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK