From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 13/14] drm/i915: skylake primary plane scaling using shared scalers Date: Thu, 23 Apr 2015 22:20:05 +0200 Message-ID: <20150423202005.GF30184@phenom.ffwll.local> References: <1428445727-18103-14-git-send-email-chandra.konduru@intel.com> <1429136078-15666-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 mail-wi0-f175.google.com (mail-wi0-f175.google.com [209.85.212.175]) by gabe.freedesktop.org (Postfix) with ESMTP id EA37B6E09E for ; Thu, 23 Apr 2015 13:17:58 -0700 (PDT) Received: by wiun10 with SMTP id n10so105187436wiu.1 for ; Thu, 23 Apr 2015 13:17:58 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1429136078-15666-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 Cc: daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org, ander.conselvan.de.oliveira@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBBcHIgMTUsIDIwMTUgYXQgMDM6MTQ6MzhQTSAtMDcwMCwgQ2hhbmRyYSBLb25kdXJ1 IHdyb3RlOgo+IFRoaXMgcGF0Y2ggZW5hYmxlcyBza3lsYWtlIHByaW1hcnkgcGxhbmUgc2NhbGlu ZyB1c2luZyBzaGFyZWQKPiBzY2FsZXJzIGF0b21pYyBkZXNnaW4uCj4gCj4gdjI6Cj4gLXVzZSBz aW5nbGUgY29weSBvZiBzY2FsZXIgbGltaXRzIChNYXR0KQo+IAo+IHYzOgo+IC1tb3ZlIGRldGFj aF9zY2FsZXJzIHRvIGNydGMgY29tbWl0IHBhdGggKE1hdHQpCj4gLXVzZSB2YWx1ZXMgaW4gcGxh bmVfc3RhdGUtPnNyYyBhcyByZWd1bGFyIGludGVnZXJzIChtZSkKPiAKPiB2NDoKPiAtY2hhbmdl cyB0byBhbGlnbiB3aXRoIHVwZGF0ZWQgc2NhbGVyIHN0cnVjdHVyZXMgKE1hdHQsIG1lKQo+IC1r ZWVwIHBsYW5lIHNyYyByZWN0IGluIDE2LjE2IGZvcm1hdCAoTWF0dCwgRGFuaWVsKQo+IAo+IHY1 Ogo+IC1SZWJhc2VkIG9uIHRvcCBvZiA5MC8yNzAgcm90YXRpb24gY2hhbmdlcyAobWUpCj4gLUZp eGVkIGFuIGlzc3VlIGludHJvZHVjZWQgYnkgOTAvMjcwIGNoYW5nZXMgd2hlcmUgcGxhbmUgcHJv Z3JhbW1pbmcKPiAgaXMgdXNpbmcgZHJtX3BsYW5lLT5zdGF0ZSByZWN0IGluc3RlYWQgb2YgaW50 ZWxfcGxhbmUtPnN0YXRlIHJlY3QuCj4gIFRoaXMgY2hhbmdlIGFsc28gcmVxdWlyZWQgZm9yIHNj YWxpbmcgdG8gd29yayBwcm9wZXJseS4gKG1lKQo+IC1XaXRoIDkwLzI3MCwgdXBkYXRlZCBsaW1p dHMgdG8gY292ZXIgYm90aCBwb3J0cmFpdCBhbmQgbGFuZHNjYXBlIHVzYWdlcyAobWUpCj4gLVJl ZmFjdG9yZWQgc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZSB0byByZWR1Y2UgaXRzIHNpemUg KERhbmllbCkKPiAgQWRkZWQgaGVscGVyIGZ1bmN0aW9ucyBmb3IgcmVmYWN0b3JpbmcgYXJlIGNv bXByZWhlbmRlZCBlbm91Z2ggdG8gYmUKPiAgdXNlZCBmb3Igc2t5bGFrZV91cGRhdGVfcGxhbmUg KGZvciBzcHJpdGUpIHRvby4gT25lIHN0b3AgdG93YXJkcwo+ICBoYXZpbmcgc2luZ2xlIGZ1bmN0 aW9uIGZvciBhbGwgcGxhbmVzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IENoYW5kcmEgS29uZHVydSA8 Y2hhbmRyYS5rb25kdXJ1QGludGVsLmNvbT4KPiBSZXZpZXdlZC1ieTogTWF0dCBSb3BlciA8bWF0 dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiBUZXN0Y2FzZToga21zX3BsYW5lX3NjYWxpbmcKCkkg d2FudGVkIHRvIHB1bGwgdGhpcyBpbiBidXQgdGhlbiBzcG90dGVkIGFuIGlzc3VlLiBTaW5jZSB0 aGlzIG5lZWRzIG9uZQptb3JlIHJvdW5kIGNhbiB5b3UgcGVyaGFwcyB1c2UgdGhlIG9sZGVyIHZl cnNpb24gYXMgYSBiYXNlbGluZSBhZ2Fpbgood2l0aG91dCB0aGUgcmVmYWN0b3JpbmcpPyBTaW5j ZSBza2wgcGxhbmVzIGFyZW4ndCBjb252ZXJ0ZWQgdG8gdW5pdmVyc2FsCnBsYW5lcyB5ZXQgaXQg bWlnaHQgYmUgYmV0dGVyIHRvIHdhaXQgd2l0aCByZWZhY3RvcmluZyB1bnRpbCB0aGF0J3MgZG9u ZQphY3R1YWxseS4gVHdvIG1vcmUgY29tbWVudHMgYmVsb3cuCi1EYW5pZWwKCj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICB8ICAgIDUgKy0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDI2MSArKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAg IDggKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgIHwgICAgOSArKwo+ ICA0IGZpbGVzIGNoYW5nZWQsIDIxMyBpbnNlcnRpb25zKCspLCA3MCBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+IGluZGV4IDNjNGI3Y2QuLmNiNmQ1ZjIg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+IEBAIC0xNjksNyArMTY5LDcg QEAgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQlw bGFuZS0+c3RhdGUtPnN0YXRlID0gTlVMTDsKPiAgCX0KPiAgCj4gLQkvKiBzd2FwIGNydGNfc3Rh dGUgKi8KPiArCS8qIHN3YXAgY3J0Y19zY2FsZXJfc3RhdGUgKi8KPiAgCWZvciAoaSA9IDA7IGkg PCBkZXYtPm1vZGVfY29uZmlnLm51bV9jcnRjOyBpKyspIHsKPiAgCQlzdHJ1Y3QgZHJtX2NydGMg KmNydGMgPSBzdGF0ZS0+Y3J0Y3NbaV07Cj4gIAkJaWYgKCFjcnRjKSB7Cj4gQEAgLTE3OCw2ICsx NzgsOSBAQCBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICAKPiAgCQl0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWctPnNjYWxlcl9zdGF0ZSA9Cj4gIAkJ CXRvX2ludGVsX2NydGNfc3RhdGUoc3RhdGUtPmNydGNfc3RhdGVzW2ldKS0+c2NhbGVyX3N0YXRl Owo+ICsKPiArCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkKPiArCQkJc2tsX2RldGFj aF9zY2FsZXJzKHRvX2ludGVsX2NydGMoY3J0YykpOwo+ICAJfQo+ICAKPiAgCWRybV9hdG9taWNf aGVscGVyX2NvbW1pdF9wbGFuZXMoZGV2LCBzdGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+IGluZGV4IDVmN2E0MGYuLjdmM2FlOGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTI5NjAsMTI2ICsyOTYwLDE5OSBAQCB2b2lkIHNrbF9k ZXRhY2hfc2NhbGVycyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YykKPiAgCX0KPiAgfQo+ ICAKPiAtc3RhdGljIHZvaWQgc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCj4gLQkJCQkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+IC0JCQkJ CSBpbnQgeCwgaW50IHkpCj4gK3UzMiBza2xfcGxhbmVfY3RsX2Zvcm1hdCh1aW50MzJfdCBwaXhl bF9mb3JtYXQpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4g LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiAtCWludCBwaXBlID0gaW50ZWxf Y3J0Yy0+cGlwZTsKPiAtCXUzMiBwbGFuZV9jdGwsIHN0cmlkZV9kaXYsIHN0cmlkZTsKPiAtCXUz MiB0aWxlX2hlaWdodCwgcGxhbmVfb2Zmc2V0LCBwbGFuZV9zaXplOwo+IC0JdW5zaWduZWQgaW50 IHJvdGF0aW9uOwo+IC0JaW50IHhfb2Zmc2V0LCB5X29mZnNldDsKPiAtCXVuc2lnbmVkIGxvbmcg c3VyZl9hZGRyOwo+IC0Jc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gLQo+IC0JaWYgKCFpbnRl bF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQpIHsKPiAtCQlJOTE1X1dSSVRFKFBMQU5FX0NUTChwaXBl LCAwKSwgMCk7Cj4gLQkJSTkxNV9XUklURShQTEFORV9TVVJGKHBpcGUsIDApLCAwKTsKPiAtCQlQ T1NUSU5HX1JFQUQoUExBTkVfQ1RMKHBpcGUsIDApKTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQo+ IC0JcGxhbmVfY3RsID0gUExBTkVfQ1RMX0VOQUJMRSB8Cj4gLQkJICAgIFBMQU5FX0NUTF9QSVBF X0dBTU1BX0VOQUJMRSB8Cj4gLQkJICAgIFBMQU5FX0NUTF9QSVBFX0NTQ19FTkFCTEU7Cj4gLQo+ IC0Jc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7Cj4gKwl1MzIgcGxhbmVfY3RsX2Zvcm1hdCA9 IDA7Cj4gKwlzd2l0Y2ggKHBpeGVsX2Zvcm1hdCkgewo+ICAJY2FzZSBEUk1fRk9STUFUX1JHQjU2 NToKPiAtCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX0ZPUk1BVF9SR0JfNTY1Owo+IC0JCWJyZWFr Owo+IC0JY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Ogo+IC0JCXBsYW5lX2N0bCB8PSBQTEFORV9D VExfRk9STUFUX1hSR0JfODg4ODsKPiAtCQlicmVhazsKPiAtCWNhc2UgRFJNX0ZPUk1BVF9BUkdC ODg4ODoKPiAtCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX0ZPUk1BVF9YUkdCXzg4ODg7Cj4gLQkJ cGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9BTFBIQV9TV19QUkVNVUxUSVBMWTsKPiArCQlwbGFuZV9j dGxfZm9ybWF0ID0gUExBTkVfQ1RMX0ZPUk1BVF9SR0JfNTY1Owo+ICAJCWJyZWFrOwo+ICAJY2Fz ZSBEUk1fRk9STUFUX1hCR1I4ODg4Ogo+IC0JCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfT1JERVJf UkdCWDsKPiAtCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX0ZPUk1BVF9YUkdCXzg4ODg7Cj4gKwkJ cGxhbmVfY3RsX2Zvcm1hdCA9IFBMQU5FX0NUTF9GT1JNQVRfWFJHQl84ODg4IHwgUExBTkVfQ1RM X09SREVSX1JHQlg7Cj4gIAkJYnJlYWs7Cj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6Cj4g KwkJcGxhbmVfY3RsX2Zvcm1hdCA9IFBMQU5FX0NUTF9GT1JNQVRfWFJHQl84ODg4Owo+ICsJCWJy ZWFrOwo+ICsJLyoKPiArCSAqIFhYWDogRm9yIEFSQkcvQUJHUiBmb3JtYXRzIHdlIGRlZmF1bHQg dG8gZXhwZWN0aW5nIHNjYW5vdXQgYnVmZmVycwo+ICsJICogdG8gYmUgYWxyZWFkeSBwcmUtbXVs dGlwbGllZC4gV2UgbmVlZCB0byBhZGQgYSBrbm9iIChvciBhIGRpZmZlcmVudAo+ICsJICogRFJN X0ZPUk1BVCkgZm9yIHVzZXItc3BhY2UgdG8gY29uZmlndXJlIHRoYXQuCj4gKwkgKi8KPiAgCWNh c2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoKPiAtCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX09SREVS X1JHQlg7Cj4gLQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9GT1JNQVRfWFJHQl84ODg4Owo+IC0J CXBsYW5lX2N0bCB8PSBQTEFORV9DVExfQUxQSEFfU1dfUFJFTVVMVElQTFk7Cj4gKwkJcGxhbmVf Y3RsX2Zvcm1hdCA9IFBMQU5FX0NUTF9GT1JNQVRfWFJHQl84ODg4IHwgUExBTkVfQ1RMX09SREVS X1JHQlggfAo+ICsJCQlQTEFORV9DVExfQUxQSEFfU1dfUFJFTVVMVElQTFk7Cj4gKwkJYnJlYWs7 Cj4gKwljYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6Cj4gKwkJcGxhbmVfY3RsX2Zvcm1hdCA9IFBM QU5FX0NUTF9GT1JNQVRfWFJHQl84ODg4IHwKPiArCQkJUExBTkVfQ1RMX0FMUEhBX1NXX1BSRU1V TFRJUExZOwo+ICAJCWJyZWFrOwo+ICAJY2FzZSBEUk1fRk9STUFUX1hSR0IyMTAxMDEwOgo+IC0J CXBsYW5lX2N0bCB8PSBQTEFORV9DVExfRk9STUFUX1hSR0JfMjEwMTAxMDsKPiArCQlwbGFuZV9j dGxfZm9ybWF0ID0gUExBTkVfQ1RMX0ZPUk1BVF9YUkdCXzIxMDEwMTA7Cj4gIAkJYnJlYWs7Cj4g IAljYXNlIERSTV9GT1JNQVRfWEJHUjIxMDEwMTA6Cj4gLQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NU TF9PUkRFUl9SR0JYOwo+IC0JCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfRk9STUFUX1hSR0JfMjEw MTAxMDsKPiArCQlwbGFuZV9jdGxfZm9ybWF0ID0gUExBTkVfQ1RMX09SREVSX1JHQlggfCBQTEFO RV9DVExfRk9STUFUX1hSR0JfMjEwMTAxMDsKPiArCQlicmVhazsKPiArCWNhc2UgRFJNX0ZPUk1B VF9ZVVlWOgo+ICsJCXBsYW5lX2N0bF9mb3JtYXQgPSBQTEFORV9DVExfRk9STUFUX1lVVjQyMiB8 IFBMQU5FX0NUTF9ZVVY0MjJfWVVZVjsKPiArCQlicmVhazsKPiArCWNhc2UgRFJNX0ZPUk1BVF9Z VllVOgo+ICsJCXBsYW5lX2N0bF9mb3JtYXQgPSBQTEFORV9DVExfRk9STUFUX1lVVjQyMiB8IFBM QU5FX0NUTF9ZVVY0MjJfWVZZVTsKPiArCQlicmVhazsKPiArCWNhc2UgRFJNX0ZPUk1BVF9VWVZZ Ogo+ICsJCXBsYW5lX2N0bF9mb3JtYXQgPSBQTEFORV9DVExfRk9STUFUX1lVVjQyMiB8IFBMQU5F X0NUTF9ZVVY0MjJfVVlWWTsKPiArCQlicmVhazsKPiArCWNhc2UgRFJNX0ZPUk1BVF9WWVVZOgo+ ICsJCXBsYW5lX2N0bF9mb3JtYXQgPSBQTEFORV9DVExfRk9STUFUX1lVVjQyMiB8IFBMQU5FX0NU TF9ZVVY0MjJfVllVWTsKPiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gIAkJQlVHKCk7Cj4gIAl9 Cj4gKwlyZXR1cm4gcGxhbmVfY3RsX2Zvcm1hdDsKPiArfQo+ICAKPiAtCXN3aXRjaCAoZmItPm1v ZGlmaWVyWzBdKSB7Cj4gK3UzMiBza2xfcGxhbmVfY3RsX3RpbGluZyh1aW50NjRfdCBmYl9tb2Rp ZmllcikKPiArewo+ICsJdTMyIHBsYW5lX2N0bF90aWxpbmcgPSAwOwo+ICsJc3dpdGNoIChmYl9t b2RpZmllcikgewo+ICAJY2FzZSBEUk1fRk9STUFUX01PRF9OT05FOgo+ICAJCWJyZWFrOwo+ICAJ Y2FzZSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDoKPiAtCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RM X1RJTEVEX1g7Cj4gKwkJcGxhbmVfY3RsX3RpbGluZyA9IFBMQU5FX0NUTF9USUxFRF9YOwo+ICAJ CWJyZWFrOwo+ICAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRDoKPiAtCQlwbGFuZV9jdGwg fD0gUExBTkVfQ1RMX1RJTEVEX1k7Cj4gKwkJcGxhbmVfY3RsX3RpbGluZyA9IFBMQU5FX0NUTF9U SUxFRF9ZOwo+ICAJCWJyZWFrOwo+ICAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQ6Cj4g LQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9USUxFRF9ZRjsKPiArCQlwbGFuZV9jdGxfdGlsaW5n ID0gUExBTkVfQ1RMX1RJTEVEX1lGOwo+ICAJCWJyZWFrOwo+ICAJZGVmYXVsdDoKPiAtCQlNSVNT SU5HX0NBU0UoZmItPm1vZGlmaWVyWzBdKTsKPiArCQlNSVNTSU5HX0NBU0UoZmJfbW9kaWZpZXIp Owo+ICAJfQo+ICsJcmV0dXJuIHBsYW5lX2N0bF90aWxpbmc7Cj4gK30KPiAgCj4gLQlwbGFuZV9j dGwgfD0gUExBTkVfQ1RMX1BMQU5FX0dBTU1BX0RJU0FCTEU7Cj4gLQo+IC0JcGxhbmUgPSBjcnRj LT5wcmltYXJ5Owo+IC0Jcm90YXRpb24gPSBwbGFuZS0+c3RhdGUtPnJvdGF0aW9uOwo+ICt1MzIg c2tsX3BsYW5lX2N0bF9yb3RhdGlvbih1bnNpZ25lZCBpbnQgcm90YXRpb24pCj4gK3sKPiArCXUz MiBwbGFuZV9jdGxfcm90YXRpb24gPSAwOwo+ICAJc3dpdGNoIChyb3RhdGlvbikgewo+ICsJY2Fz ZSBCSVQoRFJNX1JPVEFURV8wKToKPiArCQlicmVhazsKPiAgCWNhc2UgQklUKERSTV9ST1RBVEVf OTApOgo+IC0JCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUk9UQVRFXzkwOwo+ICsJCXBsYW5lX2N0 bF9yb3RhdGlvbiA9IFBMQU5FX0NUTF9ST1RBVEVfOTA7Cj4gIAkJYnJlYWs7Cj4gLQo+ICAJY2Fz ZSBCSVQoRFJNX1JPVEFURV8xODApOgo+IC0JCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUk9UQVRF XzE4MDsKPiArCQlwbGFuZV9jdGxfcm90YXRpb24gPSBQTEFORV9DVExfUk9UQVRFXzE4MDsKPiAg CQlicmVhazsKPiAtCj4gIAljYXNlIEJJVChEUk1fUk9UQVRFXzI3MCk6Cj4gLQkJcGxhbmVfY3Rs IHw9IFBMQU5FX0NUTF9ST1RBVEVfMjcwOwo+ICsJCXBsYW5lX2N0bF9yb3RhdGlvbiA9IFBMQU5F X0NUTF9ST1RBVEVfMjcwOwo+ICAJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlNSVNTSU5HX0NB U0Uocm90YXRpb24pOwo+ICAJfQo+ICAKPiArCXJldHVybiBwbGFuZV9jdGxfcm90YXRpb247Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0 IGRybV9jcnRjICpjcnRjLAo+ICsJCQkJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAr CQkJCQkgaW50IHgsIGludCB5KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0 Yy0+ZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjKTsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4gKwlpbnQgcGlw ZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gKwl1MzIgcGxhbmVfY3RsLCBzdHJpZGVfZGl2LCBzdHJp ZGU7Cj4gKwl1MzIgdGlsZV9oZWlnaHQsIHBsYW5lX29mZnNldCwgcGxhbmVfc2l6ZTsKPiArCXVu c2lnbmVkIGludCByb3RhdGlvbjsKPiArCWludCB4X29mZnNldCwgeV9vZmZzZXQ7Cj4gKwl1bnNp Z25lZCBsb25nIHN1cmZfYWRkcjsKPiArCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ICsJc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSBpbnRlbF9jcnRjLT5jb25maWc7Cj4g KwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+ICsJaW50IHNyY194ID0g MCwgc3JjX3kgPSAwLCBzcmNfdyA9IDAsIHNyY19oID0gMDsKPiArCWludCBkc3RfeCA9IDAsIGRz dF95ID0gMCwgZHN0X3cgPSAwLCBkc3RfaCA9IDA7Cj4gKwlpbnQgc2NhbGVyX2lkID0gLTE7Cj4g Kwo+ICsJcGxhbmUgPSBjcnRjLT5wcmltYXJ5Owo+ICsJcGxhbmVfc3RhdGUgPSBwbGFuZSA/IHRv X2ludGVsX3BsYW5lX3N0YXRlKGNydGMtPnByaW1hcnktPnN0YXRlKSA6IE5VTEw7Cj4gKwo+ICsJ aWYgKCFpbnRlbF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQpIHsKPiArCQlJOTE1X1dSSVRFKFBMQU5F X0NUTChwaXBlLCAwKSwgMCk7Cj4gKwkJSTkxNV9XUklURShQTEFORV9TVVJGKHBpcGUsIDApLCAw KTsKPiArCQlQT1NUSU5HX1JFQUQoUExBTkVfQ1RMKHBpcGUsIDApKTsKPiArCQlyZXR1cm47Cj4g Kwl9Cj4gKwo+ICsJcGxhbmVfY3RsID0gUExBTkVfQ1RMX0VOQUJMRSB8Cj4gKwkJICAgIFBMQU5F X0NUTF9QSVBFX0dBTU1BX0VOQUJMRSB8Cj4gKwkJICAgIFBMQU5FX0NUTF9QSVBFX0NTQ19FTkFC TEU7Cj4gKwo+ICsJcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9jdGxfZm9ybWF0KGZiLT5waXhlbF9m b3JtYXQpOwo+ICsJcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9jdGxfdGlsaW5nKGZiLT5tb2RpZmll clswXSk7Cj4gKwlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1BMQU5FX0dBTU1BX0RJU0FCTEU7Cj4g Kwo+ICsJcm90YXRpb24gPSBwbGFuZS0+c3RhdGUtPnJvdGF0aW9uOwo+ICsJcGxhbmVfY3RsIHw9 IHNrbF9wbGFuZV9jdGxfcm90YXRpb24ocm90YXRpb24pOwo+ICsKPiAgCW9iaiA9IGludGVsX2Zi X29iaihmYik7Cj4gIAlzdHJpZGVfZGl2ID0gaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChkZXYs IGZiLT5tb2RpZmllclswXSwKPiAgCQkJCQkgICAgICAgZmItPnBpeGVsX2Zvcm1hdCk7Cj4gIAlz dXJmX2FkZHIgPSBpbnRlbF9wbGFuZV9vYmpfb2Zmc2V0KHRvX2ludGVsX3BsYW5lKHBsYW5lKSwg b2JqKTsKPiAgCj4gKwlpZiAocGxhbmVfc3RhdGUgJiYgZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0 YXRlLT5zcmMpKSB7CgpXZSBkaXNjdXNzZWQgdGhpcyBhIGJpdCBhdCBvc3RzLCBidXQgY2FuIHlv dSBwbGVhc2UgZXhwbGFpbiBpbiBhIEZJWE1FCmNvbW1lbnQgd2h5IHRoaXMgaXMgbmVlZGVkPwoK PiArCQlzY2FsZXJfaWQgPSBwbGFuZV9zdGF0ZS0+c2NhbGVyX2lkOwo+ICsJCXNyY194ID0gcGxh bmVfc3RhdGUtPnNyYy54MSA+PiAxNjsKPiArCQlzcmNfeSA9IHBsYW5lX3N0YXRlLT5zcmMueTEg Pj4gMTY7Cj4gKwkJc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPnNyYykgPj4g MTY7Cj4gKwkJc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2 Owo+ICsJCWRzdF94ID0gcGxhbmVfc3RhdGUtPmRzdC54MTsKPiArCQlkc3RfeSA9IHBsYW5lX3N0 YXRlLT5kc3QueTE7Cj4gKwkJZHN0X3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmRz dCk7Cj4gKwkJZHN0X2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5kc3QpOwo+ICsK PiArCQlXQVJOX09OKHggIT0gc3JjX3ggfHwgeSAhPSBzcmNfeSk7Cj4gKwl9IGVsc2Ugewo+ICsJ CXNyY193ID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY193Owo+ICsJCXNyY19oID0gaW50 ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oOwo+ICsJfQo+ICsKPiAgCWlmIChpbnRlbF9yb3Rh dGlvbl85MF9vcl8yNzAocm90YXRpb24pKSB7Cj4gIAkJLyogc3RyaWRlID0gU3VyZmFjZSBoZWln aHQgaW4gdGlsZXMgKi8KPiAgCQl0aWxlX2hlaWdodCA9IGludGVsX3RpbGVfaGVpZ2h0KGRldiwg ZmItPmJpdHNfcGVyX3BpeGVsLAo+ICAJCQkJCQlmYi0+bW9kaWZpZXJbMF0pOwo+ICAJCXN0cmlk ZSA9IERJVl9ST1VORF9VUChmYi0+aGVpZ2h0LCB0aWxlX2hlaWdodCk7Cj4gLQkJeF9vZmZzZXQg PSBzdHJpZGUgKiB0aWxlX2hlaWdodCAtIHkgLSAocGxhbmUtPnN0YXRlLT5zcmNfaCA+PiAxNik7 Cj4gKwkJeF9vZmZzZXQgPSBzdHJpZGUgKiB0aWxlX2hlaWdodCAtIHkgLSBzcmNfaDsKPiAgCQl5 X29mZnNldCA9IHg7Cj4gLQkJcGxhbmVfc2l6ZSA9ICgocGxhbmUtPnN0YXRlLT5zcmNfdyA+PiAx NikgLSAxKSA8PCAxNiB8Cj4gLQkJCQkJKChwbGFuZS0+c3RhdGUtPnNyY19oID4+IDE2KSAtIDEp Owo+ICsJCXBsYW5lX3NpemUgPSAoc3JjX3cgLSAxKSA8PCAxNiB8IChzcmNfaCAtIDEpOwo+ICAJ fSBlbHNlIHsKPiAgCQlzdHJpZGUgPSBmYi0+cGl0Y2hlc1swXSAvIHN0cmlkZV9kaXY7Cj4gIAkJ eF9vZmZzZXQgPSB4Owo+ICAJCXlfb2Zmc2V0ID0geTsKPiAtCQlwbGFuZV9zaXplID0gKChwbGFu ZS0+c3RhdGUtPnNyY19oID4+IDE2KSAtIDEpIDw8IDE2IHwKPiAtCQkJKChwbGFuZS0+c3RhdGUt PnNyY193ID4+IDE2KSAtIDEpOwo+ICsJCXBsYW5lX3NpemUgPSAoc3JjX2ggLSAxKSA8PCAxNiB8 IChzcmNfdyAtIDEpOwo+ICAJfQo+ICAJcGxhbmVfb2Zmc2V0ID0geV9vZmZzZXQgPDwgMTYgfCB4 X29mZnNldDsKPiAgCj4gIAlJOTE1X1dSSVRFKFBMQU5FX0NUTChwaXBlLCAwKSwgcGxhbmVfY3Rs KTsKPiAtCUk5MTVfV1JJVEUoUExBTkVfUE9TKHBpcGUsIDApLCAwKTsKPiAgCUk5MTVfV1JJVEUo UExBTkVfT0ZGU0VUKHBpcGUsIDApLCBwbGFuZV9vZmZzZXQpOwo+ICAJSTkxNV9XUklURShQTEFO RV9TSVpFKHBpcGUsIDApLCBwbGFuZV9zaXplKTsKPiAgCUk5MTVfV1JJVEUoUExBTkVfU1RSSURF KHBpcGUsIDApLCBzdHJpZGUpOwo+ICsKPiArCWlmIChzY2FsZXJfaWQgPj0gMCkgewo+ICsJCXVp bnQzMl90IHBzX2N0cmwgPSAwOwo+ICsKPiArCQlXQVJOX09OKCFkc3RfdyB8fCAhZHN0X2gpOwo+ ICsJCXBzX2N0cmwgPSBQU19TQ0FMRVJfRU4gfCBQU19QTEFORV9TRUwoMCkgfAo+ICsJCQljcnRj X3N0YXRlLT5zY2FsZXJfc3RhdGUuc2NhbGVyc1tzY2FsZXJfaWRdLm1vZGU7Cj4gKwkJSTkxNV9X UklURShTS0xfUFNfQ1RSTChwaXBlLCBzY2FsZXJfaWQpLCBwc19jdHJsKTsKPiArCQlJOTE1X1dS SVRFKFNLTF9QU19QV1JfR0FURShwaXBlLCBzY2FsZXJfaWQpLCAwKTsKPiArCQlJOTE1X1dSSVRF KFNLTF9QU19XSU5fUE9TKHBpcGUsIHNjYWxlcl9pZCksIChkc3RfeCA8PCAxNikgfCBkc3RfeSk7 Cj4gKwkJSTkxNV9XUklURShTS0xfUFNfV0lOX1NaKHBpcGUsIHNjYWxlcl9pZCksIChkc3RfdyA8 PCAxNikgfCBkc3RfaCk7Cj4gKwkJSTkxNV9XUklURShQTEFORV9QT1MocGlwZSwgMCksIDApOwo+ ICsJfSBlbHNlIHsKPiArCQlJOTE1X1dSSVRFKFBMQU5FX1BPUyhwaXBlLCAwKSwgKGRzdF95IDw8 IDE2KSB8IGRzdF94KTsKPiArCX0KPiArCj4gIAlJOTE1X1dSSVRFKFBMQU5FX1NVUkYocGlwZSwg MCksIHN1cmZfYWRkcik7Cj4gIAo+ICAJUE9TVElOR19SRUFEKFBMQU5FX1NVUkYocGlwZSwgMCkp Owo+IEBAIC00MzM4LDYgKzQ0MTEsNyBAQCBza2xfdXBkYXRlX3NjYWxlcl91c2VycygKPiAgCWlu dCAqc2NhbGVyX2lkOwo+ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Cj4gIAlzdHJ1Y3Qg aW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGF0ZTsKPiArCXVuc2lnbmVkIGludCBy b3RhdGlvbjsKPiAgCj4gIAlpZiAoIWludGVsX2NydGMgfHwgIWNydGNfc3RhdGUpCj4gIAkJcmV0 dXJuIDA7Cj4gQEAgLTQzNTMsNiArNDQyNyw3IEBAIHNrbF91cGRhdGVfc2NhbGVyX3VzZXJzKAo+ ICAJCWRzdF93ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5kc3QpOwo+ICAJCWRzdF9o ID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+ZHN0KTsKPiAgCQlzY2FsZXJfaWQgPSAm cGxhbmVfc3RhdGUtPnNjYWxlcl9pZDsKPiArCQlyb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNl LnJvdGF0aW9uOwo+ICAJfSBlbHNlIHsKPiAgCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRq dXN0ZWRfbW9kZSA9Cj4gIAkJCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gQEAg LTQzNjEsOCArNDQzNiwxMiBAQCBza2xfdXBkYXRlX3NjYWxlcl91c2VycygKPiAgCQlkc3RfdyA9 IGFkanVzdGVkX21vZGUtPmhkaXNwbGF5Owo+ICAJCWRzdF9oID0gYWRqdXN0ZWRfbW9kZS0+dmRp c3BsYXk7Cj4gIAkJc2NhbGVyX2lkID0gJnNjYWxlcl9zdGF0ZS0+c2NhbGVyX2lkOwo+ICsJCXJv dGF0aW9uID0gRFJNX1JPVEFURV8wOwo+ICAJfQo+IC0JbmVlZF9zY2FsaW5nID0gKHNyY193ICE9 IGRzdF93IHx8IHNyY19oICE9IGRzdF9oKTsKPiArCj4gKwluZWVkX3NjYWxpbmcgPSBpbnRlbF9y b3RhdGlvbl85MF9vcl8yNzAocm90YXRpb24pID8KPiArCQkoc3JjX2ggIT0gZHN0X3cgfHwgc3Jj X3cgIT0gZHN0X2gpOgo+ICsJCShzcmNfdyAhPSBkc3RfdyB8fCBzcmNfaCAhPSBkc3RfaCk7Cj4g IAo+ICAJLyoKPiAgCSAqIGlmIHBsYW5lIGlzIGJlaW5nIGRpc2FibGVkIG9yIHNjYWxlciBpcyBu byBtb3JlIHJlcXVpcmVkIG9yIGZvcmNlIGRldGFjaAo+IEBAIC0xMjgwNSw2ICsxMjg4NCwzNiBA QCBpbnRlbF9jbGVhbnVwX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJfQo+ ICB9Cj4gIAo+ICtpbnQKPiArc2tsX21heF9zY2FsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0Yywgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gK3sKPiArCWludCBt YXhfc2NhbGU7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2Owo+ICsJaW50IGNydGNfY2xvY2ssIGNkY2xrOwo+ICsKPiArCWlm ICghaW50ZWxfY3J0YyB8fCAhY3J0Y19zdGF0ZSkKPiArCQlyZXR1cm4gRFJNX1BMQU5FX0hFTFBF Ul9OT19TQ0FMSU5HOwo+ICsKPiArCWRldiA9IGludGVsX2NydGMtPmJhc2UuZGV2Owo+ICsJZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJY3J0Y19jbG9jayA9IGNydGNfc3RhdGUtPmJh c2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwo+ICsJY2RjbGsgPSBkZXZfcHJpdi0+ZGlzcGxh eS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZChkZXYpOwo+ICsKPiArCWlmICghY3J0Y19jbG9jayB8 fCAhY2RjbGspCj4gKwkJcmV0dXJuIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORzsKPiArCj4g KwkvKgo+ICsJICogc2tsIG1heCBzY2FsZSBpcyBsb3dlciBvZjoKPiArCSAqICAgIGNsb3NlIHRv IDMgYnV0IG5vdCAzLCAtMSBpcyBmb3IgdGhhdCBwdXJwb3NlCj4gKwkgKiAgICAgICAgICAgIG9y Cj4gKwkgKiAgICBjZGNsay9jcnRjX2Nsb2NrCj4gKwkgKi8KPiArCW1heF9zY2FsZSA9IG1pbigo MSA8PCAxNikgKiAzIC0gMSwgKDEgPDwgOCkgKiAoKGNkY2xrIDw8IDgpIC8gY3J0Y19jbG9jaykp Owo+ICsKPiArCXJldHVybiBtYXhfc2NhbGU7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQKPiAgaW50 ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQkJICBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQo+IEBAIC0xMjgxMywyMyArMTI5MjIsMzEg QEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4g IAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBzdGF0ZS0+YmFzZS5jcnRjOwo+ICAJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGM7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZTsKPiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmJhc2UuZmI7Cj4g IAlzdHJ1Y3QgZHJtX3JlY3QgKmRlc3QgPSAmc3RhdGUtPmRzdDsKPiAgCXN0cnVjdCBkcm1fcmVj dCAqc3JjID0gJnN0YXRlLT5zcmM7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAgPSAm c3RhdGUtPmNsaXA7Cj4gIAlib29sIGNhbl9wb3NpdGlvbiA9IGZhbHNlOwo+ICsJaW50IG1heF9z Y2FsZSA9IERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORzsKPiArCWludCBtaW5fc2NhbGUgPSBE Uk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkc7Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCWNydGMgPSBj cnRjID8gY3J0YyA6IHBsYW5lLT5jcnRjOwo+ICAJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Yyk7Cj4gKwljcnRjX3N0YXRlID0gc3RhdGUtPmJhc2Uuc3RhdGUgPwo+ICsJCWludGVsX2F0 b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZS0+YmFzZS5zdGF0ZSwgaW50ZWxfY3J0YykgOiBOVUxM Owo+ICAKPiAtCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KQo+ICsJaWYgKElOVEVMX0lO Rk8oZGV2KS0+Z2VuID49IDkpIHsKPiArCQltaW5fc2NhbGUgPSAxOwo+ICsJCW1heF9zY2FsZSA9 IHNrbF9tYXhfc2NhbGUoaW50ZWxfY3J0YywgY3J0Y19zdGF0ZSk7Cj4gIAkJY2FuX3Bvc2l0aW9u ID0gdHJ1ZTsKPiArCX0KPiAgCj4gIAlyZXQgPSBkcm1fcGxhbmVfaGVscGVyX2NoZWNrX3VwZGF0 ZShwbGFuZSwgY3J0YywgZmIsCj4gIAkJCQkJICAgIHNyYywgZGVzdCwgY2xpcCwKPiAtCQkJCQkg ICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAo+IC0JCQkJCSAgICBEUk1fUExBTkVfSEVM UEVSX05PX1NDQUxJTkcsCj4gKwkJCQkJICAgIG1pbl9zY2FsZSwKPiArCQkJCQkgICAgbWF4X3Nj YWxlLAo+ICAJCQkJCSAgICBjYW5fcG9zaXRpb24sIHRydWUsCj4gIAkJCQkJICAgICZzdGF0ZS0+ dmlzaWJsZSk7Cj4gIAlpZiAocmV0KQo+IEBAIC0xMjg3NCw2ICsxMjk5MSwxMyBAQCBpbnRlbF9j aGVja19wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCQlpbnRlbF9j cnRjLT5hdG9taWMudXBkYXRlX3dtID0gdHJ1ZTsKPiAgCX0KPiAgCj4gKwlpZiAoSU5URUxfSU5G TyhkZXYpLT5nZW4gPj0gOSkgewo+ICsJCXJldCA9IHNrbF91cGRhdGVfc2NhbGVyX3VzZXJzKGlu dGVsX2NydGMsIGNydGNfc3RhdGUsCj4gKwkJCXRvX2ludGVsX3BsYW5lKHBsYW5lKSwgc3RhdGUs IDApOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICAJcmV0dXJu IDA7Cj4gIH0KPiAgCj4gQEAgLTEzMDUzLDYgKzEzMTc3LDkgQEAgc3RhdGljIHN0cnVjdCBkcm1f cGxhbmUgKmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gIAo+ICAJcHJpbWFyeS0+Y2FuX3NjYWxlID0gZmFsc2U7Cj4gIAlwcmltYXJ5LT5tYXhfZG93 bnNjYWxlID0gMTsKPiArCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7Cj4gKwkJcHJp bWFyeS0+Y2FuX3NjYWxlID0gdHJ1ZTsKPiArCX0KPiAgCXN0YXRlLT5zY2FsZXJfaWQgPSAtMTsK PiAgCXByaW1hcnktPnBpcGUgPSBwaXBlOwo+ICAJcHJpbWFyeS0+cGxhbmUgPSBwaXBlOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggMjc1YTRlZi4uYzliYzk3NSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTI4OCwxMSArMjg4LDExIEBAIHN0cnVjdCBpbnRl bF9pbml0aWFsX3BsYW5lX2NvbmZpZyB7Cj4gICNkZWZpbmUgU0tMX01JTl9TUkNfVyA4Cj4gICNk ZWZpbmUgU0tMX01BWF9TUkNfVyA0MDk2Cj4gICNkZWZpbmUgU0tMX01JTl9TUkNfSCA4Cj4gLSNk ZWZpbmUgU0tMX01BWF9TUkNfSCAyMzA0Cj4gKyNkZWZpbmUgU0tMX01BWF9TUkNfSCA0MDk2Cj4g ICNkZWZpbmUgU0tMX01JTl9EU1RfVyA4Cj4gICNkZWZpbmUgU0tMX01BWF9EU1RfVyA0MDk2Cj4g ICNkZWZpbmUgU0tMX01JTl9EU1RfSCA4Cj4gLSNkZWZpbmUgU0tMX01BWF9EU1RfSCAyMzA0Cj4g KyNkZWZpbmUgU0tMX01BWF9EU1RfSCA0MDk2Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfc2NhbGVyIHsK PiAgCWludCBpZDsKPiBAQCAtMTEzMSw5ICsxMTMxLDEzIEBAIHZvaWQgc2tsX2RldGFjaF9zY2Fs ZXJzKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKTsKPiAgaW50IHNrbF91cGRhdGVfc2Nh bGVyX3VzZXJzKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ICAJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIHN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUs Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLCBpbnQgZm9yY2VfZGV0 YWNoKTsKPiAraW50IHNrbF9tYXhfc2NhbGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAgCj4gIHVuc2lnbmVkIGxvbmcgaW50 ZWxfcGxhbmVfb2JqX29mZnNldChzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lLAo+ICAJ CQkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKPiArdTMyIHNrbF9wbGFu ZV9jdGxfZm9ybWF0KHVpbnQzMl90IHBpeGVsX2Zvcm1hdCk7Cj4gK3UzMiBza2xfcGxhbmVfY3Rs X3RpbGluZyh1aW50NjRfdCBmYl9tb2RpZmllcik7Cj4gK3UzMiBza2xfcGxhbmVfY3RsX3JvdGF0 aW9uKHVuc2lnbmVkIGludCByb3RhdGlvbik7Cj4gIAo+ICAvKiBpbnRlbF9kcC5jICovCj4gIHZv aWQgaW50ZWxfZHBfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgb3V0cHV0X3JlZywg ZW51bSBwb3J0IHBvcnQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gaW5kZXgg MGNiMzc2Ny4uMmY0Mjc3NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4g QEAgLTExNTAsNiArMTE1MCwxNSBAQCBpbnQgaW50ZWxfc3ByaXRlX3NldF9jb2xvcmtleShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJfQo+ICAKPiAgCWludGVsX3BsYW5l ID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+ICsKPiArCWlmIChJTlRFTF9JTkZPKGRldiktPmdl biA+PSA5KSB7Cj4gKwkJLyogcGxhbmUgc2NhbGluZyBhbmQgY29sb3JrZXkgYXJlIG11dHVhbGx5 IGV4Y2x1c2l2ZSAqLwo+ICsJCWlmICh0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUp LT5zY2FsZXJfaWQgPj0gMCkgewo+ICsJCQlEUk1fRVJST1IoImNvbG9ya2V5IG5vdCBhbGxvd2Vk IHdpdGggc2NhbGVyXG4iKTsKPiArCQkJcmV0dXJuIC1FSU5WQUw7CgpUaGUgZXJyb3IgcGF0aCBo ZXJlIGRvZXNuJ3QgY29ycmVjdGx5IHJlbGVhc2UgbG9ja3MuIEkgZ3Vlc3MgYWRkaW5nIHNvbWUK aWd0IHRvIGV4ZXJjaXNlIHRoaXMgcGF0aCB3b3VsZCBiZSBnb29kLgotRGFuaWVsCgo+ICsJCX0K PiArCX0KPiArCj4gIAlpbnRlbF9wbGFuZS0+Y2tleSA9ICpzZXQ7Cj4gIAo+ICAJLyoKPiAtLSAK PiAxLjcuOS41Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jw b3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=