From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH] drm/i915/skl: Support for 90/270 rotation Date: Thu, 9 Apr 2015 15:54:46 -0700 Message-ID: <20150409225446.GK9016@intel.com> References: <552393E0.1070906@intel.com> <1428395188-12201-1-git-send-email-sonika.jindal@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 5F3616E35F for ; Thu, 9 Apr 2015 15:54:47 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1428395188-12201-1-git-send-email-sonika.jindal@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Sonika Jindal Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBBcHIgMDcsIDIwMTUgYXQgMDE6NTY6MjhQTSArMDUzMCwgU29uaWthIEppbmRhbCB3 cm90ZToKPiB2MjogTW92aW5nIGNyZWF0aW9uIG9mIHByb3BlcnR5IGluIGEgZnVuY3Rpb24sIGNo ZWNraW5nIGZvciA5MC8yNzAKPiByb3RhdGlvbiBzaW11bHRhbmVvdXNseSAoQ2hyaXMpCj4gTGV0 dGluZyBwcmltYXJ5IHBsYW5lIHRvIGJlIHBvc2l0aW9uZWQKPiB2MzogQWRkaW5nIGlmL2Vsc2Ug Zm9yIDkwLzI3MCBhbmQgcmVzdCBwYXJhbXMgcHJvZ3JhbW1pbmcsIGFkZGluZyBjaGVjayBmb3IK PiBwaXhlbF9mb3JtYXQsIHNvbWUgY2xlYW51cCAocmV2aWV3IGNvbW1lbnRzKQo+IHY0OiBBZGRp bmcgcmlnaHQgcGl4ZWxfZm9ybWF0cywgdXNpbmcgc3JjXyogcGFyYW1zIGluc3RlYWQgb2YgY3J0 Y18qIGZvciBvZmZzZXQKPiBhbmQgc2l6ZSBwcm9ncmFtbWluZyAoVmlsbGUpCj4gdjU6IFJlYmFz ZWQgb24gLW5pZ2h0bHkgYW5kIFR2cnRrbydzIHNlcmllcyBmb3IgZ3R0IHJlbWFwcGluZy4KPiB2 NjogUmViYXNlZCBvbiAtbmlnaHRseSAoVHZydGtvJ3Mgc2VyaWVzIG1lcmdlZCkKPiB2NzogTW92 aW5nIHBpeGVsX2Zvcm1hdCBjaGVjayB0byBpbnRlbF9hdG9taWNfcGxhbmVfY2hlY2sgKE1hdHQp Cj4gCj4gU2lnbmVkLW9mZi1ieTogU29uaWthIEppbmRhbCA8c29uaWthLmppbmRhbEBpbnRlbC5j b20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAgICAgIHwg ICAgMiArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIHwgICAy MyArKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICB8 ICAgODggKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggICAgICAgICAgfCAgICA2ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jICAgICAgIHwgICA1MiArKysrKysrKysrKystLS0tLQo+ICA1IGZpbGVz IGNoYW5nZWQsIDEzMCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPiBpbmRleCBiNTIyZWI2Li41NjRiYmQ1IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCj4gQEAgLTQ4NTQsNyArNDg1NCw5IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJf d2VsbHMgewo+ICAjZGVmaW5lICAgUExBTkVfQ1RMX0FMUEhBX0hXX1BSRU1VTFRJUExZCSggIDMg PDwgNCkKPiAgI2RlZmluZSAgIFBMQU5FX0NUTF9ST1RBVEVfTUFTSwkJCTB4Mwo+ICAjZGVmaW5l ICAgUExBTkVfQ1RMX1JPVEFURV8wCQkJMHgwCj4gKyNkZWZpbmUgICBQTEFORV9DVExfUk9UQVRF XzkwCQkJMHgxCj4gICNkZWZpbmUgICBQTEFORV9DVExfUk9UQVRFXzE4MAkJCTB4Mgo+ICsjZGVm aW5lICAgUExBTkVfQ1RMX1JPVEFURV8yNzAJCQkweDMKPiAgI2RlZmluZSBfUExBTkVfU1RSSURF XzFfQQkJCTB4NzAxODgKPiAgI2RlZmluZSBfUExBTkVfU1RSSURFXzJfQQkJCTB4NzAyODgKPiAg I2RlZmluZSBfUExBTkVfU1RSSURFXzNfQQkJCTB4NzAzODgKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+IGluZGV4IDk3NmI4OTEuLmVmOGMyOTEgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+IEBAIC0xNjIsNiArMTYy LDI5IEBAIHN0YXRpYyBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+ICAJCQkoMSA8PCBkcm1fcGxhbmVfaW5kZXgocGxhbmUpKTsKPiAgCX0KPiAg Cj4gKwlpZiAoc3RhdGUtPmZiICYmIGludGVsX3JvdGF0aW9uXzkwX29yXzI3MChzdGF0ZS0+cm90 YXRpb24pKSB7Cj4gKwkJaWYgKCEoc3RhdGUtPmZiLT5tb2RpZmllclswXSA9PSBJOTE1X0ZPUk1B VF9NT0RfWV9USUxFRCB8fAo+ICsJCQlzdGF0ZS0+ZmItPm1vZGlmaWVyWzBdID09IEk5MTVfRk9S TUFUX01PRF9ZZl9USUxFRCkpIHsKPiArCQkJRFJNX0RFQlVHX0tNUygiWS9ZZiB0aWxpbmcgcmVx dWlyZWQgZm9yIDkwLzI3MCFcbiIpOwo+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiArCQl9Cj4gKwo+ ICsJCS8qCj4gKwkJICogOTAvMjcwIGlzIG5vdCBhbGxvd2VkIHdpdGggUkdCNjQgMTY6MTY6MTY6 MTYsCj4gKwkJICogUkdCIDE2LWJpdCA1OjY6NSwgYW5kIEluZGV4ZWQgOC1iaXQuCj4gKwkJICov Cj4gKwkJc3dpdGNoIChzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCkgewo+ICsJCWNhc2UgRFJNX0ZP Uk1BVF9DODoKPiArCQljYXNlIERSTV9GT1JNQVRfUkdCNTY1OgoKWW91ciBjb21tZW50IG1lbnRp b25zIFJHQjY0LCB3aGljaCBpc24ndCBoYW5kbGVkIGluIHRoZSBjYXNlIHN0YXRlbWVudApoZXJl LiAgQnV0IHdlIGRvbid0IHN1cHBvcnQgUkdCNjQgYXQgYWxsIHRvZGF5IChpbiBza2xfcGxhbmVf Zm9ybWF0c1tdKSwKc28gSSdkIGp1c3QgcmVtb3ZlIGl0IGZyb20gdGhlIGNvbW1lbnQgdG8gYXZv aWQgY29uZnVzaW9uLgoKQXNpZGUgZnJvbSB0aGF0LCB5b3UgY2FuIGNvbnNpZGVyIHRoaXMKClJl dmlld2VkLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgoKPiArCQkJ RFJNX0RFQlVHX0tNUygiVW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0ICVzIGZvciA5MC8yNzAhXG4i LAo+ICsJCQkJCWRybV9nZXRfZm9ybWF0X25hbWUoc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpKTsK PiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJCWRlZmF1bHQ6Cj4gKwkJCWJyZWFrOwo+ICsJ CX0KPiArCX0KPiArCj4gIAlyZXR1cm4gaW50ZWxfcGxhbmUtPmNoZWNrX3BsYW5lKHBsYW5lLCBp bnRlbF9zdGF0ZSk7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ IGluZGV4IGYwYmJjMjIuLjRkZTU0NGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gQEAgLTIzMTEsMTMgKzIzMTEsNiBAQCBpbnRlbF9maWxsX2ZiX2dndHRfdmlldyhz dHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcsIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ ICAJaW5mby0+cGl0Y2ggPSBmYi0+cGl0Y2hlc1swXTsKPiAgCWluZm8tPmZiX21vZGlmaWVyID0g ZmItPm1vZGlmaWVyWzBdOwo+ICAKPiAtCWlmICghKGluZm8tPmZiX21vZGlmaWVyID09IEk5MTVf Rk9STUFUX01PRF9ZX1RJTEVEIHx8Cj4gLQkgICAgICBpbmZvLT5mYl9tb2RpZmllciA9PSBJOTE1 X0ZPUk1BVF9NT0RfWWZfVElMRUQpKSB7Cj4gLQkJRFJNX0RFQlVHX0tNUygKPiAtCQkJICAgICAg Ilkgb3IgWWYgdGlsaW5nIGlzIG5lZWRlZCBmb3IgOTAvMjcwIHJvdGF0aW9uIVxuIik7Cj4gLQkJ cmV0dXJuIC1FSU5WQUw7Cj4gLQl9Cj4gLQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gQEAgLTI5 MTksOCArMjkxMiwxMiBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5l KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv Ymo7Cj4gIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gLQl1MzIgcGxhbmVfY3RsLCBz dHJpZGVfZGl2Owo+ICsJdTMyIHBsYW5lX2N0bCwgc3RyaWRlX2Rpdiwgc3RyaWRlOwo+ICsJdTMy IHRpbGVfaGVpZ2h0LCBwbGFuZV9vZmZzZXQsIHBsYW5lX3NpemU7Cj4gKwl1bnNpZ25lZCBpbnQg cm90YXRpb247Cj4gKwlpbnQgeF9vZmZzZXQsIHlfb2Zmc2V0Owo+ICAJdW5zaWduZWQgbG9uZyBz dXJmX2FkZHI7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiAgCj4gIAlpZiAoIWludGVs X2NydGMtPnByaW1hcnlfZW5hYmxlZCkgewo+ICAJCUk5MTVfV1JJVEUoUExBTkVfQ1RMKHBpcGUs IDApLCAwKTsKPiBAQCAtMjk4MSwyMSArMjk3OCw1MSBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3Vw ZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCX0KPiAgCj4gIAlw bGFuZV9jdGwgfD0gUExBTkVfQ1RMX1BMQU5FX0dBTU1BX0RJU0FCTEU7Cj4gLQlpZiAoY3J0Yy0+ cHJpbWFyeS0+c3RhdGUtPnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpCj4gKwo+ICsJ cGxhbmUgPSBjcnRjLT5wcmltYXJ5Owo+ICsJcm90YXRpb24gPSBwbGFuZS0+c3RhdGUtPnJvdGF0 aW9uOwo+ICsJc3dpdGNoIChyb3RhdGlvbikgewo+ICsJY2FzZSBCSVQoRFJNX1JPVEFURV85MCk6 Cj4gKwkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9ST1RBVEVfOTA7Cj4gKwkJYnJlYWs7Cj4gKwo+ ICsJY2FzZSBCSVQoRFJNX1JPVEFURV8xODApOgo+ICAJCXBsYW5lX2N0bCB8PSBQTEFORV9DVExf Uk9UQVRFXzE4MDsKPiArCQlicmVhazsKPiArCj4gKwljYXNlIEJJVChEUk1fUk9UQVRFXzI3MCk6 Cj4gKwkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9ST1RBVEVfMjcwOwo+ICsJCWJyZWFrOwo+ICsJ fQo+ICAKPiAgCW9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4gIAlzdHJpZGVfZGl2ID0gaW50ZWxf ZmJfc3RyaWRlX2FsaWdubWVudChkZXYsIGZiLT5tb2RpZmllclswXSwKPiAgCQkJCQkgICAgICAg ZmItPnBpeGVsX2Zvcm1hdCk7Cj4gLQlzdXJmX2FkZHIgPSBpbnRlbF9wbGFuZV9vYmpfb2Zmc2V0 KHRvX2ludGVsX3BsYW5lKGNydGMtPnByaW1hcnkpLCBvYmopOwo+ICsJc3VyZl9hZGRyID0gaW50 ZWxfcGxhbmVfb2JqX29mZnNldCh0b19pbnRlbF9wbGFuZShwbGFuZSksIG9iaik7Cj4gKwo+ICsJ aWYgKGludGVsX3JvdGF0aW9uXzkwX29yXzI3MChyb3RhdGlvbikpIHsKPiArCQkvKiBzdHJpZGUg PSBTdXJmYWNlIGhlaWdodCBpbiB0aWxlcyAqLwo+ICsJCXRpbGVfaGVpZ2h0ID0gaW50ZWxfdGls ZV9oZWlnaHQoZGV2LCBmYi0+Yml0c19wZXJfcGl4ZWwsCj4gKwkJCQkJCWZiLT5tb2RpZmllclsw XSk7Cj4gKwkJc3RyaWRlID0gRElWX1JPVU5EX1VQKGZiLT5oZWlnaHQsIHRpbGVfaGVpZ2h0KTsK PiArCQl4X29mZnNldCA9IHN0cmlkZSAqIHRpbGVfaGVpZ2h0IC0geSAtIChwbGFuZS0+c3RhdGUt PnNyY19oID4+IDE2KTsKPiArCQl5X29mZnNldCA9IHg7Cj4gKwkJcGxhbmVfc2l6ZSA9ICgocGxh bmUtPnN0YXRlLT5zcmNfdyA+PiAxNikgLSAxKSA8PCAxNiB8Cj4gKwkJCQkJKChwbGFuZS0+c3Rh dGUtPnNyY19oID4+IDE2KSAtIDEpOwo+ICsJfSBlbHNlIHsKPiArCQlzdHJpZGUgPSBmYi0+cGl0 Y2hlc1swXSAvIHN0cmlkZV9kaXY7Cj4gKwkJeF9vZmZzZXQgPSB4Owo+ICsJCXlfb2Zmc2V0ID0g eTsKPiArCQlwbGFuZV9zaXplID0gKChwbGFuZS0+c3RhdGUtPnNyY19oID4+IDE2KSAtIDEpIDw8 IDE2IHwKPiArCQkJKChwbGFuZS0+c3RhdGUtPnNyY193ID4+IDE2KSAtIDEpOwo+ICsJfQo+ICsJ cGxhbmVfb2Zmc2V0ID0geV9vZmZzZXQgPDwgMTYgfCB4X29mZnNldDsKPiAgCj4gIAlJOTE1X1dS SVRFKFBMQU5FX0NUTChwaXBlLCAwKSwgcGxhbmVfY3RsKTsKPiAgCUk5MTVfV1JJVEUoUExBTkVf UE9TKHBpcGUsIDApLCAwKTsKPiAtCUk5MTVfV1JJVEUoUExBTkVfT0ZGU0VUKHBpcGUsIDApLCAo eSA8PCAxNikgfCB4KTsKPiAtCUk5MTVfV1JJVEUoUExBTkVfU0laRShwaXBlLCAwKSwKPiAtCQkg ICAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oIC0gMSkgPDwgMTYgfAo+IC0JCSAgIChp bnRlbF9jcnRjLT5jb25maWctPnBpcGVfc3JjX3cgLSAxKSk7Cj4gLQlJOTE1X1dSSVRFKFBMQU5F X1NUUklERShwaXBlLCAwKSwgZmItPnBpdGNoZXNbMF0gLyBzdHJpZGVfZGl2KTsKPiArCUk5MTVf V1JJVEUoUExBTkVfT0ZGU0VUKHBpcGUsIDApLCBwbGFuZV9vZmZzZXQpOwo+ICsJSTkxNV9XUklU RShQTEFORV9TSVpFKHBpcGUsIDApLCBwbGFuZV9zaXplKTsKPiArCUk5MTVfV1JJVEUoUExBTkVf U1RSSURFKHBpcGUsIDApLCBzdHJpZGUpOwo+ICAJSTkxNV9XUklURShQTEFORV9TVVJGKHBpcGUs IDApLCBzdXJmX2FkZHIpOwo+ICAKPiAgCVBPU1RJTkdfUkVBRChQTEFORV9TVVJGKHBpcGUsIDAp KTsKPiBAQCAtMTI0MDYsMjMgKzEyNDMzLDMyIEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX3BsYW5lICpp bnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJ IGludGVsX3ByaW1hcnlfZm9ybWF0cywgbnVtX2Zvcm1hdHMsCj4gIAkJCQkgRFJNX1BMQU5FX1RZ UEVfUFJJTUFSWSk7Cj4gIAo+IC0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDQpIHsKPiAt CQlpZiAoIWRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHkpCj4gLQkJCWRldi0+bW9k ZV9jb25maWcucm90YXRpb25fcHJvcGVydHkgPQo+IC0JCQkJZHJtX21vZGVfY3JlYXRlX3JvdGF0 aW9uX3Byb3BlcnR5KGRldiwKPiAtCQkJCQkJCUJJVChEUk1fUk9UQVRFXzApIHwKPiAtCQkJCQkJ CUJJVChEUk1fUk9UQVRFXzE4MCkpOwo+IC0JCWlmIChkZXYtPm1vZGVfY29uZmlnLnJvdGF0aW9u X3Byb3BlcnR5KQo+IC0JCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcHJpbWFyeS0+YmFz ZS5iYXNlLAo+IC0JCQkJZGV2LT5tb2RlX2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0eSwKPiAtCQkJ CXN0YXRlLT5iYXNlLnJvdGF0aW9uKTsKPiAtCX0KPiArCWlmIChJTlRFTF9JTkZPKGRldiktPmdl biA+PSA0KQo+ICsJCWludGVsX2NyZWF0ZV9yb3RhdGlvbl9wcm9wZXJ0eShkZXYsIHByaW1hcnkp Owo+ICAKPiAgCWRybV9wbGFuZV9oZWxwZXJfYWRkKCZwcmltYXJ5LT5iYXNlLCAmaW50ZWxfcGxh bmVfaGVscGVyX2Z1bmNzKTsKPiAgCj4gIAlyZXR1cm4gJnByaW1hcnktPmJhc2U7Cj4gIH0KPiAg Cj4gK3ZvaWQgaW50ZWxfY3JlYXRlX3JvdGF0aW9uX3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gK3sKPiArCWlmICghZGV2LT5tb2Rl X2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0eSkgewo+ICsJCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBC SVQoRFJNX1JPVEFURV8wKSB8Cj4gKwkJCUJJVChEUk1fUk9UQVRFXzE4MCk7Cj4gKwo+ICsJCWlm IChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KQo+ICsJCQlmbGFncyB8PSBCSVQoRFJNX1JPVEFU RV85MCkgfCBCSVQoRFJNX1JPVEFURV8yNzApOwo+ICsKPiArCQlkZXYtPm1vZGVfY29uZmlnLnJv dGF0aW9uX3Byb3BlcnR5ID0KPiArCQkJZHJtX21vZGVfY3JlYXRlX3JvdGF0aW9uX3Byb3BlcnR5 KGRldiwgZmxhZ3MpOwo+ICsJfQo+ICsJaWYgKGRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJv cGVydHkpCj4gKwkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLmJhc2Us Cj4gKwkJCQlkZXYtPm1vZGVfY29uZmlnLnJvdGF0aW9uX3Byb3BlcnR5LAo+ICsJCQkJcGxhbmUt PmJhc2Uuc3RhdGUtPnJvdGF0aW9uKTsKPiArfQo+ICsKPiAgc3RhdGljIGludAo+ICBpbnRlbF9j aGVja19jdXJzb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJCSBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5k ZXggODExYTFkYi4uZDMyMDI1YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAg LTk5NSw2ICs5OTUsMTIgQEAgaW50ZWxfcm90YXRpb25fOTBfb3JfMjcwKHVuc2lnbmVkIGludCBy b3RhdGlvbikKPiAgCXJldHVybiByb3RhdGlvbiAmIChCSVQoRFJNX1JPVEFURV85MCkgfCBCSVQo RFJNX1JPVEFURV8yNzApKTsKPiAgfQo+ICAKPiArdW5zaWduZWQgaW50Cj4gK2ludGVsX3RpbGVf aGVpZ2h0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVpbnQzMl90IGJpdHNfcGVyX3BpeGVsLAo+ ICsJCSAgdWludDY0X3QgZmJfbW9kaWZpZXIpOwo+ICt2b2lkIGludGVsX2NyZWF0ZV9yb3RhdGlv bl9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkJCXN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmUpOwo+ICsKPiAgYm9vbCBpbnRlbF93bV9uZWVkX3VwZGF0ZShzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKPiAgCQkJICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSk7Cj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gaW5kZXggZjQxZTg3Mi4uODNhZGM5 YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gQEAgLTE5MCwxMCArMTkw LDEzIEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLCBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0g aW50ZWxfZmJfb2JqKGZiKTsKPiAgCWNvbnN0IGludCBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7 Cj4gIAljb25zdCBpbnQgcGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxhbmUgKyAxOwo+IC0JdTMyIHBs YW5lX2N0bCwgc3RyaWRlX2RpdjsKPiArCXUzMiBwbGFuZV9jdGwsIHN0cmlkZV9kaXYsIHN0cmlk ZTsKPiAgCWludCBwaXhlbF9zaXplID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zv cm1hdCwgMCk7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5 ID0gJmludGVsX3BsYW5lLT5ja2V5Owo+ICAJdW5zaWduZWQgbG9uZyBzdXJmX2FkZHI7Cj4gKwl1 MzIgdGlsZV9oZWlnaHQsIHBsYW5lX29mZnNldCwgcGxhbmVfc2l6ZTsKPiArCXVuc2lnbmVkIGlu dCByb3RhdGlvbjsKPiArCWludCB4X29mZnNldCwgeV9vZmZzZXQ7Cj4gIAo+ICAJcGxhbmVfY3Rs ID0gUExBTkVfQ1RMX0VOQUJMRSB8Cj4gIAkJUExBTkVfQ1RMX1BJUEVfQ1NDX0VOQUJMRTsKPiBA QCAtMjU0LDggKzI1NywyMCBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRy bV9wbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCU1JU1NJTkdfQ0FTRShmYi0+bW9k aWZpZXJbMF0pOwo+ICAJfQo+ICAKPiAtCWlmIChkcm1fcGxhbmUtPnN0YXRlLT5yb3RhdGlvbiA9 PSBCSVQoRFJNX1JPVEFURV8xODApKQo+ICsJcm90YXRpb24gPSBkcm1fcGxhbmUtPnN0YXRlLT5y b3RhdGlvbjsKPiArCXN3aXRjaCAocm90YXRpb24pIHsKPiArCWNhc2UgQklUKERSTV9ST1RBVEVf OTApOgo+ICsJCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUk9UQVRFXzkwOwo+ICsJCWJyZWFrOwo+ ICsKPiArCWNhc2UgQklUKERSTV9ST1RBVEVfMTgwKToKPiAgCQlwbGFuZV9jdGwgfD0gUExBTkVf Q1RMX1JPVEFURV8xODA7Cj4gKwkJYnJlYWs7Cj4gKwo+ICsJY2FzZSBCSVQoRFJNX1JPVEFURV8y NzApOgo+ICsJCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUk9UQVRFXzI3MDsKPiArCQlicmVhazsK PiArCX0KPiAgCj4gIAlpbnRlbF91cGRhdGVfc3ByaXRlX3dhdGVybWFya3MoZHJtX3BsYW5lLCBj cnRjLCBzcmNfdywgc3JjX2gsCj4gIAkJCQkgICAgICAgcGl4ZWxfc2l6ZSwgdHJ1ZSwKPiBAQCAt MjgzLDEwICsyOTgsMjYgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1f cGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCj4gIAlzdXJmX2FkZHIgPSBpbnRlbF9w bGFuZV9vYmpfb2Zmc2V0KGludGVsX3BsYW5lLCBvYmopOwo+ICAKPiAtCUk5MTVfV1JJVEUoUExB TkVfT0ZGU0VUKHBpcGUsIHBsYW5lKSwgKHkgPDwgMTYpIHwgeCk7Cj4gLQlJOTE1X1dSSVRFKFBM QU5FX1NUUklERShwaXBlLCBwbGFuZSksIGZiLT5waXRjaGVzWzBdIC8gc3RyaWRlX2Rpdik7Cj4g KwlpZiAoaW50ZWxfcm90YXRpb25fOTBfb3JfMjcwKHJvdGF0aW9uKSkgewo+ICsJCS8qIHN0cmlk ZTogU3VyZmFjZSBoZWlnaHQgaW4gdGlsZXMgKi8KPiArCQl0aWxlX2hlaWdodCA9IGludGVsX3Rp bGVfaGVpZ2h0KGRldiwgZmItPmJpdHNfcGVyX3BpeGVsLAo+ICsJCQkJCQkJZmItPm1vZGlmaWVy WzBdKTsKPiArCQlzdHJpZGUgPSBESVZfUk9VTkRfVVAoZmItPmhlaWdodCwgdGlsZV9oZWlnaHQp Owo+ICsJCXBsYW5lX3NpemUgPSAoc3JjX3cgPDwgMTYpIHwgc3JjX2g7Cj4gKwkJeF9vZmZzZXQg PSBzdHJpZGUgKiB0aWxlX2hlaWdodCAtIHkgLSAoc3JjX2ggKyAxKTsKPiArCQl5X29mZnNldCA9 IHg7Cj4gKwl9IGVsc2Ugewo+ICsJCXN0cmlkZSA9IGZiLT5waXRjaGVzWzBdIC8gc3RyaWRlX2Rp djsKPiArCQlwbGFuZV9zaXplID0gKHNyY19oIDw8IDE2KSB8IHNyY193Owo+ICsJCXhfb2Zmc2V0 ID0geDsKPiArCQl5X29mZnNldCA9IHk7Cj4gKwl9Cj4gKwlwbGFuZV9vZmZzZXQgPSB5X29mZnNl dCA8PCAxNiB8IHhfb2Zmc2V0Owo+ICsKPiArCUk5MTVfV1JJVEUoUExBTkVfT0ZGU0VUKHBpcGUs IHBsYW5lKSwgcGxhbmVfb2Zmc2V0KTsKPiArCUk5MTVfV1JJVEUoUExBTkVfU1RSSURFKHBpcGUs IHBsYW5lKSwgc3RyaWRlKTsKPiAgCUk5MTVfV1JJVEUoUExBTkVfUE9TKHBpcGUsIHBsYW5lKSwg KGNydGNfeSA8PCAxNikgfCBjcnRjX3gpOwo+IC0JSTkxNV9XUklURShQTEFORV9TSVpFKHBpcGUs IHBsYW5lKSwgKGNydGNfaCA8PCAxNikgfCBjcnRjX3cpOwo+ICsJSTkxNV9XUklURShQTEFORV9T SVpFKHBpcGUsIHBsYW5lKSwgcGxhbmVfc2l6ZSk7Cj4gIAlJOTE1X1dSSVRFKFBMQU5FX0NUTChw aXBlLCBwbGFuZSksIHBsYW5lX2N0bCk7Cj4gIAlJOTE1X1dSSVRFKFBMQU5FX1NVUkYocGlwZSwg cGxhbmUpLCBzdXJmX2FkZHIpOwo+ICAJUE9TVElOR19SRUFEKFBMQU5FX1NVUkYocGlwZSwgcGxh bmUpKTsKPiBAQCAtMTMxMCwxNiArMTM0MSw3IEBAIGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKPiAgCQlnb3RvIG91dDsK PiAgCX0KPiAgCj4gLQlpZiAoIWRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHkpCj4g LQkJZGV2LT5tb2RlX2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0eSA9Cj4gLQkJCWRybV9tb2RlX2Ny ZWF0ZV9yb3RhdGlvbl9wcm9wZXJ0eShkZXYsCj4gLQkJCQkJCQkgIEJJVChEUk1fUk9UQVRFXzAp IHwKPiAtCQkJCQkJCSAgQklUKERSTV9ST1RBVEVfMTgwKSk7Cj4gLQo+IC0JaWYgKGRldi0+bW9k ZV9jb25maWcucm90YXRpb25fcHJvcGVydHkpCj4gLQkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVy dHkoJmludGVsX3BsYW5lLT5iYXNlLmJhc2UsCj4gLQkJCQkJICAgZGV2LT5tb2RlX2NvbmZpZy5y b3RhdGlvbl9wcm9wZXJ0eSwKPiAtCQkJCQkgICBzdGF0ZS0+YmFzZS5yb3RhdGlvbik7Cj4gKwlp bnRlbF9jcmVhdGVfcm90YXRpb25fcHJvcGVydHkoZGV2LCBpbnRlbF9wbGFuZSk7Cj4gIAo+ICAJ ZHJtX3BsYW5lX2hlbHBlcl9hZGQoJmludGVsX3BsYW5lLT5iYXNlLCAmaW50ZWxfcGxhbmVfaGVs cGVyX2Z1bmNzKTsKPiAgCj4gLS0gCj4gMS43LjEwLjQKPiAKCi0tIApNYXR0IFJvcGVyCkdyYXBo aWNzIFNvZnR3YXJlIEVuZ2luZWVyCklvVEcgUGxhdGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVu dApJbnRlbCBDb3Jwb3JhdGlvbgooOTE2KSAzNTYtMjc5NQpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=