From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 13/14] drm/i915: skylake primary plane scaling using shared scalers Date: Wed, 29 Apr 2015 15:12:58 +0300 Message-ID: <87zj5rnned.fsf@intel.com> References: <1428445727-18103-14-git-send-email-chandra.konduru@intel.com> <1430167719-13074-1-git-send-email-chandra.konduru@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id DD6AB6E6A3 for ; Wed, 29 Apr 2015 05:14:29 -0700 (PDT) In-Reply-To: <1430167719-13074-1-git-send-email-chandra.konduru@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chandra Konduru , intel-gfx@lists.freedesktop.org, "Roper, Matthew D" Cc: daniel.vetter@intel.com, ander.conselvan.de.oliveira@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyNyBBcHIgMjAxNSwgQ2hhbmRyYSBLb25kdXJ1IDxjaGFuZHJhLmtvbmR1cnVAaW50 ZWwuY29tPiB3cm90ZToKPiBUaGlzIHBhdGNoIGVuYWJsZXMgc2t5bGFrZSBwcmltYXJ5IHBsYW5l IHNjYWxpbmcgdXNpbmcgc2hhcmVkCj4gc2NhbGVycyBhdG9taWMgZGVzZ2luLgo+Cj4gdjI6Cj4g LXVzZSBzaW5nbGUgY29weSBvZiBzY2FsZXIgbGltaXRzIChNYXR0KQo+Cj4gdjM6Cj4gLW1vdmUg ZGV0YWNoX3NjYWxlcnMgdG8gY3J0YyBjb21taXQgcGF0aCAoTWF0dCkKPiAtdXNlIHZhbHVlcyBp biBwbGFuZV9zdGF0ZS0+c3JjIGFzIHJlZ3VsYXIgaW50ZWdlcnMgKG1lKQo+Cj4gdjQ6Cj4gLWNo YW5nZXMgdG8gYWxpZ24gd2l0aCB1cGRhdGVkIHNjYWxlciBzdHJ1Y3R1cmVzIChNYXR0LCBtZSkK PiAta2VlcCBwbGFuZSBzcmMgcmVjdCBpbiAxNi4xNiBmb3JtYXQgKE1hdHQsIERhbmllbCkKPgo+ IHY1Ogo+IC1SZWJhc2VkIG9uIHRvcCBvZiA5MC8yNzAgcm90YXRpb24gY2hhbmdlcyAobWUpCj4g LUZpeGVkIGFuIGlzc3VlIGludHJvZHVjZWQgYnkgOTAvMjcwIGNoYW5nZXMgd2hlcmUgcGxhbmUg cHJvZ3JhbW1pbmcKPiAgaXMgdXNpbmcgZHJtX3BsYW5lLT5zdGF0ZSByZWN0IGluc3RlYWQgb2Yg aW50ZWxfcGxhbmUtPnN0YXRlIHJlY3QuCj4gIFRoaXMgY2hhbmdlIGFsc28gcmVxdWlyZWQgZm9y IHNjYWxpbmcgdG8gd29yayBwcm9wZXJseS4gKG1lKQo+IC1XaXRoIDkwLzI3MCwgdXBkYXRlZCBs aW1pdHMgdG8gY292ZXIgYm90aCBwb3J0cmFpdCBhbmQgbGFuZHNjYXBlIHVzYWdlcyAobWUpCj4g LVJlZmFjdG9yZWQgc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZSB0byByZWR1Y2UgaXRzIHNp emUgKERhbmllbCkKPiAgQWRkZWQgaGVscGVyIGZ1bmN0aW9ucyBmb3IgcmVmYWN0b3JpbmcgYXJl IGNvbXByZWhlbmRlZCBlbm91Z2ggdG8gYmUKPiAgdXNlZCBmb3Igc2t5bGFrZV91cGRhdGVfcGxh bmUgKGZvciBzcHJpdGUpIHRvby4gT25lIHN0b3AgdG93YXJkcwo+ICBoYXZpbmcgc2luZ2xlIGZ1 bmN0aW9uIGZvciBhbGwgcGxhbmVzLgo+Cj4gdjY6Cj4gLUFkZGVkIGZpeG1lIG5vdGUgd2hlbiBj aGVja2luZyBwbGFuZV9zdGF0ZS0+c3JjIHdpZHRoIGluIHVwZGF0ZV9wbGFuZSAoRGFuaWVsKQo+ IC1SZWxlYXNlIGxvY2sgd2hlbiBmYWlsaW5nIHRvIGNvbG9ya2V5IHJlcXVlc3Qgd2l0aCBhY3Rp dmUgc2NhbGVyIChEYW5pZWwpCj4KPiBTaWduZWQtb2ZmLWJ5OiBDaGFuZHJhIEtvbmR1cnUgPGNo YW5kcmEua29uZHVydUBpbnRlbC5jb20+Cj4gUmV2aWV3ZWQtYnk6IG1hdHRoZXcuZC5yb3BlckBp bnRlbC5jb20KCk1hdHQsIEkgbmV2ZXIgc2F3IGFuIGV4cGxpY2l0IHItYiBmcm9tIHlvdSBmb3Ig dGhpcyBwYXRjaCwgYW5kIHRoZXJlCndlcmUgYWxzbyBwbGVudHkgb2YgcmVjZW50IGNoYW5nZXMu IERvZXMgeW91ciByLWIgc3RpbGwgaG9sZD8KCkNoYW5kcmEsIGFuIGVhcmxpZXIgdmVyc2lvbiBv ZiB0aGUgcGF0Y2ggaGFzIFRlc3RjYXNlOiBrbXNfcGxhbmVfc2NhbGluZwpidXQgdGhpcyBvbmUg ZG9lc24ndC4gRG9lcyB0aGF0IHRlc3Qgbm93IGRvIHdoYXQgRGFuaWVsIHJlcXVlc3RlZCBpbgpb MV0/CgpCUiwKSmFuaS4KCgpbMV0gaHR0cDovL21pZC5nbWFuZS5vcmcvMjAxNTA0MTMxODEyNDUu R0M2MDkyQHBoZW5vbS5mZndsbC5sb2NhbAoKPiBSZXZpZXdlZC1ieTogc29uaWthLmppbmRhbEBp bnRlbC5jb20gKHY1KQo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMu YyAgfCAgICA1ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAy NjYgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgICA4ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nwcml0ZS5jICB8ICAgMTAgKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCAyMTkgaW5zZXJ0aW9u cygrKSwgNzAgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+ IGluZGV4IDNjNGI3Y2QuLmNiNmQ1ZjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXRvbWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9t aWMuYwo+IEBAIC0xNjksNyArMTY5LDcgQEAgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiAgCQlwbGFuZS0+c3RhdGUtPnN0YXRlID0gTlVMTDsKPiAgCX0K PiAgCj4gLQkvKiBzd2FwIGNydGNfc3RhdGUgKi8KPiArCS8qIHN3YXAgY3J0Y19zY2FsZXJfc3Rh dGUgKi8KPiAgCWZvciAoaSA9IDA7IGkgPCBkZXYtPm1vZGVfY29uZmlnLm51bV9jcnRjOyBpKysp IHsKPiAgCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBzdGF0ZS0+Y3J0Y3NbaV07Cj4gIAkJaWYg KCFjcnRjKSB7Cj4gQEAgLTE3OCw2ICsxNzgsOSBAQCBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAKPiAgCQl0b19pbnRlbF9jcnRjKGNydGMpLT5jb25m aWctPnNjYWxlcl9zdGF0ZSA9Cj4gIAkJCXRvX2ludGVsX2NydGNfc3RhdGUoc3RhdGUtPmNydGNf c3RhdGVzW2ldKS0+c2NhbGVyX3N0YXRlOwo+ICsKPiArCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5n ZW4gPj0gOSkKPiArCQkJc2tsX2RldGFjaF9zY2FsZXJzKHRvX2ludGVsX2NydGMoY3J0YykpOwo+ ICAJfQo+ICAKPiAgCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXMoZGV2LCBzdGF0ZSk7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDVmN2E0MGYuLjIyNzk5 ZmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTI5NjAsMTI2 ICsyOTYwLDIwNCBAQCB2b2lkIHNrbF9kZXRhY2hfc2NhbGVycyhzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YykKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgc2t5bGFrZV91cGRhdGVf cHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gLQkJCQkJIHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLAo+IC0JCQkJCSBpbnQgeCwgaW50IHkpCj4gK3UzMiBza2xfcGxhbmVf Y3RsX2Zvcm1hdCh1aW50MzJfdCBwaXhlbF9mb3JtYXQpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKGNydGMpOwo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i ajsKPiAtCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAtCXUzMiBwbGFuZV9jdGwsIHN0 cmlkZV9kaXYsIHN0cmlkZTsKPiAtCXUzMiB0aWxlX2hlaWdodCwgcGxhbmVfb2Zmc2V0LCBwbGFu ZV9zaXplOwo+IC0JdW5zaWduZWQgaW50IHJvdGF0aW9uOwo+IC0JaW50IHhfb2Zmc2V0LCB5X29m ZnNldDsKPiAtCXVuc2lnbmVkIGxvbmcgc3VyZl9hZGRyOwo+IC0Jc3RydWN0IGRybV9wbGFuZSAq cGxhbmU7Cj4gLQo+IC0JaWYgKCFpbnRlbF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQpIHsKPiAtCQlJ OTE1X1dSSVRFKFBMQU5FX0NUTChwaXBlLCAwKSwgMCk7Cj4gLQkJSTkxNV9XUklURShQTEFORV9T VVJGKHBpcGUsIDApLCAwKTsKPiAtCQlQT1NUSU5HX1JFQUQoUExBTkVfQ1RMKHBpcGUsIDApKTsK PiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQo+IC0JcGxhbmVfY3RsID0gUExBTkVfQ1RMX0VOQUJMRSB8 Cj4gLQkJICAgIFBMQU5FX0NUTF9QSVBFX0dBTU1BX0VOQUJMRSB8Cj4gLQkJICAgIFBMQU5FX0NU TF9QSVBFX0NTQ19FTkFCTEU7Cj4gLQo+IC0Jc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7Cj4g Kwl1MzIgcGxhbmVfY3RsX2Zvcm1hdCA9IDA7Cj4gKwlzd2l0Y2ggKHBpeGVsX2Zvcm1hdCkgewo+ ICAJY2FzZSBEUk1fRk9STUFUX1JHQjU2NToKPiAtCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX0ZP Uk1BVF9SR0JfNTY1Owo+IC0JCWJyZWFrOwo+IC0JY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Ogo+ IC0JCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfRk9STUFUX1hSR0JfODg4ODsKPiAtCQlicmVhazsK PiAtCWNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4ODoKPiAtCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RM X0ZPUk1BVF9YUkdCXzg4ODg7Cj4gLQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9BTFBIQV9TV19Q UkVNVUxUSVBMWTsKPiArCQlwbGFuZV9jdGxfZm9ybWF0ID0gUExBTkVfQ1RMX0ZPUk1BVF9SR0Jf NTY1Owo+ICAJCWJyZWFrOwo+ICAJY2FzZSBEUk1fRk9STUFUX1hCR1I4ODg4Ogo+IC0JCXBsYW5l X2N0bCB8PSBQTEFORV9DVExfT1JERVJfUkdCWDsKPiAtCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RM X0ZPUk1BVF9YUkdCXzg4ODg7Cj4gKwkJcGxhbmVfY3RsX2Zvcm1hdCA9IFBMQU5FX0NUTF9GT1JN QVRfWFJHQl84ODg4IHwgUExBTkVfQ1RMX09SREVSX1JHQlg7Cj4gIAkJYnJlYWs7Cj4gKwljYXNl IERSTV9GT1JNQVRfWFJHQjg4ODg6Cj4gKwkJcGxhbmVfY3RsX2Zvcm1hdCA9IFBMQU5FX0NUTF9G T1JNQVRfWFJHQl84ODg4Owo+ICsJCWJyZWFrOwo+ICsJLyoKPiArCSAqIFhYWDogRm9yIEFSQkcv QUJHUiBmb3JtYXRzIHdlIGRlZmF1bHQgdG8gZXhwZWN0aW5nIHNjYW5vdXQgYnVmZmVycwo+ICsJ ICogdG8gYmUgYWxyZWFkeSBwcmUtbXVsdGlwbGllZC4gV2UgbmVlZCB0byBhZGQgYSBrbm9iIChv ciBhIGRpZmZlcmVudAo+ICsJICogRFJNX0ZPUk1BVCkgZm9yIHVzZXItc3BhY2UgdG8gY29uZmln dXJlIHRoYXQuCj4gKwkgKi8KPiAgCWNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoKPiAtCQlwbGFu ZV9jdGwgfD0gUExBTkVfQ1RMX09SREVSX1JHQlg7Cj4gLQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NU TF9GT1JNQVRfWFJHQl84ODg4Owo+IC0JCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfQUxQSEFfU1df UFJFTVVMVElQTFk7Cj4gKwkJcGxhbmVfY3RsX2Zvcm1hdCA9IFBMQU5FX0NUTF9GT1JNQVRfWFJH Ql84ODg4IHwgUExBTkVfQ1RMX09SREVSX1JHQlggfAo+ICsJCQlQTEFORV9DVExfQUxQSEFfU1df UFJFTVVMVElQTFk7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6Cj4g KwkJcGxhbmVfY3RsX2Zvcm1hdCA9IFBMQU5FX0NUTF9GT1JNQVRfWFJHQl84ODg4IHwKPiArCQkJ UExBTkVfQ1RMX0FMUEhBX1NXX1BSRU1VTFRJUExZOwo+ICAJCWJyZWFrOwo+ICAJY2FzZSBEUk1f Rk9STUFUX1hSR0IyMTAxMDEwOgo+IC0JCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfRk9STUFUX1hS R0JfMjEwMTAxMDsKPiArCQlwbGFuZV9jdGxfZm9ybWF0ID0gUExBTkVfQ1RMX0ZPUk1BVF9YUkdC XzIxMDEwMTA7Cj4gIAkJYnJlYWs7Cj4gIAljYXNlIERSTV9GT1JNQVRfWEJHUjIxMDEwMTA6Cj4g LQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9PUkRFUl9SR0JYOwo+IC0JCXBsYW5lX2N0bCB8PSBQ TEFORV9DVExfRk9STUFUX1hSR0JfMjEwMTAxMDsKPiArCQlwbGFuZV9jdGxfZm9ybWF0ID0gUExB TkVfQ1RMX09SREVSX1JHQlggfCBQTEFORV9DVExfRk9STUFUX1hSR0JfMjEwMTAxMDsKPiArCQli cmVhazsKPiArCWNhc2UgRFJNX0ZPUk1BVF9ZVVlWOgo+ICsJCXBsYW5lX2N0bF9mb3JtYXQgPSBQ TEFORV9DVExfRk9STUFUX1lVVjQyMiB8IFBMQU5FX0NUTF9ZVVY0MjJfWVVZVjsKPiArCQlicmVh azsKPiArCWNhc2UgRFJNX0ZPUk1BVF9ZVllVOgo+ICsJCXBsYW5lX2N0bF9mb3JtYXQgPSBQTEFO RV9DVExfRk9STUFUX1lVVjQyMiB8IFBMQU5FX0NUTF9ZVVY0MjJfWVZZVTsKPiArCQlicmVhazsK PiArCWNhc2UgRFJNX0ZPUk1BVF9VWVZZOgo+ICsJCXBsYW5lX2N0bF9mb3JtYXQgPSBQTEFORV9D VExfRk9STUFUX1lVVjQyMiB8IFBMQU5FX0NUTF9ZVVY0MjJfVVlWWTsKPiArCQlicmVhazsKPiAr CWNhc2UgRFJNX0ZPUk1BVF9WWVVZOgo+ICsJCXBsYW5lX2N0bF9mb3JtYXQgPSBQTEFORV9DVExf Rk9STUFUX1lVVjQyMiB8IFBMQU5FX0NUTF9ZVVY0MjJfVllVWTsKPiAgCQlicmVhazsKPiAgCWRl ZmF1bHQ6Cj4gIAkJQlVHKCk7Cj4gIAl9Cj4gKwlyZXR1cm4gcGxhbmVfY3RsX2Zvcm1hdDsKPiAr fQo+ICAKPiAtCXN3aXRjaCAoZmItPm1vZGlmaWVyWzBdKSB7Cj4gK3UzMiBza2xfcGxhbmVfY3Rs X3RpbGluZyh1aW50NjRfdCBmYl9tb2RpZmllcikKPiArewo+ICsJdTMyIHBsYW5lX2N0bF90aWxp bmcgPSAwOwo+ICsJc3dpdGNoIChmYl9tb2RpZmllcikgewo+ICAJY2FzZSBEUk1fRk9STUFUX01P RF9OT05FOgo+ICAJCWJyZWFrOwo+ICAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDoKPiAt CQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1RJTEVEX1g7Cj4gKwkJcGxhbmVfY3RsX3RpbGluZyA9 IFBMQU5FX0NUTF9USUxFRF9YOwo+ICAJCWJyZWFrOwo+ICAJY2FzZSBJOTE1X0ZPUk1BVF9NT0Rf WV9USUxFRDoKPiAtCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1RJTEVEX1k7Cj4gKwkJcGxhbmVf Y3RsX3RpbGluZyA9IFBMQU5FX0NUTF9USUxFRF9ZOwo+ICAJCWJyZWFrOwo+ICAJY2FzZSBJOTE1 X0ZPUk1BVF9NT0RfWWZfVElMRUQ6Cj4gLQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9USUxFRF9Z RjsKPiArCQlwbGFuZV9jdGxfdGlsaW5nID0gUExBTkVfQ1RMX1RJTEVEX1lGOwo+ICAJCWJyZWFr Owo+ICAJZGVmYXVsdDoKPiAtCQlNSVNTSU5HX0NBU0UoZmItPm1vZGlmaWVyWzBdKTsKPiArCQlN SVNTSU5HX0NBU0UoZmJfbW9kaWZpZXIpOwo+ICAJfQo+ICsJcmV0dXJuIHBsYW5lX2N0bF90aWxp bmc7Cj4gK30KPiAgCj4gLQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1BMQU5FX0dBTU1BX0RJU0FC TEU7Cj4gLQo+IC0JcGxhbmUgPSBjcnRjLT5wcmltYXJ5Owo+IC0Jcm90YXRpb24gPSBwbGFuZS0+ c3RhdGUtPnJvdGF0aW9uOwo+ICt1MzIgc2tsX3BsYW5lX2N0bF9yb3RhdGlvbih1bnNpZ25lZCBp bnQgcm90YXRpb24pCj4gK3sKPiArCXUzMiBwbGFuZV9jdGxfcm90YXRpb24gPSAwOwo+ICAJc3dp dGNoIChyb3RhdGlvbikgewo+ICsJY2FzZSBCSVQoRFJNX1JPVEFURV8wKToKPiArCQlicmVhazsK PiAgCWNhc2UgQklUKERSTV9ST1RBVEVfOTApOgo+IC0JCXBsYW5lX2N0bCB8PSBQTEFORV9DVExf Uk9UQVRFXzkwOwo+ICsJCXBsYW5lX2N0bF9yb3RhdGlvbiA9IFBMQU5FX0NUTF9ST1RBVEVfOTA7 Cj4gIAkJYnJlYWs7Cj4gLQo+ICAJY2FzZSBCSVQoRFJNX1JPVEFURV8xODApOgo+IC0JCXBsYW5l X2N0bCB8PSBQTEFORV9DVExfUk9UQVRFXzE4MDsKPiArCQlwbGFuZV9jdGxfcm90YXRpb24gPSBQ TEFORV9DVExfUk9UQVRFXzE4MDsKPiAgCQlicmVhazsKPiAtCj4gIAljYXNlIEJJVChEUk1fUk9U QVRFXzI3MCk6Cj4gLQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9ST1RBVEVfMjcwOwo+ICsJCXBs YW5lX2N0bF9yb3RhdGlvbiA9IFBMQU5FX0NUTF9ST1RBVEVfMjcwOwo+ICAJCWJyZWFrOwo+ICsJ ZGVmYXVsdDoKPiArCQlNSVNTSU5HX0NBU0Uocm90YXRpb24pOwo+ICAJfQo+ICAKPiArCXJldHVy biBwbGFuZV9jdGxfcm90YXRpb247Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNreWxha2VfdXBk YXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICsJCQkJCSBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiArCQkJCQkgaW50IHgsIGludCB5KQo+ICt7Cj4gKwlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmo7Cj4gKwlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gKwl1MzIgcGxh bmVfY3RsLCBzdHJpZGVfZGl2LCBzdHJpZGU7Cj4gKwl1MzIgdGlsZV9oZWlnaHQsIHBsYW5lX29m ZnNldCwgcGxhbmVfc2l6ZTsKPiArCXVuc2lnbmVkIGludCByb3RhdGlvbjsKPiArCWludCB4X29m ZnNldCwgeV9vZmZzZXQ7Cj4gKwl1bnNpZ25lZCBsb25nIHN1cmZfYWRkcjsKPiArCXN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lOwo+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUg PSBpbnRlbF9jcnRjLT5jb25maWc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlOwo+ICsJaW50IHNyY194ID0gMCwgc3JjX3kgPSAwLCBzcmNfdyA9IDAsIHNyY19oID0g MDsKPiArCWludCBkc3RfeCA9IDAsIGRzdF95ID0gMCwgZHN0X3cgPSAwLCBkc3RfaCA9IDA7Cj4g KwlpbnQgc2NhbGVyX2lkID0gLTE7Cj4gKwo+ICsJcGxhbmUgPSBjcnRjLT5wcmltYXJ5Owo+ICsJ cGxhbmVfc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpOwo+ICsKPiAr CWlmICghaW50ZWxfY3J0Yy0+cHJpbWFyeV9lbmFibGVkKSB7Cj4gKwkJSTkxNV9XUklURShQTEFO RV9DVEwocGlwZSwgMCksIDApOwo+ICsJCUk5MTVfV1JJVEUoUExBTkVfU1VSRihwaXBlLCAwKSwg MCk7Cj4gKwkJUE9TVElOR19SRUFEKFBMQU5FX0NUTChwaXBlLCAwKSk7Cj4gKwkJcmV0dXJuOwo+ ICsJfQo+ICsKPiArCXBsYW5lX2N0bCA9IFBMQU5FX0NUTF9FTkFCTEUgfAo+ICsJCSAgICBQTEFO RV9DVExfUElQRV9HQU1NQV9FTkFCTEUgfAo+ICsJCSAgICBQTEFORV9DVExfUElQRV9DU0NfRU5B QkxFOwo+ICsKPiArCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX2Zvcm1hdChmYi0+cGl4ZWxf Zm9ybWF0KTsKPiArCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX3RpbGluZyhmYi0+bW9kaWZp ZXJbMF0pOwo+ICsJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9QTEFORV9HQU1NQV9ESVNBQkxFOwo+ ICsKPiArCXJvdGF0aW9uID0gcGxhbmUtPnN0YXRlLT5yb3RhdGlvbjsKPiArCXBsYW5lX2N0bCB8 PSBza2xfcGxhbmVfY3RsX3JvdGF0aW9uKHJvdGF0aW9uKTsKPiArCj4gIAlvYmogPSBpbnRlbF9m Yl9vYmooZmIpOwo+ICAJc3RyaWRlX2RpdiA9IGludGVsX2ZiX3N0cmlkZV9hbGlnbm1lbnQoZGV2 LCBmYi0+bW9kaWZpZXJbMF0sCj4gIAkJCQkJICAgICAgIGZiLT5waXhlbF9mb3JtYXQpOwo+ICAJ c3VyZl9hZGRyID0gaW50ZWxfcGxhbmVfb2JqX29mZnNldCh0b19pbnRlbF9wbGFuZShwbGFuZSks IG9iaik7Cj4gIAo+ICsJLyoKPiArCSAqIEZJWE1FOiBpbnRlbF9wbGFuZV9zdGF0ZS0+c3JjLCBk c3QgYXJlbid0IHNldCB3aGVuIHRyYW5zaXRpb25hbAo+ICsJICogdXBkYXRlX3BsYW5lIGhlbHBl cnMgYXJlIGNhbGxlZCBmcm9tIGxlZ2FjeSBwYXRocy4KPiArCSAqIE9uY2UgZnVsbCBhdG9taWMg Y3J0YyBpcyBhdmFpbGFibGUsIGJlbG93IGNoZWNrIGNhbiBiZSBhdm9pZGVkLgo+ICsJICovCj4g KwlpZiAoZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5zcmMpKSB7Cj4gKwkJc2NhbGVyX2lk ID0gcGxhbmVfc3RhdGUtPnNjYWxlcl9pZDsKPiArCQlzcmNfeCA9IHBsYW5lX3N0YXRlLT5zcmMu eDEgPj4gMTY7Cj4gKwkJc3JjX3kgPSBwbGFuZV9zdGF0ZS0+c3JjLnkxID4+IDE2Owo+ICsJCXNy Y193ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2Owo+ICsJCXNyY19o ID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+c3JjKSA+PiAxNjsKPiArCQlkc3RfeCA9 IHBsYW5lX3N0YXRlLT5kc3QueDE7Cj4gKwkJZHN0X3kgPSBwbGFuZV9zdGF0ZS0+ZHN0LnkxOwo+ ICsJCWRzdF93ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5kc3QpOwo+ICsJCWRzdF9o ID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+ZHN0KTsKPiArCj4gKwkJV0FSTl9PTih4 ICE9IHNyY194IHx8IHkgIT0gc3JjX3kpOwo+ICsJfSBlbHNlIHsKPiArCQlzcmNfdyA9IGludGVs X2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfdzsKPiArCQlzcmNfaCA9IGludGVsX2NydGMtPmNvbmZp Zy0+cGlwZV9zcmNfaDsKPiArCX0KPiArCj4gIAlpZiAoaW50ZWxfcm90YXRpb25fOTBfb3JfMjcw KHJvdGF0aW9uKSkgewo+ICAJCS8qIHN0cmlkZSA9IFN1cmZhY2UgaGVpZ2h0IGluIHRpbGVzICov Cj4gIAkJdGlsZV9oZWlnaHQgPSBpbnRlbF90aWxlX2hlaWdodChkZXYsIGZiLT5iaXRzX3Blcl9w aXhlbCwKPiAgCQkJCQkJZmItPm1vZGlmaWVyWzBdKTsKPiAgCQlzdHJpZGUgPSBESVZfUk9VTkRf VVAoZmItPmhlaWdodCwgdGlsZV9oZWlnaHQpOwo+IC0JCXhfb2Zmc2V0ID0gc3RyaWRlICogdGls ZV9oZWlnaHQgLSB5IC0gKHBsYW5lLT5zdGF0ZS0+c3JjX2ggPj4gMTYpOwo+ICsJCXhfb2Zmc2V0 ID0gc3RyaWRlICogdGlsZV9oZWlnaHQgLSB5IC0gc3JjX2g7Cj4gIAkJeV9vZmZzZXQgPSB4Owo+ IC0JCXBsYW5lX3NpemUgPSAoKHBsYW5lLT5zdGF0ZS0+c3JjX3cgPj4gMTYpIC0gMSkgPDwgMTYg fAo+IC0JCQkJCSgocGxhbmUtPnN0YXRlLT5zcmNfaCA+PiAxNikgLSAxKTsKPiArCQlwbGFuZV9z aXplID0gKHNyY193IC0gMSkgPDwgMTYgfCAoc3JjX2ggLSAxKTsKPiAgCX0gZWxzZSB7Cj4gIAkJ c3RyaWRlID0gZmItPnBpdGNoZXNbMF0gLyBzdHJpZGVfZGl2Owo+ICAJCXhfb2Zmc2V0ID0geDsK PiAgCQl5X29mZnNldCA9IHk7Cj4gLQkJcGxhbmVfc2l6ZSA9ICgocGxhbmUtPnN0YXRlLT5zcmNf aCA+PiAxNikgLSAxKSA8PCAxNiB8Cj4gLQkJCSgocGxhbmUtPnN0YXRlLT5zcmNfdyA+PiAxNikg LSAxKTsKPiArCQlwbGFuZV9zaXplID0gKHNyY19oIC0gMSkgPDwgMTYgfCAoc3JjX3cgLSAxKTsK PiAgCX0KPiAgCXBsYW5lX29mZnNldCA9IHlfb2Zmc2V0IDw8IDE2IHwgeF9vZmZzZXQ7Cj4gIAo+ ICAJSTkxNV9XUklURShQTEFORV9DVEwocGlwZSwgMCksIHBsYW5lX2N0bCk7Cj4gLQlJOTE1X1dS SVRFKFBMQU5FX1BPUyhwaXBlLCAwKSwgMCk7Cj4gIAlJOTE1X1dSSVRFKFBMQU5FX09GRlNFVChw aXBlLCAwKSwgcGxhbmVfb2Zmc2V0KTsKPiAgCUk5MTVfV1JJVEUoUExBTkVfU0laRShwaXBlLCAw KSwgcGxhbmVfc2l6ZSk7Cj4gIAlJOTE1X1dSSVRFKFBMQU5FX1NUUklERShwaXBlLCAwKSwgc3Ry aWRlKTsKPiArCj4gKwlpZiAoc2NhbGVyX2lkID49IDApIHsKPiArCQl1aW50MzJfdCBwc19jdHJs ID0gMDsKPiArCj4gKwkJV0FSTl9PTighZHN0X3cgfHwgIWRzdF9oKTsKPiArCQlwc19jdHJsID0g UFNfU0NBTEVSX0VOIHwgUFNfUExBTkVfU0VMKDApIHwKPiArCQkJY3J0Y19zdGF0ZS0+c2NhbGVy X3N0YXRlLnNjYWxlcnNbc2NhbGVyX2lkXS5tb2RlOwo+ICsJCUk5MTVfV1JJVEUoU0tMX1BTX0NU UkwocGlwZSwgc2NhbGVyX2lkKSwgcHNfY3RybCk7Cj4gKwkJSTkxNV9XUklURShTS0xfUFNfUFdS X0dBVEUocGlwZSwgc2NhbGVyX2lkKSwgMCk7Cj4gKwkJSTkxNV9XUklURShTS0xfUFNfV0lOX1BP UyhwaXBlLCBzY2FsZXJfaWQpLCAoZHN0X3ggPDwgMTYpIHwgZHN0X3kpOwo+ICsJCUk5MTVfV1JJ VEUoU0tMX1BTX1dJTl9TWihwaXBlLCBzY2FsZXJfaWQpLCAoZHN0X3cgPDwgMTYpIHwgZHN0X2gp Owo+ICsJCUk5MTVfV1JJVEUoUExBTkVfUE9TKHBpcGUsIDApLCAwKTsKPiArCX0gZWxzZSB7Cj4g KwkJSTkxNV9XUklURShQTEFORV9QT1MocGlwZSwgMCksIChkc3RfeSA8PCAxNikgfCBkc3RfeCk7 Cj4gKwl9Cj4gKwo+ICAJSTkxNV9XUklURShQTEFORV9TVVJGKHBpcGUsIDApLCBzdXJmX2FkZHIp Owo+ICAKPiAgCVBPU1RJTkdfUkVBRChQTEFORV9TVVJGKHBpcGUsIDApKTsKPiBAQCAtNDMzOCw2 ICs0NDE2LDcgQEAgc2tsX3VwZGF0ZV9zY2FsZXJfdXNlcnMoCj4gIAlpbnQgKnNjYWxlcl9pZDsK PiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwo+ICAJc3RydWN0IGludGVsX2NydGNfc2Nh bGVyX3N0YXRlICpzY2FsZXJfc3RhdGU7Cj4gKwl1bnNpZ25lZCBpbnQgcm90YXRpb247Cj4gIAo+ ICAJaWYgKCFpbnRlbF9jcnRjIHx8ICFjcnRjX3N0YXRlKQo+ICAJCXJldHVybiAwOwo+IEBAIC00 MzUzLDYgKzQ0MzIsNyBAQCBza2xfdXBkYXRlX3NjYWxlcl91c2VycygKPiAgCQlkc3RfdyA9IGRy bV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+ZHN0KTsKPiAgCQlkc3RfaCA9IGRybV9yZWN0X2hl aWdodCgmcGxhbmVfc3RhdGUtPmRzdCk7Cj4gIAkJc2NhbGVyX2lkID0gJnBsYW5lX3N0YXRlLT5z Y2FsZXJfaWQ7Cj4gKwkJcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKPiAg CX0gZWxzZSB7Cj4gIAkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+ ICAJCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+IEBAIC00MzYxLDggKzQ0NDEs MTIgQEAgc2tsX3VwZGF0ZV9zY2FsZXJfdXNlcnMoCj4gIAkJZHN0X3cgPSBhZGp1c3RlZF9tb2Rl LT5oZGlzcGxheTsKPiAgCQlkc3RfaCA9IGFkanVzdGVkX21vZGUtPnZkaXNwbGF5Owo+ICAJCXNj YWxlcl9pZCA9ICZzY2FsZXJfc3RhdGUtPnNjYWxlcl9pZDsKPiArCQlyb3RhdGlvbiA9IERSTV9S T1RBVEVfMDsKPiAgCX0KPiAtCW5lZWRfc2NhbGluZyA9IChzcmNfdyAhPSBkc3RfdyB8fCBzcmNf aCAhPSBkc3RfaCk7Cj4gKwo+ICsJbmVlZF9zY2FsaW5nID0gaW50ZWxfcm90YXRpb25fOTBfb3Jf MjcwKHJvdGF0aW9uKSA/Cj4gKwkJKHNyY19oICE9IGRzdF93IHx8IHNyY193ICE9IGRzdF9oKToK PiArCQkoc3JjX3cgIT0gZHN0X3cgfHwgc3JjX2ggIT0gZHN0X2gpOwo+ICAKPiAgCS8qCj4gIAkg KiBpZiBwbGFuZSBpcyBiZWluZyBkaXNhYmxlZCBvciBzY2FsZXIgaXMgbm8gbW9yZSByZXF1aXJl ZCBvciBmb3JjZSBkZXRhY2gKPiBAQCAtMTI4MDUsNiArMTI4ODksMzYgQEAgaW50ZWxfY2xlYW51 cF9wbGFuZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCX0KPiAgfQo+ICAKPiAraW50 Cj4gK3NrbF9tYXhfc2NhbGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICt7Cj4gKwlpbnQgbWF4X3NjYWxlOwo+ICsJ c3RydWN0IGRybV9kZXZpY2UgKmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdjsKPiArCWludCBjcnRjX2Nsb2NrLCBjZGNsazsKPiArCj4gKwlpZiAoIWludGVsX2NydGMg fHwgIWNydGNfc3RhdGUpCj4gKwkJcmV0dXJuIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORzsK PiArCj4gKwlkZXYgPSBpbnRlbF9jcnRjLT5iYXNlLmRldjsKPiArCWRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiArCWNydGNfY2xvY2sgPSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21v ZGUuY3J0Y19jbG9jazsKPiArCWNkY2xrID0gZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlf Y2xvY2tfc3BlZWQoZGV2KTsKPiArCj4gKwlpZiAoIWNydGNfY2xvY2sgfHwgIWNkY2xrKQo+ICsJ CXJldHVybiBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkc7Cj4gKwo+ICsJLyoKPiArCSAqIHNr bCBtYXggc2NhbGUgaXMgbG93ZXIgb2Y6Cj4gKwkgKiAgICBjbG9zZSB0byAzIGJ1dCBub3QgMywg LTEgaXMgZm9yIHRoYXQgcHVycG9zZQo+ICsJICogICAgICAgICAgICBvcgo+ICsJICogICAgY2Rj bGsvY3J0Y19jbG9jawo+ICsJICovCj4gKwltYXhfc2NhbGUgPSBtaW4oKDEgPDwgMTYpICogMyAt IDEsICgxIDw8IDgpICogKChjZGNsayA8PCA4KSAvIGNydGNfY2xvY2spKTsKPiArCj4gKwlyZXR1 cm4gbWF4X3NjYWxlOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50Cj4gIGludGVsX2NoZWNrX3ByaW1h cnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJCSAgc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpzdGF0ZSkKPiBAQCAtMTI4MTMsMjMgKzEyOTI3LDMxIEBAIGludGVsX2NoZWNr X3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGRybV9j cnRjICpjcnRjID0gc3RhdGUtPmJhc2UuY3J0YzsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjOwo+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gIAlzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOwo+ICAJc3RydWN0IGRybV9y ZWN0ICpkZXN0ID0gJnN0YXRlLT5kc3Q7Cj4gIAlzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9ICZzdGF0 ZS0+c3JjOwo+ICAJY29uc3Qgc3RydWN0IGRybV9yZWN0ICpjbGlwID0gJnN0YXRlLT5jbGlwOwo+ ICAJYm9vbCBjYW5fcG9zaXRpb24gPSBmYWxzZTsKPiArCWludCBtYXhfc2NhbGUgPSBEUk1fUExB TkVfSEVMUEVSX05PX1NDQUxJTkc7Cj4gKwlpbnQgbWluX3NjYWxlID0gRFJNX1BMQU5FX0hFTFBF Ul9OT19TQ0FMSU5HOwo+ICAJaW50IHJldDsKPiAgCj4gIAljcnRjID0gY3J0YyA/IGNydGMgOiBw bGFuZS0+Y3J0YzsKPiAgCWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICsJY3J0 Y19zdGF0ZSA9IHN0YXRlLT5iYXNlLnN0YXRlID8KPiArCQlpbnRlbF9hdG9taWNfZ2V0X2NydGNf c3RhdGUoc3RhdGUtPmJhc2Uuc3RhdGUsIGludGVsX2NydGMpIDogTlVMTDsKPiAgCj4gLQlpZiAo SU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkKPiArCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+ PSA5KSB7Cj4gKwkJbWluX3NjYWxlID0gMTsKPiArCQltYXhfc2NhbGUgPSBza2xfbWF4X3NjYWxl KGludGVsX2NydGMsIGNydGNfc3RhdGUpOwo+ICAJCWNhbl9wb3NpdGlvbiA9IHRydWU7Cj4gKwl9 Cj4gIAo+ICAJcmV0ID0gZHJtX3BsYW5lX2hlbHBlcl9jaGVja191cGRhdGUocGxhbmUsIGNydGMs IGZiLAo+ICAJCQkJCSAgICBzcmMsIGRlc3QsIGNsaXAsCj4gLQkJCQkJICAgIERSTV9QTEFORV9I RUxQRVJfTk9fU0NBTElORywKPiAtCQkJCQkgICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5H LAo+ICsJCQkJCSAgICBtaW5fc2NhbGUsCj4gKwkJCQkJICAgIG1heF9zY2FsZSwKPiAgCQkJCQkg ICAgY2FuX3Bvc2l0aW9uLCB0cnVlLAo+ICAJCQkJCSAgICAmc3RhdGUtPnZpc2libGUpOwo+ICAJ aWYgKHJldCkKPiBAQCAtMTI4NzQsNiArMTI5OTYsMTMgQEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9w bGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQkJaW50ZWxfY3J0Yy0+YXRvbWljLnVw ZGF0ZV93bSA9IHRydWU7Cj4gIAl9Cj4gIAo+ICsJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49 IDkpIHsKPiArCQlyZXQgPSBza2xfdXBkYXRlX3NjYWxlcl91c2VycyhpbnRlbF9jcnRjLCBjcnRj X3N0YXRlLAo+ICsJCQl0b19pbnRlbF9wbGFuZShwbGFuZSksIHN0YXRlLCAwKTsKPiArCQlpZiAo cmV0KQo+ICsJCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ IEBAIC0xMzA1Myw2ICsxMzE4Miw5IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX3BsYW5lICppbnRlbF9w cmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAKPiAgCXByaW1h cnktPmNhbl9zY2FsZSA9IGZhbHNlOwo+ICAJcHJpbWFyeS0+bWF4X2Rvd25zY2FsZSA9IDE7Cj4g KwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgewo+ICsJCXByaW1hcnktPmNhbl9zY2Fs ZSA9IHRydWU7Cj4gKwl9Cj4gIAlzdGF0ZS0+c2NhbGVyX2lkID0gLTE7Cj4gIAlwcmltYXJ5LT5w aXBlID0gcGlwZTsKPiAgCXByaW1hcnktPnBsYW5lID0gcGlwZTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+IGluZGV4IDI3NWE0ZWYuLmM5YmM5NzUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+IEBAIC0yODgsMTEgKzI4OCwxMSBAQCBzdHJ1Y3QgaW50ZWxfaW5pdGlhbF9wbGFu ZV9jb25maWcgewo+ICAjZGVmaW5lIFNLTF9NSU5fU1JDX1cgOAo+ICAjZGVmaW5lIFNLTF9NQVhf U1JDX1cgNDA5Ngo+ICAjZGVmaW5lIFNLTF9NSU5fU1JDX0ggOAo+IC0jZGVmaW5lIFNLTF9NQVhf U1JDX0ggMjMwNAo+ICsjZGVmaW5lIFNLTF9NQVhfU1JDX0ggNDA5Ngo+ICAjZGVmaW5lIFNLTF9N SU5fRFNUX1cgOAo+ICAjZGVmaW5lIFNLTF9NQVhfRFNUX1cgNDA5Ngo+ICAjZGVmaW5lIFNLTF9N SU5fRFNUX0ggOAo+IC0jZGVmaW5lIFNLTF9NQVhfRFNUX0ggMjMwNAo+ICsjZGVmaW5lIFNLTF9N QVhfRFNUX0ggNDA5Ngo+ICAKPiAgc3RydWN0IGludGVsX3NjYWxlciB7Cj4gIAlpbnQgaWQ7Cj4g QEAgLTExMzEsOSArMTEzMSwxMyBAQCB2b2lkIHNrbF9kZXRhY2hfc2NhbGVycyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0Yyk7Cj4gIGludCBza2xfdXBkYXRlX3NjYWxlcl91c2VycyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLCBzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lLAo+ICAJc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwgaW50IGZvcmNlX2RldGFjaCk7Cj4gK2ludCBz a2xfbWF4X3NjYWxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gIAo+ICB1bnNpZ25lZCBsb25nIGludGVsX3BsYW5lX29ial9v ZmZzZXQoc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSwKPiAgCQkJCSAgICAgc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7Cj4gK3UzMiBza2xfcGxhbmVfY3RsX2Zvcm1hdCh1 aW50MzJfdCBwaXhlbF9mb3JtYXQpOwo+ICt1MzIgc2tsX3BsYW5lX2N0bF90aWxpbmcodWludDY0 X3QgZmJfbW9kaWZpZXIpOwo+ICt1MzIgc2tsX3BsYW5lX2N0bF9yb3RhdGlvbih1bnNpZ25lZCBp bnQgcm90YXRpb24pOwo+ICAKPiAgLyogaW50ZWxfZHAuYyAqLwo+ICB2b2lkIGludGVsX2RwX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IG91dHB1dF9yZWcsIGVudW0gcG9ydCBwb3J0 KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IDBjYjM3NjcuLmM4ZTcz NzcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IEBAIC0xMTUwLDYgKzEx NTAsMTYgQEAgaW50IGludGVsX3Nwcml0ZV9zZXRfY29sb3JrZXkoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKPiAgCX0KPiAgCj4gIAlpbnRlbF9wbGFuZSA9IHRvX2ludGVsX3Bs YW5lKHBsYW5lKTsKPiArCj4gKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgewo+ICsJ CS8qIHBsYW5lIHNjYWxpbmcgYW5kIGNvbG9ya2V5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUgKi8K PiArCQlpZiAodG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKS0+c2NhbGVyX2lkID49 IDApIHsKPiArCQkJRFJNX0VSUk9SKCJjb2xvcmtleSBub3QgYWxsb3dlZCB3aXRoIHNjYWxlclxu Iik7Cj4gKwkJCXJldCA9IC1FSU5WQUw7Cj4gKwkJCWdvdG8gb3V0X3VubG9jazsKPiArCQl9Cj4g Kwl9Cj4gKwo+ICAJaW50ZWxfcGxhbmUtPmNrZXkgPSAqc2V0Owo+ICAKPiAgCS8qCj4gLS0gCj4g MS43LjkuNQo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50 ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK