From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v3 08/18] drm/i915: Pass 90/270 vs. 0/180 rotation info for intel_gen4_compute_page_offset() Date: Mon, 25 Jan 2016 18:30:17 +0100 Message-ID: <20160125173017.GF11240@phenom.ffwll.local> References: <1453316739-13296-1-git-send-email-ville.syrjala@linux.intel.com> <1453316739-13296-9-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f50.google.com (mail-wm0-f50.google.com [74.125.82.50]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5471A6E4DA for ; Mon, 25 Jan 2016 09:30:10 -0800 (PST) Received: by mail-wm0-f50.google.com with SMTP id u188so75255930wmu.1 for ; Mon, 25 Jan 2016 09:30:10 -0800 (PST) Content-Disposition: inline In-Reply-To: <1453316739-13296-9-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKYW4gMjAsIDIwMTYgYXQgMDk6MDU6MjlQTSArMDIwMCwgdmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiAKPiBUaGUgcGFnZSBhbGlnbmVkIHN1cmZhY2UgYWRkcmVz cyBjYWxjdWxhdGlvbiBuZWVkcyB0byBrbm93IHdoaWNoIHdheQo+IHRoaW5ncyBhcmUgcm90YXRl ZC4gVGhlIGNvbnRyYWN0IG5vdyBzYXlzIHRoYXQgdGhlIGNhbGxlciBtdXN0IHBhc3MgdGhlCj4g cm90YXRlIHgveSBjb29yZGluYXRlcywgYXMgd2VsbCBhcyB0aGUgdGlsZV9oZWlnaHQgYWxpZ25l ZCBzdHJpZGUgaW4KPiB0aGUgdGlsZV9oZWlnaHQgZGlyZWN0aW9uLiBUaGlzIHdpbGwgbWFrZSBp dCBmYWlybHkgc2ltcGxlIHRvIGRlYWwgd2l0aAo+IDkwLzI3MCBkZWdyZWUgcm90YXRpb24gb24g U0tMKyB3aGVyZSB3ZSBoYXZlIHRvIGRlYWwgd2l0aCB0aGUgcm90YXRlZAo+IHZpZXcgaW50byB0 aGUgR1RULgo+IAo+IHYyOiBQYXNzIHJvdGF0aW9uIGluc3RlYWQgb2YgYm9vbCBldmVuIHRob3Vn aHdlIG9ubHkgY2FyZSBhYm91dCAwLzE4MCB2cy4gOTAvMjcwCj4gdjM6IEludHJvZHVjZSBpbnRl bF90aWxlX2RpbXMoKSwgYW5kIGRvbid0IG1peCB1cCBkaWZmZXJlbnQgdW5pdHMgc28gbXVjaAo+ IAo+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+Cj4gUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3 bGwuY2g+ICh2MikKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j IHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jICB8IDE4ICsrKysrLS0tLS0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA1OSBp bnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gaW5kZXggY2ZkNTJlYTY4ZTM0Li5iZGEzMjI0MDIxYjIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTIyNjksNiArMjI2OSwxOCBAQCB1bnNp Z25lZCBpbnQgaW50ZWxfdGlsZV9oZWlnaHQoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ICAJCQlpbnRlbF90aWxlX3dpZHRoKGRldl9wcml2LCBmYl9tb2RpZmllciwg Y3BwKTsKPiAgfQo+ICAKPiArLyogUmV0dXJuIHRoZSB0aWxlIGRpbWVuc2lvbnMgaW4gcGl4ZWwg dW5pdHMgKi8KPiArc3RhdGljIHZvaWQgaW50ZWxfdGlsZV9kaW1zKGNvbnN0IHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJICAgIHVuc2lnbmVkIGludCAqdGlsZV93aWR0 aCwKPiArCQkJICAgIHVuc2lnbmVkIGludCAqdGlsZV9oZWlnaHQsCj4gKwkJCSAgICB1aW50NjRf dCBmYl9tb2RpZmllciwKPiArCQkJICAgIHVuc2lnbmVkIGludCBjcHApCj4gK3sKPiArCSp0aWxl X3dpZHRoID0gaW50ZWxfdGlsZV93aWR0aChkZXZfcHJpdiwgZmJfbW9kaWZpZXIsIGNwcCk7Cj4g KwkqdGlsZV9oZWlnaHQgPSBpbnRlbF90aWxlX3NpemUoZGV2X3ByaXYpIC8gKnRpbGVfd2lkdGg7 Cj4gKwkqdGlsZV93aWR0aCAvPSBjcHA7CgpTZWVtcyBsaWtlIG15IHN1Z2dlc3Rpb24gdG8gdXNl IHRpbGVfd2lkdGggaW4gY3BwIHdhc24ndCB0aGF0IGF3ZXNvbWUsIGF0CmxlYXN0IHdlIHN0aWxs IGhhdmUgYSBiaWcgY29uZnVzaW9uIHJpZ2h0IGhlcmUuIE5vdCBzdXJlIHdoYXQgdG8gZG8sCmVz cGVjaWFsbHkgc2luY2UgdGhlc2Uga2luZCBvZiBjaGFuZ2VzIGFyZSBzdXBlci1wYWluZnVsIHRv IHJldmlldy4gQ291bGQKd2UgcGVyaGFwcyBnbyBiYWNrIHRvIHRoZSBvbGQgdmVyc2lvbnMgYW5k IHVudGFuZ2xlIHRoaXMgbWVzcyBhZnRlcndhcmRzPwpJaXJjIEkndmUgZm9sbG93LXVwIHdpdGgg ci1iIHRhZ3MgdG8gYWxsIHBhdGNoZXMgaW4gdGhlIG9sZCBzZXJpZXMgZm9yCnRoYXQgYXBwcm9h Y2guCgpObyBpZGVhIHJlYWxseSB3aGF0IHdvdWxkIGJlIGJlc3QgaGVyZSAuLi4KLURhbmllbAoK PiArfQo+ICsKPiAgdW5zaWduZWQgaW50Cj4gIGludGVsX2ZiX2FsaWduX2hlaWdodChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgaGVpZ2h0LAo+ICAJCSAgICAgIHVpbnQzMl90 IHBpeGVsX2Zvcm1hdCwgdWludDY0X3QgZmJfbW9kaWZpZXIpCj4gQEAgLTIzMDYsMTkgKzIzMTgs MTkgQEAgaW50ZWxfZmlsbF9mYl9nZ3R0X3ZpZXcoc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3 LCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAgCXRpbGVfc2l6ZSA9IGludGVsX3RpbGVf c2l6ZShkZXZfcHJpdik7Cj4gIAo+ICAJY3BwID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBp eGVsX2Zvcm1hdCwgMCk7Cj4gLQl0aWxlX3dpZHRoID0gaW50ZWxfdGlsZV93aWR0aChkZXZfcHJp diwgZmItPm1vZGlmaWVyWzBdLCBjcHApOwo+IC0JdGlsZV9oZWlnaHQgPSB0aWxlX3NpemUgLyB0 aWxlX3dpZHRoOwo+ICsJaW50ZWxfdGlsZV9kaW1zKGRldl9wcml2LCAmdGlsZV93aWR0aCwgJnRp bGVfaGVpZ2h0LAo+ICsJCQlmYi0+bW9kaWZpZXJbMF0sIGNwcCk7Cj4gIAo+IC0JaW5mby0+d2lk dGhfcGFnZXMgPSBESVZfUk9VTkRfVVAoZmItPnBpdGNoZXNbMF0sIHRpbGVfd2lkdGgpOwo+ICsJ aW5mby0+d2lkdGhfcGFnZXMgPSBESVZfUk9VTkRfVVAoZmItPnBpdGNoZXNbMF0sIHRpbGVfd2lk dGggKiBjcHApOwo+ICAJaW5mby0+aGVpZ2h0X3BhZ2VzID0gRElWX1JPVU5EX1VQKGZiLT5oZWln aHQsIHRpbGVfaGVpZ2h0KTsKPiAgCWluZm8tPnNpemUgPSBpbmZvLT53aWR0aF9wYWdlcyAqIGlu Zm8tPmhlaWdodF9wYWdlcyAqIHRpbGVfc2l6ZTsKPiAgCj4gIAlpZiAoaW5mby0+cGl4ZWxfZm9y bWF0ID09IERSTV9GT1JNQVRfTlYxMikgewo+ICAJCWNwcCA9IGRybV9mb3JtYXRfcGxhbmVfY3Bw KGZiLT5waXhlbF9mb3JtYXQsIDEpOwo+IC0JCXRpbGVfd2lkdGggPSBpbnRlbF90aWxlX3dpZHRo KGRldl9wcml2LCBmYi0+bW9kaWZpZXJbMV0sIGNwcCk7Cj4gLQkJdGlsZV9oZWlnaHQgPSB0aWxl X3NpemUgLyB0aWxlX3dpZHRoOwo+ICsJCWludGVsX3RpbGVfZGltcyhkZXZfcHJpdiwgJnRpbGVf d2lkdGgsICZ0aWxlX2hlaWdodCwKPiArCQkJCWZiLT5tb2RpZmllclsxXSwgY3BwKTsKPiAgCj4g LQkJaW5mby0+d2lkdGhfcGFnZXNfdXYgPSBESVZfUk9VTkRfVVAoZmItPnBpdGNoZXNbMV0sIHRp bGVfd2lkdGgpOwo+ICsJCWluZm8tPndpZHRoX3BhZ2VzX3V2ID0gRElWX1JPVU5EX1VQKGZiLT5w aXRjaGVzWzFdLCB0aWxlX3dpZHRoICogY3BwKTsKPiAgCQlpbmZvLT5oZWlnaHRfcGFnZXNfdXYg PSBESVZfUk9VTkRfVVAoZmItPmhlaWdodCAvIDIsIHRpbGVfaGVpZ2h0KTsKPiAgCQlpbmZvLT5z aXplX3V2ID0gaW5mby0+d2lkdGhfcGFnZXNfdXYgKiBpbmZvLT5oZWlnaHRfcGFnZXNfdXYgKiB0 aWxlX3NpemU7Cj4gIAl9Cj4gQEAgLTI0NDYsMjkgKzI0NTgsNDMgQEAgc3RhdGljIHZvaWQgaW50 ZWxfdW5waW5fZmJfb2JqKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ICAJaTkxNV9nZW1f b2JqZWN0X3VucGluX2Zyb21fZGlzcGxheV9wbGFuZShvYmosICZ2aWV3KTsKPiAgfQo+ICAKPiAt LyogQ29tcHV0ZXMgdGhlIGxpbmVhciBvZmZzZXQgdG8gdGhlIGJhc2UgdGlsZSBhbmQgYWRqdXN0 cyB4LCB5LiBieXRlcyBwZXIgcGl4ZWwKPiAtICogaXMgYXNzdW1lZCB0byBiZSBhIHBvd2VyLW9m LXR3by4gKi8KPiArLyoKPiArICogQ29tcHV0ZXMgdGhlIGxpbmVhciBvZmZzZXQgdG8gdGhlIGJh c2UgdGlsZSBhbmQgYWRqdXN0cwo+ICsgKiB4LCB5LiBieXRlcyBwZXIgcGl4ZWwgaXMgYXNzdW1l ZCB0byBiZSBhIHBvd2VyLW9mLXR3by4KPiArICoKPiArICogSW4gdGhlIDkwLzI3MCByb3RhdGVk IGNhc2UsIHggYW5kIHkgYXJlIGFzc3VtZWQKPiArICogdG8gYmUgYWxyZWFkeSByb3RhdGVkIHRv IG1hdGNoIHRoZSByb3RhdGVkIEdUVCB2aWV3LCBhbmQKPiArICogcGl0Y2ggaXMgdGhlIHRpbGVf aGVpZ2h0IGFsaWduZWQgZnJhbWVidWZmZXIgaGVpZ2h0Lgo+ICsgKi8KPiAgdTMyIGludGVsX2Nv bXB1dGVfdGlsZV9vZmZzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJ CQkgICAgICBpbnQgKngsIGludCAqeSwKPiAgCQkJICAgICAgdWludDY0X3QgZmJfbW9kaWZpZXIs Cj4gIAkJCSAgICAgIHVuc2lnbmVkIGludCBjcHAsCj4gLQkJCSAgICAgIHVuc2lnbmVkIGludCBw aXRjaCkKPiArCQkJICAgICAgdW5zaWduZWQgaW50IHBpdGNoLAo+ICsJCQkgICAgICB1bnNpZ25l ZCBpbnQgcm90YXRpb24pCj4gIHsKPiAgCWlmIChmYl9tb2RpZmllciAhPSBEUk1fRk9STUFUX01P RF9OT05FKSB7Cj4gIAkJdW5zaWduZWQgaW50IHRpbGVfc2l6ZSwgdGlsZV93aWR0aCwgdGlsZV9o ZWlnaHQ7Cj4gLQkJdW5zaWduZWQgaW50IHRpbGVfcm93cywgdGlsZXM7Cj4gKwkJdW5zaWduZWQg aW50IHRpbGVfcm93cywgdGlsZXMsIHBpdGNoX3RpbGVzOwo+ICAKPiAgCQl0aWxlX3NpemUgPSBp bnRlbF90aWxlX3NpemUoZGV2X3ByaXYpOwo+IC0JCXRpbGVfd2lkdGggPSBpbnRlbF90aWxlX3dp ZHRoKGRldl9wcml2LCBmYl9tb2RpZmllciwgY3BwKTsKPiAtCQl0aWxlX2hlaWdodCA9IHRpbGVf c2l6ZSAvIHRpbGVfd2lkdGg7Cj4gKwkJaW50ZWxfdGlsZV9kaW1zKGRldl9wcml2LCAmdGlsZV93 aWR0aCwgJnRpbGVfaGVpZ2h0LAo+ICsJCQkJZmJfbW9kaWZpZXIsIGNwcCk7Cj4gKwo+ICsJCWlm IChpbnRlbF9yb3RhdGlvbl85MF9vcl8yNzAocm90YXRpb24pKSB7Cj4gKwkJCXBpdGNoX3RpbGVz ID0gcGl0Y2ggLyB0aWxlX2hlaWdodDsKPiArCQkJc3dhcCh0aWxlX3dpZHRoLCB0aWxlX2hlaWdo dCk7Cj4gKwkJfSBlbHNlIHsKPiArCQkJcGl0Y2hfdGlsZXMgPSBwaXRjaCAvICh0aWxlX3dpZHRo ICogY3BwKTsKPiArCQl9Cj4gIAo+ICAJCXRpbGVfcm93cyA9ICp5IC8gdGlsZV9oZWlnaHQ7Cj4g IAkJKnkgJT0gdGlsZV9oZWlnaHQ7Cj4gIAo+IC0JCXRpbGVzID0gKnggLyAodGlsZV93aWR0aC9j cHApOwo+IC0JCSp4ICU9IHRpbGVfd2lkdGgvY3BwOwo+ICsJCXRpbGVzID0gKnggLyB0aWxlX3dp ZHRoOwo+ICsJCSp4ICU9IHRpbGVfd2lkdGg7Cj4gIAo+IC0JCXJldHVybiB0aWxlX3Jvd3MgKiBw aXRjaCAqIHRpbGVfaGVpZ2h0ICsgdGlsZXMgKiB0aWxlX3NpemU7Cj4gKwkJcmV0dXJuICh0aWxl X3Jvd3MgKiBwaXRjaF90aWxlcyArIHRpbGVzKSAqIHRpbGVfc2l6ZTsKPiAgCX0gZWxzZSB7Cj4g IAkJdW5zaWduZWQgaW50IGFsaWdubWVudCA9IGludGVsX2xpbmVhcl9hbGlnbm1lbnQoZGV2X3By aXYpIC0gMTsKPiAgCQl1bnNpZ25lZCBpbnQgb2Zmc2V0Owo+IEBAIC0yNzA5LDYgKzI3MzUsNyBA QCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnByaW1hcnksCj4gIAl1MzIgbGluZWFyX29mZnNldDsKPiAgCXUzMiBkc3BjbnRyOwo+ICAJaTkx NV9yZWdfdCByZWcgPSBEU1BDTlRSKHBsYW5lKTsKPiArCXVuc2lnbmVkIGludCByb3RhdGlvbiA9 IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOwo+ICAJaW50IGNwcCA9IGRybV9mb3JtYXRfcGxh bmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwo+ICAJaW50IHggPSBwbGFuZV9zdGF0ZS0+c3Jj LngxID4+IDE2Owo+ICAJaW50IHkgPSBwbGFuZV9zdGF0ZS0+c3JjLnkxID4+IDE2Owo+IEBAIC0y Nzc1LDEzICsyODAyLDEzIEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmUo c3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSwKPiAgCQlpbnRlbF9jcnRjLT5kc3BhZGRyX29mZnNl dCA9Cj4gIAkJCWludGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoZGV2X3ByaXYsICZ4LCAmeSwKPiAg CQkJCQkJICBmYi0+bW9kaWZpZXJbMF0sIGNwcCwKPiAtCQkJCQkJICBmYi0+cGl0Y2hlc1swXSk7 Cj4gKwkJCQkJCSAgZmItPnBpdGNoZXNbMF0sIHJvdGF0aW9uKTsKPiAgCQlsaW5lYXJfb2Zmc2V0 IC09IGludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0Owo+ICAJfSBlbHNlIHsKPiAgCQlpbnRlbF9j cnRjLT5kc3BhZGRyX29mZnNldCA9IGxpbmVhcl9vZmZzZXQ7Cj4gIAl9Cj4gIAo+IC0JaWYgKHBs YW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsKPiArCWlm IChyb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4gIAkJZHNwY250ciB8PSBESVNQ UExBTkVfUk9UQVRFXzE4MDsKPiAgCj4gIAkJeCArPSAoY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdyAt IDEpOwo+IEBAIC0yODM5LDYgKzI4NjYsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVf cHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAo+ICAJdTMyIGxpbmVhcl9v ZmZzZXQ7Cj4gIAl1MzIgZHNwY250cjsKPiAgCWk5MTVfcmVnX3QgcmVnID0gRFNQQ05UUihwbGFu ZSk7Cj4gKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlv bjsKPiAgCWludCBjcHAgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAw KTsKPiAgCWludCB4ID0gcGxhbmVfc3RhdGUtPnNyYy54MSA+PiAxNjsKPiAgCWludCB5ID0gcGxh bmVfc3RhdGUtPnNyYy55MSA+PiAxNjsKPiBAQCAtMjg4Miw5ICsyOTEwLDkgQEAgc3RhdGljIHZv aWQgaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcHJpbWFy eSwKPiAgCWludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0ID0KPiAgCQlpbnRlbF9jb21wdXRlX3Rp bGVfb2Zmc2V0KGRldl9wcml2LCAmeCwgJnksCj4gIAkJCQkJICBmYi0+bW9kaWZpZXJbMF0sIGNw cCwKPiAtCQkJCQkgIGZiLT5waXRjaGVzWzBdKTsKPiArCQkJCQkgIGZiLT5waXRjaGVzWzBdLCBy b3RhdGlvbik7Cj4gIAlsaW5lYXJfb2Zmc2V0IC09IGludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0 Owo+IC0JaWYgKHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4 MCkpIHsKPiArCWlmIChyb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4gIAkJZHNw Y250ciB8PSBESVNQUExBTkVfUk9UQVRFXzE4MDsKPiAgCj4gIAkJaWYgKCFJU19IQVNXRUxMKGRl dikgJiYgIUlTX0JST0FEV0VMTChkZXYpKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBp bmRleCBmNjIwMDIzZWQxMzQuLjIyMzY5M2RiZmU3YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gQEAgLTExNzYsNyArMTE3Niw4IEBAIHUzMiBpbnRlbF9jb21wdXRlX3RpbGVfb2Zm c2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJICAgICAgaW50ICp4 LCBpbnQgKnksCj4gIAkJCSAgICAgIHVpbnQ2NF90IGZiX21vZGlmaWVyLAo+ICAJCQkgICAgICB1 bnNpZ25lZCBpbnQgY3BwLAo+IC0JCQkgICAgICB1bnNpZ25lZCBpbnQgcGl0Y2gpOwo+ICsJCQkg ICAgICB1bnNpZ25lZCBpbnQgcGl0Y2gsCj4gKwkJCSAgICAgIHVuc2lnbmVkIGludCByb3RhdGlv bik7Cj4gIHZvaWQgaW50ZWxfcHJlcGFyZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsK PiAgdm9pZCBpbnRlbF9maW5pc2hfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIHZv aWQgaHN3X2VuYWJsZV9wYzgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IGEyNTgyYzQ1NWIzNi4uN2RjMmI4 YjJhNGFjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBAQCAtMTkzLDcg KzE5Myw3IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAo+ ICAJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZwbGFuZV9z dGF0ZS0+Y2tleTsKPiAgCXUzMiBzdXJmX2FkZHI7Cj4gIAl1MzIgdGlsZV9oZWlnaHQsIHBsYW5l X29mZnNldCwgcGxhbmVfc2l6ZTsKPiAtCXVuc2lnbmVkIGludCByb3RhdGlvbjsKPiArCXVuc2ln bmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOwo+ICAJaW50IHhf b2Zmc2V0LCB5X29mZnNldDsKPiAgCWludCBjcnRjX3ggPSBwbGFuZV9zdGF0ZS0+ZHN0LngxOwo+ ICAJaW50IGNydGNfeSA9IHBsYW5lX3N0YXRlLT5kc3QueTE7Cj4gQEAgLTIxMyw3ICsyMTMsNiBA QCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZSwKPiAgCXBsYW5l X2N0bCB8PSBza2xfcGxhbmVfY3RsX2Zvcm1hdChmYi0+cGl4ZWxfZm9ybWF0KTsKPiAgCXBsYW5l X2N0bCB8PSBza2xfcGxhbmVfY3RsX3RpbGluZyhmYi0+bW9kaWZpZXJbMF0pOwo+ICAKPiAtCXJv dGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247Cj4gIAlwbGFuZV9jdGwgfD0gc2ts X3BsYW5lX2N0bF9yb3RhdGlvbihyb3RhdGlvbik7Cj4gIAo+ICAJc3RyaWRlX2RpdiA9IGludGVs X2ZiX3N0cmlkZV9hbGlnbm1lbnQoZGV2X3ByaXYsIGZiLT5tb2RpZmllclswXSwKPiBAQCAtMzUx LDYgKzM1MCw3IEBAIHZsdl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHBsYW5lLAo+ ICAJaW50IHBsYW5lID0gaW50ZWxfcGxhbmUtPnBsYW5lOwo+ICAJdTMyIHNwcmN0bDsKPiAgCXUz MiBzcHJzdXJmX29mZnNldCwgbGluZWFyX29mZnNldDsKPiArCXVuc2lnbmVkIGludCByb3RhdGlv biA9IGRwbGFuZS0+c3RhdGUtPnJvdGF0aW9uOwo+ICAJaW50IGNwcCA9IGRybV9mb3JtYXRfcGxh bmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwo+ICAJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9z cHJpdGVfY29sb3JrZXkgKmtleSA9ICZwbGFuZV9zdGF0ZS0+Y2tleTsKPiAgCWludCBjcnRjX3gg PSBwbGFuZV9zdGF0ZS0+ZHN0LngxOwo+IEBAIC00MjUsMTAgKzQyNSwxMCBAQCB2bHZfdXBkYXRl X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwKPiAgCWxpbmVhcl9vZmZzZXQgPSB5ICog ZmItPnBpdGNoZXNbMF0gKyB4ICogY3BwOwo+ICAJc3Byc3VyZl9vZmZzZXQgPSBpbnRlbF9jb21w dXRlX3RpbGVfb2Zmc2V0KGRldl9wcml2LCAmeCwgJnksCj4gIAkJCQkJCSAgIGZiLT5tb2RpZmll clswXSwgY3BwLAo+IC0JCQkJCQkgICBmYi0+cGl0Y2hlc1swXSk7Cj4gKwkJCQkJCSAgIGZiLT5w aXRjaGVzWzBdLCByb3RhdGlvbik7Cj4gIAlsaW5lYXJfb2Zmc2V0IC09IHNwcnN1cmZfb2Zmc2V0 Owo+ICAKPiAtCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFU RV8xODApKSB7Cj4gKwlpZiAocm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ICAJ CXNwcmN0bCB8PSBTUF9ST1RBVEVfMTgwOwo+ICAKPiAgCQl4ICs9IHNyY193Owo+IEBAIC00OTMs NiArNDkzLDcgQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAg CWVudW0gcGlwZSBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7Cj4gIAl1MzIgc3ByY3RsLCBzcHJz Y2FsZSA9IDA7Cj4gIAl1MzIgc3Byc3VyZl9vZmZzZXQsIGxpbmVhcl9vZmZzZXQ7Cj4gKwl1bnNp Z25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKPiAgCWludCBj cHAgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKPiAgCWNvbnN0 IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmcGxhbmVfc3RhdGUtPmNr ZXk7Cj4gIAlpbnQgY3J0Y194ID0gcGxhbmVfc3RhdGUtPmRzdC54MTsKPiBAQCAtNTU4LDEwICs1 NTksMTAgQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCWxp bmVhcl9vZmZzZXQgPSB5ICogZmItPnBpdGNoZXNbMF0gKyB4ICogY3BwOwo+ICAJc3Byc3VyZl9v ZmZzZXQgPSBpbnRlbF9jb21wdXRlX3RpbGVfb2Zmc2V0KGRldl9wcml2LCAmeCwgJnksCj4gIAkJ CQkJCSAgIGZiLT5tb2RpZmllclswXSwgY3BwLAo+IC0JCQkJCQkgICBmYi0+cGl0Y2hlc1swXSk7 Cj4gKwkJCQkJCSAgIGZiLT5waXRjaGVzWzBdLCByb3RhdGlvbik7Cj4gIAlsaW5lYXJfb2Zmc2V0 IC09IHNwcnN1cmZfb2Zmc2V0Owo+ICAKPiAtCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlv biA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4gKwlpZiAocm90YXRpb24gPT0gQklUKERSTV9S T1RBVEVfMTgwKSkgewo+ICAJCXNwcmN0bCB8PSBTUFJJVEVfUk9UQVRFXzE4MDsKPiAgCj4gIAkJ LyogSFNXIGFuZCBCRFcgZG9lcyB0aGlzIGF1dG9tYWdpY2FsbHkgaW4gaGFyZHdhcmUgKi8KPiBA QCAtNjM0LDYgKzYzNSw3IEBAIGlsa191cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCj4gIAlpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwo+ICAJdTMyIGR2c2NudHIsIGR2 c3NjYWxlOwo+ICAJdTMyIGR2c3N1cmZfb2Zmc2V0LCBsaW5lYXJfb2Zmc2V0Owo+ICsJdW5zaWdu ZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247Cj4gIAlpbnQgY3Bw ID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gIAljb25zdCBz dHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5 Owo+ICAJaW50IGNydGNfeCA9IHBsYW5lX3N0YXRlLT5kc3QueDE7Cj4gQEAgLTY5NSwxMCArNjk3 LDEwIEBAIGlsa191cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAlsaW5l YXJfb2Zmc2V0ID0geSAqIGZiLT5waXRjaGVzWzBdICsgeCAqIGNwcDsKPiAgCWR2c3N1cmZfb2Zm c2V0ID0gaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldChkZXZfcHJpdiwgJngsICZ5LAo+ICAJCQkJ CQkgICBmYi0+bW9kaWZpZXJbMF0sIGNwcCwKPiAtCQkJCQkJICAgZmItPnBpdGNoZXNbMF0pOwo+ ICsJCQkJCQkgICBmYi0+cGl0Y2hlc1swXSwgcm90YXRpb24pOwo+ICAJbGluZWFyX29mZnNldCAt PSBkdnNzdXJmX29mZnNldDsKPiAgCj4gLQlpZiAocGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24g PT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ICsJaWYgKHJvdGF0aW9uID09IEJJVChEUk1fUk9U QVRFXzE4MCkpIHsKPiAgCQlkdnNjbnRyIHw9IERWU19ST1RBVEVfMTgwOwo+ICAKPiAgCQl4ICs9 IHNyY193Owo+IC0tIAo+IDIuNC4xMAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVl ciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK