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: Mon, 27 Aug 2018 13:28:22 +0200 Message-ID: References: <1534424122-32209-1-git-send-email-juhapekka.heikkila@gmail.com> <1534424122-32209-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: <1534424122-32209-3-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 Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T3AgMTYtMDgtMTggb20gMTQ6NTUgc2NocmVlZiBKdWhhLVBla2thIEhlaWtraWxhOgo+IFByZXBh cmF0aW9ucyBmb3IgZW5hYmxpbmcgUDAxMCwgUDAxMiBhbmQgUDAxNiBmb3JtYXRzLiBUaGVzZQo+ IGZvcm1hdHMgd2lsbCBleHRlbmQgTlYxMiBmb3IgbGFyZ2VyIGJpdCBkZXB0aHMuCj4KPiBTaWdu ZWQtb2ZmLWJ5OiBKdWhhLVBla2thIEhlaWtraWxhIDxqdWhhcGVra2EuaGVpa2tpbGFAZ21haWwu Y29tPgo+IFJldmlld2VkLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RA bGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9t aWMuYyAgICAgICB8ICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19w bGFuZS5jIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAg ICAgfCA0NiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgIHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jICAgICAgICAgICB8IDE5ICsrKysrKy0tLS0tLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgICAgICAgfCAxOCArKysrKysrKysrKy0KPiAgNiBmaWxl cyBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKRm9yIHBhdGNoZXMg MiwgMywgNDoKCkFja2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPiAj aXJjLCBmb3IgbWVyZ2luZyB0aHJvdWdoIGRybS1taXNjLW5leHQuCgpBcmUgeW91IG9rIHdpdGgg U3dhdGkgU2hhcm1hJ3MgY29tbWVudCBvbiBwYXRjaCA0PyBJIGNhbiBmaXggaXQgdXAgd2hlbiBj b21taXR0aW5nLgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9t aWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4gaW5kZXggYjA0OTUy Yi4uYWI3NmI3MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9t aWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4gQEAgLTMz NCw4ICszMzQsNyBAQCBpbnQgaW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcnMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCS8qIHNldCBzY2FsZXIgbW9kZSAqLwo+ICAJCWlm ICgoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSAmJgo+ICAJCSAgICBwbGFuZV9zdGF0ZSAmJiBw bGFuZV9zdGF0ZS0+YmFzZS5mYiAmJgo+IC0JCSAgICBwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9y bWF0LT5mb3JtYXQgPT0KPiAtCQkgICAgRFJNX0ZPUk1BVF9OVjEyKSB7Cj4gKwkJICAgIGlzX3Bs YW5hcl95dXZfZm9ybWF0KHBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmZvcm1hdCkpIHsK PiAgCQkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPT0gOSAmJgo+ICAJCQkgICAgIUlTX0dFTUlO SUxBS0UoZGV2X3ByaXYpICYmCj4gIAkJCSAgICAhSVNfU0tZTEFLRShkZXZfcHJpdikpCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiBpbmRleCBkY2JhNjQ1Li41 OGIyZmM2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19w bGFuZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMK PiBAQCAtMTgyLDcgKzE4Miw3IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2tfd2l0aF9z dGF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfCj4gIAllbHNlCj4g IAkJY3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyAmPSB+QklUKGludGVsX3BsYW5lLT5pZCk7Cj4g IAo+IC0JaWYgKHN0YXRlLT52aXNpYmxlICYmIHN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQgPT0g RFJNX0ZPUk1BVF9OVjEyKQo+ICsJaWYgKHN0YXRlLT52aXNpYmxlICYmIGlzX3BsYW5hcl95dXZf Zm9ybWF0KHN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQpKQo+ICAJCWNydGNfc3RhdGUtPm52MTJf cGxhbmVzIHw9IEJJVChpbnRlbF9wbGFuZS0+aWQpOwo+ICAJZWxzZQo+ICAJCWNydGNfc3RhdGUt Pm52MTJfcGxhbmVzICY9IH5CSVQoaW50ZWxfcGxhbmUtPmlkKTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gaW5kZXggNjkwZTFlOC4uODBjZTc0MiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMjY2Nyw2ICsyNjY3LDEyIEBAIGludCBza2xf Zm9ybWF0X3RvX2ZvdXJjYyhpbnQgZm9ybWF0LCBib29sIHJnYl9vcmRlciwgYm9vbCBhbHBoYSkK PiAgCQlyZXR1cm4gRFJNX0ZPUk1BVF9SR0I1NjU7Cj4gIAljYXNlIFBMQU5FX0NUTF9GT1JNQVRf TlYxMjoKPiAgCQlyZXR1cm4gRFJNX0ZPUk1BVF9OVjEyOwo+ICsJY2FzZSBQTEFORV9DVExfRk9S TUFUX1AwMTA6Cj4gKwkJcmV0dXJuIERSTV9GT1JNQVRfUDAxMDsKPiArCWNhc2UgUExBTkVfQ1RM X0ZPUk1BVF9QMDEyOgo+ICsJCXJldHVybiBEUk1fRk9STUFUX1AwMTI7Cj4gKwljYXNlIFBMQU5F X0NUTF9GT1JNQVRfUDAxNjoKPiArCQlyZXR1cm4gRFJNX0ZPUk1BVF9QMDE2Owo+ICAJZGVmYXVs dDoKPiAgCWNhc2UgUExBTkVfQ1RMX0ZPUk1BVF9YUkdCXzg4ODg6Cj4gIAkJaWYgKHJnYl9vcmRl cikgewo+IEBAIC0zMTgyLDcgKzMxODgsNyBAQCBpbnQgc2tsX2NoZWNrX3BsYW5lX3N1cmZhY2Uo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkgKiBIYW5kbGUg dGhlIEFVWCBzdXJmYWNlIGZpcnN0IHNpbmNlCj4gIAkgKiB0aGUgbWFpbiBzdXJmYWNlIHNldHVw IGRlcGVuZHMgb24gaXQuCj4gIAkgKi8KPiAtCWlmIChmYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJN X0ZPUk1BVF9OVjEyKSB7Cj4gKwlpZiAoaXNfcGxhbmFyX3l1dl9mb3JtYXQoZmItPmZvcm1hdC0+ Zm9ybWF0KSkgewo+ICAJCXJldCA9IHNrbF9jaGVja19udjEyX3N1cmZhY2UoY3J0Y19zdGF0ZSwg cGxhbmVfc3RhdGUpOwo+ICAJCWlmIChyZXQpCj4gIAkJCXJldHVybiByZXQ7Cj4gQEAgLTM1MDcs NiArMzUxMywxMiBAQCBzdGF0aWMgdTMyIHNrbF9wbGFuZV9jdGxfZm9ybWF0KHVpbnQzMl90IHBp eGVsX2Zvcm1hdCkKPiAgCQlyZXR1cm4gUExBTkVfQ1RMX0ZPUk1BVF9ZVVY0MjIgfCBQTEFORV9D VExfWVVWNDIyX1ZZVVk7Cj4gIAljYXNlIERSTV9GT1JNQVRfTlYxMjoKPiAgCQlyZXR1cm4gUExB TkVfQ1RMX0ZPUk1BVF9OVjEyOwo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTA6Cj4gKwkJcmV0dXJu IFBMQU5FX0NUTF9GT1JNQVRfUDAxMDsKPiArCWNhc2UgRFJNX0ZPUk1BVF9QMDEyOgo+ICsJCXJl dHVybiBQTEFORV9DVExfRk9STUFUX1AwMTI7Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAxNjoKPiAr CQlyZXR1cm4gUExBTkVfQ1RMX0ZPUk1BVF9QMDE2Owo+ICAJZGVmYXVsdDoKPiAgCQlNSVNTSU5H X0NBU0UocGl4ZWxfZm9ybWF0KTsKPiAgCX0KPiBAQCAtNDgwOCw4ICs0ODIwLDcgQEAgc2tsX3Vw ZGF0ZV9zY2FsZXIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIGJvb2wgZm9y Y2VfZGV0YWNoLAo+ICAJbmVlZF9zY2FsaW5nID0gc3JjX3cgIT0gZHN0X3cgfHwgc3JjX2ggIT0g ZHN0X2g7Cj4gIAo+ICAJaWYgKHBsYW5lX3NjYWxlcl9jaGVjaykKPiAtCQlpZiAocGl4ZWxfZm9y bWF0ID09IERSTV9GT1JNQVRfTlYxMikKPiAtCQkJbmVlZF9zY2FsaW5nID0gdHJ1ZTsKPiArCQlu ZWVkX3NjYWxpbmcgPSBpc19wbGFuYXJfeXV2X2Zvcm1hdChwaXhlbF9mb3JtYXQpOwo+ICAKPiAg CWlmIChjcnRjX3N0YXRlLT55Y2JjcjQyMCAmJiBzY2FsZXJfdXNlciA9PSBTS0xfQ1JUQ19JTkRF WCkKPiAgCQluZWVkX3NjYWxpbmcgPSB0cnVlOwo+IEBAIC00ODUwLDcgKzQ4NjEsNyBAQCBza2xf dXBkYXRlX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBm b3JjZV9kZXRhY2gsCj4gIAkJcmV0dXJuIDA7Cj4gIAl9Cj4gIAo+IC0JaWYgKHBsYW5lX3NjYWxl cl9jaGVjayAmJiBwaXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyICYmCj4gKwlpZiAocGxh bmVfc2NhbGVyX2NoZWNrICYmIGlzX3BsYW5hcl95dXZfZm9ybWF0KHBpeGVsX2Zvcm1hdCkgJiYK PiAgCSAgICAoc3JjX2ggPCBTS0xfTUlOX1lVVl80MjBfU1JDX0ggfHwgc3JjX3cgPCBTS0xfTUlO X1lVVl80MjBfU1JDX1cpKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygiTlYxMjogc3JjIGRpbWVuc2lv bnMgbm90IG1ldFxuIik7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gQEAgLTQ5NTUsNiArNDk2Niw5 IEBAIHN0YXRpYyBpbnQgc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCj4gIAljYXNlIERSTV9GT1JNQVRfVVlWWToKPiAgCWNhc2UgRFJN X0ZPUk1BVF9WWVVZOgo+ICAJY2FzZSBEUk1fRk9STUFUX05WMTI6Cj4gKwljYXNlIERSTV9GT1JN QVRfUDAxMDoKPiArCWNhc2UgRFJNX0ZPUk1BVF9QMDEyOgo+ICsJY2FzZSBEUk1fRk9STUFUX1Aw MTY6Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+ICAJCURSTV9ERUJVR19LTVMoIltQTEFORTol ZDolc10gRkI6JWQgdW5zdXBwb3J0ZWQgc2NhbGluZyBmb3JtYXQgMHgleFxuIiwKPiBAQCAtMTMx NzksNyArMTMxOTMsNyBAQCBza2xfbWF4X3NjYWxlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjLAo+ICAJICogICAgICAgICAgICBvcgo+ICAJICogICAgY2RjbGsvY3J0Y19jbG9jawo+ICAJ ICovCj4gLQltdWx0ID0gcGl4ZWxfZm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMiA/IDIgOiAzOwo+ ICsJbXVsdCA9IGlzX3BsYW5hcl95dXZfZm9ybWF0KHBpeGVsX2Zvcm1hdCkgPyAyIDogMzsKPiAg CXRtcGNsazEgPSAoMSA8PCAxNikgKiBtdWx0IC0gMTsKPiAgCXRtcGNsazIgPSAoMSA8PCA4KSAq ICgobWF4X2RvdGNsayA8PCA4KSAvIGNydGNfY2xvY2spOwo+ICAJbWF4X3NjYWxlID0gbWluKHRt cGNsazEsIHRtcGNsazIpOwo+IEBAIC0xMzQxMSw2ICsxMzQyNSw5IEBAIHN0YXRpYyBib29sIHNr bF9wbGFuZV9mb3JtYXRfbW9kX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX3BsYW5lICpfcGxhbmUsCj4g IAljYXNlIERSTV9GT1JNQVRfVVlWWToKPiAgCWNhc2UgRFJNX0ZPUk1BVF9WWVVZOgo+ICAJY2Fz ZSBEUk1fRk9STUFUX05WMTI6Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAxMDoKPiArCWNhc2UgRFJN X0ZPUk1BVF9QMDEyOgo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTY6Cj4gIAkJaWYgKG1vZGlmaWVy ID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkKPiAgCQkJcmV0dXJuIHRydWU7Cj4gIAkJLyog ZmFsbCB0aHJvdWdoICovCj4gQEAgLTE0NTU2LDYgKzE0NTczLDIzIEBAIHN0YXRpYyBpbnQgaW50 ZWxfZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiLAo+ ICAJCQlnb3RvIGVycjsKPiAgCQl9Cj4gIAkJYnJlYWs7Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAx MDoKPiArCWNhc2UgRFJNX0ZPUk1BVF9QMDEyOgo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTY6Cj4g KwkJaWYgKG1vZGVfY21kLT5tb2RpZmllclswXSA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9D Q1MgfHwKPiArCQkgICAgbW9kZV9jbWQtPm1vZGlmaWVyWzBdID09IEk5MTVfRk9STUFUX01PRF9Z Zl9USUxFRF9DQ1MpIHsKPiArCQkJRFJNX0RFQlVHX0tNUygiUkMgbm90IHRvIGJlIGVuYWJsZWQg d2l0aCAlc1xuIiwKPiArCQkJCSAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBp eGVsX2Zvcm1hdCwKPiArCQkJCSAgICAgICZmb3JtYXRfbmFtZSkpOwo+ICsJCQlnb3RvIGVycjsK PiArCQl9Cj4gKwkJaWYgKCFJU19HRU1JTklMQUtFKGRldl9wcml2KSAmJiAhSVNfQ0FOTk9OTEFL RShkZXZfcHJpdikpIHsKPiArCQkJRFJNX0RFQlVHX0tNUygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9y bWF0OiAlc1xuIiwKPiArCQkJCSAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBp eGVsX2Zvcm1hdCwKPiArCQkJCSAgICAgICZmb3JtYXRfbmFtZSkpOwo+ICsJCQlnb3RvIGVycjsK PiArCQl9Cj4gKwkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+ICAJCURSTV9ERUJVR19LTVMoInVuc3Vw cG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsCj4gIAkJCSAgICAgIGRybV9nZXRfZm9ybWF0X25h bWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7Cj4gQEAgLTE0NTY4LDcg KzE0NjAyLDcgQEAgc3RhdGljIGludCBpbnRlbF9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVjdCBpbnRl bF9mcmFtZWJ1ZmZlciAqaW50ZWxfZmIsCj4gIAo+ICAJZHJtX2hlbHBlcl9tb2RlX2ZpbGxfZmJf c3RydWN0KCZkZXZfcHJpdi0+ZHJtLCBmYiwgbW9kZV9jbWQpOwo+ICAKPiAtCWlmIChmYi0+Zm9y bWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyICYmCj4gKwlpZiAoaXNfcGxhbmFyX3l1dl9m b3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0KSAmJgo+ICAJICAgIChmYi0+d2lkdGggPCBTS0xfTUlO X1lVVl80MjBfU1JDX1cgfHwKPiAgCSAgICAgZmItPmhlaWdodCA8IFNLTF9NSU5fWVVWXzQyMF9T UkNfSCB8fAo+ICAJICAgICAoZmItPndpZHRoICUgNCkgIT0gMCB8fCAoZmItPmhlaWdodCAlIDQp ICE9IDApKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCA3Yjk4NGFlLi4yMGFm NTc3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMjA5Nyw2ICsyMDk3LDcg QEAgYm9vbCBpbnRlbF9zZHZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAKPiAgCj4gIC8qIGludGVsX3Nwcml0ZS5jICovCj4gK2Jvb2wgaXNfcGxhbmFyX3l1dl9m b3JtYXQodWludDMyX3QgcGl4ZWxmb3JtYXQpOwo+ICBpbnQgaW50ZWxfdXNlY3NfdG9fc2Nhbmxp bmVzKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlLAo+ICAJCQkg ICAgIGludCB1c2Vjcyk7Cj4gIHN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfc3ByaXRlX3BsYW5l X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jCj4gaW5kZXggZDk5ZTVmYS4uZTEyOTJiMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwo+IEBAIC0zOTQyLDcgKzM5NDIsNyBAQCBza2xfZGRiX2dldF9od19wbGFuZV9zdGF0 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA8IDExKQo+ICAJCXZhbDIgPSBJOTE1X1JFQUQoUExBTkVfTlYxMl9CVUZfQ0ZHKHBp cGUsIHBsYW5lX2lkKSk7Cj4gIAo+IC0JaWYgKGZvdXJjYyA9PSBEUk1fRk9STUFUX05WMTIpIHsK PiArCWlmIChpc19wbGFuYXJfeXV2X2Zvcm1hdChmb3VyY2MpKSB7Cj4gIAkJc2tsX2RkYl9lbnRy eV9pbml0X2Zyb21faHcoZGV2X3ByaXYsCj4gIAkJCQkJICAgJmRkYi0+cGxhbmVbcGlwZV1bcGxh bmVfaWRdLCB2YWwyKTsKPiAgCQlza2xfZGRiX2VudHJ5X2luaXRfZnJvbV9odyhkZXZfcHJpdiwK PiBAQCAtNDE1MCw3ICs0MTUwLDcgQEAgc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAKPiAgCWlmIChpbnRlbF9wbGFu ZS0+aWQgPT0gUExBTkVfQ1VSU09SKQo+ICAJCXJldHVybiAwOwo+IC0JaWYgKHBsYW5lID09IDEg JiYgZm9ybWF0ICE9IERSTV9GT1JNQVRfTlYxMikKPiArCWlmIChwbGFuZSA9PSAxICYmICFpc19w bGFuYXJfeXV2X2Zvcm1hdChmb3JtYXQpKQo+ICAJCXJldHVybiAwOwo+ICAKPiAgCS8qCj4gQEAg LTQxNjIsNyArNDE2Miw3IEBAIHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiAgCWhlaWdodCA9IGRybV9yZWN0X2hlaWdo dCgmaW50ZWxfcHN0YXRlLT5iYXNlLnNyYykgPj4gMTY7Cj4gIAo+ICAJLyogVVYgcGxhbmUgZG9l cyAxLzIgcGl4ZWwgc3ViLXNhbXBsaW5nICovCj4gLQlpZiAocGxhbmUgPT0gMSAmJiBmb3JtYXQg PT0gRFJNX0ZPUk1BVF9OVjEyKSB7Cj4gKwlpZiAocGxhbmUgPT0gMSAmJiBpc19wbGFuYXJfeXV2 X2Zvcm1hdChmb3JtYXQpKSB7Cj4gIAkJd2lkdGggLz0gMjsKPiAgCQloZWlnaHQgLz0gMjsKPiAg CX0KPiBAQCAtNDIyOSw3ICs0MjI5LDcgQEAgc2tsX2RkYl9taW5fYWxsb2MoY29uc3Qgc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlLCBjb25zdCBpbnQgcGxhbmUpCj4gIAkJcmV0dXJuIDA7 Cj4gIAo+ICAJLyogRm9yIHBhY2tlZCBmb3JtYXRzLCBhbmQgdXYtcGxhbmUsIHJldHVybiAwICov Cj4gLQlpZiAocGxhbmUgPT0gMSAmJiBmYi0+Zm9ybWF0LT5mb3JtYXQgIT0gRFJNX0ZPUk1BVF9O VjEyKQo+ICsJaWYgKHBsYW5lID09IDEgJiYgIWlzX3BsYW5hcl95dXZfZm9ybWF0KGZiLT5mb3Jt YXQtPmZvcm1hdCkpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJLyogRm9yIE5vbiBZLXRpbGUgcmV0 dXJuIDgtYmxvY2tzICovCj4gQEAgLTQyNDcsNyArNDI0Nyw3IEBAIHNrbF9kZGJfbWluX2FsbG9j KGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZSwgY29uc3QgaW50IHBsYW5lKQo+ ICAJc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmaW50ZWxfcHN0YXRlLT5iYXNlLnNyYykgPj4gMTY7 Cj4gIAlzcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmaW50ZWxfcHN0YXRlLT5iYXNlLnNyYykgPj4g MTY7Cj4gIAo+IC0JLyogSGFsdmUgVVYgcGxhbmUgd2lkdGggYW5kIGhlaWdodCBmb3IgTlYxMiAq Lwo+ICsJLyogSGFsdmUgVVYgcGxhbmUgd2lkdGggYW5kIGhlaWdodCBmb3IgTlYxMiBhbmQgb3Ro ZXIgcGxhbmFyIHl1diAqLwo+ICAJaWYgKHBsYW5lID09IDEpIHsKPiAgCQlzcmNfdyAvPSAyOwo+ ICAJCXNyY19oIC89IDI7Cj4gQEAgLTQ1MjYsOCArNDUyNiw4IEBAIHNrbF9jb21wdXRlX3BsYW5l X3dtX3BhcmFtcyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJ cmV0dXJuIDA7Cj4gIAo+ICAJLyogb25seSBOVjEyIGZvcm1hdCBoYXMgdHdvIHBsYW5lcyAqLwo+ IC0JaWYgKHBsYW5lX2lkID09IDEgJiYgZmItPmZvcm1hdC0+Zm9ybWF0ICE9IERSTV9GT1JNQVRf TlYxMikgewo+IC0JCURSTV9ERUJVR19LTVMoIk5vbiBOVjEyIGZvcm1hdCBoYXZlIHNpbmdsZSBw bGFuZVxuIik7Cj4gKwlpZiAocGxhbmVfaWQgPT0gMSAmJiAhaXNfcGxhbmFyX3l1dl9mb3JtYXQo ZmItPmZvcm1hdC0+Zm9ybWF0KSkgewo+ICsJCURSTV9ERUJVR19LTVMoIk5vbiBwbGFuYXIgZm9y bWF0IGhhdmUgc2luZ2xlIHBsYW5lXG4iKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAg Cj4gQEAgLTQ1MzgsNyArNDUzOCw3IEBAIHNrbF9jb21wdXRlX3BsYW5lX3dtX3BhcmFtcyhjb25z dCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAl3cC0+eF90aWxlZCA9IGZi LT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDsKPiAgCXdwLT5yY19zdXJmYWNl ID0gZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUyB8fAo+ICAJCQkg ZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRF9DQ1M7Cj4gLQl3cC0+aXNf cGxhbmFyID0gZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMjsKPiArCXdwLT5p c19wbGFuYXIgPSBpc19wbGFuYXJfeXV2X2Zvcm1hdChmYi0+Zm9ybWF0LT5mb3JtYXQpOwo+ICAK PiAgCWlmIChwbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09SKSB7Cj4gIAkJd3AtPndpZHRoID0gaW50 ZWxfcHN0YXRlLT5iYXNlLmNydGNfdzsKPiBAQCAtNDgxMyw4ICs0ODEzLDcgQEAgc2tsX2NvbXB1 dGVfd21fbGV2ZWxzKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAg CQkJcmV0dXJuIHJldDsKPiAgCX0KPiAgCj4gLQlpZiAoaW50ZWxfcHN0YXRlLT5iYXNlLmZiLT5m b3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpCj4gLQkJd20tPmlzX3BsYW5hciA9IHRy dWU7Cj4gKwl3bS0+aXNfcGxhbmFyID0gaXNfcGxhbmFyX3l1dl9mb3JtYXQoaW50ZWxfcHN0YXRl LT5iYXNlLmZiLT5mb3JtYXQtPmZvcm1hdCk7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IGY3MDI2ZTguLjY4ZGIwMjYgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IEBAIC00MSw2ICs0MSwxOSBAQAo+ICAj aW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+Cj4gICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ICAKPiAr Ym9vbCBpc19wbGFuYXJfeXV2X2Zvcm1hdCh1aW50MzJfdCBwaXhlbGZvcm1hdCkKPiArewo+ICsJ c3dpdGNoIChwaXhlbGZvcm1hdCkgewo+ICsJY2FzZSBEUk1fRk9STUFUX05WMTI6Cj4gKwljYXNl IERSTV9GT1JNQVRfUDAxMDoKPiArCWNhc2UgRFJNX0ZPUk1BVF9QMDEyOgo+ICsJY2FzZSBEUk1f Rk9STUFUX1AwMTY6Cj4gKwkJcmV0dXJuIHRydWU7Cj4gKwlkZWZhdWx0Ogo+ICsJCXJldHVybiBm YWxzZTsKPiArCX0KPiArfQo+ICsKPiAgaW50IGludGVsX3VzZWNzX3RvX3NjYW5saW5lcyhjb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSwKPiAgCQkJICAgICBpbnQg dXNlY3MpCj4gIHsKPiBAQCAtMTAzOSw3ICsxMDUyLDcgQEAgaW50ZWxfY2hlY2tfc3ByaXRlX3Bs YW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gIAkJc3JjLT55MiA9IChzcmNfeSArIHNy Y19oKSA8PCAxNjsKPiAgCj4gIAkJaWYgKGZiLT5mb3JtYXQtPmlzX3l1diAmJgo+IC0gICAgCQkg ICAgZmItPmZvcm1hdC0+Zm9ybWF0ICE9IERSTV9GT1JNQVRfTlYxMiAmJgo+ICsJCSAgICAhaXNf cGxhbmFyX3l1dl9mb3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0KSAmJgo+ICAJCSAgICAoc3JjX3gg JSAyIHx8IHNyY193ICUgMikpIHsKPiAgCQkJRFJNX0RFQlVHX0tNUygic3JjIHgvdyAoJXUsICV1 KSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMiBmb3IgWVVWIHBsYW5lc1xuIiwKPiAgCQkJCSAgICAg IHNyY194LCBzcmNfdyk7Cj4gQEAgLTE0MTksNiArMTQzMiw5IEBAIHN0YXRpYyBib29sIHNrbF9w bGFuZV9mb3JtYXRfbW9kX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX3BsYW5lICpfcGxhbmUsCj4gIAlj YXNlIERSTV9GT1JNQVRfVVlWWToKPiAgCWNhc2UgRFJNX0ZPUk1BVF9WWVVZOgo+ICAJY2FzZSBE Uk1fRk9STUFUX05WMTI6Cj4gKwljYXNlIERSTV9GT1JNQVRfUDAxMDoKPiArCWNhc2UgRFJNX0ZP Uk1BVF9QMDEyOgo+ICsJY2FzZSBEUk1fRk9STUFUX1AwMTY6Cj4gIAkJaWYgKG1vZGlmaWVyID09 IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkKPiAgCQkJcmV0dXJuIHRydWU7Cj4gIAkJLyogZmFs bCB0aHJvdWdoICovCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==