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:36:39 +0300 Message-ID: <20150910163639.GR29811@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> <20150910162011.GO29811@intel.com> <20150910163020.GB31002@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 1146A6ECFB for ; Thu, 10 Sep 2015 09:36:42 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150910163020.GB31002@phenom.ffwll.local> 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 T24gVGh1LCBTZXAgMTAsIDIwMTUgYXQgMDY6MzA6MjBQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIFNlcCAxMCwgMjAxNSBhdCAwNzoyMDoxMVBNICswMzAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBUaHUsIFNlcCAxMCwgMjAxNSBhdCAwNzoxMzo0NlBNICsw MzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+IE9uIFRodSwgU2VwIDEwLCAyMDE1IGF0 IDA2OjA3OjM0UE0gKzAyMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+ID4gT24gVGh1LCBT ZXAgMTAsIDIwMTUgYXQgMDY6NTk6MDlQTSArMDMwMCwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20gd3JvdGU6Cj4gPiA+ID4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBBZGQgYSAuZ2V0X2h3X3N0 YXRlKCkgbWV0aG9kIGZvciBwbGFuZXMsIHJldHVybmluZyB0cnVlIG9yIGZhbHNlCj4gPiA+ID4g PiBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgcGxhbmUgaXMgZW5hYmxlZC4gVXNlIGl0IHRvIHBv cHVsYXRlIHRoZQo+ID4gPiA+ID4gcGxhbmUgc3RhdGUgJ3Zpc2libGUnIGR1cmluZyBzdGF0ZSBy ZWFkb3V0Lgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0 ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiA+IENjOiBQYXRyaWsgSmFrb2Jz c29uIDxwYXRyaWsuamFrb2Jzc29uQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiA+IFNpZ25lZC1v ZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4g PiA+ID4gCj4gPiA+ID4gRG8gd2UgcmVhbGx5IG5lZWQgdGhpcz8gVGhlIHBsYW5lIHJlYWRvdXQg aXMgZmFpcmx5IGxpbWl0ZWQgYW5kIHdlIGRvbid0Cj4gPiA+ID4gcmVhbGx5IGNhcmUgYWJvdXQg cmVjb3ZlcmluZyBhbnl0aGluZyBidXQgdGhlIGluaXRpYWwgcHJpbWFyeSBwbGFuZSBvbgo+ID4g PiA+IGRyaXZlciBsb2FkLiBBbnl0aGluZyBlbHNlIGNhbiBqdXN0IGJlIG51a2VkIGlmIGl0IG1p c2ZpdHMgLi4uCj4gPiA+IAo+ID4gPiBBdCBsZWFzdCBhdm9pZHMgY2FsbGluZyAtPmRpc2FibGVf cGxhbmUgZm9yIGFuIGFscmVhZHkgZGlzYWJsZWQgcGxhbmUuCj4gPiA+IFdlIGNvdWxkIGV2ZW4g cHV0IGEgV0FSTiB0aGVyZSB0byBjYXRjaCBicm9rZW4gY29kZS4KPiA+IAo+ID4gT2ggYW5kIHdl IGNvdWxkIGFsc28gZG8gc29tZXRoaW5nIGxpa2UKPiA+IGZvcl9lYWNoX3BsYW5lKCkKPiA+IAlh c3NlcnQodmlzaWJsZSA9PSBnZXRfaHdfc3RhdGUpOwo+ID4gCj4gPiBzb21ld2hlcmUgdG8gcGVy aGFwcyBjYXRjaCBldmVuIG1vcmUgY3JhcC4KPiAKPiBZZWFoIG1heWJlLCBidXQgSSB0aGluayB0 aGF0IHNob3VsZCBiZSBkb25lIGFzIHBhcnQgb2YgdGhlIHBhdGNoIHNlcmllcwo+IHdpdGggdGhp cyBwYXRjaCBoZXJlLiBBcy1pcyBJIGRvbid0IHRoaW5rIGl0IGFkZHMgYSBsb3QgcmVhbGx5IC4u LgoKSXQgd291bGQgYXQgbGVhc3QgZml4IFNLTC9CWFQgcHJpbWFyeSByZWFkb3V0LCB3aGljaCBJ IGZvcmdvdCB0byBtZW50aW9uCmluIHRoZSBjb21taXQgbWVzc2FnZSBuYXR1cmFsbHkuCgo+IC1E YW5pZWwKPiAKPiA+IAo+ID4gCj4gPiA+IAo+ID4gPiA+IC1EYW5pZWwKPiA+ID4gPiAKPiA+ID4g PiA+IC0tLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8 IDY3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQo+ID4gPiA+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAxICsKPiA+ID4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAzNyArKysrKysrKysrKysrKysrKysrKwo+ ID4gPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgOTEgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25z KC0pCj4gPiA+ID4gPiAKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiA+ID4gPiA+IGluZGV4IDM3MDcyMTIuLjVmZWQxMjAgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ID4gQEAgLTI4NDEsNiArMjg0 MSwxMyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4gPiA+ID4gPiAgCVBPU1RJTkdfUkVBRChyZWcpOwo+ID4gPiA+ID4g IH0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICtzdGF0aWMgYm9vbCBpOXh4X3ByaW1hcnlfZ2V0X2h3 X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gPiA+ID4gPiArewo+ID4gPiA+ID4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNl LmRldik7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCXJldHVybiBJOTE1X1JFQUQoRFNQU1VSRihw bGFuZS0+cGxhbmUpKSAmIERJU1BMQVlfUExBTkVfRU5BQkxFOwo+ID4gPiA+ID4gK30KPiA+ID4g PiA+ICsKPiA+ID4gPiA+ICB1MzIgaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1aW50NjRfdCBmYl9tb2RpZmllciwKPiA+ID4gPiA+ICAJCQkgICAgICB1 aW50MzJfdCBwaXhlbF9mb3JtYXQpCj4gPiA+ID4gPiAgewo+ID4gPiA+ID4gQEAgLTMxMDQsNiAr MzExMSwxMyBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKPiA+ID4gPiA+ICAJUE9TVElOR19SRUFEKFBMQU5FX1NVUkYocGlw ZSwgMCkpOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICtzdGF0aWMgYm9vbCBz a3lsYWtlX3ByaW1hcnlfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4g PiA+ID4gPiArewo+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCXJldHVy biBJOTE1X1JFQUQoUExBTkVfQ1RMKHBsYW5lLT5waXBlLCAwKSkgJiBQTEFORV9DVExfRU5BQkxF Owo+ID4gPiA+ID4gK30KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICAvKiBBc3N1bWUgZmIgb2JqZWN0 IGlzIHBpbm5lZCAmIGlkbGUgJiBmZW5jZWQgYW5kIGp1c3QgdXBkYXRlIGJhc2UgcG9pbnRlcnMg Ki8KPiA+ID4gPiA+ICBzdGF0aWMgaW50Cj4gPiA+ID4gPiAgaW50ZWxfcGlwZV9zZXRfYmFzZV9h dG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwK PiA+ID4gPiA+IEBAIC05ODYyLDYgKzk4NzYsMTMgQEAgc3RhdGljIHZvaWQgaTg0NV91cGRhdGVf Y3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2UpCj4gPiA+ID4gPiAgCX0KPiA+ ID4gPiA+ICB9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiArc3RhdGljIGJvb2wgaTg0NV9jdXJzb3Jf Z2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gPiA+ID4gPiArewo+ID4g PiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5l LT5iYXNlLmRldik7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCXJldHVybiBJOTE1X1JFQUQoX0NV UkFDTlRSKSAmIENVUlNPUl9FTkFCTEU7Cj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IHUzMiBiYXNlKQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGNydGMtPmRldjsKPiA+ID4gPiA+IEBAIC05OTA5LDYgKzk5MzAsMTMgQEAgc3RhdGljIHZv aWQgaTl4eF91cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2UpCj4g PiA+ID4gPiAgCWludGVsX2NydGMtPmN1cnNvcl9iYXNlID0gYmFzZTsKPiA+ID4gPiA+ICB9Cj4g PiA+ID4gPiAgCj4gPiA+ID4gPiArc3RhdGljIGJvb2wgaTl4eF9jdXJzb3JfZ2V0X2h3X3N0YXRl KHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gPiA+ID4gPiArewo+ID4gPiA+ID4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7 Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCXJldHVybiBJOTE1X1JFQUQoQ1VSQ05UUihwbGFuZS0+ cGlwZSkpICYgQ1VSU09SX01PREU7Cj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4g IC8qIElmIG5vLXBhcnQgb2YgdGhlIGN1cnNvciBpcyB2aXNpYmxlIG9uIHRoZSBmcmFtZWJ1ZmZl ciwgdGhlbiB0aGUgR1BVIG1heSBoYW5nLi4uICovCj4gPiA+ID4gPiAgc3RhdGljIHZvaWQgaW50 ZWxfY3J0Y191cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ID4gPiA+ICAJ CQkJICAgICBib29sIG9uKQo+ID4gPiA+ID4gQEAgLTEzNTE4LDEyICsxMzU0NiwxNyBAQCBzdGF0 aWMgc3RydWN0IGRybV9wbGFuZSAqaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4gIAlwcmltYXJ5LT5waXBlID0g cGlwZTsKPiA+ID4gPiA+ICAJcHJpbWFyeS0+cGxhbmUgPSBwaXBlOwo+ID4gPiA+ID4gKwlpZiAo SEFTX0ZCQyhkZXYpICYmIElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNCkKPiA+ID4gPiA+ICsJCXBy aW1hcnktPnBsYW5lID0gIXBpcGU7Cj4gPiA+ID4gPiAgCXByaW1hcnktPmZyb250YnVmZmVyX2Jp dCA9IElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkocGlwZSk7Cj4gPiA+ID4gPiAgCXByaW1hcnkt PmNoZWNrX3BsYW5lID0gaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZTsKPiA+ID4gPiA+ICAJcHJp bWFyeS0+Y29tbWl0X3BsYW5lID0gaW50ZWxfY29tbWl0X3ByaW1hcnlfcGxhbmU7Cj4gPiA+ID4g PiAgCXByaW1hcnktPmRpc2FibGVfcGxhbmUgPSBpbnRlbF9kaXNhYmxlX3ByaW1hcnlfcGxhbmU7 Cj4gPiA+ID4gPiAtCWlmIChIQVNfRkJDKGRldikgJiYgSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA0 KQo+ID4gPiA+ID4gLQkJcHJpbWFyeS0+cGxhbmUgPSAhcGlwZTsKPiA+ID4gPiA+ICsKPiA+ID4g PiA+ICsJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCj4gPiA+ID4gPiArCQlwcmltYXJ5 LT5nZXRfaHdfc3RhdGUgPSBza3lsYWtlX3ByaW1hcnlfZ2V0X2h3X3N0YXRlOwo+ID4gPiA+ID4g KwllbHNlCj4gPiA+ID4gPiArCQlwcmltYXJ5LT5nZXRfaHdfc3RhdGUgPSBpOXh4X3ByaW1hcnlf Z2V0X2h3X3N0YXRlOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAlpZiAoSU5URUxfSU5GTyhkZXYp LT5nZW4gPj0gOSkgewo+ID4gPiA+ID4gIAkJaW50ZWxfcHJpbWFyeV9mb3JtYXRzID0gc2tsX3By aW1hcnlfZm9ybWF0czsKPiA+ID4gPiA+IEBAIC0xMzY3OSw2ICsxMzcxMiwxMSBAQCBzdGF0aWMg c3RydWN0IGRybV9wbGFuZSAqaW50ZWxfY3Vyc29yX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ID4gPiA+ID4gIAljdXJzb3ItPmNvbW1pdF9wbGFuZSA9IGludGVsX2NvbW1p dF9jdXJzb3JfcGxhbmU7Cj4gPiA+ID4gPiAgCWN1cnNvci0+ZGlzYWJsZV9wbGFuZSA9IGludGVs X2Rpc2FibGVfY3Vyc29yX3BsYW5lOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gKwlpZiAoSVNfODQ1 RyhkZXYpIHx8IElTX0k4NjVHKGRldikpCj4gPiA+ID4gPiArCQljdXJzb3ItPmdldF9od19zdGF0 ZSA9IGk4NDVfY3Vyc29yX2dldF9od19zdGF0ZTsKPiA+ID4gPiA+ICsJZWxzZQo+ID4gPiA+ID4g KwkJY3Vyc29yLT5nZXRfaHdfc3RhdGUgPSBpOXh4X2N1cnNvcl9nZXRfaHdfc3RhdGU7Cj4gPiA+ ID4gPiArCj4gPiA+ID4gPiAgCWRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChkZXYsICZjdXJzb3It PmJhc2UsIDAsCj4gPiA+ID4gPiAgCQkJCSAmaW50ZWxfcGxhbmVfZnVuY3MsCj4gPiA+ID4gPiAg CQkJCSBpbnRlbF9jdXJzb3JfZm9ybWF0cywKPiA+ID4gPiA+IEBAIC0xNDg4Niw3ICsxNDkyNCwx MSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zYW5pdGl6ZV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAkJLyogRGlzYWJsZSBldmVyeXRoaW5nIGJ1dCB0 aGUgcHJpbWFyeSBwbGFuZSAqLwo+ID4gPiA+ID4gIAkJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25f Y3J0YyhkZXYsIGNydGMsIHBsYW5lKSB7Cj4gPiA+ID4gPiAtCQkJaWYgKHBsYW5lLT5iYXNlLnR5 cGUgPT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkKPiA+ID4gPiA+ICsJCQlzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKnN0YXRlID0KPiA+ID4gPiA+ICsJCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUo cGxhbmUtPmJhc2Uuc3RhdGUpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwkJCWlmIChwbGFuZS0+ YmFzZS50eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkgfHwKPiA+ID4gPiA+ICsJCQkgICAg IXN0YXRlLT52aXNpYmxlKQo+ID4gPiA+ID4gIAkJCQljb250aW51ZTsKPiA+ID4gPiA+ICAKPiA+ ID4gPiA+ICAJCQlwbGFuZS0+ZGlzYWJsZV9wbGFuZSgmcGxhbmUtPmJhc2UsICZjcnRjLT5iYXNl KTsKPiA+ID4gPiA+IEBAIC0xNTA1MywyMSArMTUwOTUsMTggQEAgdm9pZCBpOTE1X3JlZGlzYWJs ZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ID4gPiA+ICAJaTkxNV9yZWRpc2FibGVf dmdhX3Bvd2VyX29uKGRldik7Cj4gPiA+ID4gPiAgfQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gLXN0 YXRpYyBib29sIHByaW1hcnlfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUp Cj4gPiA+ID4gPiAtewo+ID4gPiA+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtCXJl dHVybiBJOTE1X1JFQUQoRFNQQ05UUihwbGFuZS0+cGxhbmUpKSAmIERJU1BMQVlfUExBTkVfRU5B QkxFOwo+ID4gPiA+ID4gLX0KPiA+ID4gPiA+IC0KPiA+ID4gPiA+ICAvKiBGSVhNRSByZWFkIG91 dCBmdWxsIHBsYW5lIHN0YXRlIGZvciBhbGwgcGxhbmVzICovCj4gPiA+ID4gPiAgc3RhdGljIHZv aWQgcmVhZG91dF9wbGFuZV9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+ID4gPiA+ ICB7Cj4gPiA+ID4gPiAtCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPQo+ ID4gPiA+ID4gLQkJdG9faW50ZWxfcGxhbmVfc3RhdGUoY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0 ZSk7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsK PiA+ID4gPiA+ICsJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKPiA+ID4gPiA+ICAKPiA+ID4g PiA+IC0JcGxhbmVfc3RhdGUtPnZpc2libGUgPQo+ID4gPiA+ID4gLQkJcHJpbWFyeV9nZXRfaHdf c3RhdGUodG9faW50ZWxfcGxhbmUoY3J0Yy0+YmFzZS5wcmltYXJ5KSk7Cj4gPiA+ID4gPiArCWZv cl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBjcnRjLCBwbGFuZSkgewo+ID4gPiA+ID4g KwkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSA9Cj4gPiA+ID4gPiArCQkJdG9faW50 ZWxfcGxhbmVfc3RhdGUocGxhbmUtPmJhc2Uuc3RhdGUpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4g KwkJc3RhdGUtPnZpc2libGUgPSBwbGFuZS0+Z2V0X2h3X3N0YXRlKHBsYW5lKTsKPiA+ID4gPiA+ ICsJfQo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICBzdGF0aWMgdm9pZCBpbnRl bF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ID4g PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ID4gPiBpbmRleCA0NjQ4NGU0Li42NGQ2 ZDkwIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ ID4gPiBAQCAtNjI4LDYgKzYyOCw3IEBAIHN0cnVjdCBpbnRlbF9wbGFuZSB7Cj4gPiA+ID4gPiAg CQkJICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSk7Cj4gPiA+ID4gPiAgCXZvaWQg KCpjb21taXRfcGxhbmUpKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gPiA+ID4gIAkJCSAg ICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSk7Cj4gPiA+ID4gPiArCWJvb2wgKCpn ZXRfaHdfc3RhdGUpKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpOwo+ID4gPiA+ID4gIH07Cj4g PiA+ID4gPiAgCj4gPiA+ID4gPiAgc3RydWN0IGludGVsX3dhdGVybWFya19wYXJhbXMgewo+ID4g PiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+ID4gPiA+IGluZGV4IGNhN2Uy NjQuLjhiMmM3NDQgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9zcHJpdGUuYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMKPiA+ID4gPiA+IEBAIC0yOTAsNiArMjkwLDE1IEBAIHNrbF9kaXNhYmxlX3BsYW5l KHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ID4gPiA+ ID4gIAlpbnRlbF91cGRhdGVfc3ByaXRlX3dhdGVybWFya3MoZHBsYW5lLCBjcnRjLCAwLCAwLCAw LCBmYWxzZSwgZmFsc2UpOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICtzdGF0 aWMgYm9vbAo+ID4gPiA+ID4gK3NrbF9wbGFuZV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX3Bs YW5lICpwbGFuZSkKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiA+ID4gPiA+ICsKPiA+ ID4gPiA+ICsJcmV0dXJuIEk5MTVfUkVBRChQTEFORV9DVEwocGxhbmUtPnBpcGUsCj4gPiA+ID4g PiArCQkJCSAgIHBsYW5lLT5wbGFuZSArIDEpKSAmIFBMQU5FX0NUTF9FTkFCTEU7Cj4gPiA+ID4g PiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIHN0YXRpYyB2b2lkCj4gPiA+ID4gPiAgY2h2X3Vw ZGF0ZV9jc2Moc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSwgdWludDMyX3QgZm9ybWF0 KQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+IEBAIC00NjksNiArNDc4LDE0IEBAIHZsdl9kaXNhYmxl X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ ID4gPiA+ID4gIAlQT1NUSU5HX1JFQUQoU1BTVVJGKHBpcGUsIHBsYW5lKSk7Cj4gPiA+ID4gPiAg fQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gK3N0YXRpYyBib29sCj4gPiA+ID4gPiArdmx2X3BsYW5l X2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ID4gPiA+ID4gK3sKPiA+ ID4gPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFu ZS0+YmFzZS5kZXYpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlyZXR1cm4gSTkxNV9SRUFEKFNQ Q05UUihwbGFuZS0+cGlwZSwgcGxhbmUtPnBsYW5lKSkgJiBTUF9FTkFCTEU7Cj4gPiA+ID4gPiAr fQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIHN0YXRpYyB2b2lkCj4gPiA+ID4gPiAgaXZiX3VwZGF0 ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ ID4gPiA+ID4gIAkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gPiA+ID4gQEAgLTYx MSw2ICs2MjgsMTQgQEAgaXZiX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs IHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiA+ID4gPiA+ICAJUE9TVElOR19SRUFEKFNQUlNVUkYo cGlwZSkpOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICtzdGF0aWMgYm9vbAo+ ID4gPiA+ID4gK2l2Yl9wbGFuZV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX3BsYW5lICpwbGFu ZSkKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJ cmV0dXJuIEk5MTVfUkVBRChTUFJDVEwocGxhbmUtPnBpcGUpKSAmIFNQUklURV9FTkFCTEU7Cj4g PiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIHN0YXRpYyB2b2lkCj4gPiA+ID4gPiAg aWxrX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRj ICpjcnRjLAo+ID4gPiA+ID4gIAkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gPiA+ ID4gQEAgLTczOSw2ICs3NjQsMTQgQEAgaWxrX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiA+ID4gPiA+ICAJUE9TVElOR19SRUFE KERWU1NVUkYocGlwZSkpOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICtzdGF0 aWMgYm9vbAo+ID4gPiA+ID4gK2lsa19wbGFuZV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX3Bs YW5lICpwbGFuZSkKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiA+ID4gPiA+ICsKPiA+ ID4gPiA+ICsJcmV0dXJuIEk5MTVfUkVBRChEVlNDTlRSKHBsYW5lLT5waXBlKSkgJiBEVlNfRU5B QkxFOwo+ID4gPiA+ID4gK30KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICBzdGF0aWMgaW50Cj4gPiA+ ID4gPiAgaW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ ID4gPiA+ID4gIAkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ID4g PiA+IEBAIC0xMDc1LDYgKzExMDgsNyBAQCBpbnRlbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLCBpbnQgcGxhbmUpCj4gPiA+ID4gPiAgCQlpbnRlbF9w bGFuZS0+bWF4X2Rvd25zY2FsZSA9IDE2Owo+ID4gPiA+ID4gIAkJaW50ZWxfcGxhbmUtPnVwZGF0 ZV9wbGFuZSA9IGlsa191cGRhdGVfcGxhbmU7Cj4gPiA+ID4gPiAgCQlpbnRlbF9wbGFuZS0+ZGlz YWJsZV9wbGFuZSA9IGlsa19kaXNhYmxlX3BsYW5lOwo+ID4gPiA+ID4gKwkJaW50ZWxfcGxhbmUt PmdldF9od19zdGF0ZSA9IGlsa19wbGFuZV9nZXRfaHdfc3RhdGU7Cj4gPiA+ID4gPiAgCj4gPiA+ ID4gPiAgCQlpZiAoSVNfR0VONihkZXYpKSB7Cj4gPiA+ID4gPiAgCQkJcGxhbmVfZm9ybWF0cyA9 IHNuYl9wbGFuZV9mb3JtYXRzOwo+ID4gPiA+ID4gQEAgLTEwOTgsMTIgKzExMzIsMTQgQEAgaW50 ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50 IHBsYW5lKQo+ID4gPiA+ID4gIAkJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewo+ID4gPiA+ID4g IAkJCWludGVsX3BsYW5lLT51cGRhdGVfcGxhbmUgPSB2bHZfdXBkYXRlX3BsYW5lOwo+ID4gPiA+ ID4gIAkJCWludGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gdmx2X2Rpc2FibGVfcGxhbmU7Cj4g PiA+ID4gPiArCQkJaW50ZWxfcGxhbmUtPmdldF9od19zdGF0ZSA9IHZsdl9wbGFuZV9nZXRfaHdf c3RhdGU7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCQkJcGxhbmVfZm9ybWF0cyA9IHZsdl9wbGFu ZV9mb3JtYXRzOwo+ID4gPiA+ID4gIAkJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRSh2 bHZfcGxhbmVfZm9ybWF0cyk7Cj4gPiA+ID4gPiAgCQl9IGVsc2Ugewo+ID4gPiA+ID4gIAkJCWlu dGVsX3BsYW5lLT51cGRhdGVfcGxhbmUgPSBpdmJfdXBkYXRlX3BsYW5lOwo+ID4gPiA+ID4gIAkJ CWludGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gaXZiX2Rpc2FibGVfcGxhbmU7Cj4gPiA+ID4g PiArCQkJaW50ZWxfcGxhbmUtPmdldF9od19zdGF0ZSA9IGl2Yl9wbGFuZV9nZXRfaHdfc3RhdGU7 Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCQkJcGxhbmVfZm9ybWF0cyA9IHNuYl9wbGFuZV9mb3Jt YXRzOwo+ID4gPiA+ID4gIAkJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShzbmJfcGxh bmVfZm9ybWF0cyk7Cj4gPiA+ID4gPiBAQCAtMTExMyw2ICsxMTQ5LDcgQEAgaW50ZWxfcGxhbmVf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKQo+ ID4gPiA+ID4gIAkJaW50ZWxfcGxhbmUtPmNhbl9zY2FsZSA9IHRydWU7Cj4gPiA+ID4gPiAgCQlp bnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5lID0gc2tsX3VwZGF0ZV9wbGFuZTsKPiA+ID4gPiA+ICAJ CWludGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gc2tsX2Rpc2FibGVfcGxhbmU7Cj4gPiA+ID4g PiArCQlpbnRlbF9wbGFuZS0+Z2V0X2h3X3N0YXRlID0gc2tsX3BsYW5lX2dldF9od19zdGF0ZTsK PiA+ID4gPiA+ICAJCXN0YXRlLT5zY2FsZXJfaWQgPSAtMTsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ ICAJCXBsYW5lX2Zvcm1hdHMgPSBza2xfcGxhbmVfZm9ybWF0czsKPiA+ID4gPiA+IC0tIAo+ID4g PiA+ID4gMi40LjYKPiA+ID4gPiA+IAo+ID4gPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QK PiA+ID4gPiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gPiA+IGh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiA+ID4g PiAKPiA+ID4gPiAtLSAKPiA+ID4gPiBEYW5pZWwgVmV0dGVyCj4gPiA+ID4gU29mdHdhcmUgRW5n aW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gPiA+ID4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKPiA+ ID4gCj4gPiA+IC0tIAo+ID4gPiBWaWxsZSBTeXJqw6Rsw6QKPiA+ID4gSW50ZWwgT1RDCj4gPiAK PiA+IC0tIAo+ID4gVmlsbGUgU3lyasOkbMOkCj4gPiBJbnRlbCBPVEMKPiAKPiAtLSAKPiBEYW5p ZWwgVmV0dGVyCj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gaHR0cDov L2Jsb2cuZmZ3bGwuY2gKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==