From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH 1/7] drm: Add drm_rotation_90_or_270() Date: Wed, 20 Jul 2016 16:24:43 +0300 Message-ID: <1469021083.11191.0.camel@linux.intel.com> References: <1469020693-24356-1-git-send-email-ville.syrjala@linux.intel.com> <1469020693-24356-2-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: In-Reply-To: <1469020693-24356-2-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, intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24ga2UsIDIwMTYtMDctMjAgYXQgMTY6MTggKzAzMDAsIHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tIHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+Cj4gCj4gV2UgaGF2ZSBpbnRlbF9yb3RhdGlvbl85MF9vcl8yNzAoKSBpbiBp OTE1IHRvIGNoZWNrIGlmIHRoZSByb3RhdGlvbiBpcwo+IDkwIG9yIDI3MCBkZWdyZWVzLiBTaW1p bGFyIGNoZWNrcyBhcmUgZWxzZXdoZXJlIGluIGRybSwgc28gbGV0J3MgbW92ZQo+IHRoZSBoZWxw ZXIgaW50byBhIGNlbnRyYWwgcGxhY2UgYW5kIHVzZSBpdCBldmVyd2hlcmUuCj4gCj4gU2lnbmVk LW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K ClJldmlld2VkLWJ5OiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRl bC5jb20+Cgo+IC0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2Rj X3BsYW5lLmMgfMKgwqA0ICsrLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBl ci5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDIgKy0KPiDCoGRyaXZlcnMvZ3B1L2Ry bS9kcm1fY3J0Yy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8 wqDCoDMgKy0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuY8Kg wqDCoMKgwqDCoMKgfMKgwqAyICstCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8IDEwICsrKysrLS0tLS0KPiDCoGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8 wqDCoDYgLS0tLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuY8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAyICstCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHwgMTIgKysrKysr LS0tLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuY8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgfMKgwqAyICstCj4gwqBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFw X3BsYW5lLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDggKystLS0tLS0KPiDCoGluY2x1 ZGUvZHJtL2RybV9jcnRjLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgfMKgwqA1ICsrKysrCj4gwqAxMSBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRp b25zKCspLCAzMSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwt aGxjZGMvYXRtZWxfaGxjZGNfcGxhbmUuYwo+IGluZGV4IDAxNmMxOTEyMjFmMy4uZjMzNTBjODA3 MDRkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNk Y19wbGFuZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2Rj X3BsYW5lLmMKPiBAQCAtMzkzLDcgKzM5Myw3IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2hsY2RjX3Bs YW5lX3VwZGF0ZV9mb3JtYXQoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSwKPiDCoAo+ IMKgCWlmICgoc3RhdGUtPmJhc2UuZmItPnBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9STUFUX1lVVjQy MiB8fAo+IMKgCcKgwqDCoMKgwqBzdGF0ZS0+YmFzZS5mYi0+cGl4ZWxfZm9ybWF0ID09IERSTV9G T1JNQVRfTlY2MSkgJiYKPiAtCcKgwqDCoMKgKHN0YXRlLT5iYXNlLnJvdGF0aW9uICYgKEJJVChE Uk1fUk9UQVRFXzkwKSB8IEJJVChEUk1fUk9UQVRFXzI3MCkpKSkKPiArCcKgwqDCoMKgZHJtX3Jv dGF0aW9uXzkwX29yXzI3MChzdGF0ZS0+YmFzZS5yb3RhdGlvbikpCj4gwqAJCWNmZyB8PSBBVE1F TF9ITENEQ19ZVVY0MjJST1Q7Cj4gwqAKPiDCoAlhdG1lbF9obGNkY19sYXllcl91cGRhdGVfY2Zn KCZwbGFuZS0+bGF5ZXIsCj4gQEAgLTYyOCw3ICs2MjgsNyBAQCBzdGF0aWMgaW50IGF0bWVsX2hs Y2RjX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwLAo+IMKgCS8qCj4gwqAJ wqAqIFN3YXAgd2lkdGggYW5kIHNpemUgaW4gY2FzZSBvZiA5MCBvciAyNzAgZGVncmVlcyByb3Rh dGlvbgo+IMKgCcKgKi8KPiAtCWlmIChzdGF0ZS0+YmFzZS5yb3RhdGlvbiAmIChCSVQoRFJNX1JP VEFURV85MCkgfCBCSVQoRFJNX1JPVEFURV8yNzApKSkgewo+ICsJaWYgKGRybV9yb3RhdGlvbl85 MF9vcl8yNzAoc3RhdGUtPmJhc2Uucm90YXRpb24pKSB7Cj4gwqAJCXRtcCA9IHN0YXRlLT5jcnRj X3c7Cj4gwqAJCXN0YXRlLT5jcnRjX3cgPSBzdGF0ZS0+Y3J0Y19oOwo+IMKgCQlzdGF0ZS0+Y3J0 Y19oID0gdG1wOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gaW5kZXggZGU3ZmRk Y2UzY2VmLi4zZTEyZTZlNjQ2YWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIu Ywo+IEBAIC0yMzQ4LDcgKzIzNDgsNyBAQCBpbnQgX19kcm1fYXRvbWljX2hlbHBlcl9zZXRfY29u ZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCwKPiDCoAlwcmltYXJ5X3N0YXRlLT5jcnRjX2gg PSB2ZGlzcGxheTsKPiDCoAlwcmltYXJ5X3N0YXRlLT5zcmNfeCA9IHNldC0+eCA8PCAxNjsKPiDC oAlwcmltYXJ5X3N0YXRlLT5zcmNfeSA9IHNldC0+eSA8PCAxNjsKPiAtCWlmIChwcmltYXJ5X3N0 YXRlLT5yb3RhdGlvbiAmIChCSVQoRFJNX1JPVEFURV85MCkgfCBCSVQoRFJNX1JPVEFURV8yNzAp KSkgewo+ICsJaWYgKGRybV9yb3RhdGlvbl85MF9vcl8yNzAocHJpbWFyeV9zdGF0ZS0+cm90YXRp b24pKSB7Cj4gwqAJCXByaW1hcnlfc3RhdGUtPnNyY193ID0gdmRpc3BsYXkgPDwgMTY7Cj4gwqAJ CXByaW1hcnlfc3RhdGUtPnNyY19oID0gaGRpc3BsYXkgPDwgMTY7Cj4gwqAJfSBlbHNlIHsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2NydGMuYwo+IGluZGV4IGYxZDlmMDU2OWQ3Zi4uOTg2ZGUxODBlNmMyIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9jcnRjLmMKPiBAQCAtMjgwNCw4ICsyODA0LDcgQEAgaW50IGRybV9jcnRjX2NoZWNrX3ZpZXdw b3J0KGNvbnN0IHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiDCoAlkcm1fY3J0Y19nZXRfaHZfdGlt aW5nKG1vZGUsICZoZGlzcGxheSwgJnZkaXNwbGF5KTsKPiDCoAo+IMKgCWlmIChjcnRjLT5zdGF0 ZSAmJgo+IC0JwqDCoMKgwqBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+cm90YXRpb24gJiAoQklUKERS TV9ST1RBVEVfOTApIHwKPiAtCQkJCQnCoMKgwqDCoMKgwqBCSVQoRFJNX1JPVEFURV8yNzApKSkK PiArCcKgwqDCoMKgZHJtX3JvdGF0aW9uXzkwX29yXzI3MChjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ cm90YXRpb24pKQo+IMKgCQlzd2FwKGhkaXNwbGF5LCB2ZGlzcGxheSk7Cj4gwqAKPiDCoAlyZXR1 cm4gY2hlY2tfc3JjX2Nvb3Jkcyh4IDw8IDE2LCB5IDw8IDE2LAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pY19wbGFuZS5jCj4gaW5kZXggN2RlNzcyMWY2NWJjLi5jMTllYjlhMGNk NGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5l LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+IEBA IC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2soc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gwqAJaW50ZWxfc3RhdGUtPmNsaXAueTIgPQo+IMKgCQlj cnRjX3N0YXRlLT5iYXNlLmVuYWJsZSA/IGNydGNfc3RhdGUtPnBpcGVfc3JjX2ggOiAwOwo+IMKg Cj4gLQlpZiAoc3RhdGUtPmZiICYmIGludGVsX3JvdGF0aW9uXzkwX29yXzI3MChzdGF0ZS0+cm90 YXRpb24pKSB7Cj4gKwlpZiAoc3RhdGUtPmZiICYmIGRybV9yb3RhdGlvbl85MF9vcl8yNzAoc3Rh dGUtPnJvdGF0aW9uKSkgewo+IMKgCQlpZiAoIShzdGF0ZS0+ZmItPm1vZGlmaWVyWzBdID09IEk5 MTVfRk9STUFUX01PRF9ZX1RJTEVEIHx8Cj4gwqAJCQlzdGF0ZS0+ZmItPm1vZGlmaWVyWzBdID09 IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkpIHsKPiDCoAkJCURSTV9ERUJVR19LTVMoIlkvWWYg dGlsaW5nIHJlcXVpcmVkIGZvciA5MC8yNzAhXG4iKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gaW5kZXggNTFmYmNhNzU2Y2RiLi4wOGI5ZjlhMTlkZjAgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTIxMzgsNyArMjEzOCw3IEBAIGludGVs X2ZpbGxfZmJfZ2d0dF92aWV3KHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmlldywKPiDCoAkJCWNv bnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+IMKgCQkJdW5zaWduZWQgaW50IHJvdGF0 aW9uKQo+IMKgewo+IC0JaWYgKGludGVsX3JvdGF0aW9uXzkwX29yXzI3MChyb3RhdGlvbikpIHsK PiArCWlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHJvdGF0aW9uKSkgewo+IMKgCQkqdmlldyA9 IGk5MTVfZ2d0dF92aWV3X3JvdGF0ZWQ7Cj4gwqAJCXZpZXctPnBhcmFtcy5yb3RhdGVkID0gdG9f aW50ZWxfZnJhbWVidWZmZXIoZmIpLT5yb3RfaW5mbzsKPiDCoAl9IGVsc2Ugewo+IEBAIC0yMzUy LDcgKzIzNTIsNyBAQCB1MzIgaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldChpbnQgKngsIGludCAq eSwKPiDCoAkJaW50ZWxfdGlsZV9kaW1zKGRldl9wcml2LCAmdGlsZV93aWR0aCwgJnRpbGVfaGVp Z2h0LAo+IMKgCQkJCWZiX21vZGlmaWVyLCBjcHApOwo+IMKgCj4gLQkJaWYgKGludGVsX3JvdGF0 aW9uXzkwX29yXzI3MChyb3RhdGlvbikpIHsKPiArCQlpZiAoZHJtX3JvdGF0aW9uXzkwX29yXzI3 MChyb3RhdGlvbikpIHsKPiDCoAkJCXBpdGNoX3RpbGVzID0gcGl0Y2ggLyB0aWxlX2hlaWdodDsK PiDCoAkJCXN3YXAodGlsZV93aWR0aCwgdGlsZV9oZWlnaHQpOwo+IMKgCQl9IGVsc2Ugewo+IEBA IC0zMDExLDcgKzMwMTEsNyBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3Bs YW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+IMKgCj4gwqAJV0FSTl9PTihkcm1fcmVjdF93 aWR0aCgmcGxhbmVfc3RhdGUtPnNyYykgPT0gMCk7Cj4gwqAKPiAtCWlmIChpbnRlbF9yb3RhdGlv bl85MF9vcl8yNzAocm90YXRpb24pKSB7Cj4gKwlpZiAoZHJtX3JvdGF0aW9uXzkwX29yXzI3MChy b3RhdGlvbikpIHsKPiDCoAkJaW50IGNwcCA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhl bF9mb3JtYXQsIDApOwo+IMKgCj4gwqAJCS8qIHN0cmlkZSA9IFN1cmZhY2UgaGVpZ2h0IGluIHRp bGVzICovCj4gQEAgLTQxNzksNyArNDE3OSw3IEBAIHNrbF91cGRhdGVfc2NhbGVyKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCBib29sIGZvcmNlX2RldGFjaCwKPiDCoAkJdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+IMKgCWludCBuZWVkX3NjYWxpbmc7 Cj4gwqAKPiAtCW5lZWRfc2NhbGluZyA9IGludGVsX3JvdGF0aW9uXzkwX29yXzI3MChyb3RhdGlv bikgPwo+ICsJbmVlZF9zY2FsaW5nID0gZHJtX3JvdGF0aW9uXzkwX29yXzI3MChyb3RhdGlvbikg Pwo+IMKgCQkoc3JjX2ggIT0gZHN0X3cgfHwgc3JjX3cgIT0gZHN0X2gpOgo+IMKgCQkoc3JjX3cg IT0gZHN0X3cgfHwgc3JjX2ggIT0gZHN0X2gpOwo+IMKgCj4gQEAgLTExNDE0LDcgKzExNDE0LDcg QEAgc3RhdGljIHZvaWQgc2tsX2RvX21taW9fZmxpcChzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YywKPiDCoAnCoCogVGhlIHN0cmlkZSBpcyBlaXRoZXIgZXhwcmVzc2VkIGFzIGEgbXVsdGlw bGUgb2YgNjQgYnl0ZXMgY2h1bmtzIGZvcgo+IMKgCcKgKiBsaW5lYXIgYnVmZmVycyBvciBpbiBu dW1iZXIgb2YgdGlsZXMgZm9yIHRpbGVkIGJ1ZmZlcnMuCj4gwqAJwqAqLwo+IC0JaWYgKGludGVs X3JvdGF0aW9uXzkwX29yXzI3MChyb3RhdGlvbikpIHsKPiArCWlmIChkcm1fcm90YXRpb25fOTBf b3JfMjcwKHJvdGF0aW9uKSkgewo+IMKgCQkvKiBzdHJpZGUgPSBTdXJmYWNlIGhlaWdodCBpbiB0 aWxlcyAqLwo+IMKgCQl0aWxlX2hlaWdodCA9IGludGVsX3RpbGVfaGVpZ2h0KGRldl9wcml2LCBm Yi0+bW9kaWZpZXJbMF0sIDApOwo+IMKgCQlzdHJpZGUgPSBESVZfUk9VTkRfVVAoZmItPmhlaWdo dCwgdGlsZV9oZWlnaHQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggZTc0ZDg1 MTg2OGM1Li45MDdhNzJjZmRhZDMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBA IC0xMjU1LDEyICsxMjU1LDYgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMo c3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+IMKgdW5zaWduZWQgaW50IGludGVs X3RpbGVfaGVpZ2h0KGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDC oAkJCcKgwqDCoMKgwqDCoMKgdWludDY0X3QgZmJfbW9kaWZpZXIsIHVuc2lnbmVkIGludCBjcHAp Owo+IMKgCj4gLXN0YXRpYyBpbmxpbmUgYm9vbAo+IC1pbnRlbF9yb3RhdGlvbl85MF9vcl8yNzAo dW5zaWduZWQgaW50IHJvdGF0aW9uKQo+IC17Cj4gLQlyZXR1cm4gcm90YXRpb24gJiAoQklUKERS TV9ST1RBVEVfOTApIHwgQklUKERSTV9ST1RBVEVfMjcwKSk7Cj4gLX0KPiAtCj4gwqB2b2lkIGlu dGVsX2NyZWF0ZV9yb3RhdGlvbl9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IMKg CQkJCQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKTsKPiDCoAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2ZiYy5jCj4gaW5kZXggNzgxZTJmNWY3Y2Q4Li5mM2YzMzIyMTM5ZTAgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmMuYwo+IEBAIC04NCw3ICs4NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Zi Y19nZXRfcGxhbmVfc291cmNlX3NpemUoc3RydWN0IGludGVsX2ZiY19zdGF0ZV9jYWNoZSAqY2Fj aGUsCj4gwqB7Cj4gwqAJaW50IHcsIGg7Cj4gwqAKPiAtCWlmIChpbnRlbF9yb3RhdGlvbl85MF9v cl8yNzAoY2FjaGUtPnBsYW5lLnJvdGF0aW9uKSkgewo+ICsJaWYgKGRybV9yb3RhdGlvbl85MF9v cl8yNzAoY2FjaGUtPnBsYW5lLnJvdGF0aW9uKSkgewo+IMKgCQl3ID0gY2FjaGUtPnBsYW5lLnNy Y19oOwo+IMKgCQloID0gY2FjaGUtPnBsYW5lLnNyY193Owo+IMKgCX0gZWxzZSB7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCj4gaW5kZXggYTFiZjVmOGZiYjFjLi41MzExNmNkYzQzYTYgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAtMzAwNCw3ICszMDA0LDcgQEAgc2tsX3BsYW5l X2Rvd25zY2FsZV9hbW91bnQoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwc3RhdGUp Cj4gwqAJc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBzdGF0ZS0+c3JjKTsKPiDCoAlkc3RfdyA9 IGRybV9yZWN0X3dpZHRoKCZwc3RhdGUtPmRzdCk7Cj4gwqAJZHN0X2ggPSBkcm1fcmVjdF9oZWln aHQoJnBzdGF0ZS0+ZHN0KTsKPiAtCWlmIChpbnRlbF9yb3RhdGlvbl85MF9vcl8yNzAocHN0YXRl LT5iYXNlLnJvdGF0aW9uKSkKPiArCWlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHBzdGF0ZS0+ YmFzZS5yb3RhdGlvbikpCj4gwqAJCXN3YXAoZHN0X3csIGRzdF9oKTsKPiDCoAo+IMKgCWRvd25z Y2FsZV9oID0gbWF4KHNyY19oIC8gZHN0X2gsICh1aW50MzJfdClEUk1fUExBTkVfSEVMUEVSX05P X1NDQUxJTkcpOwo+IEBAIC0zMDM1LDcgKzMwMzUsNyBAQCBza2xfcGxhbmVfcmVsYXRpdmVfZGF0 YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4gwqAJd2lkdGgg PSBkcm1fcmVjdF93aWR0aCgmaW50ZWxfcHN0YXRlLT5zcmMpID4+IDE2Owo+IMKgCWhlaWdodCA9 IGRybV9yZWN0X2hlaWdodCgmaW50ZWxfcHN0YXRlLT5zcmMpID4+IDE2Owo+IMKgCj4gLQlpZiAo aW50ZWxfcm90YXRpb25fOTBfb3JfMjcwKHBzdGF0ZS0+cm90YXRpb24pKQo+ICsJaWYgKGRybV9y b3RhdGlvbl85MF9vcl8yNzAocHN0YXRlLT5yb3RhdGlvbikpCj4gwqAJCXN3YXAod2lkdGgsIGhl aWdodCk7Cj4gwqAKPiDCoAkvKiBmb3IgcGxhbmFyIGZvcm1hdCAqLwo+IEBAIC0zMTM3LDcgKzMx MzcsNyBAQCBza2xfZGRiX21pbl9hbGxvYyhjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpw c3RhdGUsCj4gwqAJc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmaW50ZWxfcHN0YXRlLT5zcmMpID4+ IDE2Owo+IMKgCXNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZpbnRlbF9wc3RhdGUtPnNyYykgPj4g MTY7Cj4gwqAKPiAtCWlmIChpbnRlbF9yb3RhdGlvbl85MF9vcl8yNzAocHN0YXRlLT5yb3RhdGlv bikpCj4gKwlpZiAoZHJtX3JvdGF0aW9uXzkwX29yXzI3MChwc3RhdGUtPnJvdGF0aW9uKSkKPiDC oAkJc3dhcChzcmNfdywgc3JjX2gpOwo+IMKgCj4gwqAJLyogSGFsdmUgVVYgcGxhbmUgd2lkdGgg YW5kIGhlaWdodCBmb3IgTlYxMiAqLwo+IEBAIC0zMTUxLDcgKzMxNTEsNyBAQCBza2xfZGRiX21p bl9hbGxvYyhjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGUsCj4gwqAJZWxzZQo+ IMKgCQlwbGFuZV9icHAgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAw KTsKPiDCoAo+IC0JaWYgKGludGVsX3JvdGF0aW9uXzkwX29yXzI3MChwc3RhdGUtPnJvdGF0aW9u KSkgewo+ICsJaWYgKGRybV9yb3RhdGlvbl85MF9vcl8yNzAocHN0YXRlLT5yb3RhdGlvbikpIHsK PiDCoAkJc3dpdGNoIChwbGFuZV9icHApIHsKPiDCoAkJY2FzZSAxOgo+IMKgCQkJbWluX3NjYW5s aW5lcyA9IDMyOwo+IEBAIC0zNDA3LDcgKzM0MDcsNyBAQCBzdGF0aWMgaW50IHNrbF9jb21wdXRl X3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoAl3 aWR0aCA9IGRybV9yZWN0X3dpZHRoKCZpbnRlbF9wc3RhdGUtPnNyYykgPj4gMTY7Cj4gwqAJaGVp Z2h0ID0gZHJtX3JlY3RfaGVpZ2h0KCZpbnRlbF9wc3RhdGUtPnNyYykgPj4gMTY7Cj4gwqAKPiAt CWlmIChpbnRlbF9yb3RhdGlvbl85MF9vcl8yNzAocHN0YXRlLT5yb3RhdGlvbikpCj4gKwlpZiAo ZHJtX3JvdGF0aW9uXzkwX29yXzI3MChwc3RhdGUtPnJvdGF0aW9uKSkKPiDCoAkJc3dhcCh3aWR0 aCwgaGVpZ2h0KTsKPiDCoAo+IMKgCWNwcCA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhl bF9mb3JtYXQsIDApOwo+IEBAIC0zNDI4LDcgKzM0MjgsNyBAQCBzdGF0aWMgaW50IHNrbF9jb21w dXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDC oAnCoMKgwqDCoGZiLT5tb2RpZmllclswXSA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQpIHsK PiDCoAkJdWludDMyX3QgbWluX3NjYW5saW5lcyA9IDQ7Cj4gwqAJCXVpbnQzMl90IHlfdGlsZV9t aW5pbXVtOwo+IC0JCWlmIChpbnRlbF9yb3RhdGlvbl85MF9vcl8yNzAocHN0YXRlLT5yb3RhdGlv bikpIHsKPiArCQlpZiAoZHJtX3JvdGF0aW9uXzkwX29yXzI3MChwc3RhdGUtPnJvdGF0aW9uKSkg ewo+IMKgCQkJaW50IGNwcCA9IChmYi0+cGl4ZWxfZm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMikg Pwo+IMKgCQkJCWRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDEpIDoKPiDC oAkJCQlkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IDBkZTkzNWFkMDFjMi4uY2M2YWYxNDEwZDY3 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBAQCAtMjUxLDcgKzI1MSw3 IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAo+IMKgCj4g wqAJc3VyZl9hZGRyID0gaW50ZWxfcGxhbmVfb2JqX29mZnNldChpbnRlbF9wbGFuZSwgb2JqLCAw KTsKPiDCoAo+IC0JaWYgKGludGVsX3JvdGF0aW9uXzkwX29yXzI3MChyb3RhdGlvbikpIHsKPiAr CWlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHJvdGF0aW9uKSkgewo+IMKgCQlpbnQgY3BwID0g ZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gwqAKPiDCoAkJLyog c3RyaWRlOiBTdXJmYWNlIGhlaWdodCBpbiB0aWxlcyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vb21hcGRybS9vbWFwX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9v bWFwX3BsYW5lLmMKPiBpbmRleCA1MjUyYWI3MjBlNzAuLjdmMGQ1NjdiOGQ2NyAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX3BsYW5lLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vb21hcGRybS9vbWFwX3BsYW5lLmMKPiBAQCAtMTA4LDE2ICsxMDgsMTIgQEAgc3Rh dGljIHZvaWQgb21hcF9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAo+IMKgCXdpbi5zcmNfeCA9IHN0YXRlLT5zcmNfeCA+PiAxNjsKPiDCoAl3aW4uc3JjX3kgPSBz dGF0ZS0+c3JjX3kgPj4gMTY7Cj4gwqAKPiAtCXN3aXRjaCAoc3RhdGUtPnJvdGF0aW9uICYgRFJN X1JPVEFURV9NQVNLKSB7Cj4gLQljYXNlIEJJVChEUk1fUk9UQVRFXzkwKToKPiAtCWNhc2UgQklU KERSTV9ST1RBVEVfMjcwKToKPiArCWlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHN0YXRlLT5y b3RhdGlvbikpIHsKPiDCoAkJd2luLnNyY193ID0gc3RhdGUtPnNyY19oID4+IDE2Owo+IMKgCQl3 aW4uc3JjX2ggPSBzdGF0ZS0+c3JjX3cgPj4gMTY7Cj4gLQkJYnJlYWs7Cj4gLQlkZWZhdWx0Ogo+ ICsJfSBlbHNlIHsKPiDCoAkJd2luLnNyY193ID0gc3RhdGUtPnNyY193ID4+IDE2Owo+IMKgCQl3 aW4uc3JjX2ggPSBzdGF0ZS0+c3JjX2ggPj4gMTY7Cj4gLQkJYnJlYWs7Cj4gwqAJfQo+IMKgCj4g wqAJLyogdXBkYXRlIHNjYW5vdXQ6ICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9j cnRjLmggYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gaW5kZXggM2VkZWFmODhlYmMwLi5iN2Fj N2RjZjUyZGIgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+ICsrKyBiL2lu Y2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBAQCAtOTIsNiArOTIsMTEgQEAgc3RhdGljIGlubGluZSB1 aW50NjRfdCBJNjQyVTY0KGludDY0X3QgdmFsKQo+IMKgI2RlZmluZSBEUk1fUkVGTEVDVF9YCTQK PiDCoCNkZWZpbmUgRFJNX1JFRkxFQ1RfWQk1Cj4gwqAKPiArc3RhdGljIGlubGluZSBib29sIGRy bV9yb3RhdGlvbl85MF9vcl8yNzAodW5zaWduZWQgaW50IHJvdGF0aW9uKQo+ICt7Cj4gKwlyZXR1 cm4gcm90YXRpb24gJiAoQklUKERSTV9ST1RBVEVfOTApIHwgQklUKERSTV9ST1RBVEVfMjcwKSk7 Cj4gK30KPiArCj4gwqBlbnVtIGRybV9jb25uZWN0b3JfZm9yY2Ugewo+IMKgCURSTV9GT1JDRV9V TlNQRUNJRklFRCwKPiDCoAlEUk1fRk9SQ0VfT0ZGLAotLSAKSm9vbmFzIExhaHRpbmVuCk9wZW4g U291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCkludGVsIENvcnBvcmF0aW9uCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=