From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/2] drm/i915/skl: Support for 90/270 rotation Date: Mon, 13 Apr 2015 13:10:45 +0300 Message-ID: <20150413101045.GA11009@intel.com> References: <1428656849-5004-1-git-send-email-sonika.jindal@intel.com> <1428656849-5004-2-git-send-email-sonika.jindal@intel.com> <20150410141717.GL6092@phenom.ffwll.local> <20150410144419.GA28877@intel.com> <552B40AA.3040504@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 1D4326E2F1 for ; Mon, 13 Apr 2015 03:10:54 -0700 (PDT) Content-Disposition: inline In-Reply-To: <552B40AA.3040504@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Jindal, Sonika" Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBBcHIgMTMsIDIwMTUgYXQgMDk6MzY6MDJBTSArMDUzMCwgSmluZGFsLCBTb25pa2Eg d3JvdGU6Cj4gCj4gCj4gT24gNC8xMC8yMDE1IDg6MTQgUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90 ZToKPiA+IE9uIEZyaSwgQXByIDEwLCAyMDE1IGF0IDA0OjE3OjE3UE0gKzAyMDAsIERhbmllbCBW ZXR0ZXIgd3JvdGU6Cj4gPj4gT24gRnJpLCBBcHIgMTAsIDIwMTUgYXQgMDI6Mzc6MjlQTSArMDUz MCwgU29uaWthIEppbmRhbCB3cm90ZToKPiA+Pj4gdjI6IE1vdmluZyBjcmVhdGlvbiBvZiBwcm9w ZXJ0eSBpbiBhIGZ1bmN0aW9uLCBjaGVja2luZyBmb3IgOTAvMjcwCj4gPj4+IHJvdGF0aW9uIHNp bXVsdGFuZW91c2x5IChDaHJpcykKPiA+Pj4gTGV0dGluZyBwcmltYXJ5IHBsYW5lIHRvIGJlIHBv c2l0aW9uZWQKPiA+Pj4gdjM6IEFkZGluZyBpZi9lbHNlIGZvciA5MC8yNzAgYW5kIHJlc3QgcGFy YW1zIHByb2dyYW1taW5nLCBhZGRpbmcgY2hlY2sgZm9yCj4gPj4+IHBpeGVsX2Zvcm1hdCwgc29t ZSBjbGVhbnVwIChyZXZpZXcgY29tbWVudHMpCj4gPj4+IHY0OiBBZGRpbmcgcmlnaHQgcGl4ZWxf Zm9ybWF0cywgdXNpbmcgc3JjXyogcGFyYW1zIGluc3RlYWQgb2YgY3J0Y18qIGZvciBvZmZzZXQK PiA+Pj4gYW5kIHNpemUgcHJvZ3JhbW1pbmcgKFZpbGxlKQo+ID4+PiB2NTogUmViYXNlZCBvbiAt bmlnaHRseSBhbmQgVHZydGtvJ3Mgc2VyaWVzIGZvciBndHQgcmVtYXBwaW5nLgo+ID4+PiB2Njog UmViYXNlZCBvbiAtbmlnaHRseSAoVHZydGtvJ3Mgc2VyaWVzIG1lcmdlZCkKPiA+Pj4gdjc6IE1v dmluZyBwaXhlbF9mb3JtYXQgY2hlY2sgdG8gaW50ZWxfYXRvbWljX3BsYW5lX2NoZWNrIChNYXR0 KQo+ID4+Pgo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBTb25pa2EgSmluZGFsIDxzb25pa2EuamluZGFs QGludGVsLmNvbT4KPiA+Pj4gUmV2aWV3ZWQtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3Bl ckBpbnRlbC5jb20+Cj4gPj4KPiA+PiBQYXRjaGVzIGFyZSBtaXNzaW5nIHRoZSBUZXN0Y2FzZTog dGFnLCBwbGVhc2UgYWRkIHRoYXQuIEFsc28sIGFyZSBhbGwgdGhlCj4gPj4gaWd0IGNvbW1pdHRl ZCBvciBub3QgeWV0PyBQdWxsZWQgdGhlc2UgdHdvIGluIG1lYW53aGlsZS4KPiA+Cj4gPiBUaGlu Z3MgYXJlIGdvaW5nIHNvbWV3aGF0IGJyb2tlbiBiZWNhdXNlIHlvdSBkaWRuJ3QgYXBwbHkgbXkg cGxhbmUKPiA+IHN0YXRlIHN0dWZmLiBIbW0uIEFjdHVhbGx5IGl0IHNvcnQgb2YgbG9va3MgdGhh dCBpdCBtaWdodCB3b3JrIGJ5IGx1Y2sKPiA+IGFzIGxvbmcgYXMgdGhlIHByaW1hcnkgcGxhbmUg ZG9lc24ndCBnZXQgY2xpcHBlZCBzaW5jZSB0aGlzIGlzIGJhc2hpbmcKPiA+IHRoZSB1c2VyIHN0 YXRlIGRpcmVjdGx5IGludG8gdGhlIGhhcmR3YXJlIHJlZ2lzdGVycyBhbmQgbm90IHRoZSBkZXJp dmVkCj4gPiBzdGF0ZSAoaWUuIGNsaXBwZWQgY29vcmRpbmF0ZXMpLgo+ID4KPiBJIHdhcyBob3Bp bmcgeW91ciBjaGFuZ2VzIGdldCBtZXJnZWQsIGJ1dCBub3Qgc3VyZSB3aHkgdGhleSBhcmUgaGVs ZCB1cC4KPiAKPiA+IEFsc28gSSBzZWUgbXkgcmV2aWV3IGNvbW1lbnQgYWJvdXQgdGhlIDkwIHZz LiAyNzAgcm90YXRpb24gbWl4dXAgd2FzCj4gPiBpZ25vcmVkIGF0IGxlYXN0Lgo+ID4KPiBJIG5l dmVyIHJlYWxseSBnb3QgdGhlIHRvIHVuZGVyc3RhbmQgdGhlIG5lZWQgb2YgcmV2ZXJzaW5nIDkw IGFuZCAyNzAgOikgCj4gVGhlIGxhc3QgZGlzY3Vzc2lvbiB3YXMgbm90IGNvbmNsdWRlZCwgQUZB SVIuCj4gVGhpbmdzIGxvb2sgY29ycmVjdCB0byBtZSBhbmQgd29yayBmaW5lIHdpdGggdGhlIHRl c3RjYXNlIGFsc28uCj4gSXMgdGhlcmUgc29tZXRoaW5nIGNvbXBsZXRlbHkgZGlmZmVyZW50IHdo aWNoIEkgYW0gdW5hYmxlIHRvIGdldD8KCkJTcGVjIGdpdmVzIG1lIHRoZSBpbXByZXNzaW9uIHRo ZSBodyByb3RhdGlvbiBpcyBjdywgd2hlcmVhcyB0aGUgZHJtIG9uZQppcyBjY3cuCgo+IAo+IC1T b25pa2EKPiAKPiA+PiAtRGFuaWVsCj4gPj4KPiA+Pj4gLS0tCj4gPj4+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgICAgfCAgICAyICsKPiA+Pj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYyB8ICAgMjQgKysrKysrKysKPiA+Pj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICB8ICAgODggKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0KPiA+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICAgICAgICB8ICAgIDYgKysKPiA+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYyAgICAgICB8ICAgNTIgKysrKysrKysrKysrLS0tLS0KPiA+Pj4gICA1IGZpbGVz IGNoYW5nZWQsIDEzMSBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKPiA+Pj4KPiA+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPj4+IGluZGV4IGI1MjJlYjYuLjU2NGJiZDUgMTAwNjQ0 Cj4gPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4+PiBAQCAtNDg1NCw3ICs0ODU0LDkg QEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gPj4+ICAgI2RlZmluZSAgIFBMQU5FX0NU TF9BTFBIQV9IV19QUkVNVUxUSVBMWQkoICAzIDw8IDQpCj4gPj4+ICAgI2RlZmluZSAgIFBMQU5F X0NUTF9ST1RBVEVfTUFTSwkJCTB4Mwo+ID4+PiAgICNkZWZpbmUgICBQTEFORV9DVExfUk9UQVRF XzAJCQkweDAKPiA+Pj4gKyNkZWZpbmUgICBQTEFORV9DVExfUk9UQVRFXzkwCQkJMHgxCj4gPj4+ ICAgI2RlZmluZSAgIFBMQU5FX0NUTF9ST1RBVEVfMTgwCQkJMHgyCj4gPj4+ICsjZGVmaW5lICAg UExBTkVfQ1RMX1JPVEFURV8yNzAJCQkweDMKPiA+Pj4gICAjZGVmaW5lIF9QTEFORV9TVFJJREVf MV9BCQkJMHg3MDE4OAo+ID4+PiAgICNkZWZpbmUgX1BMQU5FX1NUUklERV8yX0EJCQkweDcwMjg4 Cj4gPj4+ICAgI2RlZmluZSBfUExBTkVfU1RSSURFXzNfQQkJCTB4NzAzODgKPiA+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiA+Pj4gaW5kZXggOTc2Yjg5MS4u YTI3ZWU4YyAxMDA2NDQKPiA+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRv bWljX3BsYW5lLmMKPiA+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWlj X3BsYW5lLmMKPiA+Pj4gQEAgLTE2Miw2ICsxNjIsMzAgQEAgc3RhdGljIGludCBpbnRlbF9wbGFu ZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPj4+ICAgCQkJKDEgPDwg ZHJtX3BsYW5lX2luZGV4KHBsYW5lKSk7Cj4gPj4+ICAgCX0KPiA+Pj4KPiA+Pj4gKwlpZiAoc3Rh dGUtPmZiICYmIGludGVsX3JvdGF0aW9uXzkwX29yXzI3MChzdGF0ZS0+cm90YXRpb24pKSB7Cj4g Pj4+ICsJCWlmICghKHN0YXRlLT5mYi0+bW9kaWZpZXJbMF0gPT0gSTkxNV9GT1JNQVRfTU9EX1lf VElMRUQgfHwKPiA+Pj4gKwkJCXN0YXRlLT5mYi0+bW9kaWZpZXJbMF0gPT0gSTkxNV9GT1JNQVRf TU9EX1lmX1RJTEVEKSkgewo+ID4+PiArCQkJRFJNX0RFQlVHX0tNUygiWS9ZZiB0aWxpbmcgcmVx dWlyZWQgZm9yIDkwLzI3MCFcbiIpOwo+ID4+PiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPj4+ICsJ CX0KPiA+Pj4gKwo+ID4+PiArCQkvKgo+ID4+PiArCQkgKiA5MC8yNzAgaXMgbm90IGFsbG93ZWQg d2l0aCBSR0I2NCAxNjoxNjoxNjoxNiwKPiA+Pj4gKwkJICogUkdCIDE2LWJpdCA1OjY6NSwgYW5k IEluZGV4ZWQgOC1iaXQuCj4gPj4+ICsJCSAqIFRCRDogQWRkIFJHQjY0IGNhc2Ugb25jZSBpdHMg YWRkZWQgaW4gc3VwcG9ydGVkIGZvcm1hdCBsaXN0Lgo+ID4+PiArCQkgKi8KPiA+Pj4gKwkJc3dp dGNoIChzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCkgewo+ID4+PiArCQljYXNlIERSTV9GT1JNQVRf Qzg6Cj4gPj4+ICsJCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6Cj4gPj4+ICsJCQlEUk1fREVCVUdf S01TKCJVbnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQgJXMgZm9yIDkwLzI3MCFcbiIsCj4gPj4+ICsJ CQkJCWRybV9nZXRfZm9ybWF0X25hbWUoc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpKTsKPiA+Pj4g KwkJCXJldHVybiAtRUlOVkFMOwo+ID4+PiArCj4gPj4+ICsJCWRlZmF1bHQ6Cj4gPj4+ICsJCQli cmVhazsKPiA+Pj4gKwkJfQo+ID4+PiArCX0KPiA+Pj4gKwo+ID4+PiAgIAlyZXR1cm4gaW50ZWxf cGxhbmUtPmNoZWNrX3BsYW5lKHBsYW5lLCBpbnRlbF9zdGF0ZSk7Cj4gPj4+ICAgfQo+ID4+Pgo+ ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPj4+IGluZGV4IGYwYmJjMjIu LjRkZTU0NGMgMTAwNjQ0Cj4gPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ID4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiA+Pj4gQEAgLTIzMTEsMTMgKzIzMTEsNiBAQCBpbnRlbF9maWxsX2ZiX2dndHRfdmlldyhzdHJ1 Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcsIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4+ PiAgIAlpbmZvLT5waXRjaCA9IGZiLT5waXRjaGVzWzBdOwo+ID4+PiAgIAlpbmZvLT5mYl9tb2Rp ZmllciA9IGZiLT5tb2RpZmllclswXTsKPiA+Pj4KPiA+Pj4gLQlpZiAoIShpbmZvLT5mYl9tb2Rp ZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB8fAo+ID4+PiAtCSAgICAgIGluZm8tPmZi X21vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkpIHsKPiA+Pj4gLQkJRFJNX0RF QlVHX0tNUygKPiA+Pj4gLQkJCSAgICAgICJZIG9yIFlmIHRpbGluZyBpcyBuZWVkZWQgZm9yIDkw LzI3MCByb3RhdGlvbiFcbiIpOwo+ID4+PiAtCQlyZXR1cm4gLUVJTlZBTDsKPiA+Pj4gLQl9Cj4g Pj4+IC0KPiA+Pj4gICAJcmV0dXJuIDA7Cj4gPj4+ICAgfQo+ID4+Pgo+ID4+PiBAQCAtMjkxOSw4 ICsyOTEyLDEyIEBAIHN0YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAo+ID4+PiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gPj4+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmo7Cj4gPj4+ICAgCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiA+Pj4gLQl1 MzIgcGxhbmVfY3RsLCBzdHJpZGVfZGl2Owo+ID4+PiArCXUzMiBwbGFuZV9jdGwsIHN0cmlkZV9k aXYsIHN0cmlkZTsKPiA+Pj4gKwl1MzIgdGlsZV9oZWlnaHQsIHBsYW5lX29mZnNldCwgcGxhbmVf c2l6ZTsKPiA+Pj4gKwl1bnNpZ25lZCBpbnQgcm90YXRpb247Cj4gPj4+ICsJaW50IHhfb2Zmc2V0 LCB5X29mZnNldDsKPiA+Pj4gICAJdW5zaWduZWQgbG9uZyBzdXJmX2FkZHI7Cj4gPj4+ICsJc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gPj4+Cj4gPj4+ICAgCWlmICghaW50ZWxfY3J0Yy0+cHJp bWFyeV9lbmFibGVkKSB7Cj4gPj4+ICAgCQlJOTE1X1dSSVRFKFBMQU5FX0NUTChwaXBlLCAwKSwg MCk7Cj4gPj4+IEBAIC0yOTgxLDIxICsyOTc4LDUxIEBAIHN0YXRpYyB2b2lkIHNreWxha2VfdXBk YXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4+PiAgIAl9Cj4gPj4+ Cj4gPj4+ICAgCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUExBTkVfR0FNTUFfRElTQUJMRTsKPiA+ Pj4gLQlpZiAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRF XzE4MCkpCj4gPj4+ICsKPiA+Pj4gKwlwbGFuZSA9IGNydGMtPnByaW1hcnk7Cj4gPj4+ICsJcm90 YXRpb24gPSBwbGFuZS0+c3RhdGUtPnJvdGF0aW9uOwo+ID4+PiArCXN3aXRjaCAocm90YXRpb24p IHsKPiA+Pj4gKwljYXNlIEJJVChEUk1fUk9UQVRFXzkwKToKPiA+Pj4gKwkJcGxhbmVfY3RsIHw9 IFBMQU5FX0NUTF9ST1RBVEVfOTA7Cj4gPj4+ICsJCWJyZWFrOwo+ID4+PiArCj4gPj4+ICsJY2Fz ZSBCSVQoRFJNX1JPVEFURV8xODApOgo+ID4+PiAgIAkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9S T1RBVEVfMTgwOwo+ID4+PiArCQlicmVhazsKPiA+Pj4gKwo+ID4+PiArCWNhc2UgQklUKERSTV9S T1RBVEVfMjcwKToKPiA+Pj4gKwkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9ST1RBVEVfMjcwOwo+ ID4+PiArCQlicmVhazsKPiA+Pj4gKwl9Cj4gPj4+Cj4gPj4+ICAgCW9iaiA9IGludGVsX2ZiX29i aihmYik7Cj4gPj4+ICAgCXN0cmlkZV9kaXYgPSBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50KGRl diwgZmItPm1vZGlmaWVyWzBdLAo+ID4+PiAgIAkJCQkJICAgICAgIGZiLT5waXhlbF9mb3JtYXQp Owo+ID4+PiAtCXN1cmZfYWRkciA9IGludGVsX3BsYW5lX29ial9vZmZzZXQodG9faW50ZWxfcGxh bmUoY3J0Yy0+cHJpbWFyeSksIG9iaik7Cj4gPj4+ICsJc3VyZl9hZGRyID0gaW50ZWxfcGxhbmVf b2JqX29mZnNldCh0b19pbnRlbF9wbGFuZShwbGFuZSksIG9iaik7Cj4gPj4+ICsKPiA+Pj4gKwlp ZiAoaW50ZWxfcm90YXRpb25fOTBfb3JfMjcwKHJvdGF0aW9uKSkgewo+ID4+PiArCQkvKiBzdHJp ZGUgPSBTdXJmYWNlIGhlaWdodCBpbiB0aWxlcyAqLwo+ID4+PiArCQl0aWxlX2hlaWdodCA9IGlu dGVsX3RpbGVfaGVpZ2h0KGRldiwgZmItPmJpdHNfcGVyX3BpeGVsLAo+ID4+PiArCQkJCQkJZmIt Pm1vZGlmaWVyWzBdKTsKPiA+Pj4gKwkJc3RyaWRlID0gRElWX1JPVU5EX1VQKGZiLT5oZWlnaHQs IHRpbGVfaGVpZ2h0KTsKPiA+Pj4gKwkJeF9vZmZzZXQgPSBzdHJpZGUgKiB0aWxlX2hlaWdodCAt IHkgLSAocGxhbmUtPnN0YXRlLT5zcmNfaCA+PiAxNik7Cj4gPj4+ICsJCXlfb2Zmc2V0ID0geDsK PiA+Pj4gKwkJcGxhbmVfc2l6ZSA9ICgocGxhbmUtPnN0YXRlLT5zcmNfdyA+PiAxNikgLSAxKSA8 PCAxNiB8Cj4gPj4+ICsJCQkJCSgocGxhbmUtPnN0YXRlLT5zcmNfaCA+PiAxNikgLSAxKTsKPiA+ Pj4gKwl9IGVsc2Ugewo+ID4+PiArCQlzdHJpZGUgPSBmYi0+cGl0Y2hlc1swXSAvIHN0cmlkZV9k aXY7Cj4gPj4+ICsJCXhfb2Zmc2V0ID0geDsKPiA+Pj4gKwkJeV9vZmZzZXQgPSB5Owo+ID4+PiAr CQlwbGFuZV9zaXplID0gKChwbGFuZS0+c3RhdGUtPnNyY19oID4+IDE2KSAtIDEpIDw8IDE2IHwK PiA+Pj4gKwkJCSgocGxhbmUtPnN0YXRlLT5zcmNfdyA+PiAxNikgLSAxKTsKPiA+Pj4gKwl9Cj4g Pj4+ICsJcGxhbmVfb2Zmc2V0ID0geV9vZmZzZXQgPDwgMTYgfCB4X29mZnNldDsKPiA+Pj4KPiA+ Pj4gICAJSTkxNV9XUklURShQTEFORV9DVEwocGlwZSwgMCksIHBsYW5lX2N0bCk7Cj4gPj4+ICAg CUk5MTVfV1JJVEUoUExBTkVfUE9TKHBpcGUsIDApLCAwKTsKPiA+Pj4gLQlJOTE1X1dSSVRFKFBM QU5FX09GRlNFVChwaXBlLCAwKSwgKHkgPDwgMTYpIHwgeCk7Cj4gPj4+IC0JSTkxNV9XUklURShQ TEFORV9TSVpFKHBpcGUsIDApLAo+ID4+PiAtCQkgICAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBl X3NyY19oIC0gMSkgPDwgMTYgfAo+ID4+PiAtCQkgICAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBl X3NyY193IC0gMSkpOwo+ID4+PiAtCUk5MTVfV1JJVEUoUExBTkVfU1RSSURFKHBpcGUsIDApLCBm Yi0+cGl0Y2hlc1swXSAvIHN0cmlkZV9kaXYpOwo+ID4+PiArCUk5MTVfV1JJVEUoUExBTkVfT0ZG U0VUKHBpcGUsIDApLCBwbGFuZV9vZmZzZXQpOwo+ID4+PiArCUk5MTVfV1JJVEUoUExBTkVfU0la RShwaXBlLCAwKSwgcGxhbmVfc2l6ZSk7Cj4gPj4+ICsJSTkxNV9XUklURShQTEFORV9TVFJJREUo cGlwZSwgMCksIHN0cmlkZSk7Cj4gPj4+ICAgCUk5MTVfV1JJVEUoUExBTkVfU1VSRihwaXBlLCAw KSwgc3VyZl9hZGRyKTsKPiA+Pj4KPiA+Pj4gICAJUE9TVElOR19SRUFEKFBMQU5FX1NVUkYocGlw ZSwgMCkpOwo+ID4+PiBAQCAtMTI0MDYsMjMgKzEyNDMzLDMyIEBAIHN0YXRpYyBzdHJ1Y3QgZHJt X3BsYW5lICppbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ID4+PiAgIAkJCQkgaW50ZWxfcHJpbWFyeV9mb3JtYXRzLCBudW1fZm9ybWF0cywKPiA+Pj4g ICAJCQkJIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ID4+Pgo+ID4+PiAtCWlmIChJTlRFTF9J TkZPKGRldiktPmdlbiA+PSA0KSB7Cj4gPj4+IC0JCWlmICghZGV2LT5tb2RlX2NvbmZpZy5yb3Rh dGlvbl9wcm9wZXJ0eSkKPiA+Pj4gLQkJCWRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVy dHkgPQo+ID4+PiAtCQkJCWRybV9tb2RlX2NyZWF0ZV9yb3RhdGlvbl9wcm9wZXJ0eShkZXYsCj4g Pj4+IC0JCQkJCQkJQklUKERSTV9ST1RBVEVfMCkgfAo+ID4+PiAtCQkJCQkJCUJJVChEUk1fUk9U QVRFXzE4MCkpOwo+ID4+PiAtCQlpZiAoZGV2LT5tb2RlX2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0 eSkKPiA+Pj4gLQkJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwcmltYXJ5LT5iYXNlLmJh c2UsCj4gPj4+IC0JCQkJZGV2LT5tb2RlX2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0eSwKPiA+Pj4g LQkJCQlzdGF0ZS0+YmFzZS5yb3RhdGlvbik7Cj4gPj4+IC0JfQo+ID4+PiArCWlmIChJTlRFTF9J TkZPKGRldiktPmdlbiA+PSA0KQo+ID4+PiArCQlpbnRlbF9jcmVhdGVfcm90YXRpb25fcHJvcGVy dHkoZGV2LCBwcmltYXJ5KTsKPiA+Pj4KPiA+Pj4gICAJZHJtX3BsYW5lX2hlbHBlcl9hZGQoJnBy aW1hcnktPmJhc2UsICZpbnRlbF9wbGFuZV9oZWxwZXJfZnVuY3MpOwo+ID4+Pgo+ID4+PiAgIAly ZXR1cm4gJnByaW1hcnktPmJhc2U7Cj4gPj4+ICAgfQo+ID4+Pgo+ID4+PiArdm9pZCBpbnRlbF9j cmVhdGVfcm90YXRpb25fcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGlu dGVsX3BsYW5lICpwbGFuZSkKPiA+Pj4gK3sKPiA+Pj4gKwlpZiAoIWRldi0+bW9kZV9jb25maWcu cm90YXRpb25fcHJvcGVydHkpIHsKPiA+Pj4gKwkJdW5zaWduZWQgbG9uZyBmbGFncyA9IEJJVChE Uk1fUk9UQVRFXzApIHwKPiA+Pj4gKwkJCUJJVChEUk1fUk9UQVRFXzE4MCk7Cj4gPj4+ICsKPiA+ Pj4gKwkJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCj4gPj4+ICsJCQlmbGFncyB8PSBC SVQoRFJNX1JPVEFURV85MCkgfCBCSVQoRFJNX1JPVEFURV8yNzApOwo+ID4+PiArCj4gPj4+ICsJ CWRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHkgPQo+ID4+PiArCQkJZHJtX21vZGVf Y3JlYXRlX3JvdGF0aW9uX3Byb3BlcnR5KGRldiwgZmxhZ3MpOwo+ID4+PiArCX0KPiA+Pj4gKwlp ZiAoZGV2LT5tb2RlX2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0eSkKPiA+Pj4gKwkJZHJtX29iamVj dF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLmJhc2UsCj4gPj4+ICsJCQkJZGV2LT5tb2Rl X2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0eSwKPiA+Pj4gKwkJCQlwbGFuZS0+YmFzZS5zdGF0ZS0+ cm90YXRpb24pOwo+ID4+PiArfQo+ID4+PiArCj4gPj4+ICAgc3RhdGljIGludAo+ID4+PiAgIGlu dGVsX2NoZWNrX2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+Pj4gICAJ CQkgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKPiA+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiA+Pj4gaW5kZXggODExYTFkYi4uZDMyMDI1YSAxMDA2NDQKPiA+Pj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+Pj4gQEAgLTk5NSw2ICs5OTUsMTIgQEAgaW50ZWxfcm90 YXRpb25fOTBfb3JfMjcwKHVuc2lnbmVkIGludCByb3RhdGlvbikKPiA+Pj4gICAJcmV0dXJuIHJv dGF0aW9uICYgKEJJVChEUk1fUk9UQVRFXzkwKSB8IEJJVChEUk1fUk9UQVRFXzI3MCkpOwo+ID4+ PiAgIH0KPiA+Pj4KPiA+Pj4gK3Vuc2lnbmVkIGludAo+ID4+PiAraW50ZWxfdGlsZV9oZWlnaHQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDMyX3QgYml0c19wZXJfcGl4ZWwsCj4gPj4+ICsJ CSAgdWludDY0X3QgZmJfbW9kaWZpZXIpOwo+ID4+PiArdm9pZCBpbnRlbF9jcmVhdGVfcm90YXRp b25fcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+Pj4gKwkJCQkJc3RydWN0IGlu dGVsX3BsYW5lICpwbGFuZSk7Cj4gPj4+ICsKPiA+Pj4gICBib29sIGludGVsX3dtX25lZWRfdXBk YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4+PiAgIAkJCSAgc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqc3RhdGUpOwo+ID4+Pgo+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUu Ywo+ID4+PiBpbmRleCBmNDFlODcyLi44M2FkYzliIDEwMDY0NAo+ID4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4+PiBAQCAtMTkwLDEwICsxOTAsMTMgQEAgc2tsX3VwZGF0 ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKPiA+Pj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29i aihmYik7Cj4gPj4+ICAgCWNvbnN0IGludCBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7Cj4gPj4+ ICAgCWNvbnN0IGludCBwbGFuZSA9IGludGVsX3BsYW5lLT5wbGFuZSArIDE7Cj4gPj4+IC0JdTMy IHBsYW5lX2N0bCwgc3RyaWRlX2RpdjsKPiA+Pj4gKwl1MzIgcGxhbmVfY3RsLCBzdHJpZGVfZGl2 LCBzdHJpZGU7Cj4gPj4+ICAgCWludCBwaXhlbF9zaXplID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAo ZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gPj4+ICAgCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3By aXRlX2NvbG9ya2V5ICprZXkgPSAmaW50ZWxfcGxhbmUtPmNrZXk7Cj4gPj4+ICAgCXVuc2lnbmVk IGxvbmcgc3VyZl9hZGRyOwo+ID4+PiArCXUzMiB0aWxlX2hlaWdodCwgcGxhbmVfb2Zmc2V0LCBw bGFuZV9zaXplOwo+ID4+PiArCXVuc2lnbmVkIGludCByb3RhdGlvbjsKPiA+Pj4gKwlpbnQgeF9v ZmZzZXQsIHlfb2Zmc2V0Owo+ID4+Pgo+ID4+PiAgIAlwbGFuZV9jdGwgPSBQTEFORV9DVExfRU5B QkxFIHwKPiA+Pj4gICAJCVBMQU5FX0NUTF9QSVBFX0NTQ19FTkFCTEU7Cj4gPj4+IEBAIC0yNTQs OCArMjU3LDIwIEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5l LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPj4+ICAgCQlNSVNTSU5HX0NBU0UoZmItPm1vZGlm aWVyWzBdKTsKPiA+Pj4gICAJfQo+ID4+Pgo+ID4+PiAtCWlmIChkcm1fcGxhbmUtPnN0YXRlLT5y b3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKQo+ID4+PiArCXJvdGF0aW9uID0gZHJtX3Bs YW5lLT5zdGF0ZS0+cm90YXRpb247Cj4gPj4+ICsJc3dpdGNoIChyb3RhdGlvbikgewo+ID4+PiAr CWNhc2UgQklUKERSTV9ST1RBVEVfOTApOgo+ID4+PiArCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RM X1JPVEFURV85MDsKPiA+Pj4gKwkJYnJlYWs7Cj4gPj4+ICsKPiA+Pj4gKwljYXNlIEJJVChEUk1f Uk9UQVRFXzE4MCk6Cj4gPj4+ICAgCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1JPVEFURV8xODA7 Cj4gPj4+ICsJCWJyZWFrOwo+ID4+PiArCj4gPj4+ICsJY2FzZSBCSVQoRFJNX1JPVEFURV8yNzAp Ogo+ID4+PiArCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1JPVEFURV8yNzA7Cj4gPj4+ICsJCWJy ZWFrOwo+ID4+PiArCX0KPiA+Pj4KPiA+Pj4gICAJaW50ZWxfdXBkYXRlX3Nwcml0ZV93YXRlcm1h cmtzKGRybV9wbGFuZSwgY3J0Yywgc3JjX3csIHNyY19oLAo+ID4+PiAgIAkJCQkgICAgICAgcGl4 ZWxfc2l6ZSwgdHJ1ZSwKPiA+Pj4gQEAgLTI4MywxMCArMjk4LDI2IEBAIHNrbF91cGRhdGVfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4g Pj4+Cj4gPj4+ICAgCXN1cmZfYWRkciA9IGludGVsX3BsYW5lX29ial9vZmZzZXQoaW50ZWxfcGxh bmUsIG9iaik7Cj4gPj4+Cj4gPj4+IC0JSTkxNV9XUklURShQTEFORV9PRkZTRVQocGlwZSwgcGxh bmUpLCAoeSA8PCAxNikgfCB4KTsKPiA+Pj4gLQlJOTE1X1dSSVRFKFBMQU5FX1NUUklERShwaXBl LCBwbGFuZSksIGZiLT5waXRjaGVzWzBdIC8gc3RyaWRlX2Rpdik7Cj4gPj4+ICsJaWYgKGludGVs X3JvdGF0aW9uXzkwX29yXzI3MChyb3RhdGlvbikpIHsKPiA+Pj4gKwkJLyogc3RyaWRlOiBTdXJm YWNlIGhlaWdodCBpbiB0aWxlcyAqLwo+ID4+PiArCQl0aWxlX2hlaWdodCA9IGludGVsX3RpbGVf aGVpZ2h0KGRldiwgZmItPmJpdHNfcGVyX3BpeGVsLAo+ID4+PiArCQkJCQkJCWZiLT5tb2RpZmll clswXSk7Cj4gPj4+ICsJCXN0cmlkZSA9IERJVl9ST1VORF9VUChmYi0+aGVpZ2h0LCB0aWxlX2hl aWdodCk7Cj4gPj4+ICsJCXBsYW5lX3NpemUgPSAoc3JjX3cgPDwgMTYpIHwgc3JjX2g7Cj4gPj4+ ICsJCXhfb2Zmc2V0ID0gc3RyaWRlICogdGlsZV9oZWlnaHQgLSB5IC0gKHNyY19oICsgMSk7Cj4g Pj4+ICsJCXlfb2Zmc2V0ID0geDsKPiA+Pj4gKwl9IGVsc2Ugewo+ID4+PiArCQlzdHJpZGUgPSBm Yi0+cGl0Y2hlc1swXSAvIHN0cmlkZV9kaXY7Cj4gPj4+ICsJCXBsYW5lX3NpemUgPSAoc3JjX2gg PDwgMTYpIHwgc3JjX3c7Cj4gPj4+ICsJCXhfb2Zmc2V0ID0geDsKPiA+Pj4gKwkJeV9vZmZzZXQg PSB5Owo+ID4+PiArCX0KPiA+Pj4gKwlwbGFuZV9vZmZzZXQgPSB5X29mZnNldCA8PCAxNiB8IHhf b2Zmc2V0Owo+ID4+PiArCj4gPj4+ICsJSTkxNV9XUklURShQTEFORV9PRkZTRVQocGlwZSwgcGxh bmUpLCBwbGFuZV9vZmZzZXQpOwo+ID4+PiArCUk5MTVfV1JJVEUoUExBTkVfU1RSSURFKHBpcGUs IHBsYW5lKSwgc3RyaWRlKTsKPiA+Pj4gICAJSTkxNV9XUklURShQTEFORV9QT1MocGlwZSwgcGxh bmUpLCAoY3J0Y195IDw8IDE2KSB8IGNydGNfeCk7Cj4gPj4+IC0JSTkxNV9XUklURShQTEFORV9T SVpFKHBpcGUsIHBsYW5lKSwgKGNydGNfaCA8PCAxNikgfCBjcnRjX3cpOwo+ID4+PiArCUk5MTVf V1JJVEUoUExBTkVfU0laRShwaXBlLCBwbGFuZSksIHBsYW5lX3NpemUpOwo+ID4+PiAgIAlJOTE1 X1dSSVRFKFBMQU5FX0NUTChwaXBlLCBwbGFuZSksIHBsYW5lX2N0bCk7Cj4gPj4+ICAgCUk5MTVf V1JJVEUoUExBTkVfU1VSRihwaXBlLCBwbGFuZSksIHN1cmZfYWRkcik7Cj4gPj4+ICAgCVBPU1RJ TkdfUkVBRChQTEFORV9TVVJGKHBpcGUsIHBsYW5lKSk7Cj4gPj4+IEBAIC0xMzEwLDE2ICsxMzQx LDcgQEAgaW50ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUg cGlwZSwgaW50IHBsYW5lKQo+ID4+PiAgIAkJZ290byBvdXQ7Cj4gPj4+ICAgCX0KPiA+Pj4KPiA+ Pj4gLQlpZiAoIWRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHkpCj4gPj4+IC0JCWRl di0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHkgPQo+ID4+PiAtCQkJZHJtX21vZGVfY3Jl YXRlX3JvdGF0aW9uX3Byb3BlcnR5KGRldiwKPiA+Pj4gLQkJCQkJCQkgIEJJVChEUk1fUk9UQVRF XzApIHwKPiA+Pj4gLQkJCQkJCQkgIEJJVChEUk1fUk9UQVRFXzE4MCkpOwo+ID4+PiAtCj4gPj4+ IC0JaWYgKGRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHkpCj4gPj4+IC0JCWRybV9v YmplY3RfYXR0YWNoX3Byb3BlcnR5KCZpbnRlbF9wbGFuZS0+YmFzZS5iYXNlLAo+ID4+PiAtCQkJ CQkgICBkZXYtPm1vZGVfY29uZmlnLnJvdGF0aW9uX3Byb3BlcnR5LAo+ID4+PiAtCQkJCQkgICBz dGF0ZS0+YmFzZS5yb3RhdGlvbik7Cj4gPj4+ICsJaW50ZWxfY3JlYXRlX3JvdGF0aW9uX3Byb3Bl cnR5KGRldiwgaW50ZWxfcGxhbmUpOwo+ID4+Pgo+ID4+PiAgIAlkcm1fcGxhbmVfaGVscGVyX2Fk ZCgmaW50ZWxfcGxhbmUtPmJhc2UsICZpbnRlbF9wbGFuZV9oZWxwZXJfZnVuY3MpOwo+ID4+Pgo+ ID4+PiAtLQo+ID4+PiAxLjcuMTAuNAo+ID4+Pgo+ID4+PiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4g Pj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+Pj4gaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ID4+Cj4gPj4gLS0KPiA+ PiBEYW5pZWwgVmV0dGVyCj4gPj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9u Cj4gPj4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKPiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+ID4+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+PiBJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPj4gaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ID4KCi0tIApWaWxsZSBTeXJqw6Rs w6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==