From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jindal, Sonika" Subject: Re: [PATCH 2/2] drm/i915/skl: Support for 90/270 rotation Date: Thu, 02 Apr 2015 10:24:02 +0530 Message-ID: <551CCB6A.40608@intel.com> References: <1427704497-28344-1-git-send-email-sonika.jindal@intel.com> <1427704497-28344-2-git-send-email-sonika.jindal@intel.com> <20150401182207.GI28205@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 D84CF6E100 for ; Wed, 1 Apr 2015 21:54:04 -0700 (PDT) In-Reply-To: <20150401182207.GI28205@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiA0LzEvMjAxNSAxMTo1MiBQTSwgTWF0dCBSb3BlciB3cm90ZToKPiBPbiBNb24sIE1hciAz MCwgMjAxNSBhdCAwMjowNDo1N1BNICswNTMwLCBTb25pa2EgSmluZGFsIHdyb3RlOgo+PiB2Mjog TW92aW5nIGNyZWF0aW9uIG9mIHByb3BlcnR5IGluIGEgZnVuY3Rpb24sIGNoZWNraW5nIGZvciA5 MC8yNzAKPj4gcm90YXRpb24gc2ltdWx0YW5lb3VzbHkgKENocmlzKQo+PiBMZXR0aW5nIHByaW1h cnkgcGxhbmUgdG8gYmUgcG9zaXRpb25lZAo+PiB2MzogQWRkaW5nIGlmL2Vsc2UgZm9yIDkwLzI3 MCBhbmQgcmVzdCBwYXJhbXMgcHJvZ3JhbW1pbmcsIGFkZGluZyBjaGVjayBmb3IKPj4gcGl4ZWxf Zm9ybWF0LCBzb21lIGNsZWFudXAgKHJldmlldyBjb21tZW50cykKPj4gdjQ6IEFkZGluZyByaWdo dCBwaXhlbF9mb3JtYXRzLCB1c2luZyBzcmNfKiBwYXJhbXMgaW5zdGVhZCBvZiBjcnRjXyogZm9y IG9mZnNldAo+PiBhbmQgc2l6ZSBwcm9ncmFtbWluZyAoVmlsbGUpCj4+IHY1OiBSZWJhc2VkIG9u IC1uaWdodGx5IGFuZCBUdnJ0a28ncyBzZXJpZXMgZm9yIGd0dCByZW1hcHBpbmcuCj4+IHY2OiBS ZWJhc2VkIG9uIC1uaWdodGx5IChUdnJ0a28ncyBzZXJpZXMgbWVyZ2VkKQo+Pgo+PiBTaWduZWQt b2ZmLWJ5OiBTb25pa2EgSmluZGFsIDxzb25pa2EuamluZGFsQGludGVsLmNvbT4KPj4gLS0tCj4+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgICAgMiArCj4+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDEwMyArKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg ICAgIHwgICAgNiArKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8 ICAgNTIgKysrKysrKysrKysrLS0tLS0KPj4gICA0IGZpbGVzIGNoYW5nZWQsIDEyOSBpbnNlcnRp b25zKCspLCAzNCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IGlu ZGV4IGI1MjJlYjYuLjU2NGJiZDUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiBA QCAtNDg1NCw3ICs0ODU0LDkgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4+ICAgI2Rl ZmluZSAgIFBMQU5FX0NUTF9BTFBIQV9IV19QUkVNVUxUSVBMWQkoICAzIDw8IDQpCj4+ICAgI2Rl ZmluZSAgIFBMQU5FX0NUTF9ST1RBVEVfTUFTSwkJCTB4Mwo+PiAgICNkZWZpbmUgICBQTEFORV9D VExfUk9UQVRFXzAJCQkweDAKPj4gKyNkZWZpbmUgICBQTEFORV9DVExfUk9UQVRFXzkwCQkJMHgx Cj4+ICAgI2RlZmluZSAgIFBMQU5FX0NUTF9ST1RBVEVfMTgwCQkJMHgyCj4+ICsjZGVmaW5lICAg UExBTkVfQ1RMX1JPVEFURV8yNzAJCQkweDMKPj4gICAjZGVmaW5lIF9QTEFORV9TVFJJREVfMV9B CQkJMHg3MDE4OAo+PiAgICNkZWZpbmUgX1BMQU5FX1NUUklERV8yX0EJCQkweDcwMjg4Cj4+ICAg I2RlZmluZSBfUExBTkVfU1RSSURFXzNfQQkJCTB4NzAzODgKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+PiBpbmRleCBmMGJiYzIyLi44NmVlMGYwIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+IEBAIC0yMzE4LDYgKzIzMTgsMjggQEAgaW50ZWxf ZmlsbF9mYl9nZ3R0X3ZpZXcoc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3LCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwKPj4gICAJCXJldHVybiAtRUlOVkFMOwo+PiAgIAl9Cj4+Cj4+ICsJ c3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7Cj4+ICsJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4 Ogo+PiArCWNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4ODoKPj4gKwljYXNlIERSTV9GT1JNQVRfWEJH Ujg4ODg6Cj4+ICsJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4Ogo+PiArCWNhc2UgRFJNX0ZPUk1B VF9YUkdCMjEwMTAxMDoKPj4gKwljYXNlIERSTV9GT1JNQVRfQVJHQjIxMDEwMTA6Cj4+ICsJY2Fz ZSBEUk1fRk9STUFUX1hCR1IyMTAxMDEwOgo+PiArCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMjEwMTAx MDoKPj4gKwljYXNlIERSTV9GT1JNQVRfWVVZVjoKPj4gKwljYXNlIERSTV9GT1JNQVRfWVZZVToK Pj4gKwljYXNlIERSTV9GT1JNQVRfVVlWWToKPj4gKwljYXNlIERSTV9GT1JNQVRfVllVWToKPj4g KwljYXNlIERSTV9GT1JNQVRfTlYxMjoKPj4gKwkJYnJlYWs7Cj4+ICsKPj4gKwlkZWZhdWx0Ogo+ PiArCQlEUk1fREVCVUdfS01TKCJVbnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6JWQgZm9yIDkwLzI3 MCByb3RhdGlvbiFcbiIsCj4+ICsJCSAgICAgIGZiLT5waXhlbF9mb3JtYXQpOwo+PiArCQlyZXR1 cm4gLUVJTlZBTDsKPj4gKwl9Cj4KPiBTaG91bGRuJ3Qgd2UgYmUgbWF0Y2hpbmcgYWdhaW5zdCB0 aGUgbGlzdCBvZiBmb3JtYXRzIHRoZSBwbGFuZSBzdXBwb3J0cwo+ICh3aGljaCBtYXkgdmFyeSBi eSBwbGF0Zm9ybSwgb3IgYnkgc3BlY2lmaWMgcGxhbmUpIHJhdGhlciB0aGFuIHRoaXMKPiBnZW5l cmljIGxpc3Q/ICBXZSBhbHJlYWR5IHNwZWNpZmllZCB3aGF0IGZvcm1hdHMgdGhlIHBsYW5lIGNh biBoYW5kbGUgYXQKPiBwbGFuZSBpbml0IHRpbWUsIHNvIGl0IHNlZW1zIGxpa2Ugd2hhdCB5b3Un ZCByZWFsbHkgd2FudCBpcyBqdXN0IGEgY2FsbAo+IHRvCj4KPiAgICAgIGRybV9wbGFuZV9jaGVj a19waXhlbF9mb3JtYXQocGxhbmVfc3RhdGUtPnBsYW5lLCBmYi0+cGl4ZWxfZm9ybWF0KQo+Cj4g dGhlbiBmb2xsb3cgdGhhdCB1cCB3aXRoIGV4cGxpY2l0IGNoZWNrcyB0byBleGNsdWRlIGFueSBm b3JtYXRzIHRoYXQgd2UKPiBjYW4gaGFuZGxlIGluIDAvMTgwLCBidXQgbm90IGluIDkwLzI3MC4K PgpJIGFtIG5vdCBzdXJlIGhvdyBpdCB3aWxsIGhlbHAuIGRybV9wbGFuZV9jaGVja19waXhlbF9m b3JtYXQgc2hvdWxkIGJlIAp1c2VkIHRvIGNoZWNrIHRoZSBwaXhlbCBmb3JtYXQgb2YgdGhlIGZi IHdoaWNoIHdlIHNob3VsZCBiZSBkb2luZyBpbiAKc29tZSAtY2hlY2sgZnVuY3Rpb25zIChJIGRv bid0IHRoaW5rIHdlIGRvIHRoYXQgcmlnaHQgbm93PykgYWdhaW5zdCB3aGF0IAppcyBzdXBwb3J0 ZWQgYnkgdGhlIHBsYW5lLgpCdXQgdG8gY2hlY2sgZm9yIHRoZSBmb3JtYXRzIHdoaWNoIGFyZSBh bGxvd2VkIGZvciA5MC8yNzAsIHdlIHdvdWxkIG5lZWQgCnRoaXMga2luZCBvZiBleHBsaWNpdCBj aGVjay4KCj4gSSdkIGFsc28gbW92ZSB0aGlzIGNoZWNrIHRvIGludGVsX3BsYW5lX2F0b21pY19j aGVjaygpLCBzaW5jZSB0aGUKPiAnY2hlY2snIGNvZGUgcGF0aCBpcyB3aGVyZSBJJ2QgdXN1YWxs eSBnbyBsb29raW5nIGZvciB0aGVzZSB0eXBlcyBvZgo+IGNoZWNrczsgdGhlIGZ1bmN0aW9uIHlv dSd2ZSBnb3QgaXQgaW4gYXQgdGhlIG1vbWVudCBnZXRzIGNhbGxlZCBmcm9tIHRoZQo+ICdwcmVw YXJlJyBzdGVwIHdoaWNoIHdvcmtzIGFzIHdlbGwsIGJ1dCBzZWVtcyBhIGJpdCBsZXNzIG9idmlv dXMuCj4KWWVzLCBJIGFncmVlLCBidXQgdGhpcyBpcyBvbiB0b3Agb2YgVHZydGtvJ3MgcGF0Y2gg Zm9yIHNlY29uZGFyeSBidWZmZXIgCm1hcHBpbmcgd2hlcmUgYmFzZWQgdXBvbiB0aWxpbmcgYW5k IHBpeGVsIGZvcm1hdCB3ZSBhcmUgYWxsb3dpbmcgdGhlIApyb3RhdGVkIGd0dC4KClR2cnRrbywK Q2FuIHRoZXNlIGJlIG1vdmVkIHRvIHRoZSBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2soKQoKPj4g Kwo+PiAgIAlyZXR1cm4gMDsKPj4gICB9Cj4+Cj4+IEBAIC0yOTE5LDggKzI5NDEsMTIgQEAgc3Rh dGljIHZvaWQgc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsCj4+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjKTsKPj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPj4gICAJaW50IHBp cGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+PiAtCXUzMiBwbGFuZV9jdGwsIHN0cmlkZV9kaXY7Cj4+ ICsJdTMyIHBsYW5lX2N0bCwgc3RyaWRlX2Rpdiwgc3RyaWRlOwo+PiArCXUzMiB0aWxlX2hlaWdo dCwgcGxhbmVfb2Zmc2V0LCBwbGFuZV9zaXplOwo+PiArCXVuc2lnbmVkIGludCByb3RhdGlvbjsK Pj4gKwlpbnQgeF9vZmZzZXQsIHlfb2Zmc2V0Owo+PiAgIAl1bnNpZ25lZCBsb25nIHN1cmZfYWRk cjsKPj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPj4KPj4gICAJaWYgKCFpbnRlbF9jcnRj LT5wcmltYXJ5X2VuYWJsZWQpIHsKPj4gICAJCUk5MTVfV1JJVEUoUExBTkVfQ1RMKHBpcGUsIDAp LCAwKTsKPj4gQEAgLTI5ODEsMjEgKzMwMDcsNTEgQEAgc3RhdGljIHZvaWQgc2t5bGFrZV91cGRh dGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+ICAgCX0KPj4KPj4gICAJ cGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9QTEFORV9HQU1NQV9ESVNBQkxFOwo+PiAtCWlmIChjcnRj LT5wcmltYXJ5LT5zdGF0ZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkKPj4gKwo+ PiArCXBsYW5lID0gY3J0Yy0+cHJpbWFyeTsKPj4gKwlyb3RhdGlvbiA9IHBsYW5lLT5zdGF0ZS0+ cm90YXRpb247Cj4+ICsJc3dpdGNoIChyb3RhdGlvbikgewo+PiArCWNhc2UgQklUKERSTV9ST1RB VEVfOTApOgo+PiArCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1JPVEFURV85MDsKPj4gKwkJYnJl YWs7Cj4+ICsKPj4gKwljYXNlIEJJVChEUk1fUk9UQVRFXzE4MCk6Cj4+ICAgCQlwbGFuZV9jdGwg fD0gUExBTkVfQ1RMX1JPVEFURV8xODA7Cj4+ICsJCWJyZWFrOwo+PiArCj4+ICsJY2FzZSBCSVQo RFJNX1JPVEFURV8yNzApOgo+PiArCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1JPVEFURV8yNzA7 Cj4+ICsJCWJyZWFrOwo+PiArCX0KPj4KPj4gICAJb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKPj4g ICAJc3RyaWRlX2RpdiA9IGludGVsX2ZiX3N0cmlkZV9hbGlnbm1lbnQoZGV2LCBmYi0+bW9kaWZp ZXJbMF0sCj4+ICAgCQkJCQkgICAgICAgZmItPnBpeGVsX2Zvcm1hdCk7Cj4KPiBNaW5vciBuaXQ7 IGNhbiB3ZSBtb3ZlIHRoaXMgZG93biBpbnNpZGUgdGhlICdlbHNlJyBicmFuY2ggdG8gbWFrZSBp dAo+IGFwcGFyZW50IGhvdyB0aGlzIHNlcnZlcyBhIHBhcmFsbGVsIHJvbGUgdG8gJ3RpbGVfaGVp Z2h0JyBmcm9tIHRoZSAnaWYnCj4gYnJhbmNoLgo+ClllcyBzdXJlLgo+Cj4+IC0Jc3VyZl9hZGRy ID0gaW50ZWxfcGxhbmVfb2JqX29mZnNldCh0b19pbnRlbF9wbGFuZShjcnRjLT5wcmltYXJ5KSwg b2JqKTsKPj4gKwlzdXJmX2FkZHIgPSBpbnRlbF9wbGFuZV9vYmpfb2Zmc2V0KHRvX2ludGVsX3Bs YW5lKHBsYW5lKSwgb2JqKTsKPj4gKwo+PiArCWlmIChyb3RhdGlvbiAmIChCSVQoRFJNX1JPVEFU RV85MCkgfCBCSVQoRFJNX1JPVEFURV8yNzApKSkgewo+Cj4gTWlnaHQgYXMgd2VsbCB1c2UgdGhl IGludGVsX3JvdGF0aW9uXzkwX29yXzI3MCgpIGZ1bmN0aW9uIHNpbmNlIHdlIGhhdmUKPiBpdC4g IFNhbWUgY29tbWVudCBmb3IgdGhlIHNwcml0ZSBwYXRoIGZhcnRoZXIgZG93bi4KPgpTdXJlLgoK UmVnYXJkcywKU29uaWthCj4+ICsJCS8qIHN0cmlkZSA9IFN1cmZhY2UgaGVpZ2h0IGluIHRpbGVz ICovCj4+ICsJCXRpbGVfaGVpZ2h0ID0gaW50ZWxfdGlsZV9oZWlnaHQoZGV2LCBmYi0+Yml0c19w ZXJfcGl4ZWwsCj4+ICsJCQkJCQlmYi0+bW9kaWZpZXJbMF0pOwo+PiArCQlzdHJpZGUgPSBESVZf Uk9VTkRfVVAoZmItPmhlaWdodCwgdGlsZV9oZWlnaHQpOwo+PiArCQl4X29mZnNldCA9IHN0cmlk ZSAqIHRpbGVfaGVpZ2h0IC0geSAtIChwbGFuZS0+c3RhdGUtPnNyY19oID4+IDE2KTsKPj4gKwkJ eV9vZmZzZXQgPSB4Owo+PiArCQlwbGFuZV9zaXplID0gKChwbGFuZS0+c3RhdGUtPnNyY193ID4+ IDE2KSAtIDEpIDw8IDE2IHwKPj4gKwkJCQkJKChwbGFuZS0+c3RhdGUtPnNyY19oID4+IDE2KSAt IDEpOwo+PiArCX0gZWxzZSB7Cj4+ICsJCXN0cmlkZSA9IGZiLT5waXRjaGVzWzBdIC8gc3RyaWRl X2RpdjsKPj4gKwkJeF9vZmZzZXQgPSB4Owo+PiArCQl5X29mZnNldCA9IHk7Cj4+ICsJCXBsYW5l X3NpemUgPSAoKHBsYW5lLT5zdGF0ZS0+c3JjX2ggPj4gMTYpIC0gMSkgPDwgMTYgfAo+PiArCQkJ KChwbGFuZS0+c3RhdGUtPnNyY193ID4+IDE2KSAtIDEpOwo+PiArCX0KPj4gKwlwbGFuZV9vZmZz ZXQgPSB5X29mZnNldCA8PCAxNiB8IHhfb2Zmc2V0Owo+Pgo+PiAgIAlJOTE1X1dSSVRFKFBMQU5F X0NUTChwaXBlLCAwKSwgcGxhbmVfY3RsKTsKPj4gICAJSTkxNV9XUklURShQTEFORV9QT1MocGlw ZSwgMCksIDApOwo+PiAtCUk5MTVfV1JJVEUoUExBTkVfT0ZGU0VUKHBpcGUsIDApLCAoeSA8PCAx NikgfCB4KTsKPj4gLQlJOTE1X1dSSVRFKFBMQU5FX1NJWkUocGlwZSwgMCksCj4+IC0JCSAgIChp bnRlbF9jcnRjLT5jb25maWctPnBpcGVfc3JjX2ggLSAxKSA8PCAxNiB8Cj4+IC0JCSAgIChpbnRl bF9jcnRjLT5jb25maWctPnBpcGVfc3JjX3cgLSAxKSk7Cj4+IC0JSTkxNV9XUklURShQTEFORV9T VFJJREUocGlwZSwgMCksIGZiLT5waXRjaGVzWzBdIC8gc3RyaWRlX2Rpdik7Cj4+ICsJSTkxNV9X UklURShQTEFORV9PRkZTRVQocGlwZSwgMCksIHBsYW5lX29mZnNldCk7Cj4+ICsJSTkxNV9XUklU RShQTEFORV9TSVpFKHBpcGUsIDApLCBwbGFuZV9zaXplKTsKPj4gKwlJOTE1X1dSSVRFKFBMQU5F X1NUUklERShwaXBlLCAwKSwgc3RyaWRlKTsKPj4gICAJSTkxNV9XUklURShQTEFORV9TVVJGKHBp cGUsIDApLCBzdXJmX2FkZHIpOwo+Pgo+PiAgIAlQT1NUSU5HX1JFQUQoUExBTkVfU1VSRihwaXBl LCAwKSk7Cj4+IEBAIC0xMjQwNiwyMyArMTI0NjIsMzIgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxh bmUgKmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ ICAgCQkJCSBpbnRlbF9wcmltYXJ5X2Zvcm1hdHMsIG51bV9mb3JtYXRzLAo+PiAgIAkJCQkgRFJN X1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4+Cj4+IC0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49 IDQpIHsKPj4gLQkJaWYgKCFkZXYtPm1vZGVfY29uZmlnLnJvdGF0aW9uX3Byb3BlcnR5KQo+PiAt CQkJZGV2LT5tb2RlX2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0eSA9Cj4+IC0JCQkJZHJtX21vZGVf Y3JlYXRlX3JvdGF0aW9uX3Byb3BlcnR5KGRldiwKPj4gLQkJCQkJCQlCSVQoRFJNX1JPVEFURV8w KSB8Cj4+IC0JCQkJCQkJQklUKERSTV9ST1RBVEVfMTgwKSk7Cj4+IC0JCWlmIChkZXYtPm1vZGVf Y29uZmlnLnJvdGF0aW9uX3Byb3BlcnR5KQo+PiAtCQkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVy dHkoJnByaW1hcnktPmJhc2UuYmFzZSwKPj4gLQkJCQlkZXYtPm1vZGVfY29uZmlnLnJvdGF0aW9u X3Byb3BlcnR5LAo+PiAtCQkJCXN0YXRlLT5iYXNlLnJvdGF0aW9uKTsKPj4gLQl9Cj4+ICsJaWYg KElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDQpCj4+ICsJCWludGVsX2NyZWF0ZV9yb3RhdGlvbl9w cm9wZXJ0eShkZXYsIHByaW1hcnkpOwo+Pgo+PiAgIAlkcm1fcGxhbmVfaGVscGVyX2FkZCgmcHJp bWFyeS0+YmFzZSwgJmludGVsX3BsYW5lX2hlbHBlcl9mdW5jcyk7Cj4+Cj4+ICAgCXJldHVybiAm cHJpbWFyeS0+YmFzZTsKPj4gICB9Cj4+Cj4+ICt2b2lkIGludGVsX2NyZWF0ZV9yb3RhdGlvbl9w cm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5l KQo+PiArewo+PiArCWlmICghZGV2LT5tb2RlX2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0eSkgewo+ PiArCQl1bnNpZ25lZCBsb25nIGZsYWdzID0gQklUKERSTV9ST1RBVEVfMCkgfAo+PiArCQkJQklU KERSTV9ST1RBVEVfMTgwKTsKPj4gKwo+PiArCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g OSkKPj4gKwkJCWZsYWdzIHw9IEJJVChEUk1fUk9UQVRFXzkwKSB8IEJJVChEUk1fUk9UQVRFXzI3 MCk7Cj4+ICsKPj4gKwkJZGV2LT5tb2RlX2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0eSA9Cj4+ICsJ CQlkcm1fbW9kZV9jcmVhdGVfcm90YXRpb25fcHJvcGVydHkoZGV2LCBmbGFncyk7Cj4+ICsJfQo+ PiArCWlmIChkZXYtPm1vZGVfY29uZmlnLnJvdGF0aW9uX3Byb3BlcnR5KQo+PiArCQlkcm1fb2Jq ZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UuYmFzZSwKPj4gKwkJCQlkZXYtPm1vZGVf Y29uZmlnLnJvdGF0aW9uX3Byb3BlcnR5LAo+PiArCQkJCXBsYW5lLT5iYXNlLnN0YXRlLT5yb3Rh dGlvbik7Cj4+ICt9Cj4+ICsKPj4gICBzdGF0aWMgaW50Cj4+ICAgaW50ZWxfY2hlY2tfY3Vyc29y X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+PiAgIAkJCSBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnN0YXRlKQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBpbmRleCA4MTFh MWRiLi5kMzIwMjVhIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBAQCAtOTk1 LDYgKzk5NSwxMiBAQCBpbnRlbF9yb3RhdGlvbl85MF9vcl8yNzAodW5zaWduZWQgaW50IHJvdGF0 aW9uKQo+PiAgIAlyZXR1cm4gcm90YXRpb24gJiAoQklUKERSTV9ST1RBVEVfOTApIHwgQklUKERS TV9ST1RBVEVfMjcwKSk7Cj4+ICAgfQo+Pgo+PiArdW5zaWduZWQgaW50Cj4+ICtpbnRlbF90aWxl X2hlaWdodChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50MzJfdCBiaXRzX3Blcl9waXhlbCwK Pj4gKwkJICB1aW50NjRfdCBmYl9tb2RpZmllcik7Cj4+ICt2b2lkIGludGVsX2NyZWF0ZV9yb3Rh dGlvbl9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiArCQkJCQlzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lKTsKPj4gKwo+PiAgIGJvb2wgaW50ZWxfd21fbmVlZF91cGRhdGUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCj4+ICAgCQkJICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpz dGF0ZSk7Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4+IGluZGV4IGY0MWU4 NzIuLjY1ZWIxNDcgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nw cml0ZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4+IEBA IC0xOTAsMTAgKzE5MCwxMyBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRy bV9wbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKPj4gICAJY29uc3QgaW50IHBpcGUgPSBp bnRlbF9wbGFuZS0+cGlwZTsKPj4gICAJY29uc3QgaW50IHBsYW5lID0gaW50ZWxfcGxhbmUtPnBs YW5lICsgMTsKPj4gLQl1MzIgcGxhbmVfY3RsLCBzdHJpZGVfZGl2Owo+PiArCXUzMiBwbGFuZV9j dGwsIHN0cmlkZV9kaXYsIHN0cmlkZTsKPj4gICAJaW50IHBpeGVsX3NpemUgPSBkcm1fZm9ybWF0 X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKPj4gICAJY29uc3Qgc3RydWN0IGRybV9p bnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZpbnRlbF9wbGFuZS0+Y2tleTsKPj4gICAJdW5z aWduZWQgbG9uZyBzdXJmX2FkZHI7Cj4+ICsJdTMyIHRpbGVfaGVpZ2h0LCBwbGFuZV9vZmZzZXQs IHBsYW5lX3NpemU7Cj4+ICsJdW5zaWduZWQgaW50IHJvdGF0aW9uOwo+PiArCWludCB4X29mZnNl dCwgeV9vZmZzZXQ7Cj4+Cj4+ICAgCXBsYW5lX2N0bCA9IFBMQU5FX0NUTF9FTkFCTEUgfAo+PiAg IAkJUExBTkVfQ1RMX1BJUEVfQ1NDX0VOQUJMRTsKPj4gQEAgLTI1NCw4ICsyNTcsMjAgQEAgc2ts X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsIHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKPj4gICAJCU1JU1NJTkdfQ0FTRShmYi0+bW9kaWZpZXJbMF0pOwo+PiAgIAl9Cj4+ Cj4+IC0JaWYgKGRybV9wbGFuZS0+c3RhdGUtPnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4 MCkpCj4+ICsJcm90YXRpb24gPSBkcm1fcGxhbmUtPnN0YXRlLT5yb3RhdGlvbjsKPj4gKwlzd2l0 Y2ggKHJvdGF0aW9uKSB7Cj4+ICsJY2FzZSBCSVQoRFJNX1JPVEFURV85MCk6Cj4+ICsJCXBsYW5l X2N0bCB8PSBQTEFORV9DVExfUk9UQVRFXzkwOwo+PiArCQlicmVhazsKPj4gKwo+PiArCWNhc2Ug QklUKERSTV9ST1RBVEVfMTgwKToKPj4gICAJCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUk9UQVRF XzE4MDsKPj4gKwkJYnJlYWs7Cj4+ICsKPj4gKwljYXNlIEJJVChEUk1fUk9UQVRFXzI3MCk6Cj4+ ICsJCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUk9UQVRFXzI3MDsKPj4gKwkJYnJlYWs7Cj4+ICsJ fQo+Pgo+PiAgIAlpbnRlbF91cGRhdGVfc3ByaXRlX3dhdGVybWFya3MoZHJtX3BsYW5lLCBjcnRj LCBzcmNfdywgc3JjX2gsCj4+ICAgCQkJCSAgICAgICBwaXhlbF9zaXplLCB0cnVlLAo+PiBAQCAt MjgzLDEwICsyOTgsMjYgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1f cGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPj4KPj4gICAJc3VyZl9hZGRyID0gaW50ZWxf cGxhbmVfb2JqX29mZnNldChpbnRlbF9wbGFuZSwgb2JqKTsKPj4KPj4gLQlJOTE1X1dSSVRFKFBM QU5FX09GRlNFVChwaXBlLCBwbGFuZSksICh5IDw8IDE2KSB8IHgpOwo+PiAtCUk5MTVfV1JJVEUo UExBTkVfU1RSSURFKHBpcGUsIHBsYW5lKSwgZmItPnBpdGNoZXNbMF0gLyBzdHJpZGVfZGl2KTsK Pj4gKwlpZiAocm90YXRpb24gJiAoQklUKERSTV9ST1RBVEVfOTApIHwgQklUKERSTV9ST1RBVEVf MjcwKSkpIHsKPj4gKwkJLyogc3RyaWRlOiBTdXJmYWNlIGhlaWdodCBpbiB0aWxlcyAqLwo+PiAr CQl0aWxlX2hlaWdodCA9IGludGVsX3RpbGVfaGVpZ2h0KGRldiwgZmItPmJpdHNfcGVyX3BpeGVs LAo+PiArCQkJCQkJCWZiLT5tb2RpZmllclswXSk7Cj4+ICsJCXN0cmlkZSA9IERJVl9ST1VORF9V UChmYi0+aGVpZ2h0LCB0aWxlX2hlaWdodCk7Cj4+ICsJCXBsYW5lX3NpemUgPSAoc3JjX3cgPDwg MTYpIHwgc3JjX2g7Cj4+ICsJCXhfb2Zmc2V0ID0gc3RyaWRlICogdGlsZV9oZWlnaHQgLSB5IC0g KHNyY19oICsgMSk7Cj4+ICsJCXlfb2Zmc2V0ID0geDsKPj4gKwl9IGVsc2Ugewo+PiArCQlzdHJp ZGUgPSBmYi0+cGl0Y2hlc1swXSAvIHN0cmlkZV9kaXY7Cj4+ICsJCXBsYW5lX3NpemUgPSAoc3Jj X2ggPDwgMTYpIHwgc3JjX3c7Cj4+ICsJCXhfb2Zmc2V0ID0geDsKPj4gKwkJeV9vZmZzZXQgPSB5 Owo+PiArCX0KPj4gKwlwbGFuZV9vZmZzZXQgPSB5X29mZnNldCA8PCAxNiB8IHhfb2Zmc2V0Owo+ PiArCj4+ICsJSTkxNV9XUklURShQTEFORV9PRkZTRVQocGlwZSwgcGxhbmUpLCBwbGFuZV9vZmZz ZXQpOwo+PiArCUk5MTVfV1JJVEUoUExBTkVfU1RSSURFKHBpcGUsIHBsYW5lKSwgc3RyaWRlKTsK Pj4gICAJSTkxNV9XUklURShQTEFORV9QT1MocGlwZSwgcGxhbmUpLCAoY3J0Y195IDw8IDE2KSB8 IGNydGNfeCk7Cj4+IC0JSTkxNV9XUklURShQTEFORV9TSVpFKHBpcGUsIHBsYW5lKSwgKGNydGNf aCA8PCAxNikgfCBjcnRjX3cpOwo+PiArCUk5MTVfV1JJVEUoUExBTkVfU0laRShwaXBlLCBwbGFu ZSksIHBsYW5lX3NpemUpOwo+PiAgIAlJOTE1X1dSSVRFKFBMQU5FX0NUTChwaXBlLCBwbGFuZSks IHBsYW5lX2N0bCk7Cj4+ICAgCUk5MTVfV1JJVEUoUExBTkVfU1VSRihwaXBlLCBwbGFuZSksIHN1 cmZfYWRkcik7Cj4+ICAgCVBPU1RJTkdfUkVBRChQTEFORV9TVVJGKHBpcGUsIHBsYW5lKSk7Cj4+ IEBAIC0xMzEwLDE2ICsxMzQxLDcgQEAgaW50ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKQo+PiAgIAkJZ290byBvdXQ7Cj4+ICAg CX0KPj4KPj4gLQlpZiAoIWRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHkpCj4+IC0J CWRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHkgPQo+PiAtCQkJZHJtX21vZGVfY3Jl YXRlX3JvdGF0aW9uX3Byb3BlcnR5KGRldiwKPj4gLQkJCQkJCQkgIEJJVChEUk1fUk9UQVRFXzAp IHwKPj4gLQkJCQkJCQkgIEJJVChEUk1fUk9UQVRFXzE4MCkpOwo+PiAtCj4+IC0JaWYgKGRldi0+ bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHkpCj4+IC0JCWRybV9vYmplY3RfYXR0YWNoX3By b3BlcnR5KCZpbnRlbF9wbGFuZS0+YmFzZS5iYXNlLAo+PiAtCQkJCQkgICBkZXYtPm1vZGVfY29u ZmlnLnJvdGF0aW9uX3Byb3BlcnR5LAo+PiAtCQkJCQkgICBzdGF0ZS0+YmFzZS5yb3RhdGlvbik7 Cj4+ICsJaW50ZWxfY3JlYXRlX3JvdGF0aW9uX3Byb3BlcnR5KGRldiwgaW50ZWxfcGxhbmUpOwo+ Pgo+PiAgIAlkcm1fcGxhbmVfaGVscGVyX2FkZCgmaW50ZWxfcGxhbmUtPmJhc2UsICZpbnRlbF9w bGFuZV9oZWxwZXJfZnVuY3MpOwo+Pgo+PiAtLQo+PiAxLjcuMTAuNAo+Pgo+PiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBJbnRlbC1nZnggbWFpbGlu ZyBsaXN0Cj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+Cl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==