From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Swati2" Subject: Re: [PATCH v2 3/4] drm/i915: preparations for enabling P010, P012, P016 formats Date: Tue, 21 Aug 2018 19:17:10 +0530 Message-ID: <47e3246e-bdd8-c6f1-77d9-a202315f03bc@intel.com> References: <1528802198-856-1-git-send-email-juhapekka.heikkila@gmail.com> <1528802198-856-4-git-send-email-juhapekka.heikkila@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5B2AE6E1CF for ; Tue, 21 Aug 2018 13:47:13 +0000 (UTC) In-Reply-To: <1528802198-856-4-git-send-email-juhapekka.heikkila@gmail.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Juha-Pekka Heikkila , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SGkgSnVoYSwKClNob3VsZG4ndCB0aGUgZm9sbG93aW5nIERSTV9ERUJVR19LTVMKCkRSTV9ERUJV R19LTVMoIk5WMTI6IHNyYyBkaW1lbnNpb25zIG5vdCBtZXRcbiIpOwoKYmUgbWFkZSBnZW5lcmFs aXplZCBhbmQgbm90IHNwZWNpZmljIHRvIE5WMTI/CgoKT24gMTItSnVuLTE4IDQ6NDYgUE0sIEp1 aGEtUGVra2EgSGVpa2tpbGEgd3JvdGU6Cj4gUHJlcGFyYXRpb25zIGZvciBlbmFibGluZyBQMDEw LCBQMDEyIGFuZCBQMDE2IGZvcm1hdHMuIFRoZXNlCj4gZm9ybWF0cyB3aWxsIGV4dGVuZCBOVjEy IGZvciBsYXJnZXIgYml0IGRlcHRocy4KPgo+IFNpZ25lZC1vZmYtYnk6IEp1aGEtUGVra2EgSGVp a2tpbGEgPGp1aGFwZWtrYS5oZWlra2lsYUBnbWFpbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyAgICAgICB8ICAzICstCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYyB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICB8IDQ2ICsrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgIHwgIDEg Kwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgICAgfCAxOSArKysr KystLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgICAgICB8 IDIxICsrKysrKysrKysrKystCj4gICA2IGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyks IDIwIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiBpbmRl eCA2MWRkYjU4Li5kNDI2MjRiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMK PiBAQCAtMzMyLDggKzMzMiw3IEBAIGludCBpbnRlbF9hdG9taWNfc2V0dXBfc2NhbGVycyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCS8qIHNldCBzY2FsZXIgbW9kZSAq Lwo+ICAgCQlpZiAoKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgJiYKPiAgIAkJICAgIHBsYW5l X3N0YXRlICYmIHBsYW5lX3N0YXRlLT5iYXNlLmZiICYmCj4gLQkJICAgIHBsYW5lX3N0YXRlLT5i YXNlLmZiLT5mb3JtYXQtPmZvcm1hdCA9PQo+IC0JCSAgICBEUk1fRk9STUFUX05WMTIpIHsKPiAr CQkgICAgaXNfcGxhbmFyX3l1dl9mb3JtYXQocGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+ Zm9ybWF0KSkgewo+ICAgCQkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPT0gOSAmJgo+ICAgCQkJ ICAgICFJU19HRU1JTklMQUtFKGRldl9wcml2KSAmJgo+ICAgCQkJICAgICFJU19TS1lMQUtFKGRl dl9wcml2KSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWlj X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+IGlu ZGV4IGU4YmY0Y2MuLjViMDhkNTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYXRvbWljX3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9h dG9taWNfcGxhbmUuYwo+IEBAIC0xODIsNyArMTgyLDcgQEAgaW50IGludGVsX3BsYW5lX2F0b21p Y19jaGVja193aXRoX3N0YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0 Y18KPiAgIAllbHNlCj4gICAJCWNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMgJj0gfkJJVChpbnRl bF9wbGFuZS0+aWQpOwo+ICAgCj4gLQlpZiAoc3RhdGUtPnZpc2libGUgJiYgc3RhdGUtPmZiLT5m b3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpCj4gKwlpZiAoc3RhdGUtPnZpc2libGUg JiYgaXNfcGxhbmFyX3l1dl9mb3JtYXQoc3RhdGUtPmZiLT5mb3JtYXQtPmZvcm1hdCkpCj4gICAJ CWNydGNfc3RhdGUtPm52MTJfcGxhbmVzIHw9IEJJVChpbnRlbF9wbGFuZS0+aWQpOwo+ICAgCWVs c2UKPiAgIAkJY3J0Y19zdGF0ZS0+bnYxMl9wbGFuZXMgJj0gfkJJVChpbnRlbF9wbGFuZS0+aWQp Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCAyYzE2YzNhLi43Mjg2 ODRjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0yNjY3LDYg KzI2NjcsMTIgQEAgaW50IHNrbF9mb3JtYXRfdG9fZm91cmNjKGludCBmb3JtYXQsIGJvb2wgcmdi X29yZGVyLCBib29sIGFscGhhKQo+ICAgCQlyZXR1cm4gRFJNX0ZPUk1BVF9SR0I1NjU7Cj4gICAJ Y2FzZSBQTEFORV9DVExfRk9STUFUX05WMTI6Cj4gICAJCXJldHVybiBEUk1fRk9STUFUX05WMTI7 Cj4gKwljYXNlIFBMQU5FX0NUTF9GT1JNQVRfUDAxMDoKPiArCQlyZXR1cm4gRFJNX0ZPUk1BVF9Q MDEwOwo+ICsJY2FzZSBQTEFORV9DVExfRk9STUFUX1AwMTI6Cj4gKwkJcmV0dXJuIERSTV9GT1JN QVRfUDAxMjsKPiArCWNhc2UgUExBTkVfQ1RMX0ZPUk1BVF9QMDE2Ogo+ICsJCXJldHVybiBEUk1f Rk9STUFUX1AwMTY7Cj4gICAJZGVmYXVsdDoKPiAgIAljYXNlIFBMQU5FX0NUTF9GT1JNQVRfWFJH Ql84ODg4Ogo+ICAgCQlpZiAocmdiX29yZGVyKSB7Cj4gQEAgLTMxODIsNyArMzE4OCw3IEBAIGlu dCBza2xfY2hlY2tfcGxhbmVfc3VyZmFjZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKPiAgIAkgKiBIYW5kbGUgdGhlIEFVWCBzdXJmYWNlIGZpcnN0IHNpbmNlCj4g ICAJICogdGhlIG1haW4gc3VyZmFjZSBzZXR1cCBkZXBlbmRzIG9uIGl0Lgo+ICAgCSAqLwo+IC0J aWYgKGZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpIHsKPiArCWlmIChpc19w bGFuYXJfeXV2X2Zvcm1hdChmYi0+Zm9ybWF0LT5mb3JtYXQpKSB7Cj4gICAJCXJldCA9IHNrbF9j aGVja19udjEyX3N1cmZhY2UoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwo+ICAgCQlpZiAocmV0 KQo+ICAgCQkJcmV0dXJuIHJldDsKPiBAQCAtMzUwNyw2ICszNTEzLDEyIEBAIHN0YXRpYyB1MzIg c2tsX3BsYW5lX2N0bF9mb3JtYXQodWludDMyX3QgcGl4ZWxfZm9ybWF0KQo+ICAgCQlyZXR1cm4g UExBTkVfQ1RMX0ZPUk1BVF9ZVVY0MjIgfCBQTEFORV9DVExfWVVWNDIyX1ZZVVk7Cj4gICAJY2Fz ZSBEUk1fRk9STUFUX05WMTI6Cj4gICAJCXJldHVybiBQTEFORV9DVExfRk9STUFUX05WMTI7Cj4g KwljYXNlIERSTV9GT1JNQVRfUDAxMDoKPiArCQlyZXR1cm4gUExBTkVfQ1RMX0ZPUk1BVF9QMDEw Owo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTI6Cj4gKwkJcmV0dXJuIFBMQU5FX0NUTF9GT1JNQVRf UDAxMjsKPiArCWNhc2UgRFJNX0ZPUk1BVF9QMDE2Ogo+ICsJCXJldHVybiBQTEFORV9DVExfRk9S TUFUX1AwMTY7Cj4gICAJZGVmYXVsdDoKPiAgIAkJTUlTU0lOR19DQVNFKHBpeGVsX2Zvcm1hdCk7 Cj4gICAJfQo+IEBAIC00ODA4LDggKzQ4MjAsNyBAQCBza2xfdXBkYXRlX3NjYWxlcihzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBmb3JjZV9kZXRhY2gsCj4gICAJbmVl ZF9zY2FsaW5nID0gc3JjX3cgIT0gZHN0X3cgfHwgc3JjX2ggIT0gZHN0X2g7Cj4gICAKPiAgIAlp ZiAocGxhbmVfc2NhbGVyX2NoZWNrKQo+IC0JCWlmIChwaXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1B VF9OVjEyKQo+IC0JCQluZWVkX3NjYWxpbmcgPSB0cnVlOwo+ICsJCW5lZWRfc2NhbGluZyA9IGlz X3BsYW5hcl95dXZfZm9ybWF0KHBpeGVsX2Zvcm1hdCk7Cj4gICAKPiAgIAlpZiAoY3J0Y19zdGF0 ZS0+eWNiY3I0MjAgJiYgc2NhbGVyX3VzZXIgPT0gU0tMX0NSVENfSU5ERVgpCj4gICAJCW5lZWRf c2NhbGluZyA9IHRydWU7Cj4gQEAgLTQ4NTAsNyArNDg2MSw3IEBAIHNrbF91cGRhdGVfc2NhbGVy KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCBib29sIGZvcmNlX2RldGFjaCwK PiAgIAkJcmV0dXJuIDA7Cj4gICAJfQo+ICAgCj4gLQlpZiAocGxhbmVfc2NhbGVyX2NoZWNrICYm IHBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIgJiYKPiArCWlmIChwbGFuZV9zY2FsZXJf Y2hlY2sgJiYgaXNfcGxhbmFyX3l1dl9mb3JtYXQocGl4ZWxfZm9ybWF0KSAmJgo+ICAgCSAgICAo c3JjX2ggPCBTS0xfTUlOX1lVVl80MjBfU1JDX0ggfHwgc3JjX3cgPCBTS0xfTUlOX1lVVl80MjBf U1JDX1cpKSB7Cj4gICAJCURSTV9ERUJVR19LTVMoIk5WMTI6IHNyYyBkaW1lbnNpb25zIG5vdCBt ZXRcbiIpOwo+ICAgCQlyZXR1cm4gLUVJTlZBTDsKPiBAQCAtNDk1NSw2ICs0OTY2LDkgQEAgc3Rh dGljIGludCBza2xfdXBkYXRlX3NjYWxlcl9wbGFuZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKPiAgIAljYXNlIERSTV9GT1JNQVRfVVlWWToKPiAgIAljYXNlIERSTV9GT1JN QVRfVllVWToKPiAgIAljYXNlIERSTV9GT1JNQVRfTlYxMjoKPiArCWNhc2UgRFJNX0ZPUk1BVF9Q MDEwOgo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTI6Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAxNjoK PiAgIAkJYnJlYWs7Cj4gICAJZGVmYXVsdDoKPiAgIAkJRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVk OiVzXSBGQjolZCB1bnN1cHBvcnRlZCBzY2FsaW5nIGZvcm1hdCAweCV4XG4iLAo+IEBAIC0xMzA5 Myw3ICsxMzEwNyw3IEBAIHNrbF9tYXhfc2NhbGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMsCj4gICAJICogICAgICAgICAgICBvcgo+ICAgCSAqICAgIGNkY2xrL2NydGNfY2xvY2sKPiAg IAkgKi8KPiAtCW11bHQgPSBwaXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyID8gMiA6IDM7 Cj4gKwltdWx0ID0gaXNfcGxhbmFyX3l1dl9mb3JtYXQocGl4ZWxfZm9ybWF0KSA/IDIgOiAzOwo+ ICAgCXRtcGNsazEgPSAoMSA8PCAxNikgKiBtdWx0IC0gMTsKPiAgIAl0bXBjbGsyID0gKDEgPDwg OCkgKiAoKG1heF9kb3RjbGsgPDwgOCkgLyBjcnRjX2Nsb2NrKTsKPiAgIAltYXhfc2NhbGUgPSBt aW4odG1wY2xrMSwgdG1wY2xrMik7Cj4gQEAgLTEzMzI1LDYgKzEzMzM5LDkgQEAgc3RhdGljIGJv b2wgc2tsX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkKHN0cnVjdCBkcm1fcGxhbmUgKl9wbGFu ZSwKPiAgIAljYXNlIERSTV9GT1JNQVRfVVlWWToKPiAgIAljYXNlIERSTV9GT1JNQVRfVllVWToK PiAgIAljYXNlIERSTV9GT1JNQVRfTlYxMjoKPiArCWNhc2UgRFJNX0ZPUk1BVF9QMDEwOgo+ICsJ Y2FzZSBEUk1fRk9STUFUX1AwMTI6Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAxNjoKPiAgIAkJaWYg KG1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkKPiAgIAkJCXJldHVybiB0cnVl Owo+ICAgCQkvKiBmYWxsIHRocm91Z2ggKi8KPiBAQCAtMTQ0NjUsNiArMTQ0ODIsMjMgQEAgc3Rh dGljIGludCBpbnRlbF9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAq aW50ZWxfZmIsCj4gICAJCQlnb3RvIGVycjsKPiAgIAkJfQo+ICAgCQlicmVhazsKPiArCWNhc2Ug RFJNX0ZPUk1BVF9QMDEwOgo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTI6Cj4gKwljYXNlIERSTV9G T1JNQVRfUDAxNjoKPiArCQlpZiAobW9kZV9jbWQtPm1vZGlmaWVyWzBdID09IEk5MTVfRk9STUFU X01PRF9ZX1RJTEVEX0NDUyB8fAo+ICsJCSAgICBtb2RlX2NtZC0+bW9kaWZpZXJbMF0gPT0gSTkx NV9GT1JNQVRfTU9EX1lmX1RJTEVEX0NDUykgewo+ICsJCQlEUk1fREVCVUdfS01TKCJSQyBub3Qg dG8gYmUgZW5hYmxlZCB3aXRoICVzXG4iLAo+ICsJCQkJICAgICAgZHJtX2dldF9mb3JtYXRfbmFt ZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0LAo+ICsJCQkJICAgICAgJmZvcm1hdF9uYW1lKSk7Cj4g KwkJCWdvdG8gZXJyOwo+ICsJCX0KPiArCQlpZiAoIUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpICYm ICFJU19DQU5OT05MQUtFKGRldl9wcml2KSkgewo+ICsJCQlEUk1fREVCVUdfS01TKCJ1bnN1cHBv cnRlZCBwaXhlbCBmb3JtYXQ6ICVzXG4iLAo+ICsJCQkJICAgICAgZHJtX2dldF9mb3JtYXRfbmFt ZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0LAo+ICsJCQkJICAgICAgJmZvcm1hdF9uYW1lKSk7Cj4g KwkJCWdvdG8gZXJyOwo+ICsJCX0KPiArCQlicmVhazsKPiAgIAlkZWZhdWx0Ogo+ICAgCQlEUk1f REVCVUdfS01TKCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVzXG4iLAo+ICAgCQkJICAgICAg ZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUp KTsKPiBAQCAtMTQ0NzcsNyArMTQ1MTEsNyBAQCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVy X2luaXQoc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYiwKPiAgIAo+ICAgCWRybV9o ZWxwZXJfbW9kZV9maWxsX2ZiX3N0cnVjdCgmZGV2X3ByaXYtPmRybSwgZmIsIG1vZGVfY21kKTsK PiAgIAo+IC0JaWYgKGZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIgJiYKPiAr CWlmIChpc19wbGFuYXJfeXV2X2Zvcm1hdChmYi0+Zm9ybWF0LT5mb3JtYXQpICYmCj4gICAJICAg IChmYi0+d2lkdGggPCBTS0xfTUlOX1lVVl80MjBfU1JDX1cgfHwKPiAgIAkgICAgIGZiLT5oZWln aHQgPCBTS0xfTUlOX1lVVl80MjBfU1JDX0ggfHwKPiAgIAkgICAgIChmYi0+d2lkdGggJSA0KSAh PSAwIHx8IChmYi0+aGVpZ2h0ICUgNCkgIT0gMCkpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+IGluZGV4IDg4NDAxMDg3NC4uODRmMTQzMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gQEAgLTIwNzUsNiArMjA3NSw3IEBAIGJvb2wgaW50ZWxfc2R2b19pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAo+ICAgLyogaW50ZWxfc3ByaXRlLmMgKi8K PiAgIGJvb2wgaW50ZWxfZm9ybWF0X2lzX3l1dih1MzIgZm9ybWF0KTsKPiArYm9vbCBpc19wbGFu YXJfeXV2X2Zvcm1hdCh1aW50MzJfdCBwaXhlbGZvcm1hdCk7Cj4gICBpbnQgaW50ZWxfdXNlY3Nf dG9fc2NhbmxpbmVzKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl LAo+ICAgCQkJICAgICBpbnQgdXNlY3MpOwo+ICAgc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9z cHJpdGVfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCA1M2FhYWEzLi45N2QwMjQzIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTM5MTEsNyArMzkxMSw3IEBAIHNrbF9kZGJfZ2V0X2h3 X3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAl2YWwg PSBJOTE1X1JFQUQoUExBTkVfQlVGX0NGRyhwaXBlLCBwbGFuZV9pZCkpOwo+ICAgCXZhbDIgPSBJ OTE1X1JFQUQoUExBTkVfTlYxMl9CVUZfQ0ZHKHBpcGUsIHBsYW5lX2lkKSk7Cj4gICAKPiAtCWlm IChmb3VyY2MgPT0gRFJNX0ZPUk1BVF9OVjEyKSB7Cj4gKwlpZiAoaXNfcGxhbmFyX3l1dl9mb3Jt YXQoZm91cmNjKSkgewo+ICAgCQlza2xfZGRiX2VudHJ5X2luaXRfZnJvbV9odyhkZXZfcHJpdiwK PiAgIAkJCQkJICAgJmRkYi0+cGxhbmVbcGlwZV1bcGxhbmVfaWRdLCB2YWwyKTsKPiAgIAkJc2ts X2RkYl9lbnRyeV9pbml0X2Zyb21faHcoZGV2X3ByaXYsCj4gQEAgLTQxMTksNyArNDExOSw3IEBA IHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNzdGF0ZSwKPiAgIAo+ICAgCWlmIChpbnRlbF9wbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09S KQo+ICAgCQlyZXR1cm4gMDsKPiAtCWlmIChwbGFuZSA9PSAxICYmIGZvcm1hdCAhPSBEUk1fRk9S TUFUX05WMTIpCj4gKwlpZiAocGxhbmUgPT0gMSAmJiAhaXNfcGxhbmFyX3l1dl9mb3JtYXQoZm9y bWF0KSkKPiAgIAkJcmV0dXJuIDA7Cj4gICAKPiAgIAkvKgo+IEBAIC00MTMxLDcgKzQxMzEsNyBA QCBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjc3RhdGUsCj4gICAJaGVpZ2h0ID0gZHJtX3JlY3RfaGVpZ2h0KCZpbnRlbF9wc3RhdGUt PmJhc2Uuc3JjKSA+PiAxNjsKPiAgIAo+ICAgCS8qIFVWIHBsYW5lIGRvZXMgMS8yIHBpeGVsIHN1 Yi1zYW1wbGluZyAqLwo+IC0JaWYgKHBsYW5lID09IDEgJiYgZm9ybWF0ID09IERSTV9GT1JNQVRf TlYxMikgewo+ICsJaWYgKHBsYW5lID09IDEgJiYgaXNfcGxhbmFyX3l1dl9mb3JtYXQoZm9ybWF0 KSkgewo+ICAgCQl3aWR0aCAvPSAyOwo+ICAgCQloZWlnaHQgLz0gMjsKPiAgIAl9Cj4gQEAgLTQx OTgsNyArNDE5OCw3IEBAIHNrbF9kZGJfbWluX2FsbG9jKGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKnBzdGF0ZSwgY29uc3QgaW50IHBsYW5lKQo+ICAgCQlyZXR1cm4gMDsKPiAgIAo+ICAg CS8qIEZvciBwYWNrZWQgZm9ybWF0cywgYW5kIHV2LXBsYW5lLCByZXR1cm4gMCAqLwo+IC0JaWYg KHBsYW5lID09IDEgJiYgZmItPmZvcm1hdC0+Zm9ybWF0ICE9IERSTV9GT1JNQVRfTlYxMikKPiAr CWlmIChwbGFuZSA9PSAxICYmICFpc19wbGFuYXJfeXV2X2Zvcm1hdChmYi0+Zm9ybWF0LT5mb3Jt YXQpKQo+ICAgCQlyZXR1cm4gMDsKPiAgIAo+ICAgCS8qIEZvciBOb24gWS10aWxlIHJldHVybiA4 LWJsb2NrcyAqLwo+IEBAIC00MjE2LDcgKzQyMTYsNyBAQCBza2xfZGRiX21pbl9hbGxvYyhjb25z dCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGUsIGNvbnN0IGludCBwbGFuZSkKPiAgIAlz cmNfdyA9IGRybV9yZWN0X3dpZHRoKCZpbnRlbF9wc3RhdGUtPmJhc2Uuc3JjKSA+PiAxNjsKPiAg IAlzcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmaW50ZWxfcHN0YXRlLT5iYXNlLnNyYykgPj4gMTY7 Cj4gICAKPiAtCS8qIEhhbHZlIFVWIHBsYW5lIHdpZHRoIGFuZCBoZWlnaHQgZm9yIE5WMTIgKi8K PiArCS8qIEhhbHZlIFVWIHBsYW5lIHdpZHRoIGFuZCBoZWlnaHQgZm9yIE5WMTIgYW5kIG90aGVy IHBsYW5hciB5dXYgKi8KPiAgIAlpZiAocGxhbmUgPT0gMSkgewo+ICAgCQlzcmNfdyAvPSAyOwo+ ICAgCQlzcmNfaCAvPSAyOwo+IEBAIC00NDk1LDggKzQ0OTUsOCBAQCBza2xfY29tcHV0ZV9wbGFu ZV93bV9wYXJhbXMoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAg CQlyZXR1cm4gMDsKPiAgIAo+ICAgCS8qIG9ubHkgTlYxMiBmb3JtYXQgaGFzIHR3byBwbGFuZXMg Ki8KPiAtCWlmIChwbGFuZV9pZCA9PSAxICYmIGZiLT5mb3JtYXQtPmZvcm1hdCAhPSBEUk1fRk9S TUFUX05WMTIpIHsKPiAtCQlEUk1fREVCVUdfS01TKCJOb24gTlYxMiBmb3JtYXQgaGF2ZSBzaW5n bGUgcGxhbmVcbiIpOwo+ICsJaWYgKHBsYW5lX2lkID09IDEgJiYgIWlzX3BsYW5hcl95dXZfZm9y bWF0KGZiLT5mb3JtYXQtPmZvcm1hdCkpIHsKPiArCQlEUk1fREVCVUdfS01TKCJOb24gcGxhbmFy IGZvcm1hdCBoYXZlIHNpbmdsZSBwbGFuZVxuIik7Cj4gICAJCXJldHVybiAtRUlOVkFMOwo+ICAg CX0KPiAgIAo+IEBAIC00NTA3LDcgKzQ1MDcsNyBAQCBza2xfY29tcHV0ZV9wbGFuZV93bV9wYXJh bXMoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCXdwLT54X3Rp bGVkID0gZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9YX1RJTEVEOwo+ICAgCXdwLT5y Y19zdXJmYWNlID0gZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUyB8 fAo+ICAgCQkJIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOwo+ IC0Jd3AtPmlzX3BsYW5hciA9IGZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX05WMTI7 Cj4gKwl3cC0+aXNfcGxhbmFyID0gaXNfcGxhbmFyX3l1dl9mb3JtYXQoZmItPmZvcm1hdC0+Zm9y bWF0KTsKPiAgIAo+ICAgCWlmIChwbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09SKSB7Cj4gICAJCXdw LT53aWR0aCA9IGludGVsX3BzdGF0ZS0+YmFzZS5jcnRjX3c7Cj4gQEAgLTQ3ODIsOCArNDc4Miw3 IEBAIHNrbF9jb21wdXRlX3dtX2xldmVscyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gICAJCQlyZXR1cm4gcmV0Owo+ICAgCX0KPiAgIAo+IC0JaWYgKGludGVsX3Bz dGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyKQo+IC0JCXdt LT5pc19wbGFuYXIgPSB0cnVlOwo+ICsJd20tPmlzX3BsYW5hciA9IGlzX3BsYW5hcl95dXZfZm9y bWF0KGludGVsX3BzdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5mb3JtYXQpOwo+ICAgCj4gICAJcmV0 dXJuIDA7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nw cml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCAzNDRj MGU3Li42MWI2YmQ3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nw cml0ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBAQCAt NDksNiArNDksMjIgQEAgYm9vbCBpbnRlbF9mb3JtYXRfaXNfeXV2KHUzMiBmb3JtYXQpCj4gICAJ Y2FzZSBEUk1fRk9STUFUX1ZZVVk6Cj4gICAJY2FzZSBEUk1fRk9STUFUX1lWWVU6Cj4gICAJY2Fz ZSBEUk1fRk9STUFUX05WMTI6Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAxMDoKPiArCWNhc2UgRFJN X0ZPUk1BVF9QMDEyOgo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTY6Cj4gKwkJcmV0dXJuIHRydWU7 Cj4gKwlkZWZhdWx0Ogo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArfQo+ICsKPiArYm9vbCBp c19wbGFuYXJfeXV2X2Zvcm1hdCh1aW50MzJfdCBwaXhlbGZvcm1hdCkKPiArewo+ICsJc3dpdGNo IChwaXhlbGZvcm1hdCkgewo+ICsJY2FzZSBEUk1fRk9STUFUX05WMTI6Cj4gKwljYXNlIERSTV9G T1JNQVRfUDAxMDoKPiArCWNhc2UgRFJNX0ZPUk1BVF9QMDEyOgo+ICsJY2FzZSBEUk1fRk9STUFU X1AwMTY6Cj4gICAJCXJldHVybiB0cnVlOwo+ICAgCWRlZmF1bHQ6Cj4gICAJCXJldHVybiBmYWxz ZTsKPiBAQCAtMTA0MSw3ICsxMDU3LDcgQEAgaW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVj dCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gICAJCXNyYy0+eTIgPSAoc3JjX3kgKyBzcmNfaCkgPDwg MTY7Cj4gICAKPiAgIAkJaWYgKGludGVsX2Zvcm1hdF9pc195dXYoZmItPmZvcm1hdC0+Zm9ybWF0 KSAmJgo+IC0gICAgCQkgICAgZmItPmZvcm1hdC0+Zm9ybWF0ICE9IERSTV9GT1JNQVRfTlYxMiAm Jgo+ICsJCSAgICAhaXNfcGxhbmFyX3l1dl9mb3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0KSAmJgo+ ICAgCQkgICAgKHNyY194ICUgMiB8fCBzcmNfdyAlIDIpKSB7Cj4gICAJCQlEUk1fREVCVUdfS01T KCJzcmMgeC93ICgldSwgJXUpIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAyIGZvciBZVVYgcGxhbmVz XG4iLAo+ICAgCQkJCSAgICAgIHNyY194LCBzcmNfdyk7Cj4gQEAgLTE0MjEsNiArMTQzNyw5IEBA IHN0YXRpYyBib29sIHNrbF9wbGFuZV9mb3JtYXRfbW9kX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX3Bs YW5lICpfcGxhbmUsCj4gICAJY2FzZSBEUk1fRk9STUFUX1VZVlk6Cj4gICAJY2FzZSBEUk1fRk9S TUFUX1ZZVVk6Cj4gICAJY2FzZSBEUk1fRk9STUFUX05WMTI6Cj4gKwljYXNlIERSTV9GT1JNQVRf UDAxMDoKPiArCWNhc2UgRFJNX0ZPUk1BVF9QMDEyOgo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTY6 Cj4gICAJCWlmIChtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQpCj4gICAJCQly ZXR1cm4gdHJ1ZTsKPiAgIAkJLyogZmFsbCB0aHJvdWdoICovCgotLSAKVGhhbmtzIGFuZCBSZWdh cmRzLApTd2F0aQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==