From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/4] drm/i915: Add .get_hw_state() method for planes Date: Thu, 10 Sep 2015 19:20:11 +0300 Message-ID: <20150910162011.GO29811@intel.com> References: <1441900750-25599-1-git-send-email-ville.syrjala@linux.intel.com> <1441900750-25599-3-git-send-email-ville.syrjala@linux.intel.com> <20150910160734.GL2767@phenom.ffwll.local> <20150910161346.GN29811@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 0EF776ECEE for ; Thu, 10 Sep 2015 09:20:14 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150910161346.GN29811@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBTZXAgMTAsIDIwMTUgYXQgMDc6MTM6NDZQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFRodSwgU2VwIDEwLCAyMDE1IGF0IDA2OjA3OjM0UE0gKzAyMDAsIERhbmll bCBWZXR0ZXIgd3JvdGU6Cj4gPiBPbiBUaHUsIFNlcCAxMCwgMjAxNSBhdCAwNjo1OTowOVBNICsw MzAwLCB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+ID4gRnJvbTogVmls bGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gCj4gPiA+ IEFkZCBhIC5nZXRfaHdfc3RhdGUoKSBtZXRob2QgZm9yIHBsYW5lcywgcmV0dXJuaW5nIHRydWUg b3IgZmFsc2UKPiA+ID4gZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHBsYW5lIGlzIGVuYWJsZWQu IFVzZSBpdCB0byBwb3B1bGF0ZSB0aGUKPiA+ID4gcGxhbmUgc3RhdGUgJ3Zpc2libGUnIGR1cmlu ZyBzdGF0ZSByZWFkb3V0Lgo+ID4gPiAKPiA+ID4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFy dGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gPiA+IENjOiBQYXRyaWsgSmFrb2Jzc29u IDxwYXRyaWsuamFrb2Jzc29uQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gU2lnbmVkLW9mZi1ieTog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IAo+ID4g RG8gd2UgcmVhbGx5IG5lZWQgdGhpcz8gVGhlIHBsYW5lIHJlYWRvdXQgaXMgZmFpcmx5IGxpbWl0 ZWQgYW5kIHdlIGRvbid0Cj4gPiByZWFsbHkgY2FyZSBhYm91dCByZWNvdmVyaW5nIGFueXRoaW5n IGJ1dCB0aGUgaW5pdGlhbCBwcmltYXJ5IHBsYW5lIG9uCj4gPiBkcml2ZXIgbG9hZC4gQW55dGhp bmcgZWxzZSBjYW4ganVzdCBiZSBudWtlZCBpZiBpdCBtaXNmaXRzIC4uLgo+IAo+IEF0IGxlYXN0 IGF2b2lkcyBjYWxsaW5nIC0+ZGlzYWJsZV9wbGFuZSBmb3IgYW4gYWxyZWFkeSBkaXNhYmxlZCBw bGFuZS4KPiBXZSBjb3VsZCBldmVuIHB1dCBhIFdBUk4gdGhlcmUgdG8gY2F0Y2ggYnJva2VuIGNv ZGUuCgpPaCBhbmQgd2UgY291bGQgYWxzbyBkbyBzb21ldGhpbmcgbGlrZQpmb3JfZWFjaF9wbGFu ZSgpCglhc3NlcnQodmlzaWJsZSA9PSBnZXRfaHdfc3RhdGUpOwoKc29tZXdoZXJlIHRvIHBlcmhh cHMgY2F0Y2ggZXZlbiBtb3JlIGNyYXAuCgoKPiAKPiA+IC1EYW5pZWwKPiA+IAo+ID4gPiAtLS0K PiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDY3ICsrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggICAgIHwgIDEgKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMgIHwgMzcgKysrKysrKysrKysrKysrKysrKysKPiA+ID4gIDMgZmlsZXMgY2hhbmdl ZCwgOTEgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+IGluZGV4IDM3MDcyMTIuLjVmZWQxMjAgMTAw NjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gQEAgLTI4 NDEsNiArMjg0MSwxMyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJpbWFyeV9wbGFu ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiA+ICAJUE9TVElOR19SRUFEKHJlZyk7Cj4gPiA+ ICB9Cj4gPiA+ICAKPiA+ID4gK3N0YXRpYyBib29sIGk5eHhfcHJpbWFyeV9nZXRfaHdfc3RhdGUo c3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gPiA+ICsK PiA+ID4gKwlyZXR1cm4gSTkxNV9SRUFEKERTUFNVUkYocGxhbmUtPnBsYW5lKSkgJiBESVNQTEFZ X1BMQU5FX0VOQUJMRTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgdTMyIGludGVsX2ZiX3N0cmlk ZV9hbGlnbm1lbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDY0X3QgZmJfbW9kaWZpZXIs Cj4gPiA+ICAJCQkgICAgICB1aW50MzJfdCBwaXhlbF9mb3JtYXQpCj4gPiA+ICB7Cj4gPiA+IEBA IC0zMTA0LDYgKzMxMTEsMTMgQEAgc3RhdGljIHZvaWQgc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9w bGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiA+ICAJUE9TVElOR19SRUFEKFBMQU5FX1NV UkYocGlwZSwgMCkpOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICtzdGF0aWMgYm9vbCBza3lsYWtl X3ByaW1hcnlfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gPiA+ICt7 Cj4gPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFu ZS0+YmFzZS5kZXYpOwo+ID4gPiArCj4gPiA+ICsJcmV0dXJuIEk5MTVfUkVBRChQTEFORV9DVEwo cGxhbmUtPnBpcGUsIDApKSAmIFBMQU5FX0NUTF9FTkFCTEU7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ ID4gIC8qIEFzc3VtZSBmYiBvYmplY3QgaXMgcGlubmVkICYgaWRsZSAmIGZlbmNlZCBhbmQganVz dCB1cGRhdGUgYmFzZSBwb2ludGVycyAqLwo+ID4gPiAgc3RhdGljIGludAo+ID4gPiAgaW50ZWxf cGlwZV9zZXRfYmFzZV9hdG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiwKPiA+ID4gQEAgLTk4NjIsNiArOTg3NiwxMyBAQCBzdGF0aWMgdm9pZCBp ODQ1X3VwZGF0ZV9jdXJzb3Ioc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MzIgYmFzZSkKPiA+ID4g IAl9Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gK3N0YXRpYyBib29sIGk4NDVfY3Vyc29yX2dldF9o d19zdGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ID4gPiArewo+ID4gPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsK PiA+ID4gKwo+ID4gPiArCXJldHVybiBJOTE1X1JFQUQoX0NVUkFDTlRSKSAmIENVUlNPUl9FTkFC TEU7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX2N1cnNv cihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUzMiBiYXNlKQo+ID4gPiAgewo+ID4gPiAgCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gPiA+IEBAIC05OTA5LDYgKzk5MzAsMTMg QEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywg dTMyIGJhc2UpCj4gPiA+ICAJaW50ZWxfY3J0Yy0+Y3Vyc29yX2Jhc2UgPSBiYXNlOwo+ID4gPiAg fQo+ID4gPiAgCj4gPiA+ICtzdGF0aWMgYm9vbCBpOXh4X2N1cnNvcl9nZXRfaHdfc3RhdGUoc3Ry dWN0IGludGVsX3BsYW5lICpwbGFuZSkKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gPiA+ICsKPiA+ ID4gKwlyZXR1cm4gSTkxNV9SRUFEKENVUkNOVFIocGxhbmUtPnBpcGUpKSAmIENVUlNPUl9NT0RF Owo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICAvKiBJZiBuby1wYXJ0IG9mIHRoZSBjdXJzb3IgaXMg dmlzaWJsZSBvbiB0aGUgZnJhbWVidWZmZXIsIHRoZW4gdGhlIEdQVSBtYXkgaGFuZy4uLiAqLwo+ ID4gPiAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y191cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKPiA+ID4gIAkJCQkgICAgIGJvb2wgb24pCj4gPiA+IEBAIC0xMzUxOCwxMiArMTM1 NDYsMTcgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX3ByaW1hcnlfcGxhbmVfY3Jl YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ICAJfQo+ID4gPiAgCXByaW1hcnktPnBp cGUgPSBwaXBlOwo+ID4gPiAgCXByaW1hcnktPnBsYW5lID0gcGlwZTsKPiA+ID4gKwlpZiAoSEFT X0ZCQyhkZXYpICYmIElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNCkKPiA+ID4gKwkJcHJpbWFyeS0+ cGxhbmUgPSAhcGlwZTsKPiA+ID4gIAlwcmltYXJ5LT5mcm9udGJ1ZmZlcl9iaXQgPSBJTlRFTF9G Uk9OVEJVRkZFUl9QUklNQVJZKHBpcGUpOwo+ID4gPiAgCXByaW1hcnktPmNoZWNrX3BsYW5lID0g aW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZTsKPiA+ID4gIAlwcmltYXJ5LT5jb21taXRfcGxhbmUg PSBpbnRlbF9jb21taXRfcHJpbWFyeV9wbGFuZTsKPiA+ID4gIAlwcmltYXJ5LT5kaXNhYmxlX3Bs YW5lID0gaW50ZWxfZGlzYWJsZV9wcmltYXJ5X3BsYW5lOwo+ID4gPiAtCWlmIChIQVNfRkJDKGRl dikgJiYgSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA0KQo+ID4gPiAtCQlwcmltYXJ5LT5wbGFuZSA9 ICFwaXBlOwo+ID4gPiArCj4gPiA+ICsJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCj4g PiA+ICsJCXByaW1hcnktPmdldF9od19zdGF0ZSA9IHNreWxha2VfcHJpbWFyeV9nZXRfaHdfc3Rh dGU7Cj4gPiA+ICsJZWxzZQo+ID4gPiArCQlwcmltYXJ5LT5nZXRfaHdfc3RhdGUgPSBpOXh4X3By aW1hcnlfZ2V0X2h3X3N0YXRlOwo+ID4gPiAgCj4gPiA+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+ Z2VuID49IDkpIHsKPiA+ID4gIAkJaW50ZWxfcHJpbWFyeV9mb3JtYXRzID0gc2tsX3ByaW1hcnlf Zm9ybWF0czsKPiA+ID4gQEAgLTEzNjc5LDYgKzEzNzEyLDExIEBAIHN0YXRpYyBzdHJ1Y3QgZHJt X3BsYW5lICppbnRlbF9jdXJzb3JfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gPiA+ICAJY3Vyc29yLT5jb21taXRfcGxhbmUgPSBpbnRlbF9jb21taXRfY3Vyc29yX3BsYW5l Owo+ID4gPiAgCWN1cnNvci0+ZGlzYWJsZV9wbGFuZSA9IGludGVsX2Rpc2FibGVfY3Vyc29yX3Bs YW5lOwo+ID4gPiAgCj4gPiA+ICsJaWYgKElTXzg0NUcoZGV2KSB8fCBJU19JODY1RyhkZXYpKQo+ ID4gPiArCQljdXJzb3ItPmdldF9od19zdGF0ZSA9IGk4NDVfY3Vyc29yX2dldF9od19zdGF0ZTsK PiA+ID4gKwllbHNlCj4gPiA+ICsJCWN1cnNvci0+Z2V0X2h3X3N0YXRlID0gaTl4eF9jdXJzb3Jf Z2V0X2h3X3N0YXRlOwo+ID4gPiArCj4gPiA+ICAJZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRl diwgJmN1cnNvci0+YmFzZSwgMCwKPiA+ID4gIAkJCQkgJmludGVsX3BsYW5lX2Z1bmNzLAo+ID4g PiAgCQkJCSBpbnRlbF9jdXJzb3JfZm9ybWF0cywKPiA+ID4gQEAgLTE0ODg2LDcgKzE0OTI0LDEx IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nhbml0aXplX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNy dGMpCj4gPiA+ICAKPiA+ID4gIAkJLyogRGlzYWJsZSBldmVyeXRoaW5nIGJ1dCB0aGUgcHJpbWFy eSBwbGFuZSAqLwo+ID4gPiAgCQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0 YywgcGxhbmUpIHsKPiA+ID4gLQkJCWlmIChwbGFuZS0+YmFzZS50eXBlID09IERSTV9QTEFORV9U WVBFX1BSSU1BUlkpCj4gPiA+ICsJCQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlID0K PiA+ID4gKwkJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+YmFzZS5zdGF0ZSk7Cj4gPiA+ ICsKPiA+ID4gKwkJCWlmIChwbGFuZS0+YmFzZS50eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1B UlkgfHwKPiA+ID4gKwkJCSAgICAhc3RhdGUtPnZpc2libGUpCj4gPiA+ICAJCQkJY29udGludWU7 Cj4gPiA+ICAKPiA+ID4gIAkJCXBsYW5lLT5kaXNhYmxlX3BsYW5lKCZwbGFuZS0+YmFzZSwgJmNy dGMtPmJhc2UpOwo+ID4gPiBAQCAtMTUwNTMsMjEgKzE1MDk1LDE4IEBAIHZvaWQgaTkxNV9yZWRp c2FibGVfdmdhKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiA+ICAJaTkxNV9yZWRpc2FibGVf dmdhX3Bvd2VyX29uKGRldik7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gLXN0YXRpYyBib29sIHBy aW1hcnlfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gPiA+IC17Cj4g PiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+ YmFzZS5kZXYpOwo+ID4gPiAtCj4gPiA+IC0JcmV0dXJuIEk5MTVfUkVBRChEU1BDTlRSKHBsYW5l LT5wbGFuZSkpICYgRElTUExBWV9QTEFORV9FTkFCTEU7Cj4gPiA+IC19Cj4gPiA+IC0KPiA+ID4g IC8qIEZJWE1FIHJlYWQgb3V0IGZ1bGwgcGxhbmUgc3RhdGUgZm9yIGFsbCBwbGFuZXMgKi8KPiA+ ID4gIHN0YXRpYyB2b2lkIHJlYWRvdXRfcGxhbmVfc3RhdGUoc3RydWN0IGludGVsX2NydGMgKmNy dGMpCj4gPiA+ICB7Cj4gPiA+IC0Jc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZSA9Cj4gPiA+IC0JCXRvX2ludGVsX3BsYW5lX3N0YXRlKGNydGMtPmJhc2UucHJpbWFyeS0+c3Rh dGUpOwo+ID4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiA+ ID4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwo+ID4gPiAgCj4gPiA+IC0JcGxhbmVfc3Rh dGUtPnZpc2libGUgPQo+ID4gPiAtCQlwcmltYXJ5X2dldF9od19zdGF0ZSh0b19pbnRlbF9wbGFu ZShjcnRjLT5iYXNlLnByaW1hcnkpKTsKPiA+ID4gKwlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9j cnRjKGRldiwgY3J0YywgcGxhbmUpIHsKPiA+ID4gKwkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICpzdGF0ZSA9Cj4gPiA+ICsJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+YmFzZS5zdGF0 ZSk7Cj4gPiA+ICsKPiA+ID4gKwkJc3RhdGUtPnZpc2libGUgPSBwbGFuZS0+Z2V0X2h3X3N0YXRl KHBsYW5lKTsKPiA+ID4gKwl9Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gIHN0YXRpYyB2b2lkIGlu dGVsX21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBpbmRleCA0NjQ4NGU0Li42NGQ2ZDkwIDEw MDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBAQCAtNjI4LDYgKzYy OCw3IEBAIHN0cnVjdCBpbnRlbF9wbGFuZSB7Cj4gPiA+ICAJCQkgICBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnN0YXRlKTsKPiA+ID4gIAl2b2lkICgqY29tbWl0X3BsYW5lKShzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKPiA+ID4gIAkJCSAgICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpz dGF0ZSk7Cj4gPiA+ICsJYm9vbCAoKmdldF9od19zdGF0ZSkoc3RydWN0IGludGVsX3BsYW5lICpw bGFuZSk7Cj4gPiA+ICB9Owo+ID4gPiAgCj4gPiA+ICBzdHJ1Y3QgaW50ZWxfd2F0ZXJtYXJrX3Bh cmFtcyB7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gPiA+IGluZGV4IGNh N2UyNjQuLjhiMmM3NDQgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nwcml0ZS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jCj4gPiA+IEBAIC0yOTAsNiArMjkwLDE1IEBAIHNrbF9kaXNhYmxlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKmRwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ID4gPiAgCWludGVsX3Vw ZGF0ZV9zcHJpdGVfd2F0ZXJtYXJrcyhkcGxhbmUsIGNydGMsIDAsIDAsIDAsIGZhbHNlLCBmYWxz ZSk7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gK3N0YXRpYyBib29sCj4gPiA+ICtza2xfcGxhbmVf Z2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gPiA+ICt7Cj4gPiA+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5k ZXYpOwo+ID4gPiArCj4gPiA+ICsJcmV0dXJuIEk5MTVfUkVBRChQTEFORV9DVEwocGxhbmUtPnBp cGUsCj4gPiA+ICsJCQkJICAgcGxhbmUtPnBsYW5lICsgMSkpICYgUExBTkVfQ1RMX0VOQUJMRTsK PiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgc3RhdGljIHZvaWQKPiA+ID4gIGNodl91cGRhdGVfY3Nj KHN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUsIHVpbnQzMl90IGZvcm1hdCkKPiA+ID4g IHsKPiA+ID4gQEAgLTQ2OSw2ICs0NzgsMTQgQEAgdmx2X2Rpc2FibGVfcGxhbmUoc3RydWN0IGRy bV9wbGFuZSAqZHBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiA+ICAJUE9TVElOR19S RUFEKFNQU1VSRihwaXBlLCBwbGFuZSkpOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICtzdGF0aWMg Ym9vbAo+ID4gPiArdmx2X3BsYW5lX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiA+ID4gKwo+ID4gPiArCXJldHVybiBJOTE1X1JF QUQoU1BDTlRSKHBsYW5lLT5waXBlLCBwbGFuZS0+cGxhbmUpKSAmIFNQX0VOQUJMRTsKPiA+ID4g K30KPiA+ID4gKwo+ID4gPiAgc3RhdGljIHZvaWQKPiA+ID4gIGl2Yl91cGRhdGVfcGxhbmUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ID4gIAkJIHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gPiBAQCAtNjExLDYgKzYyOCwxNCBAQCBpdmJf ZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpj cnRjKQo+ID4gPiAgCVBPU1RJTkdfUkVBRChTUFJTVVJGKHBpcGUpKTsKPiA+ID4gIH0KPiA+ID4g IAo+ID4gPiArc3RhdGljIGJvb2wKPiA+ID4gK2l2Yl9wbGFuZV9nZXRfaHdfc3RhdGUoc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZSkKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gPiA+ICsKPiA+ID4g KwlyZXR1cm4gSTkxNV9SRUFEKFNQUkNUTChwbGFuZS0+cGlwZSkpICYgU1BSSVRFX0VOQUJMRTsK PiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgc3RhdGljIHZvaWQKPiA+ID4gIGlsa191cGRhdGVfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ID4g IAkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gPiBAQCAtNzM5LDYgKzc2NCwxNCBA QCBpbGtfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9j cnRjICpjcnRjKQo+ID4gPiAgCVBPU1RJTkdfUkVBRChEVlNTVVJGKHBpcGUpKTsKPiA+ID4gIH0K PiA+ID4gIAo+ID4gPiArc3RhdGljIGJvb2wKPiA+ID4gK2lsa19wbGFuZV9nZXRfaHdfc3RhdGUo c3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gPiA+ICsK PiA+ID4gKwlyZXR1cm4gSTkxNV9SRUFEKERWU0NOVFIocGxhbmUtPnBpcGUpKSAmIERWU19FTkFC TEU7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gIHN0YXRpYyBpbnQKPiA+ID4gIGludGVsX2NoZWNr X3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ID4gIAkJCSBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ID4gQEAgLTEwNzUsNiArMTEwOCw3IEBA IGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUs IGludCBwbGFuZSkKPiA+ID4gIAkJaW50ZWxfcGxhbmUtPm1heF9kb3duc2NhbGUgPSAxNjsKPiA+ ID4gIAkJaW50ZWxfcGxhbmUtPnVwZGF0ZV9wbGFuZSA9IGlsa191cGRhdGVfcGxhbmU7Cj4gPiA+ ICAJCWludGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gaWxrX2Rpc2FibGVfcGxhbmU7Cj4gPiA+ ICsJCWludGVsX3BsYW5lLT5nZXRfaHdfc3RhdGUgPSBpbGtfcGxhbmVfZ2V0X2h3X3N0YXRlOwo+ ID4gPiAgCj4gPiA+ICAJCWlmIChJU19HRU42KGRldikpIHsKPiA+ID4gIAkJCXBsYW5lX2Zvcm1h dHMgPSBzbmJfcGxhbmVfZm9ybWF0czsKPiA+ID4gQEAgLTEwOTgsMTIgKzExMzIsMTQgQEAgaW50 ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50 IHBsYW5lKQo+ID4gPiAgCQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7Cj4gPiA+ICAJCQlpbnRl bF9wbGFuZS0+dXBkYXRlX3BsYW5lID0gdmx2X3VwZGF0ZV9wbGFuZTsKPiA+ID4gIAkJCWludGVs X3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gdmx2X2Rpc2FibGVfcGxhbmU7Cj4gPiA+ICsJCQlpbnRl bF9wbGFuZS0+Z2V0X2h3X3N0YXRlID0gdmx2X3BsYW5lX2dldF9od19zdGF0ZTsKPiA+ID4gIAo+ ID4gPiAgCQkJcGxhbmVfZm9ybWF0cyA9IHZsdl9wbGFuZV9mb3JtYXRzOwo+ID4gPiAgCQkJbnVt X3BsYW5lX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHZsdl9wbGFuZV9mb3JtYXRzKTsKPiA+ID4gIAkJ fSBlbHNlIHsKPiA+ID4gIAkJCWludGVsX3BsYW5lLT51cGRhdGVfcGxhbmUgPSBpdmJfdXBkYXRl X3BsYW5lOwo+ID4gPiAgCQkJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUgPSBpdmJfZGlzYWJs ZV9wbGFuZTsKPiA+ID4gKwkJCWludGVsX3BsYW5lLT5nZXRfaHdfc3RhdGUgPSBpdmJfcGxhbmVf Z2V0X2h3X3N0YXRlOwo+ID4gPiAgCj4gPiA+ICAJCQlwbGFuZV9mb3JtYXRzID0gc25iX3BsYW5l X2Zvcm1hdHM7Cj4gPiA+ICAJCQludW1fcGxhbmVfZm9ybWF0cyA9IEFSUkFZX1NJWkUoc25iX3Bs YW5lX2Zvcm1hdHMpOwo+ID4gPiBAQCAtMTExMyw2ICsxMTQ5LDcgQEAgaW50ZWxfcGxhbmVfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKQo+ID4g PiAgCQlpbnRlbF9wbGFuZS0+Y2FuX3NjYWxlID0gdHJ1ZTsKPiA+ID4gIAkJaW50ZWxfcGxhbmUt PnVwZGF0ZV9wbGFuZSA9IHNrbF91cGRhdGVfcGxhbmU7Cj4gPiA+ICAJCWludGVsX3BsYW5lLT5k aXNhYmxlX3BsYW5lID0gc2tsX2Rpc2FibGVfcGxhbmU7Cj4gPiA+ICsJCWludGVsX3BsYW5lLT5n ZXRfaHdfc3RhdGUgPSBza2xfcGxhbmVfZ2V0X2h3X3N0YXRlOwo+ID4gPiAgCQlzdGF0ZS0+c2Nh bGVyX2lkID0gLTE7Cj4gPiA+ICAKPiA+ID4gIAkJcGxhbmVfZm9ybWF0cyA9IHNrbF9wbGFuZV9m b3JtYXRzOwo+ID4gPiAtLSAKPiA+ID4gMi40LjYKPiA+ID4gCj4gPiA+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+IEludGVsLWdmeCBtYWlsaW5n IGxpc3QKPiA+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiBodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gPiAKPiA+ IC0tIAo+ID4gRGFuaWVsIFZldHRlcgo+ID4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBv cmF0aW9uCj4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+IAo+IC0tIAo+IFZpbGxlIFN5cmrDpGzD pAo+IEludGVsIE9UQwoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK