From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jindal, Sonika" Subject: Re: [PATCH 13/14] drm/i915: skylake primary plane scaling using shared scalers Date: Thu, 16 Apr 2015 13:47:52 +0530 Message-ID: <552F7030.4070802@intel.com> 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"; 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 ESMTP id 037FA6E9B7 for ; Thu, 16 Apr 2015 01:18:15 -0700 (PDT) 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 , intel-gfx@lists.freedesktop.org Cc: daniel.vetter@intel.com, ander.conselvan.de.oliveira@intel.com List-Id: intel-gfx@lists.freedesktop.org Rm9yIHY1OgoKUmV2aWV3ZWQtYnk6IFNvbmlrYSBKaW5kYWwgPHNvbmlrYS5qaW5kYWxAaW50ZWwu Y29tPiAodjUpCgpSZWdhcmRzLApTb25pa2EKCk9uIDQvMTYvMjAxNSAzOjQ0IEFNLCBDaGFuZHJh IEtvbmR1cnUgd3JvdGU6Cj4gVGhpcyBwYXRjaCBlbmFibGVzIHNreWxha2UgcHJpbWFyeSBwbGFu ZSBzY2FsaW5nIHVzaW5nIHNoYXJlZAo+IHNjYWxlcnMgYXRvbWljIGRlc2dpbi4KPgo+IHYyOgo+ IC11c2Ugc2luZ2xlIGNvcHkgb2Ygc2NhbGVyIGxpbWl0cyAoTWF0dCkKPgo+IHYzOgo+IC1tb3Zl IGRldGFjaF9zY2FsZXJzIHRvIGNydGMgY29tbWl0IHBhdGggKE1hdHQpCj4gLXVzZSB2YWx1ZXMg aW4gcGxhbmVfc3RhdGUtPnNyYyBhcyByZWd1bGFyIGludGVnZXJzIChtZSkKPgo+IHY0Ogo+IC1j aGFuZ2VzIHRvIGFsaWduIHdpdGggdXBkYXRlZCBzY2FsZXIgc3RydWN0dXJlcyAoTWF0dCwgbWUp Cj4gLWtlZXAgcGxhbmUgc3JjIHJlY3QgaW4gMTYuMTYgZm9ybWF0IChNYXR0LCBEYW5pZWwpCj4K PiB2NToKPiAtUmViYXNlZCBvbiB0b3Agb2YgOTAvMjcwIHJvdGF0aW9uIGNoYW5nZXMgKG1lKQo+ IC1GaXhlZCBhbiBpc3N1ZSBpbnRyb2R1Y2VkIGJ5IDkwLzI3MCBjaGFuZ2VzIHdoZXJlIHBsYW5l IHByb2dyYW1taW5nCj4gICBpcyB1c2luZyBkcm1fcGxhbmUtPnN0YXRlIHJlY3QgaW5zdGVhZCBv ZiBpbnRlbF9wbGFuZS0+c3RhdGUgcmVjdC4KPiAgIFRoaXMgY2hhbmdlIGFsc28gcmVxdWlyZWQg Zm9yIHNjYWxpbmcgdG8gd29yayBwcm9wZXJseS4gKG1lKQo+IC1XaXRoIDkwLzI3MCwgdXBkYXRl ZCBsaW1pdHMgdG8gY292ZXIgYm90aCBwb3J0cmFpdCBhbmQgbGFuZHNjYXBlIHVzYWdlcyAobWUp Cj4gLVJlZmFjdG9yZWQgc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZSB0byByZWR1Y2UgaXRz IHNpemUgKERhbmllbCkKPiAgIEFkZGVkIGhlbHBlciBmdW5jdGlvbnMgZm9yIHJlZmFjdG9yaW5n IGFyZSBjb21wcmVoZW5kZWQgZW5vdWdoIHRvIGJlCj4gICB1c2VkIGZvciBza3lsYWtlX3VwZGF0 ZV9wbGFuZSAoZm9yIHNwcml0ZSkgdG9vLiBPbmUgc3RvcCB0b3dhcmRzCj4gICBoYXZpbmcgc2lu Z2xlIGZ1bmN0aW9uIGZvciBhbGwgcGxhbmVzLgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hhbmRyYSBL b25kdXJ1IDxjaGFuZHJhLmtvbmR1cnVAaW50ZWwuY29tPgo+IFJldmlld2VkLWJ5OiBNYXR0IFJv cGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+IFRlc3RjYXNlOiBrbXNfcGxhbmVfc2Nh bGluZwo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgIHwgICAg NSArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDI2MSArKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCAgICAgfCAgICA4ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z cHJpdGUuYyAgfCAgICA5ICsrCj4gICA0IGZpbGVzIGNoYW5nZWQsIDIxMyBpbnNlcnRpb25zKCsp LCA3MCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4gaW5k ZXggM2M0YjdjZC4uY2I2ZDVmMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdG9taWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5j Cj4gQEAgLTE2OSw3ICsxNjksNyBAQCBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICAgCQlwbGFuZS0+c3RhdGUtPnN0YXRlID0gTlVMTDsKPiAgIAl9Cj4K PiAtCS8qIHN3YXAgY3J0Y19zdGF0ZSAqLwo+ICsJLyogc3dhcCBjcnRjX3NjYWxlcl9zdGF0ZSAq Lwo+ICAgCWZvciAoaSA9IDA7IGkgPCBkZXYtPm1vZGVfY29uZmlnLm51bV9jcnRjOyBpKyspIHsK PiAgIAkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmNydGNzW2ldOwo+ICAgCQlpZiAo IWNydGMpIHsKPiBAQCAtMTc4LDYgKzE3OCw5IEBAIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4KPiAgIAkJdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmln LT5zY2FsZXJfc3RhdGUgPQo+ICAgCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShzdGF0ZS0+Y3J0Y19z dGF0ZXNbaV0pLT5zY2FsZXJfc3RhdGU7Cj4gKwo+ICsJCWlmIChJTlRFTF9JTkZPKGRldiktPmdl biA+PSA5KQo+ICsJCQlza2xfZGV0YWNoX3NjYWxlcnModG9faW50ZWxfY3J0YyhjcnRjKSk7Cj4g ICAJfQo+Cj4gICAJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lcyhkZXYsIHN0YXRlKTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggNWY3YTQwZi4uN2YzYWU4 ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMjk2MCwxMjYg KzI5NjAsMTk5IEBAIHZvaWQgc2tsX2RldGFjaF9zY2FsZXJzKHN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjKQo+ICAgCX0KPiAgIH0KPgo+IC1zdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9w cmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAtCQkJCQkgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsCj4gLQkJCQkJIGludCB4LCBpbnQgeSkKPiArdTMyIHNrbF9wbGFuZV9j dGxfZm9ybWF0KHVpbnQzMl90IHBpeGVsX2Zvcm1hdCkKPiAgIHsKPiAtCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKGNydGMpOwo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i ajsKPiAtCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAtCXUzMiBwbGFuZV9jdGwsIHN0 cmlkZV9kaXYsIHN0cmlkZTsKPiAtCXUzMiB0aWxlX2hlaWdodCwgcGxhbmVfb2Zmc2V0LCBwbGFu ZV9zaXplOwo+IC0JdW5zaWduZWQgaW50IHJvdGF0aW9uOwo+IC0JaW50IHhfb2Zmc2V0LCB5X29m ZnNldDsKPiAtCXVuc2lnbmVkIGxvbmcgc3VyZl9hZGRyOwo+IC0Jc3RydWN0IGRybV9wbGFuZSAq cGxhbmU7Cj4gLQo+IC0JaWYgKCFpbnRlbF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQpIHsKPiAtCQlJ OTE1X1dSSVRFKFBMQU5FX0NUTChwaXBlLCAwKSwgMCk7Cj4gLQkJSTkxNV9XUklURShQTEFORV9T VVJGKHBpcGUsIDApLCAwKTsKPiAtCQlQT1NUSU5HX1JFQUQoUExBTkVfQ1RMKHBpcGUsIDApKTsK PiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQo+IC0JcGxhbmVfY3RsID0gUExBTkVfQ1RMX0VOQUJMRSB8 Cj4gLQkJICAgIFBMQU5FX0NUTF9QSVBFX0dBTU1BX0VOQUJMRSB8Cj4gLQkJICAgIFBMQU5FX0NU TF9QSVBFX0NTQ19FTkFCTEU7Cj4gLQo+IC0Jc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7Cj4g Kwl1MzIgcGxhbmVfY3RsX2Zvcm1hdCA9IDA7Cj4gKwlzd2l0Y2ggKHBpeGVsX2Zvcm1hdCkgewo+ ICAgCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6Cj4gLQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9G T1JNQVRfUkdCXzU2NTsKPiAtCQlicmVhazsKPiAtCWNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoK PiAtCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX0ZPUk1BVF9YUkdCXzg4ODg7Cj4gLQkJYnJlYWs7 Cj4gLQljYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6Cj4gLQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NU TF9GT1JNQVRfWFJHQl84ODg4Owo+IC0JCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfQUxQSEFfU1df UFJFTVVMVElQTFk7Cj4gKwkJcGxhbmVfY3RsX2Zvcm1hdCA9IFBMQU5FX0NUTF9GT1JNQVRfUkdC XzU2NTsKPiAgIAkJYnJlYWs7Cj4gICAJY2FzZSBEUk1fRk9STUFUX1hCR1I4ODg4Ogo+IC0JCXBs YW5lX2N0bCB8PSBQTEFORV9DVExfT1JERVJfUkdCWDsKPiAtCQlwbGFuZV9jdGwgfD0gUExBTkVf Q1RMX0ZPUk1BVF9YUkdCXzg4ODg7Cj4gKwkJcGxhbmVfY3RsX2Zvcm1hdCA9IFBMQU5FX0NUTF9G T1JNQVRfWFJHQl84ODg4IHwgUExBTkVfQ1RMX09SREVSX1JHQlg7Cj4gICAJCWJyZWFrOwo+ICsJ Y2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Ogo+ICsJCXBsYW5lX2N0bF9mb3JtYXQgPSBQTEFORV9D VExfRk9STUFUX1hSR0JfODg4ODsKPiArCQlicmVhazsKPiArCS8qCj4gKwkgKiBYWFg6IEZvciBB UkJHL0FCR1IgZm9ybWF0cyB3ZSBkZWZhdWx0IHRvIGV4cGVjdGluZyBzY2Fub3V0IGJ1ZmZlcnMK PiArCSAqIHRvIGJlIGFscmVhZHkgcHJlLW11bHRpcGxpZWQuIFdlIG5lZWQgdG8gYWRkIGEga25v YiAob3IgYSBkaWZmZXJlbnQKPiArCSAqIERSTV9GT1JNQVQpIGZvciB1c2VyLXNwYWNlIHRvIGNv bmZpZ3VyZSB0aGF0Lgo+ICsJICovCj4gICAJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4Ogo+IC0J CXBsYW5lX2N0bCB8PSBQTEFORV9DVExfT1JERVJfUkdCWDsKPiAtCQlwbGFuZV9jdGwgfD0gUExB TkVfQ1RMX0ZPUk1BVF9YUkdCXzg4ODg7Cj4gLQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9BTFBI QV9TV19QUkVNVUxUSVBMWTsKPiArCQlwbGFuZV9jdGxfZm9ybWF0ID0gUExBTkVfQ1RMX0ZPUk1B VF9YUkdCXzg4ODggfCBQTEFORV9DVExfT1JERVJfUkdCWCB8Cj4gKwkJCVBMQU5FX0NUTF9BTFBI QV9TV19QUkVNVUxUSVBMWTsKPiArCQlicmVhazsKPiArCWNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4 ODoKPiArCQlwbGFuZV9jdGxfZm9ybWF0ID0gUExBTkVfQ1RMX0ZPUk1BVF9YUkdCXzg4ODggfAo+ ICsJCQlQTEFORV9DVExfQUxQSEFfU1dfUFJFTVVMVElQTFk7Cj4gICAJCWJyZWFrOwo+ICAgCWNh c2UgRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMDoKPiAtCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX0ZP Uk1BVF9YUkdCXzIxMDEwMTA7Cj4gKwkJcGxhbmVfY3RsX2Zvcm1hdCA9IFBMQU5FX0NUTF9GT1JN QVRfWFJHQl8yMTAxMDEwOwo+ICAgCQlicmVhazsKPiAgIAljYXNlIERSTV9GT1JNQVRfWEJHUjIx MDEwMTA6Cj4gLQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9PUkRFUl9SR0JYOwo+IC0JCXBsYW5l X2N0bCB8PSBQTEFORV9DVExfRk9STUFUX1hSR0JfMjEwMTAxMDsKPiArCQlwbGFuZV9jdGxfZm9y bWF0ID0gUExBTkVfQ1RMX09SREVSX1JHQlggfCBQTEFORV9DVExfRk9STUFUX1hSR0JfMjEwMTAx MDsKPiArCQlicmVhazsKPiArCWNhc2UgRFJNX0ZPUk1BVF9ZVVlWOgo+ICsJCXBsYW5lX2N0bF9m b3JtYXQgPSBQTEFORV9DVExfRk9STUFUX1lVVjQyMiB8IFBMQU5FX0NUTF9ZVVY0MjJfWVVZVjsK PiArCQlicmVhazsKPiArCWNhc2UgRFJNX0ZPUk1BVF9ZVllVOgo+ICsJCXBsYW5lX2N0bF9mb3Jt YXQgPSBQTEFORV9DVExfRk9STUFUX1lVVjQyMiB8IFBMQU5FX0NUTF9ZVVY0MjJfWVZZVTsKPiAr CQlicmVhazsKPiArCWNhc2UgRFJNX0ZPUk1BVF9VWVZZOgo+ICsJCXBsYW5lX2N0bF9mb3JtYXQg PSBQTEFORV9DVExfRk9STUFUX1lVVjQyMiB8IFBMQU5FX0NUTF9ZVVY0MjJfVVlWWTsKPiArCQli cmVhazsKPiArCWNhc2UgRFJNX0ZPUk1BVF9WWVVZOgo+ICsJCXBsYW5lX2N0bF9mb3JtYXQgPSBQ TEFORV9DVExfRk9STUFUX1lVVjQyMiB8IFBMQU5FX0NUTF9ZVVY0MjJfVllVWTsKPiAgIAkJYnJl YWs7Cj4gICAJZGVmYXVsdDoKPiAgIAkJQlVHKCk7Cj4gICAJfQo+ICsJcmV0dXJuIHBsYW5lX2N0 bF9mb3JtYXQ7Cj4gK30KPgo+IC0Jc3dpdGNoIChmYi0+bW9kaWZpZXJbMF0pIHsKPiArdTMyIHNr bF9wbGFuZV9jdGxfdGlsaW5nKHVpbnQ2NF90IGZiX21vZGlmaWVyKQo+ICt7Cj4gKwl1MzIgcGxh bmVfY3RsX3RpbGluZyA9IDA7Cj4gKwlzd2l0Y2ggKGZiX21vZGlmaWVyKSB7Cj4gICAJY2FzZSBE Uk1fRk9STUFUX01PRF9OT05FOgo+ICAgCQlicmVhazsKPiAgIAljYXNlIEk5MTVfRk9STUFUX01P RF9YX1RJTEVEOgo+IC0JCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfVElMRURfWDsKPiArCQlwbGFu ZV9jdGxfdGlsaW5nID0gUExBTkVfQ1RMX1RJTEVEX1g7Cj4gICAJCWJyZWFrOwo+ICAgCWNhc2Ug STkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6Cj4gLQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9USUxF RF9ZOwo+ICsJCXBsYW5lX2N0bF90aWxpbmcgPSBQTEFORV9DVExfVElMRURfWTsKPiAgIAkJYnJl YWs7Cj4gICAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQ6Cj4gLQkJcGxhbmVfY3RsIHw9 IFBMQU5FX0NUTF9USUxFRF9ZRjsKPiArCQlwbGFuZV9jdGxfdGlsaW5nID0gUExBTkVfQ1RMX1RJ TEVEX1lGOwo+ICAgCQlicmVhazsKPiAgIAlkZWZhdWx0Ogo+IC0JCU1JU1NJTkdfQ0FTRShmYi0+ bW9kaWZpZXJbMF0pOwo+ICsJCU1JU1NJTkdfQ0FTRShmYl9tb2RpZmllcik7Cj4gICAJfQo+ICsJ cmV0dXJuIHBsYW5lX2N0bF90aWxpbmc7Cj4gK30KPgo+IC0JcGxhbmVfY3RsIHw9IFBMQU5FX0NU TF9QTEFORV9HQU1NQV9ESVNBQkxFOwo+IC0KPiAtCXBsYW5lID0gY3J0Yy0+cHJpbWFyeTsKPiAt CXJvdGF0aW9uID0gcGxhbmUtPnN0YXRlLT5yb3RhdGlvbjsKPiArdTMyIHNrbF9wbGFuZV9jdGxf cm90YXRpb24odW5zaWduZWQgaW50IHJvdGF0aW9uKQo+ICt7Cj4gKwl1MzIgcGxhbmVfY3RsX3Jv dGF0aW9uID0gMDsKPiAgIAlzd2l0Y2ggKHJvdGF0aW9uKSB7Cj4gKwljYXNlIEJJVChEUk1fUk9U QVRFXzApOgo+ICsJCWJyZWFrOwo+ICAgCWNhc2UgQklUKERSTV9ST1RBVEVfOTApOgo+IC0JCXBs YW5lX2N0bCB8PSBQTEFORV9DVExfUk9UQVRFXzkwOwo+ICsJCXBsYW5lX2N0bF9yb3RhdGlvbiA9 IFBMQU5FX0NUTF9ST1RBVEVfOTA7Cj4gICAJCWJyZWFrOwo+IC0KPiAgIAljYXNlIEJJVChEUk1f Uk9UQVRFXzE4MCk6Cj4gLQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9ST1RBVEVfMTgwOwo+ICsJ CXBsYW5lX2N0bF9yb3RhdGlvbiA9IFBMQU5FX0NUTF9ST1RBVEVfMTgwOwo+ICAgCQlicmVhazsK PiAtCj4gICAJY2FzZSBCSVQoRFJNX1JPVEFURV8yNzApOgo+IC0JCXBsYW5lX2N0bCB8PSBQTEFO RV9DVExfUk9UQVRFXzI3MDsKPiArCQlwbGFuZV9jdGxfcm90YXRpb24gPSBQTEFORV9DVExfUk9U QVRFXzI3MDsKPiAgIAkJYnJlYWs7Cj4gKwlkZWZhdWx0Ogo+ICsJCU1JU1NJTkdfQ0FTRShyb3Rh dGlvbik7Cj4gICAJfQo+Cj4gKwlyZXR1cm4gcGxhbmVfY3RsX3JvdGF0aW9uOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKPiArCQkJCQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gKwkJCQkJIGlu dCB4LCBpbnQgeSkKPiArewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsK PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwo+ICsJaW50IHBpcGUgPSBpbnRl bF9jcnRjLT5waXBlOwo+ICsJdTMyIHBsYW5lX2N0bCwgc3RyaWRlX2Rpdiwgc3RyaWRlOwo+ICsJ dTMyIHRpbGVfaGVpZ2h0LCBwbGFuZV9vZmZzZXQsIHBsYW5lX3NpemU7Cj4gKwl1bnNpZ25lZCBp bnQgcm90YXRpb247Cj4gKwlpbnQgeF9vZmZzZXQsIHlfb2Zmc2V0Owo+ICsJdW5zaWduZWQgbG9u ZyBzdXJmX2FkZHI7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiArCXN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gaW50ZWxfY3J0Yy0+Y29uZmlnOwo+ICsJc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKPiArCWludCBzcmNfeCA9IDAsIHNyY195 ID0gMCwgc3JjX3cgPSAwLCBzcmNfaCA9IDA7Cj4gKwlpbnQgZHN0X3ggPSAwLCBkc3RfeSA9IDAs IGRzdF93ID0gMCwgZHN0X2ggPSAwOwo+ICsJaW50IHNjYWxlcl9pZCA9IC0xOwo+ICsKPiArCXBs YW5lID0gY3J0Yy0+cHJpbWFyeTsKPiArCXBsYW5lX3N0YXRlID0gcGxhbmUgPyB0b19pbnRlbF9w bGFuZV9zdGF0ZShjcnRjLT5wcmltYXJ5LT5zdGF0ZSkgOiBOVUxMOwo+ICsKPiArCWlmICghaW50 ZWxfY3J0Yy0+cHJpbWFyeV9lbmFibGVkKSB7Cj4gKwkJSTkxNV9XUklURShQTEFORV9DVEwocGlw ZSwgMCksIDApOwo+ICsJCUk5MTVfV1JJVEUoUExBTkVfU1VSRihwaXBlLCAwKSwgMCk7Cj4gKwkJ UE9TVElOR19SRUFEKFBMQU5FX0NUTChwaXBlLCAwKSk7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsK PiArCXBsYW5lX2N0bCA9IFBMQU5FX0NUTF9FTkFCTEUgfAo+ICsJCSAgICBQTEFORV9DVExfUElQ RV9HQU1NQV9FTkFCTEUgfAo+ICsJCSAgICBQTEFORV9DVExfUElQRV9DU0NfRU5BQkxFOwo+ICsK PiArCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX2Zvcm1hdChmYi0+cGl4ZWxfZm9ybWF0KTsK PiArCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX3RpbGluZyhmYi0+bW9kaWZpZXJbMF0pOwo+ ICsJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9QTEFORV9HQU1NQV9ESVNBQkxFOwo+ICsKPiArCXJv dGF0aW9uID0gcGxhbmUtPnN0YXRlLT5yb3RhdGlvbjsKPiArCXBsYW5lX2N0bCB8PSBza2xfcGxh bmVfY3RsX3JvdGF0aW9uKHJvdGF0aW9uKTsKPiArCj4gICAJb2JqID0gaW50ZWxfZmJfb2JqKGZi KTsKPiAgIAlzdHJpZGVfZGl2ID0gaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChkZXYsIGZiLT5t b2RpZmllclswXSwKPiAgIAkJCQkJICAgICAgIGZiLT5waXhlbF9mb3JtYXQpOwo+ICAgCXN1cmZf YWRkciA9IGludGVsX3BsYW5lX29ial9vZmZzZXQodG9faW50ZWxfcGxhbmUocGxhbmUpLCBvYmop Owo+Cj4gKwlpZiAocGxhbmVfc3RhdGUgJiYgZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5z cmMpKSB7Cj4gKwkJc2NhbGVyX2lkID0gcGxhbmVfc3RhdGUtPnNjYWxlcl9pZDsKPiArCQlzcmNf eCA9IHBsYW5lX3N0YXRlLT5zcmMueDEgPj4gMTY7Cj4gKwkJc3JjX3kgPSBwbGFuZV9zdGF0ZS0+ c3JjLnkxID4+IDE2Owo+ICsJCXNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5z cmMpID4+IDE2Owo+ICsJCXNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+c3Jj KSA+PiAxNjsKPiArCQlkc3RfeCA9IHBsYW5lX3N0YXRlLT5kc3QueDE7Cj4gKwkJZHN0X3kgPSBw bGFuZV9zdGF0ZS0+ZHN0LnkxOwo+ICsJCWRzdF93ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0 YXRlLT5kc3QpOwo+ICsJCWRzdF9oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+ZHN0 KTsKPiArCj4gKwkJV0FSTl9PTih4ICE9IHNyY194IHx8IHkgIT0gc3JjX3kpOwo+ICsJfSBlbHNl IHsKPiArCQlzcmNfdyA9IGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfdzsKPiArCQlzcmNf aCA9IGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfaDsKPiArCX0KPiArCj4gICAJaWYgKGlu dGVsX3JvdGF0aW9uXzkwX29yXzI3MChyb3RhdGlvbikpIHsKPiAgIAkJLyogc3RyaWRlID0gU3Vy ZmFjZSBoZWlnaHQgaW4gdGlsZXMgKi8KPiAgIAkJdGlsZV9oZWlnaHQgPSBpbnRlbF90aWxlX2hl aWdodChkZXYsIGZiLT5iaXRzX3Blcl9waXhlbCwKPiAgIAkJCQkJCWZiLT5tb2RpZmllclswXSk7 Cj4gICAJCXN0cmlkZSA9IERJVl9ST1VORF9VUChmYi0+aGVpZ2h0LCB0aWxlX2hlaWdodCk7Cj4g LQkJeF9vZmZzZXQgPSBzdHJpZGUgKiB0aWxlX2hlaWdodCAtIHkgLSAocGxhbmUtPnN0YXRlLT5z cmNfaCA+PiAxNik7Cj4gKwkJeF9vZmZzZXQgPSBzdHJpZGUgKiB0aWxlX2hlaWdodCAtIHkgLSBz cmNfaDsKPiAgIAkJeV9vZmZzZXQgPSB4Owo+IC0JCXBsYW5lX3NpemUgPSAoKHBsYW5lLT5zdGF0 ZS0+c3JjX3cgPj4gMTYpIC0gMSkgPDwgMTYgfAo+IC0JCQkJCSgocGxhbmUtPnN0YXRlLT5zcmNf aCA+PiAxNikgLSAxKTsKPiArCQlwbGFuZV9zaXplID0gKHNyY193IC0gMSkgPDwgMTYgfCAoc3Jj X2ggLSAxKTsKPiAgIAl9IGVsc2Ugewo+ICAgCQlzdHJpZGUgPSBmYi0+cGl0Y2hlc1swXSAvIHN0 cmlkZV9kaXY7Cj4gICAJCXhfb2Zmc2V0ID0geDsKPiAgIAkJeV9vZmZzZXQgPSB5Owo+IC0JCXBs YW5lX3NpemUgPSAoKHBsYW5lLT5zdGF0ZS0+c3JjX2ggPj4gMTYpIC0gMSkgPDwgMTYgfAo+IC0J CQkoKHBsYW5lLT5zdGF0ZS0+c3JjX3cgPj4gMTYpIC0gMSk7Cj4gKwkJcGxhbmVfc2l6ZSA9IChz cmNfaCAtIDEpIDw8IDE2IHwgKHNyY193IC0gMSk7Cj4gICAJfQo+ICAgCXBsYW5lX29mZnNldCA9 IHlfb2Zmc2V0IDw8IDE2IHwgeF9vZmZzZXQ7Cj4KPiAgIAlJOTE1X1dSSVRFKFBMQU5FX0NUTChw aXBlLCAwKSwgcGxhbmVfY3RsKTsKPiAtCUk5MTVfV1JJVEUoUExBTkVfUE9TKHBpcGUsIDApLCAw KTsKPiAgIAlJOTE1X1dSSVRFKFBMQU5FX09GRlNFVChwaXBlLCAwKSwgcGxhbmVfb2Zmc2V0KTsK PiAgIAlJOTE1X1dSSVRFKFBMQU5FX1NJWkUocGlwZSwgMCksIHBsYW5lX3NpemUpOwo+ICAgCUk5 MTVfV1JJVEUoUExBTkVfU1RSSURFKHBpcGUsIDApLCBzdHJpZGUpOwo+ICsKPiArCWlmIChzY2Fs ZXJfaWQgPj0gMCkgewo+ICsJCXVpbnQzMl90IHBzX2N0cmwgPSAwOwo+ICsKPiArCQlXQVJOX09O KCFkc3RfdyB8fCAhZHN0X2gpOwo+ICsJCXBzX2N0cmwgPSBQU19TQ0FMRVJfRU4gfCBQU19QTEFO RV9TRUwoMCkgfAo+ICsJCQljcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGUuc2NhbGVyc1tzY2FsZXJf aWRdLm1vZGU7Cj4gKwkJSTkxNV9XUklURShTS0xfUFNfQ1RSTChwaXBlLCBzY2FsZXJfaWQpLCBw c19jdHJsKTsKPiArCQlJOTE1X1dSSVRFKFNLTF9QU19QV1JfR0FURShwaXBlLCBzY2FsZXJfaWQp LCAwKTsKPiArCQlJOTE1X1dSSVRFKFNLTF9QU19XSU5fUE9TKHBpcGUsIHNjYWxlcl9pZCksIChk c3RfeCA8PCAxNikgfCBkc3RfeSk7Cj4gKwkJSTkxNV9XUklURShTS0xfUFNfV0lOX1NaKHBpcGUs IHNjYWxlcl9pZCksIChkc3RfdyA8PCAxNikgfCBkc3RfaCk7Cj4gKwkJSTkxNV9XUklURShQTEFO RV9QT1MocGlwZSwgMCksIDApOwo+ICsJfSBlbHNlIHsKPiArCQlJOTE1X1dSSVRFKFBMQU5FX1BP UyhwaXBlLCAwKSwgKGRzdF95IDw8IDE2KSB8IGRzdF94KTsKPiArCX0KPiArCj4gICAJSTkxNV9X UklURShQTEFORV9TVVJGKHBpcGUsIDApLCBzdXJmX2FkZHIpOwo+Cj4gICAJUE9TVElOR19SRUFE KFBMQU5FX1NVUkYocGlwZSwgMCkpOwo+IEBAIC00MzM4LDYgKzQ0MTEsNyBAQCBza2xfdXBkYXRl X3NjYWxlcl91c2VycygKPiAgIAlpbnQgKnNjYWxlcl9pZDsKPiAgIAlzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYjsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9z dGF0ZTsKPiArCXVuc2lnbmVkIGludCByb3RhdGlvbjsKPgo+ICAgCWlmICghaW50ZWxfY3J0YyB8 fCAhY3J0Y19zdGF0ZSkKPiAgIAkJcmV0dXJuIDA7Cj4gQEAgLTQzNTMsNiArNDQyNyw3IEBAIHNr bF91cGRhdGVfc2NhbGVyX3VzZXJzKAo+ICAgCQlkc3RfdyA9IGRybV9yZWN0X3dpZHRoKCZwbGFu ZV9zdGF0ZS0+ZHN0KTsKPiAgIAkJZHN0X2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRl LT5kc3QpOwo+ICAgCQlzY2FsZXJfaWQgPSAmcGxhbmVfc3RhdGUtPnNjYWxlcl9pZDsKPiArCQly b3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOwo+ICAgCX0gZWxzZSB7Cj4gICAJ CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KPiAgIAkJCSZjcnRjX3N0 YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gQEAgLTQzNjEsOCArNDQzNiwxMiBAQCBza2xfdXBk YXRlX3NjYWxlcl91c2VycygKPiAgIAkJZHN0X3cgPSBhZGp1c3RlZF9tb2RlLT5oZGlzcGxheTsK PiAgIAkJZHN0X2ggPSBhZGp1c3RlZF9tb2RlLT52ZGlzcGxheTsKPiAgIAkJc2NhbGVyX2lkID0g JnNjYWxlcl9zdGF0ZS0+c2NhbGVyX2lkOwo+ICsJCXJvdGF0aW9uID0gRFJNX1JPVEFURV8wOwo+ ICAgCX0KPiAtCW5lZWRfc2NhbGluZyA9IChzcmNfdyAhPSBkc3RfdyB8fCBzcmNfaCAhPSBkc3Rf aCk7Cj4gKwo+ICsJbmVlZF9zY2FsaW5nID0gaW50ZWxfcm90YXRpb25fOTBfb3JfMjcwKHJvdGF0 aW9uKSA/Cj4gKwkJKHNyY19oICE9IGRzdF93IHx8IHNyY193ICE9IGRzdF9oKToKPiArCQkoc3Jj X3cgIT0gZHN0X3cgfHwgc3JjX2ggIT0gZHN0X2gpOwo+Cj4gICAJLyoKPiAgIAkgKiBpZiBwbGFu ZSBpcyBiZWluZyBkaXNhYmxlZCBvciBzY2FsZXIgaXMgbm8gbW9yZSByZXF1aXJlZCBvciBmb3Jj ZSBkZXRhY2gKPiBAQCAtMTI4MDUsNiArMTI4ODQsMzYgQEAgaW50ZWxfY2xlYW51cF9wbGFuZV9m YihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgIAl9Cj4gICB9Cj4KPiAraW50Cj4gK3NrbF9t YXhfc2NhbGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQo+ICt7Cj4gKwlpbnQgbWF4X3NjYWxlOwo+ICsJc3RydWN0IGRy bV9kZXZpY2UgKmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdjsKPiAr CWludCBjcnRjX2Nsb2NrLCBjZGNsazsKPiArCj4gKwlpZiAoIWludGVsX2NydGMgfHwgIWNydGNf c3RhdGUpCj4gKwkJcmV0dXJuIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORzsKPiArCj4gKwlk ZXYgPSBpbnRlbF9jcnRjLT5iYXNlLmRldjsKPiArCWRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPiArCWNydGNfY2xvY2sgPSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19j bG9jazsKPiArCWNkY2xrID0gZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3Bl ZWQoZGV2KTsKPiArCj4gKwlpZiAoIWNydGNfY2xvY2sgfHwgIWNkY2xrKQo+ICsJCXJldHVybiBE Uk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkc7Cj4gKwo+ICsJLyoKPiArCSAqIHNrbCBtYXggc2Nh bGUgaXMgbG93ZXIgb2Y6Cj4gKwkgKiAgICBjbG9zZSB0byAzIGJ1dCBub3QgMywgLTEgaXMgZm9y IHRoYXQgcHVycG9zZQo+ICsJICogICAgICAgICAgICBvcgo+ICsJICogICAgY2RjbGsvY3J0Y19j bG9jawo+ICsJICovCj4gKwltYXhfc2NhbGUgPSBtaW4oKDEgPDwgMTYpICogMyAtIDEsICgxIDw8 IDgpICogKChjZGNsayA8PCA4KSAvIGNydGNfY2xvY2spKTsKPiArCj4gKwlyZXR1cm4gbWF4X3Nj YWxlOwo+ICt9Cj4gKwo+ICAgc3RhdGljIGludAo+ICAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFu ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgIAkJCSAgc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpzdGF0ZSkKPiBAQCAtMTI4MTMsMjMgKzEyOTIyLDMxIEBAIGludGVsX2NoZWNrX3ByaW1h cnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgZHJtX2NydGMg KmNydGMgPSBzdGF0ZS0+YmFzZS5jcnRjOwo+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjOwo+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gICAJc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+YmFzZS5mYjsKPiAgIAlzdHJ1Y3QgZHJtX3Jl Y3QgKmRlc3QgPSAmc3RhdGUtPmRzdDsKPiAgIAlzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9ICZzdGF0 ZS0+c3JjOwo+ICAgCWNvbnN0IHN0cnVjdCBkcm1fcmVjdCAqY2xpcCA9ICZzdGF0ZS0+Y2xpcDsK PiAgIAlib29sIGNhbl9wb3NpdGlvbiA9IGZhbHNlOwo+ICsJaW50IG1heF9zY2FsZSA9IERSTV9Q TEFORV9IRUxQRVJfTk9fU0NBTElORzsKPiArCWludCBtaW5fc2NhbGUgPSBEUk1fUExBTkVfSEVM UEVSX05PX1NDQUxJTkc7Cj4gICAJaW50IHJldDsKPgo+ICAgCWNydGMgPSBjcnRjID8gY3J0YyA6 IHBsYW5lLT5jcnRjOwo+ICAgCWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICsJ Y3J0Y19zdGF0ZSA9IHN0YXRlLT5iYXNlLnN0YXRlID8KPiArCQlpbnRlbF9hdG9taWNfZ2V0X2Ny dGNfc3RhdGUoc3RhdGUtPmJhc2Uuc3RhdGUsIGludGVsX2NydGMpIDogTlVMTDsKPgo+IC0JaWYg KElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCj4gKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4g Pj0gOSkgewo+ICsJCW1pbl9zY2FsZSA9IDE7Cj4gKwkJbWF4X3NjYWxlID0gc2tsX21heF9zY2Fs ZShpbnRlbF9jcnRjLCBjcnRjX3N0YXRlKTsKPiAgIAkJY2FuX3Bvc2l0aW9uID0gdHJ1ZTsKPiAr CX0KPgo+ICAgCXJldCA9IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKHBsYW5lLCBjcnRj LCBmYiwKPiAgIAkJCQkJICAgIHNyYywgZGVzdCwgY2xpcCwKPiAtCQkJCQkgICAgRFJNX1BMQU5F X0hFTFBFUl9OT19TQ0FMSU5HLAo+IC0JCQkJCSAgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJ TkcsCj4gKwkJCQkJICAgIG1pbl9zY2FsZSwKPiArCQkJCQkgICAgbWF4X3NjYWxlLAo+ICAgCQkJ CQkgICAgY2FuX3Bvc2l0aW9uLCB0cnVlLAo+ICAgCQkJCQkgICAgJnN0YXRlLT52aXNpYmxlKTsK PiAgIAlpZiAocmV0KQo+IEBAIC0xMjg3NCw2ICsxMjk5MSwxMyBAQCBpbnRlbF9jaGVja19wcmlt YXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCQkJaW50ZWxfY3J0Yy0+YXRv bWljLnVwZGF0ZV93bSA9IHRydWU7Cj4gICAJfQo+Cj4gKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5n ZW4gPj0gOSkgewo+ICsJCXJldCA9IHNrbF91cGRhdGVfc2NhbGVyX3VzZXJzKGludGVsX2NydGMs IGNydGNfc3RhdGUsCj4gKwkJCXRvX2ludGVsX3BsYW5lKHBsYW5lKSwgc3RhdGUsIDApOwo+ICsJ CWlmIChyZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICAgCXJldHVybiAwOwo+ICAg fQo+Cj4gQEAgLTEzMDUzLDYgKzEzMTc3LDkgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmlu dGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4KPiAgIAlw cmltYXJ5LT5jYW5fc2NhbGUgPSBmYWxzZTsKPiAgIAlwcmltYXJ5LT5tYXhfZG93bnNjYWxlID0g MTsKPiArCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7Cj4gKwkJcHJpbWFyeS0+Y2Fu X3NjYWxlID0gdHJ1ZTsKPiArCX0KPiAgIAlzdGF0ZS0+c2NhbGVyX2lkID0gLTE7Cj4gICAJcHJp bWFyeS0+cGlwZSA9IHBpcGU7Cj4gICAJcHJpbWFyeS0+cGxhbmUgPSBwaXBlOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gaW5kZXggMjc1YTRlZi4uYzliYzk3NSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gQEAgLTI4OCwxMSArMjg4LDExIEBAIHN0cnVjdCBpbnRlbF9pbml0 aWFsX3BsYW5lX2NvbmZpZyB7Cj4gICAjZGVmaW5lIFNLTF9NSU5fU1JDX1cgOAo+ICAgI2RlZmlu ZSBTS0xfTUFYX1NSQ19XIDQwOTYKPiAgICNkZWZpbmUgU0tMX01JTl9TUkNfSCA4Cj4gLSNkZWZp bmUgU0tMX01BWF9TUkNfSCAyMzA0Cj4gKyNkZWZpbmUgU0tMX01BWF9TUkNfSCA0MDk2Cj4gICAj ZGVmaW5lIFNLTF9NSU5fRFNUX1cgOAo+ICAgI2RlZmluZSBTS0xfTUFYX0RTVF9XIDQwOTYKPiAg ICNkZWZpbmUgU0tMX01JTl9EU1RfSCA4Cj4gLSNkZWZpbmUgU0tMX01BWF9EU1RfSCAyMzA0Cj4g KyNkZWZpbmUgU0tMX01BWF9EU1RfSCA0MDk2Cj4KPiAgIHN0cnVjdCBpbnRlbF9zY2FsZXIgewo+ ICAgCWludCBpZDsKPiBAQCAtMTEzMSw5ICsxMTMxLDEzIEBAIHZvaWQgc2tsX2RldGFjaF9zY2Fs ZXJzKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKTsKPiAgIGludCBza2xfdXBkYXRlX3Nj YWxlcl91c2VycyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiAgIAlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFu ZSwKPiAgIAlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLCBpbnQgZm9yY2Vf ZGV0YWNoKTsKPiAraW50IHNrbF9tYXhfc2NhbGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPgo+ICAgdW5zaWduZWQgbG9uZyBp bnRlbF9wbGFuZV9vYmpfb2Zmc2V0KHN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUsCj4g ICAJCQkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKPiArdTMyIHNrbF9w bGFuZV9jdGxfZm9ybWF0KHVpbnQzMl90IHBpeGVsX2Zvcm1hdCk7Cj4gK3UzMiBza2xfcGxhbmVf Y3RsX3RpbGluZyh1aW50NjRfdCBmYl9tb2RpZmllcik7Cj4gK3UzMiBza2xfcGxhbmVfY3RsX3Jv dGF0aW9uKHVuc2lnbmVkIGludCByb3RhdGlvbik7Cj4KPiAgIC8qIGludGVsX2RwLmMgKi8KPiAg IHZvaWQgaW50ZWxfZHBfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgb3V0cHV0X3Jl ZywgZW51bSBwb3J0IHBvcnQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gaW5k ZXggMGNiMzc2Ny4uMmY0Mjc3NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9zcHJpdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j Cj4gQEAgLTExNTAsNiArMTE1MCwxNSBAQCBpbnQgaW50ZWxfc3ByaXRlX3NldF9jb2xvcmtleShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCX0KPgo+ICAgCWludGVsX3Bs YW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+ICsKPiArCWlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA+PSA5KSB7Cj4gKwkJLyogcGxhbmUgc2NhbGluZyBhbmQgY29sb3JrZXkgYXJlIG11dHVh bGx5IGV4Y2x1c2l2ZSAqLwo+ICsJCWlmICh0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+c3Rh dGUpLT5zY2FsZXJfaWQgPj0gMCkgewo+ICsJCQlEUk1fRVJST1IoImNvbG9ya2V5IG5vdCBhbGxv d2VkIHdpdGggc2NhbGVyXG4iKTsKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJfQo+ICsJfQo+ ICsKPiAgIAlpbnRlbF9wbGFuZS0+Y2tleSA9ICpzZXQ7Cj4KPiAgIAkvKgo+Cl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==