From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH 3/4] drm/i915: preparations for enabling P010, P012, P016 formats Date: Tue, 4 Sep 2018 13:16:17 +0200 Message-ID: <0f68c898-7b00-f443-08a7-ac11898f77d9@linux.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: In-Reply-To: <1535632874-29927-3-git-send-email-juhapekka.heikkila@gmail.com> Content-Language: en-US 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 , intel-gfx@lists.freedesktop.org Cc: Sharma Swati2 , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T3AgMzAtMDgtMTggb20gMTQ6NDEgc2NocmVlZiBKdWhhLVBla2thIEhlaWtraWxhOgo+IFByZXBh cmF0aW9ucyBmb3IgZW5hYmxpbmcgUDAxMCwgUDAxMiBhbmQgUDAxNiBmb3JtYXRzLiBUaGVzZQo+ IGZvcm1hdHMgd2lsbCBleHRlbmQgTlYxMiBmb3IgbGFyZ2VyIGJpdCBkZXB0aHMuCj4KPiAoU2hh cm1hLCBTd2F0aTIpOiByZW1vdmVkIHVubmVjZXNzYXJ5IGNoZWNrcywgY2hhbmdlZCBkZWJ1ZyBl cnJvciBtZXNzYWdlCj4gdG8gYmUgbW9yZSBnZW5lcmljLgo+Cj4gU2lnbmVkLW9mZi1ieTogSnVo YS1QZWtrYSBIZWlra2lsYSA8anVoYXBla2thLmhlaWtraWxhQGdtYWlsLmNvbT4KPiAtLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgICAgICAgfCAgMyArLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMgfCAgMiArLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICB8IDQxICsrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAg ICAgfCAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICAgIHwg MTkgKysrKysrKy0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMg ICAgICAgfCAxOCArKysrKysrKysrKysrLQo+ICA2IGZpbGVzIGNoYW5nZWQsIDYzIGluc2VydGlv bnMoKyksIDIxIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMK PiBpbmRleCBiMDQ5NTJiLi5hYjc2YjcyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRv bWljLmMKPiBAQCAtMzM0LDggKzMzNCw3IEBAIGludCBpbnRlbF9hdG9taWNfc2V0dXBfc2NhbGVy cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJLyogc2V0IHNjYWxlciBt b2RlICovCj4gIAkJaWYgKChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpICYmCj4gIAkJICAgIHBs YW5lX3N0YXRlICYmIHBsYW5lX3N0YXRlLT5iYXNlLmZiICYmCj4gLQkJICAgIHBsYW5lX3N0YXRl LT5iYXNlLmZiLT5mb3JtYXQtPmZvcm1hdCA9PQo+IC0JCSAgICBEUk1fRk9STUFUX05WMTIpIHsK PiArCQkgICAgaXNfcGxhbmFyX3l1dl9mb3JtYXQocGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1h dC0+Zm9ybWF0KSkgewo+ICAJCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA9PSA5ICYmCj4gIAkJ CSAgICAhSVNfR0VNSU5JTEFLRShkZXZfcHJpdikgJiYKPiAgCQkJICAgICFJU19TS1lMQUtFKGRl dl9wcml2KSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWlj X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+IGlu ZGV4IGZhN2RmNWYuLmQ2NGQ5OTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYXRvbWljX3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9h dG9taWNfcGxhbmUuYwo+IEBAIC0xODQsNyArMTg0LDcgQEAgaW50IGludGVsX3BsYW5lX2F0b21p Y19jaGVja193aXRoX3N0YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0 Y18KPiAgCWVsc2UKPiAgCQljcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzICY9IH5CSVQoaW50ZWxf cGxhbmUtPmlkKTsKPiAgCj4gLQlpZiAoc3RhdGUtPnZpc2libGUgJiYgc3RhdGUtPmZiLT5mb3Jt YXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpCj4gKwlpZiAoc3RhdGUtPnZpc2libGUgJiYg aXNfcGxhbmFyX3l1dl9mb3JtYXQoc3RhdGUtPmZiLT5mb3JtYXQtPmZvcm1hdCkpCj4gIAkJY3J0 Y19zdGF0ZS0+bnYxMl9wbGFuZXMgfD0gQklUKGludGVsX3BsYW5lLT5pZCk7Cj4gIAllbHNlCj4g IAkJY3J0Y19zdGF0ZS0+bnYxMl9wbGFuZXMgJj0gfkJJVChpbnRlbF9wbGFuZS0+aWQpOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA0YmI0NmYyLi40M2VmZWI0IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0yNjcyLDYgKzI2NzIs MTIgQEAgaW50IHNrbF9mb3JtYXRfdG9fZm91cmNjKGludCBmb3JtYXQsIGJvb2wgcmdiX29yZGVy LCBib29sIGFscGhhKQo+ICAJCXJldHVybiBEUk1fRk9STUFUX1JHQjU2NTsKPiAgCWNhc2UgUExB TkVfQ1RMX0ZPUk1BVF9OVjEyOgo+ICAJCXJldHVybiBEUk1fRk9STUFUX05WMTI7Cj4gKwljYXNl IFBMQU5FX0NUTF9GT1JNQVRfUDAxMDoKPiArCQlyZXR1cm4gRFJNX0ZPUk1BVF9QMDEwOwo+ICsJ Y2FzZSBQTEFORV9DVExfRk9STUFUX1AwMTI6Cj4gKwkJcmV0dXJuIERSTV9GT1JNQVRfUDAxMjsK PiArCWNhc2UgUExBTkVfQ1RMX0ZPUk1BVF9QMDE2Ogo+ICsJCXJldHVybiBEUk1fRk9STUFUX1Aw MTY7Cj4gIAlkZWZhdWx0Ogo+ICAJY2FzZSBQTEFORV9DVExfRk9STUFUX1hSR0JfODg4ODoKPiAg CQlpZiAocmdiX29yZGVyKSB7Cj4gQEAgLTMxODcsNyArMzE5Myw3IEBAIGludCBza2xfY2hlY2tf cGxhbmVfc3VyZmFjZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK PiAgCSAqIEhhbmRsZSB0aGUgQVVYIHN1cmZhY2UgZmlyc3Qgc2luY2UKPiAgCSAqIHRoZSBtYWlu IHN1cmZhY2Ugc2V0dXAgZGVwZW5kcyBvbiBpdC4KPiAgCSAqLwo+IC0JaWYgKGZiLT5mb3JtYXQt PmZvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpIHsKPiArCWlmIChpc19wbGFuYXJfeXV2X2Zvcm1h dChmYi0+Zm9ybWF0LT5mb3JtYXQpKSB7Cj4gIAkJcmV0ID0gc2tsX2NoZWNrX252MTJfc3VyZmFj ZShjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSk7Cj4gIAkJaWYgKHJldCkKPiAgCQkJcmV0dXJuIHJl dDsKPiBAQCAtMzUxMSw2ICszNTE3LDEyIEBAIHN0YXRpYyB1MzIgc2tsX3BsYW5lX2N0bF9mb3Jt YXQodWludDMyX3QgcGl4ZWxfZm9ybWF0KQo+ICAJCXJldHVybiBQTEFORV9DVExfRk9STUFUX1lV VjQyMiB8IFBMQU5FX0NUTF9ZVVY0MjJfVllVWTsKPiAgCWNhc2UgRFJNX0ZPUk1BVF9OVjEyOgo+ ICAJCXJldHVybiBQTEFORV9DVExfRk9STUFUX05WMTI7Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAx MDoKPiArCQlyZXR1cm4gUExBTkVfQ1RMX0ZPUk1BVF9QMDEwOwo+ICsJY2FzZSBEUk1fRk9STUFU X1AwMTI6Cj4gKwkJcmV0dXJuIFBMQU5FX0NUTF9GT1JNQVRfUDAxMjsKPiArCWNhc2UgRFJNX0ZP Uk1BVF9QMDE2Ogo+ICsJCXJldHVybiBQTEFORV9DVExfRk9STUFUX1AwMTY7Cj4gIAlkZWZhdWx0 Ogo+ICAJCU1JU1NJTkdfQ0FTRShwaXhlbF9mb3JtYXQpOwo+ICAJfQo+IEBAIC00ODEyLDggKzQ4 MjQsNyBAQCBza2xfdXBkYXRlX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwgYm9vbCBmb3JjZV9kZXRhY2gsCj4gIAluZWVkX3NjYWxpbmcgPSBzcmNfdyAhPSBkc3Rf dyB8fCBzcmNfaCAhPSBkc3RfaDsKPiAgCj4gIAlpZiAocGxhbmVfc2NhbGVyX2NoZWNrKQo+IC0J CWlmIChwaXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyKQo+IC0JCQluZWVkX3NjYWxpbmcg PSB0cnVlOwo+ICsJCW5lZWRfc2NhbGluZyA9IGlzX3BsYW5hcl95dXZfZm9ybWF0KHBpeGVsX2Zv cm1hdCk7ClNob3VsZCB0aGlzIGJlIHw9LCBvciB3ZSBkaXNhYmxlIGFsbCBzY2FsaW5nIGV2ZXI/ Cgp+TWFhcnRlbgo+ICAKPiAgCWlmIChjcnRjX3N0YXRlLT55Y2JjcjQyMCAmJiBzY2FsZXJfdXNl ciA9PSBTS0xfQ1JUQ19JTkRFWCkKPiAgCQluZWVkX3NjYWxpbmcgPSB0cnVlOwo+IEBAIC00ODU0 LDkgKzQ4NjUsOSBAQCBza2xfdXBkYXRlX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwgYm9vbCBmb3JjZV9kZXRhY2gsCj4gIAkJcmV0dXJuIDA7Cj4gIAl9Cj4gIAo+ IC0JaWYgKHBsYW5lX3NjYWxlcl9jaGVjayAmJiBwaXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9O VjEyICYmCj4gKwlpZiAocGxhbmVfc2NhbGVyX2NoZWNrICYmIGlzX3BsYW5hcl95dXZfZm9ybWF0 KHBpeGVsX2Zvcm1hdCkgJiYKPiAgCSAgICAoc3JjX2ggPCBTS0xfTUlOX1lVVl80MjBfU1JDX0gg fHwgc3JjX3cgPCBTS0xfTUlOX1lVVl80MjBfU1JDX1cpKSB7Cj4gLQkJRFJNX0RFQlVHX0tNUygi TlYxMjogc3JjIGRpbWVuc2lvbnMgbm90IG1ldFxuIik7Cj4gKwkJRFJNX0RFQlVHX0tNUygicGxh bmFyIHl1djogc3JjIGRpbWVuc2lvbnMgbm90IG1ldFxuIik7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7 Cj4gIAl9Cj4gIAo+IEBAIC00OTU5LDYgKzQ5NzAsOSBAQCBzdGF0aWMgaW50IHNrbF91cGRhdGVf c2NhbGVyX3BsYW5lKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJY2Fz ZSBEUk1fRk9STUFUX1VZVlk6Cj4gIAljYXNlIERSTV9GT1JNQVRfVllVWToKPiAgCWNhc2UgRFJN X0ZPUk1BVF9OVjEyOgo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTA6Cj4gKwljYXNlIERSTV9GT1JN QVRfUDAxMjoKPiArCWNhc2UgRFJNX0ZPUk1BVF9QMDE2Ogo+ICAJCWJyZWFrOwo+ICAJZGVmYXVs dDoKPiAgCQlEUk1fREVCVUdfS01TKCJbUExBTkU6JWQ6JXNdIEZCOiVkIHVuc3VwcG9ydGVkIHNj YWxpbmcgZm9ybWF0IDB4JXhcbiIsCj4gQEAgLTEzMTgyLDcgKzEzMTk2LDcgQEAgc2tsX21heF9z Y2FsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiAgCSAqICAgICAgICAgICAgb3IK PiAgCSAqICAgIGNkY2xrL2NydGNfY2xvY2sKPiAgCSAqLwo+IC0JbXVsdCA9IHBpeGVsX2Zvcm1h dCA9PSBEUk1fRk9STUFUX05WMTIgPyAyIDogMzsKPiArCW11bHQgPSBpc19wbGFuYXJfeXV2X2Zv cm1hdChwaXhlbF9mb3JtYXQpID8gMiA6IDM7Cj4gIAl0bXBjbGsxID0gKDEgPDwgMTYpICogbXVs dCAtIDE7Cj4gIAl0bXBjbGsyID0gKDEgPDwgOCkgKiAoKG1heF9kb3RjbGsgPDwgOCkgLyBjcnRj X2Nsb2NrKTsKPiAgCW1heF9zY2FsZSA9IG1pbih0bXBjbGsxLCB0bXBjbGsyKTsKPiBAQCAtMTM0 MTMsNiArMTM0MjcsOSBAQCBzdGF0aWMgYm9vbCBza2xfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0 ZWQoc3RydWN0IGRybV9wbGFuZSAqX3BsYW5lLAo+ICAJY2FzZSBEUk1fRk9STUFUX1VZVlk6Cj4g IAljYXNlIERSTV9GT1JNQVRfVllVWToKPiAgCWNhc2UgRFJNX0ZPUk1BVF9OVjEyOgo+ICsJY2Fz ZSBEUk1fRk9STUFUX1AwMTA6Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAxMjoKPiArCWNhc2UgRFJN X0ZPUk1BVF9QMDE2Ogo+ICAJCWlmIChtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElM RUQpCj4gIAkJCXJldHVybiB0cnVlOwo+ICAJCS8qIGZhbGwgdGhyb3VnaCAqLwo+IEBAIC0xNDU1 Niw2ICsxNDU3MywxNiBAQCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0 IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYiwKPiAgCQkJZ290byBlcnI7Cj4gIAkJfQo+ICAJ CWJyZWFrOwo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTA6Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAx MjoKPiArCWNhc2UgRFJNX0ZPUk1BVF9QMDE2Ogo+ICsJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgMTAgJiYgIUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4gKwkJCURSTV9ERUJVR19LTVMo InVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsCj4gKwkJCQkgICAgICBkcm1fZ2V0X2Zv cm1hdF9uYW1lKG1vZGVfY21kLT5waXhlbF9mb3JtYXQsCj4gKwkJCQkJCQkgICZmb3JtYXRfbmFt ZSkpOwo+ICsJCQlnb3RvIGVycjsKPiArCQl9Cj4gKwkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+ICAJ CURSTV9ERUJVR19LTVMoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsCj4gIAkJCSAg ICAgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9u YW1lKSk7Cj4gQEAgLTE0NTY4LDcgKzE0NTk1LDcgQEAgc3RhdGljIGludCBpbnRlbF9mcmFtZWJ1 ZmZlcl9pbml0KHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqaW50ZWxfZmIsCj4gIAo+ICAJZHJt X2hlbHBlcl9tb2RlX2ZpbGxfZmJfc3RydWN0KCZkZXZfcHJpdi0+ZHJtLCBmYiwgbW9kZV9jbWQp Owo+ICAKPiAtCWlmIChmYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyICYmCj4g KwlpZiAoaXNfcGxhbmFyX3l1dl9mb3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0KSAmJgo+ICAJICAg IChmYi0+d2lkdGggPCBTS0xfTUlOX1lVVl80MjBfU1JDX1cgfHwKPiAgCSAgICAgZmItPmhlaWdo dCA8IFNLTF9NSU5fWVVWXzQyMF9TUkNfSCB8fAo+ICAJICAgICAoZmItPndpZHRoICUgNCkgIT0g MCB8fCAoZmItPmhlaWdodCAlIDQpICE9IDApKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiBpbmRleCBmNTczMTIxLi5iNDcwMWNhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiBAQCAtMjExNCw2ICsyMTE0LDcgQEAgYm9vbCBpbnRlbF9zZHZvX2luaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAKPiAgCj4gIC8qIGludGVsX3Nwcml0ZS5jICovCj4g K2Jvb2wgaXNfcGxhbmFyX3l1dl9mb3JtYXQodWludDMyX3QgcGl4ZWxmb3JtYXQpOwo+ICBpbnQg aW50ZWxfdXNlY3NfdG9fc2NhbmxpbmVzKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlLAo+ICAJCQkgICAgIGludCB1c2Vjcyk7Cj4gIHN0cnVjdCBpbnRlbF9wbGFu ZSAqaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gaW5kZXggZDk5ZTVmYS4uZTEyOTJiMiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBAIC0zOTQyLDcgKzM5NDIsNyBAQCBza2xf ZGRiX2dldF9od19wbGFuZV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQo+ICAJCXZhbDIgPSBJOTE1X1JFQUQo UExBTkVfTlYxMl9CVUZfQ0ZHKHBpcGUsIHBsYW5lX2lkKSk7Cj4gIAo+IC0JaWYgKGZvdXJjYyA9 PSBEUk1fRk9STUFUX05WMTIpIHsKPiArCWlmIChpc19wbGFuYXJfeXV2X2Zvcm1hdChmb3VyY2Mp KSB7Cj4gIAkJc2tsX2RkYl9lbnRyeV9pbml0X2Zyb21faHcoZGV2X3ByaXYsCj4gIAkJCQkJICAg JmRkYi0+cGxhbmVbcGlwZV1bcGxhbmVfaWRdLCB2YWwyKTsKPiAgCQlza2xfZGRiX2VudHJ5X2lu aXRfZnJvbV9odyhkZXZfcHJpdiwKPiBAQCAtNDE1MCw3ICs0MTUwLDcgQEAgc2tsX3BsYW5lX3Jl bGF0aXZlX2RhdGFfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ ICAKPiAgCWlmIChpbnRlbF9wbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09SKQo+ICAJCXJldHVybiAw Owo+IC0JaWYgKHBsYW5lID09IDEgJiYgZm9ybWF0ICE9IERSTV9GT1JNQVRfTlYxMikKPiArCWlm IChwbGFuZSA9PSAxICYmICFpc19wbGFuYXJfeXV2X2Zvcm1hdChmb3JtYXQpKQo+ICAJCXJldHVy biAwOwo+ICAKPiAgCS8qCj4gQEAgLTQxNjIsNyArNDE2Miw3IEBAIHNrbF9wbGFuZV9yZWxhdGl2 ZV9kYXRhX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiAgCWhl aWdodCA9IGRybV9yZWN0X2hlaWdodCgmaW50ZWxfcHN0YXRlLT5iYXNlLnNyYykgPj4gMTY7Cj4g IAo+ICAJLyogVVYgcGxhbmUgZG9lcyAxLzIgcGl4ZWwgc3ViLXNhbXBsaW5nICovCj4gLQlpZiAo cGxhbmUgPT0gMSAmJiBmb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyKSB7Cj4gKwlpZiAocGxhbmUg PT0gMSAmJiBpc19wbGFuYXJfeXV2X2Zvcm1hdChmb3JtYXQpKSB7Cj4gIAkJd2lkdGggLz0gMjsK PiAgCQloZWlnaHQgLz0gMjsKPiAgCX0KPiBAQCAtNDIyOSw3ICs0MjI5LDcgQEAgc2tsX2RkYl9t aW5fYWxsb2MoY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlLCBjb25zdCBpbnQg cGxhbmUpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJLyogRm9yIHBhY2tlZCBmb3JtYXRzLCBhbmQg dXYtcGxhbmUsIHJldHVybiAwICovCj4gLQlpZiAocGxhbmUgPT0gMSAmJiBmYi0+Zm9ybWF0LT5m b3JtYXQgIT0gRFJNX0ZPUk1BVF9OVjEyKQo+ICsJaWYgKHBsYW5lID09IDEgJiYgIWlzX3BsYW5h cl95dXZfZm9ybWF0KGZiLT5mb3JtYXQtPmZvcm1hdCkpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJ LyogRm9yIE5vbiBZLXRpbGUgcmV0dXJuIDgtYmxvY2tzICovCj4gQEAgLTQyNDcsNyArNDI0Nyw3 IEBAIHNrbF9kZGJfbWluX2FsbG9jKGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0 ZSwgY29uc3QgaW50IHBsYW5lKQo+ICAJc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmaW50ZWxfcHN0 YXRlLT5iYXNlLnNyYykgPj4gMTY7Cj4gIAlzcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmaW50ZWxf cHN0YXRlLT5iYXNlLnNyYykgPj4gMTY7Cj4gIAo+IC0JLyogSGFsdmUgVVYgcGxhbmUgd2lkdGgg YW5kIGhlaWdodCBmb3IgTlYxMiAqLwo+ICsJLyogSGFsdmUgVVYgcGxhbmUgd2lkdGggYW5kIGhl aWdodCBmb3IgTlYxMiBhbmQgb3RoZXIgcGxhbmFyIHl1diAqLwo+ICAJaWYgKHBsYW5lID09IDEp IHsKPiAgCQlzcmNfdyAvPSAyOwo+ICAJCXNyY19oIC89IDI7Cj4gQEAgLTQ1MjYsOCArNDUyNiw4 IEBAIHNrbF9jb21wdXRlX3BsYW5lX3dtX3BhcmFtcyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJLyogb25seSBOVjEyIGZvcm1h dCBoYXMgdHdvIHBsYW5lcyAqLwo+IC0JaWYgKHBsYW5lX2lkID09IDEgJiYgZmItPmZvcm1hdC0+ Zm9ybWF0ICE9IERSTV9GT1JNQVRfTlYxMikgewo+IC0JCURSTV9ERUJVR19LTVMoIk5vbiBOVjEy IGZvcm1hdCBoYXZlIHNpbmdsZSBwbGFuZVxuIik7Cj4gKwlpZiAocGxhbmVfaWQgPT0gMSAmJiAh aXNfcGxhbmFyX3l1dl9mb3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0KSkgewo+ICsJCURSTV9ERUJV R19LTVMoIk5vbiBwbGFuYXIgZm9ybWF0IGhhdmUgc2luZ2xlIHBsYW5lXG4iKTsKPiAgCQlyZXR1 cm4gLUVJTlZBTDsKPiAgCX0KPiAgCj4gQEAgLTQ1MzgsNyArNDUzOCw3IEBAIHNrbF9jb21wdXRl X3BsYW5lX3dtX3BhcmFtcyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gIAl3cC0+eF90aWxlZCA9IGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxF RDsKPiAgCXdwLT5yY19zdXJmYWNlID0gZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9Z X1RJTEVEX0NDUyB8fAo+ICAJCQkgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9U SUxFRF9DQ1M7Cj4gLQl3cC0+aXNfcGxhbmFyID0gZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9G T1JNQVRfTlYxMjsKPiArCXdwLT5pc19wbGFuYXIgPSBpc19wbGFuYXJfeXV2X2Zvcm1hdChmYi0+ Zm9ybWF0LT5mb3JtYXQpOwo+ICAKPiAgCWlmIChwbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09SKSB7 Cj4gIAkJd3AtPndpZHRoID0gaW50ZWxfcHN0YXRlLT5iYXNlLmNydGNfdzsKPiBAQCAtNDgxMyw4 ICs0ODEzLDcgQEAgc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiAgCQkJcmV0dXJuIHJldDsKPiAgCX0KPiAgCj4gLQlpZiAoaW50 ZWxfcHN0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpCj4g LQkJd20tPmlzX3BsYW5hciA9IHRydWU7Cj4gKwl3bS0+aXNfcGxhbmFyID0gaXNfcGxhbmFyX3l1 dl9mb3JtYXQoaW50ZWxfcHN0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmZvcm1hdCk7Cj4gIAo+ICAJ cmV0dXJuIDA7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IDk2 MDBjY2YuLjFmMTI3NmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IEBA IC00MSw2ICs0MSwxOSBAQAo+ICAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+Cj4gICNpbmNsdWRl ICJpOTE1X2Rydi5oIgo+ICAKPiArYm9vbCBpc19wbGFuYXJfeXV2X2Zvcm1hdCh1aW50MzJfdCBw aXhlbGZvcm1hdCkKPiArewo+ICsJc3dpdGNoIChwaXhlbGZvcm1hdCkgewo+ICsJY2FzZSBEUk1f Rk9STUFUX05WMTI6Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAxMDoKPiArCWNhc2UgRFJNX0ZPUk1B VF9QMDEyOgo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTY6Cj4gKwkJcmV0dXJuIHRydWU7Cj4gKwlk ZWZhdWx0Ogo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArfQo+ICsKPiAgaW50IGludGVsX3Vz ZWNzX3RvX3NjYW5saW5lcyhjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSwKPiAgCQkJICAgICBpbnQgdXNlY3MpCj4gIHsKPiBAQCAtMTA0MSw3ICsxMDU0LDcgQEAg aW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAo+ICAJCXNyYy0+eTIgPSAoc3JjX3kgKyBzcmNfaCkgPDwgMTY7Cj4gIAo+ICAJCWlmIChm Yi0+Zm9ybWF0LT5pc195dXYgJiYKPiAtICAgIAkJICAgIGZiLT5mb3JtYXQtPmZvcm1hdCAhPSBE Uk1fRk9STUFUX05WMTIgJiYKPiArCQkgICAgIWlzX3BsYW5hcl95dXZfZm9ybWF0KGZiLT5mb3Jt YXQtPmZvcm1hdCkgJiYKPiAgCQkgICAgKHNyY194ICUgMiB8fCBzcmNfdyAlIDIpKSB7Cj4gIAkJ CURSTV9ERUJVR19LTVMoInNyYyB4L3cgKCV1LCAldSkgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDIg Zm9yIFlVViBwbGFuZXNcbiIsCj4gIAkJCQkgICAgICBzcmNfeCwgc3JjX3cpOwo+IEBAIC0xNDIw LDYgKzE0MzMsOSBAQCBzdGF0aWMgYm9vbCBza2xfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQo c3RydWN0IGRybV9wbGFuZSAqX3BsYW5lLAo+ICAJY2FzZSBEUk1fRk9STUFUX1VZVlk6Cj4gIAlj YXNlIERSTV9GT1JNQVRfVllVWToKPiAgCWNhc2UgRFJNX0ZPUk1BVF9OVjEyOgo+ICsJY2FzZSBE Uk1fRk9STUFUX1AwMTA6Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAxMjoKPiArCWNhc2UgRFJNX0ZP Uk1BVF9QMDE2Ogo+ICAJCWlmIChtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQp Cj4gIAkJCXJldHVybiB0cnVlOwo+ICAJCS8qIGZhbGwgdGhyb3VnaCAqLwoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=