From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sagar Arun Kamble Subject: Re: [PATCH 4/5] drm/i915: Add rotation support for the cursor plane Date: Fri, 14 Feb 2014 16:31:17 +0530 Message-ID: <1392375677.28501.40.camel@sagar-desktop> References: <1392239704-21776-1-git-send-email-ville.syrjala@linux.intel.com> <1392239704-21776-5-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: <1392239704-21776-5-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE0LTAyLTEyIGF0IDIzOjE1ICswMjAwLCB2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbSB3cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgo+IAo+IFRoZSBjdXJzb3IgcGxhbmUgYWxzbyBzdXBwb3J0cyAxODAgZGVn cmVlIHJvdGF0aW9uLiBBZGQgYSBuZXcKPiAiY3Vyc29yLXJvdGF0aW9uIiBwcm9wZXJ0eSBvbiB0 aGUgY3J0YyB3aGljaCBjb250cm9scyB0aGlzLgo+IAo+IFVubGlrZSBzcHJpdGVzLCB0aGUgY3Vy c29yIGhhcyBhIGZpeGVkIHNpemUsIHNvIGlmIHlvdSBoYXZlIGEgc21hbGwKPiBjdXJzb3IgaW1h Z2Ugd2l0aCB0aGUgcmVzdCBvZiB0aGUgYm8gZmlsbGVkIGJ5IHRyYW5zcGFyZW50IHBpeGVscywK PiBzaW1wbHkgZmxpcHBpbmcgdGhlIHJvdGF0aW9uIHByb3BlcnR5IHdpbGwgY2F1c2UgdGhlIHZp c2libGUgcGFydAo+IG9mIHRoZSBjdXJzb3IgdG8gc2hpZnQuIFRoaXMgaXMgc29tZXRoaW5nIHRv IGtlZXAgaW4gbWluZCB3aGVuCj4gdXNpbmcgY3Vyc29yIHJvdGF0aW9uLgpCeSBmbGlwcGluZyB5 b3UgbWVhbnQgc2V0dGluZyAxODAgZGVncmVlIHJvdGF0aW9uPwpEb24ndCB3ZSBoYXZlIHRvIGFk anVzdCB0aGUgY3Vyc29yIGJhc2UgYXMgd2VsbCB0byB0aGUgbG93ZXIgcmlnaHQKY29ybmVyIGFw YXJ0IGZyb20gc2V0dGluZyB0aGUgY29udHJvbCBiaXQ/Cj4gCj4gQ2M6IFNhZ2FyIEthbWJsZSA8 c2FnYXIuYS5rYW1ibGVAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzD pCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZG1hLmMgICAgICB8ICA5ICsrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oICAgICAgfCAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmggICAgICB8ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwg NTkgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAxICsKPiAgNSBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNl cnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKPiBp bmRleCA0YTNlZjM0Li4zZGQ5YWJiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZG1hLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCj4gQEAg LTE5MTYsNiArMTkxNiwxNSBAQCB2b2lkIGk5MTVfZHJpdmVyX2xhc3RjbG9zZShzdHJ1Y3QgZHJt X2RldmljZSAqIGRldikKPiAgCQl9Cj4gIAl9Cj4gIAo+ICsJaWYgKGRldl9wcml2LT5jdXJzb3Jf cm90YXRpb25fcHJvcGVydHkpIHsKPiArCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMsICZkZXYt Pm1vZGVfY29uZmlnLmNydGNfbGlzdCwgYmFzZS5oZWFkKSB7Cj4gKwkJCWNydGMtPmN1cnNvcl9y b3RhdGlvbiA9IEJJVChEUk1fUk9UQVRFXzApOwo+ICsJCQlkcm1fb2JqZWN0X3Byb3BlcnR5X3Nl dF92YWx1ZSgmY3J0Yy0+YmFzZS5iYXNlLAo+ICsJCQkJCQlkZXZfcHJpdi0+Y3Vyc29yX3JvdGF0 aW9uX3Byb3BlcnR5LAo+ICsJCQkJCQljcnRjLT5jdXJzb3Jfcm90YXRpb24pOwo+ICsJCX0KPiAr CX0KPiArCj4gIAlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VU KSkgewo+ICAJCWludGVsX2ZiZGV2X3Jlc3RvcmVfbW9kZShkZXYpOwo+ICAJCXZnYV9zd2l0Y2hl cm9vX3Byb2Nlc3NfZGVsYXllZF9zd2l0Y2goKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBp bmRleCA2YWY3OGVlLi44ZWNkM2JiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAg LTE1NjIsNiArMTU2Miw3IEBAIHR5cGVkZWYgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ICAJ c3RydWN0IGRybV9wcm9wZXJ0eSAqZm9yY2VfYXVkaW9fcHJvcGVydHk7Cj4gIAlzdHJ1Y3QgZHJt X3Byb3BlcnR5ICpyb3RhdGlvbl9wcm9wZXJ0eTsgLyogInJvdGF0aW9uIiAqLwo+ICAJc3RydWN0 IGRybV9wcm9wZXJ0eSAqcGxhbmVfcm90YXRpb25fcHJvcGVydHk7IC8qICJwbGFuZS1yb3RhdGlv biIgKi8KPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKmN1cnNvcl9yb3RhdGlvbl9wcm9wZXJ0eTsg LyogImN1cnNvci1yb3RhdGlvbiIgKi8KPiAgCj4gIAl1aW50MzJfdCBod19jb250ZXh0X3NpemU7 Cj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIGNvbnRleHRfbGlzdDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmgKPiBpbmRleCBhYjFhZWI4Mi4uZmVlMDY4YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAo+IEBAIC0zNTM0LDYgKzM1MzQsNyBAQAo+ICAjZGVmaW5lICAgTUNVUlNPUl9QSVBFX0EJMHgw MAo+ICAjZGVmaW5lICAgTUNVUlNPUl9QSVBFX0IJKDEgPDwgMjgpCj4gICNkZWZpbmUgICBNQ1VS U09SX0dBTU1BX0VOQUJMRSAgKDEgPDwgMjYpCj4gKyNkZWZpbmUgICBDVVJTT1JfUk9UQVRFXzE4 MAkoMTw8MTUpCj4gICNkZWZpbmUgICBDVVJTT1JfVFJJQ0tMRV9GRUVEX0RJU0FCTEUJKDEgPDwg MTQpCj4gICNkZWZpbmUgX0NVUkFCQVNFCQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29m ZnNldCArIDB4NzAwODQpCj4gICNkZWZpbmUgX0NVUkFQT1MJCShkZXZfcHJpdi0+aW5mby5kaXNw bGF5X21taW9fb2Zmc2V0ICsgMHg3MDA4OCkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gaW5kZXggMzdiMjNkMS4uZTk0MTY3YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiBAQCAtNDIsNyArNDIsNyBAQAo+ICAjaW5jbHVkZSA8bGludXgvZG1hX3Jl bWFwcGluZy5oPgo+ICAKPiAgc3RhdGljIHZvaWQgaW50ZWxfaW5jcmVhc2VfcGxsY2xvY2soc3Ry dWN0IGRybV9jcnRjICpjcnRjKTsKPiAtc3RhdGljIHZvaWQgaW50ZWxfY3J0Y191cGRhdGVfY3Vy c29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBvbik7Cj4gK3N0YXRpYyB2b2lkIGludGVs X2NydGNfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wgb24sIGJvb2wg Zm9yY2UpOwo+ICAKPiAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2Nsb2NrX2dldChzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKPiAgCQkJCXN0cnVjdCBpbnRlbF9jcnRjX2NvbmZpZyAqcGlwZV9jb25m aWcpOwo+IEBAIC0zNjQwLDcgKzM2NDAsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2Vu YWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlpbnRlbF9lbmFibGVfcGlwZShpbnRlbF9j cnRjKTsKPiAgCWludGVsX2VuYWJsZV9wcmltYXJ5X3BsYW5lKGRldl9wcml2LCBwbGFuZSwgcGlw ZSk7Cj4gIAlpbnRlbF9lbmFibGVfcGxhbmVzKGNydGMpOwo+IC0JaW50ZWxfY3J0Y191cGRhdGVf Y3Vyc29yKGNydGMsIHRydWUpOwo+ICsJaW50ZWxfY3J0Y191cGRhdGVfY3Vyc29yKGNydGMsIHRy dWUsIGZhbHNlKTsKPiAgCj4gIAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLmhhc19wY2hfZW5jb2Rl cikKPiAgCQlpcm9ubGFrZV9wY2hfZW5hYmxlKGNydGMpOwo+IEBAIC0zNjgyLDcgKzM2ODIsNyBA QCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlX3BsYW5lcyhzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCj4gIAo+ICAJaW50ZWxfZW5hYmxlX3ByaW1hcnlfcGxhbmUoZGV2X3ByaXYsIHBsYW5l LCBwaXBlKTsKPiAgCWludGVsX2VuYWJsZV9wbGFuZXMoY3J0Yyk7Cj4gLQlpbnRlbF9jcnRjX3Vw ZGF0ZV9jdXJzb3IoY3J0YywgdHJ1ZSk7Cj4gKwlpbnRlbF9jcnRjX3VwZGF0ZV9jdXJzb3IoY3J0 YywgdHJ1ZSwgZmFsc2UpOwo+ICAKPiAgCWhzd19lbmFibGVfaXBzKGludGVsX2NydGMpOwo+ICAK PiBAQCAtMzcwOCw3ICszNzA4LDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Rpc2FibGVf cGxhbmVzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCj4gIAloc3dfZGlzYWJsZV9pcHMoaW50 ZWxfY3J0Yyk7Cj4gIAo+IC0JaW50ZWxfY3J0Y191cGRhdGVfY3Vyc29yKGNydGMsIGZhbHNlKTsK PiArCWludGVsX2NydGNfdXBkYXRlX2N1cnNvcihjcnRjLCBmYWxzZSwgZmFsc2UpOwo+ICAJaW50 ZWxfZGlzYWJsZV9wbGFuZXMoY3J0Yyk7Cj4gIAlpbnRlbF9kaXNhYmxlX3ByaW1hcnlfcGxhbmUo ZGV2X3ByaXYsIHBsYW5lLCBwaXBlKTsKPiAgfQo+IEBAIC0zODM2LDcgKzM4MzYsNyBAQCBzdGF0 aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJ aWYgKGRldl9wcml2LT5mYmMucGxhbmUgPT0gcGxhbmUpCj4gIAkJaW50ZWxfZGlzYWJsZV9mYmMo ZGV2KTsKPiAgCj4gLQlpbnRlbF9jcnRjX3VwZGF0ZV9jdXJzb3IoY3J0YywgZmFsc2UpOwo+ICsJ aW50ZWxfY3J0Y191cGRhdGVfY3Vyc29yKGNydGMsIGZhbHNlLCBmYWxzZSk7Cj4gIAlpbnRlbF9k aXNhYmxlX3BsYW5lcyhjcnRjKTsKPiAgCWludGVsX2Rpc2FibGVfcHJpbWFyeV9wbGFuZShkZXZf cHJpdiwgcGxhbmUsIHBpcGUpOwo+ICAKPiBAQCAtNDIxMSw3ICs0MjExLDcgQEAgc3RhdGljIHZv aWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlpbnRl bF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldiwgcGlwZSwgdHJ1ZSk7Cj4gIAlp bnRlbF9lbmFibGVfcHJpbWFyeV9wbGFuZShkZXZfcHJpdiwgcGxhbmUsIHBpcGUpOwo+ICAJaW50 ZWxfZW5hYmxlX3BsYW5lcyhjcnRjKTsKPiAtCWludGVsX2NydGNfdXBkYXRlX2N1cnNvcihjcnRj LCB0cnVlKTsKPiArCWludGVsX2NydGNfdXBkYXRlX2N1cnNvcihjcnRjLCB0cnVlLCBmYWxzZSk7 Cj4gIAo+ICAJaW50ZWxfdXBkYXRlX2ZiYyhkZXYpOwo+ICAKPiBAQCAtNDI1Myw3ICs0MjUzLDcg QEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4g IAkvKiBUaGUgZml4dXAgbmVlZHMgdG8gaGFwcGVuIGJlZm9yZSBjdXJzb3IgaXMgZW5hYmxlZCAq Lwo+ICAJaWYgKElTX0c0WChkZXYpKQo+ICAJCWc0eF9maXh1cF9wbGFuZShkZXZfcHJpdiwgcGlw ZSk7Cj4gLQlpbnRlbF9jcnRjX3VwZGF0ZV9jdXJzb3IoY3J0YywgdHJ1ZSk7Cj4gKwlpbnRlbF9j cnRjX3VwZGF0ZV9jdXJzb3IoY3J0YywgdHJ1ZSwgZmFsc2UpOwo+ICAKPiAgCS8qIEdpdmUgdGhl IG92ZXJsYXkgc2NhbGVyIGEgY2hhbmNlIHRvIGVuYWJsZSBpZiBpdCdzIG9uIHRoaXMgcGlwZSAq Lwo+ICAJaW50ZWxfY3J0Y19kcG1zX292ZXJsYXkoaW50ZWxfY3J0YywgdHJ1ZSk7Cj4gQEAgLTQz MDIsNyArNDMwMiw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKPiAgCQlpbnRlbF9kaXNhYmxlX2ZiYyhkZXYpOwo+ICAKPiAgCWludGVsX2Ny dGNfZHBtc19vdmVybGF5KGludGVsX2NydGMsIGZhbHNlKTsKPiAtCWludGVsX2NydGNfdXBkYXRl X2N1cnNvcihjcnRjLCBmYWxzZSk7Cj4gKwlpbnRlbF9jcnRjX3VwZGF0ZV9jdXJzb3IoY3J0Yywg ZmFsc2UsIGZhbHNlKTsKPiAgCWludGVsX2Rpc2FibGVfcGxhbmVzKGNydGMpOwo+ICAJaW50ZWxf ZGlzYWJsZV9wcmltYXJ5X3BsYW5lKGRldl9wcml2LCBwbGFuZSwgcGlwZSk7Cj4gIAo+IEBAIC03 NDI5LDcgKzc0MjksNyBAQCB2b2lkIGludGVsX3dyaXRlX2VsZChzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIsCj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkud3JpdGVfZWxkKGNvbm5lY3RvciwgY3J0 YywgbW9kZSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGk4NDVfdXBkYXRlX2N1cnNvcihzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsIHUzMiBiYXNlKQo+ICtzdGF0aWMgdm9pZCBpODQ1X3VwZGF0ZV9j dXJzb3Ioc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MzIgYmFzZSwgYm9vbCBmb3JjZSkKPiAgewo+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gQEAgLTc0MzcsNyArNzQz Nyw3IEBAIHN0YXRpYyB2b2lkIGk4NDVfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsIHUzMiBiYXNlKQo+ICAJYm9vbCB2aXNpYmxlID0gYmFzZSAhPSAwOwo+ICAJdTMyIGNudGw7 Cj4gIAo+IC0JaWYgKGludGVsX2NydGMtPmN1cnNvcl92aXNpYmxlID09IHZpc2libGUpCj4gKwlp ZiAoIWZvcmNlICYmIGludGVsX2NydGMtPmN1cnNvcl92aXNpYmxlID09IHZpc2libGUpCj4gIAkJ cmV0dXJuOwo+ICAKPiAgCWNudGwgPSBJOTE1X1JFQUQoX0NVUkFDTlRSKTsKPiBAQCAtNzQ1OSw3 ICs3NDU5LDcgQEAgc3RhdGljIHZvaWQgaTg0NV91cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywgdTMyIGJhc2UpCj4gIAlpbnRlbF9jcnRjLT5jdXJzb3JfdmlzaWJsZSA9IHZpc2li bGU7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZHJt X2NydGMgKmNydGMsIHUzMiBiYXNlKQo+ICtzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9jdXJzb3Io c3RydWN0IGRybV9jcnRjICpjcnRjLCB1MzIgYmFzZSwgYm9vbCBmb3JjZSkKPiAgewo+ICAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gQEAgLTc0NjcsNyArNzQ2Nyw3IEBA IHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUz MiBiYXNlKQo+ICAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICAJYm9vbCB2aXNpYmxl ID0gYmFzZSAhPSAwOwo+ICAKPiAtCWlmIChpbnRlbF9jcnRjLT5jdXJzb3JfdmlzaWJsZSAhPSB2 aXNpYmxlKSB7Cj4gKwlpZiAoZm9yY2UgfHwgaW50ZWxfY3J0Yy0+Y3Vyc29yX3Zpc2libGUgIT0g dmlzaWJsZSkgewo+ICAJCXVpbnQzMl90IGNudGwgPSBJOTE1X1JFQUQoQ1VSQ05UUihwaXBlKSk7 Cj4gIAkJaWYgKGJhc2UpIHsKPiAgCQkJY250bCAmPSB+KENVUlNPUl9NT0RFIHwgTUNVUlNPUl9Q SVBFX1NFTEVDVCk7Cj4gQEAgLTc0NzcsNiArNzQ3NywxMCBAQCBzdGF0aWMgdm9pZCBpOXh4X3Vw ZGF0ZV9jdXJzb3Ioc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MzIgYmFzZSkKPiAgCQkJY250bCAm PSB+KENVUlNPUl9NT0RFIHwgTUNVUlNPUl9HQU1NQV9FTkFCTEUpOwo+ICAJCQljbnRsIHw9IENV UlNPUl9NT0RFX0RJU0FCTEU7Cj4gIAkJfQo+ICsJCWlmIChpbnRlbF9jcnRjLT5jdXJzb3Jfcm90 YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkKPiArCQkJY250bCB8PSBDVVJTT1JfUk9UQVRF XzE4MDsKPiArCQllbHNlCj4gKwkJCWNudGwgJj0gfkNVUlNPUl9ST1RBVEVfMTgwOwo+ICAJCUk5 MTVfV1JJVEUoQ1VSQ05UUihwaXBlKSwgY250bCk7Cj4gIAo+ICAJCWludGVsX2NydGMtPmN1cnNv cl92aXNpYmxlID0gdmlzaWJsZTsKPiBAQCAtNzQ4Nyw3ICs3NDkxLDcgQEAgc3RhdGljIHZvaWQg aTl4eF91cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2UpCj4gIAlQ T1NUSU5HX1JFQUQoQ1VSQkFTRShwaXBlKSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGl2Yl91 cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2UpCj4gK3N0YXRpYyB2 b2lkIGl2Yl91cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2UsIGJv b2wgZm9yY2UpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ IEBAIC03NDk1LDcgKzc0OTksNyBAQCBzdGF0aWMgdm9pZCBpdmJfdXBkYXRlX2N1cnNvcihzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsIHUzMiBiYXNlKQo+ICAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5w aXBlOwo+ICAJYm9vbCB2aXNpYmxlID0gYmFzZSAhPSAwOwo+ICAKPiAtCWlmIChpbnRlbF9jcnRj LT5jdXJzb3JfdmlzaWJsZSAhPSB2aXNpYmxlKSB7Cj4gKwlpZiAoZm9yY2UgfHwgaW50ZWxfY3J0 Yy0+Y3Vyc29yX3Zpc2libGUgIT0gdmlzaWJsZSkgewo+ICAJCXVpbnQzMl90IGNudGwgPSBJOTE1 X1JFQUQoQ1VSQ05UUl9JVkIocGlwZSkpOwo+ICAJCWlmIChiYXNlKSB7Cj4gIAkJCWNudGwgJj0g fkNVUlNPUl9NT0RFOwo+IEBAIC03NTA4LDYgKzc1MTIsMTAgQEAgc3RhdGljIHZvaWQgaXZiX3Vw ZGF0ZV9jdXJzb3Ioc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MzIgYmFzZSkKPiAgCQkJY250bCB8 PSBDVVJTT1JfUElQRV9DU0NfRU5BQkxFOwo+ICAJCQljbnRsICY9IH5DVVJTT1JfVFJJQ0tMRV9G RUVEX0RJU0FCTEU7Cj4gIAkJfQo+ICsJCWlmIChpbnRlbF9jcnRjLT5jdXJzb3Jfcm90YXRpb24g PT0gQklUKERSTV9ST1RBVEVfMTgwKSkKPiArCQkJY250bCB8PSBDVVJTT1JfUk9UQVRFXzE4MDsK PiArCQllbHNlCj4gKwkJCWNudGwgJj0gfkNVUlNPUl9ST1RBVEVfMTgwOwo+ICAJCUk5MTVfV1JJ VEUoQ1VSQ05UUl9JVkIocGlwZSksIGNudGwpOwo+ICAKPiAgCQlpbnRlbF9jcnRjLT5jdXJzb3Jf dmlzaWJsZSA9IHZpc2libGU7Cj4gQEAgLTc1MjAsNyArNzUyOCw3IEBAIHN0YXRpYyB2b2lkIGl2 Yl91cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2UpCj4gIAo+ICAv KiBJZiBuby1wYXJ0IG9mIHRoZSBjdXJzb3IgaXMgdmlzaWJsZSBvbiB0aGUgZnJhbWVidWZmZXIs IHRoZW4gdGhlIEdQVSBtYXkgaGFuZy4uLiAqLwo+ICBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX3Vw ZGF0ZV9jdXJzb3Ioc3RydWN0IGRybV9jcnRjICpjcnRjLAo+IC0JCQkJICAgICBib29sIG9uKQo+ ICsJCQkJICAgICBib29sIG9uLCBib29sIGZvcmNlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtNzU2NCwxMyArNzU3MiwxMyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9jcnRjX3VwZGF0ZV9jdXJzb3Ioc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAKPiAg CWlmIChJU19JVllCUklER0UoZGV2KSB8fCBJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxM KGRldikpIHsKPiAgCQlJOTE1X1dSSVRFKENVUlBPU19JVkIocGlwZSksIHBvcyk7Cj4gLQkJaXZi X3VwZGF0ZV9jdXJzb3IoY3J0YywgYmFzZSk7Cj4gKwkJaXZiX3VwZGF0ZV9jdXJzb3IoY3J0Yywg YmFzZSwgZm9yY2UpOwo+ICAJfSBlbHNlIHsKPiAgCQlJOTE1X1dSSVRFKENVUlBPUyhwaXBlKSwg cG9zKTsKPiAgCQlpZiAoSVNfODQ1RyhkZXYpIHx8IElTX0k4NjVHKGRldikpCj4gLQkJCWk4NDVf dXBkYXRlX2N1cnNvcihjcnRjLCBiYXNlKTsKPiArCQkJaTg0NV91cGRhdGVfY3Vyc29yKGNydGMs IGJhc2UsIGZvcmNlKTsKPiAgCQllbHNlCj4gLQkJCWk5eHhfdXBkYXRlX2N1cnNvcihjcnRjLCBi YXNlKTsKPiArCQkJaTl4eF91cGRhdGVfY3Vyc29yKGNydGMsIGJhc2UsIGZvcmNlKTsKPiAgCX0K PiAgfQo+ICAKPiBAQCAtNzY3Nyw3ICs3Njg1LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2N1 cnNvcl9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJaW50ZWxfY3J0Yy0+Y3Vyc29yX2hl aWdodCA9IGhlaWdodDsKPiAgCj4gIAlpZiAoaW50ZWxfY3J0Yy0+YWN0aXZlKQo+IC0JCWludGVs X2NydGNfdXBkYXRlX2N1cnNvcihjcnRjLCBpbnRlbF9jcnRjLT5jdXJzb3JfYm8gIT0gTlVMTCk7 Cj4gKwkJaW50ZWxfY3J0Y191cGRhdGVfY3Vyc29yKGNydGMsIGludGVsX2NydGMtPmN1cnNvcl9i byAhPSBOVUxMLCBmYWxzZSk7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIGZhaWxfdW5waW46Cj4gQEAg LTc2OTcsNyArNzcwNSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19jdXJzb3JfbW92ZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsIGludCB4LCBpbnQgeSkKPiAgCWludGVsX2NydGMtPmN1cnNvcl95 ID0gY2xhbXBfdChpbnQsIHksIFNIUlRfTUlOLCBTSFJUX01BWCk7Cj4gIAo+ICAJaWYgKGludGVs X2NydGMtPmFjdGl2ZSkKPiAtCQlpbnRlbF9jcnRjX3VwZGF0ZV9jdXJzb3IoY3J0YywgaW50ZWxf Y3J0Yy0+Y3Vyc29yX2JvICE9IE5VTEwpOwo+ICsJCWludGVsX2NydGNfdXBkYXRlX2N1cnNvcihj cnRjLCBpbnRlbF9jcnRjLT5jdXJzb3JfYm8gIT0gTlVMTCwgZmFsc2UpOwo+ICAKPiAgCXJldHVy biAwOwo+ICB9Cj4gQEAgLTEwMzg4LDYgKzEwMzk2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0 Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQo+ICAJaW50ZWxfY3J0Yy0+ cGlwZSA9IHBpcGU7Cj4gIAlpbnRlbF9jcnRjLT5wbGFuZSA9IHBpcGU7Cj4gIAlpbnRlbF9jcnRj LT5wcmltYXJ5X3JvdGF0aW9uID0gQklUKERSTV9ST1RBVEVfMCk7Cj4gKwlpbnRlbF9jcnRjLT5j dXJzb3Jfcm90YXRpb24gPSBCSVQoRFJNX1JPVEFURV8wKTsKPiAgCWlmIChIQVNfRkJDKGRldikg JiYgSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA0KSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygic3dhcHBp bmcgcGlwZXMgJiBwbGFuZXMgZm9yIEZCQ1xuIik7Cj4gIAkJaW50ZWxfY3J0Yy0+cGxhbmUgPSAh cGlwZTsKPiBAQCAtMTA0MDgsNiArMTA0MTcsMTYgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQo+ICAJCQlkcm1fb2JqZWN0X2F0 dGFjaF9wcm9wZXJ0eSgmaW50ZWxfY3J0Yy0+YmFzZS5iYXNlLAo+ICAJCQkJCQlkZXZfcHJpdi0+ cGxhbmVfcm90YXRpb25fcHJvcGVydHksCj4gIAkJCQkJCWludGVsX2NydGMtPnByaW1hcnlfcm90 YXRpb24pOwo+ICsKPiArCQlpZiAoIWRldl9wcml2LT5jdXJzb3Jfcm90YXRpb25fcHJvcGVydHkp Cj4gKwkJCWRldl9wcml2LT5jdXJzb3Jfcm90YXRpb25fcHJvcGVydHkgPQo+ICsJCQkJZHJtX21v ZGVfY3JlYXRlX3JvdGF0aW9uX3Byb3BlcnR5KGRldiwgImN1cnNvci1yb3RhdGlvbiIsCj4gKwkJ CQkJCQkJQklUKERSTV9ST1RBVEVfMCkgfAo+ICsJCQkJCQkJCUJJVChEUk1fUk9UQVRFXzE4MCkp Owo+ICsJCWlmIChkZXZfcHJpdi0+Y3Vyc29yX3JvdGF0aW9uX3Byb3BlcnR5KQo+ICsJCQlkcm1f b2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmaW50ZWxfY3J0Yy0+YmFzZS5iYXNlLAo+ICsJCQkJCQlk ZXZfcHJpdi0+Y3Vyc29yX3JvdGF0aW9uX3Byb3BlcnR5LAo+ICsJCQkJCQlpbnRlbF9jcnRjLT5j dXJzb3Jfcm90YXRpb24pOwo+ICAJfQo+ICAKPiAgCWRybV9jcnRjX2hlbHBlcl9hZGQoJmludGVs X2NydGMtPmJhc2UsICZpbnRlbF9oZWxwZXJfZnVuY3MpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gaW5kZXggOGMxN2E4Mi4uNGE3ZjRmMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gQEAgLTMzMiw2ICszMzIsNyBAQCBzdHJ1Y3QgaW50ZWxfY3J0YyB7Cj4gIAllbnVtIHBp cGUgcGlwZTsKPiAgCWVudW0gcGxhbmUgcGxhbmU7Cj4gIAl1bnNpZ25lZCBpbnQgcHJpbWFyeV9y b3RhdGlvbjsgLyogcHJpbWFyeSBwbGFuZSBpbiByZWxhdGlvbiB0byB0aGUgcGlwZSAqLwo+ICsJ dW5zaWduZWQgaW50IGN1cnNvcl9yb3RhdGlvbjsgLyogY3Vyc29yIHBsYW5lIGluIHJlbGF0aW9u IHRvIHRoZSBwaXBlICovCj4gIAo+ICAJdTggbHV0X3JbMjU2XSwgbHV0X2dbMjU2XSwgbHV0X2Jb MjU2XTsKPiAgCS8qCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK