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:13:46 +0300 Message-ID: <20150910161346.GN29811@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id B61BC6ECE8 for ; Thu, 10 Sep 2015 09:14:58 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150910160734.GL2767@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 T24gVGh1LCBTZXAgMTAsIDIwMTUgYXQgMDY6MDc6MzRQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIFNlcCAxMCwgMjAxNSBhdCAwNjo1OTowOVBNICswMzAwLCB2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAKPiA+IEFkZCBhIC5nZXRfaHdfc3Rh dGUoKSBtZXRob2QgZm9yIHBsYW5lcywgcmV0dXJuaW5nIHRydWUgb3IgZmFsc2UKPiA+IGRlcGVu ZGluZyBvbiB3aGV0aGVyIHRoZSBwbGFuZSBpcyBlbmFibGVkLiBVc2UgaXQgdG8gcG9wdWxhdGUg dGhlCj4gPiBwbGFuZSBzdGF0ZSAndmlzaWJsZScgZHVyaW5nIHN0YXRlIHJlYWRvdXQuCj4gPiAK PiA+IENjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwu Y29tPgo+ID4gQ2M6IFBhdHJpayBKYWtvYnNzb24gPHBhdHJpay5qYWtvYnNzb25AbGludXguaW50 ZWwuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KPiAKPiBEbyB3ZSByZWFsbHkgbmVlZCB0aGlzPyBUaGUgcGxhbmUg cmVhZG91dCBpcyBmYWlybHkgbGltaXRlZCBhbmQgd2UgZG9uJ3QKPiByZWFsbHkgY2FyZSBhYm91 dCByZWNvdmVyaW5nIGFueXRoaW5nIGJ1dCB0aGUgaW5pdGlhbCBwcmltYXJ5IHBsYW5lIG9uCj4g ZHJpdmVyIGxvYWQuIEFueXRoaW5nIGVsc2UgY2FuIGp1c3QgYmUgbnVrZWQgaWYgaXQgbWlzZml0 cyAuLi4KCkF0IGxlYXN0IGF2b2lkcyBjYWxsaW5nIC0+ZGlzYWJsZV9wbGFuZSBmb3IgYW4gYWxy ZWFkeSBkaXNhYmxlZCBwbGFuZS4KV2UgY291bGQgZXZlbiBwdXQgYSBXQVJOIHRoZXJlIHRvIGNh dGNoIGJyb2tlbiBjb2RlLgoKPiAtRGFuaWVsCj4gCj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMSAr Cj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgIHwgMzcgKysrKysrKysr KysrKysrKysrKysKPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDE0IGRl bGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBp bmRleCAzNzA3MjEyLi41ZmVkMTIwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiA+IEBAIC0yODQxLDYgKzI4NDEsMTMgQEAgc3RhdGljIHZvaWQgaXJvbmxha2Vf dXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gIAlQT1NUSU5H X1JFQUQocmVnKTsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIGJvb2wgaTl4eF9wcmltYXJ5X2dl dF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ID4gK3sKPiA+ICsJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwo+ ID4gKwo+ID4gKwlyZXR1cm4gSTkxNV9SRUFEKERTUFNVUkYocGxhbmUtPnBsYW5lKSkgJiBESVNQ TEFZX1BMQU5FX0VOQUJMRTsKPiA+ICt9Cj4gPiArCj4gPiAgdTMyIGludGVsX2ZiX3N0cmlkZV9h bGlnbm1lbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDY0X3QgZmJfbW9kaWZpZXIsCj4g PiAgCQkJICAgICAgdWludDMyX3QgcGl4ZWxfZm9ybWF0KQo+ID4gIHsKPiA+IEBAIC0zMTA0LDYg KzMxMTEsMTMgQEAgc3RhdGljIHZvaWQgc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAgCVBPU1RJTkdfUkVBRChQTEFORV9TVVJGKHBpcGUsIDAp KTsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIGJvb2wgc2t5bGFrZV9wcmltYXJ5X2dldF9od19z dGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwo+ID4gKwo+ ID4gKwlyZXR1cm4gSTkxNV9SRUFEKFBMQU5FX0NUTChwbGFuZS0+cGlwZSwgMCkpICYgUExBTkVf Q1RMX0VOQUJMRTsKPiA+ICt9Cj4gPiArCj4gPiAgLyogQXNzdW1lIGZiIG9iamVjdCBpcyBwaW5u ZWQgJiBpZGxlICYgZmVuY2VkIGFuZCBqdXN0IHVwZGF0ZSBiYXNlIHBvaW50ZXJzICovCj4gPiAg c3RhdGljIGludAo+ID4gIGludGVsX3BpcGVfc2V0X2Jhc2VfYXRvbWljKHN0cnVjdCBkcm1fY3J0 YyAqY3J0Yywgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gPiBAQCAtOTg2Miw2ICs5ODc2 LDEzIEBAIHN0YXRpYyB2b2lkIGk4NDVfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsIHUzMiBiYXNlKQo+ID4gIAl9Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyBib29sIGk4NDVf Y3Vyc29yX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ID4gK3sKPiA+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFz ZS5kZXYpOwo+ID4gKwo+ID4gKwlyZXR1cm4gSTkxNV9SRUFEKF9DVVJBQ05UUikgJiBDVVJTT1Jf RU5BQkxFOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9jdXJzb3Io c3RydWN0IGRybV9jcnRjICpjcnRjLCB1MzIgYmFzZSkKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gPiBAQCAtOTkwOSw2ICs5OTMwLDEzIEBAIHN0YXRp YyB2b2lkIGk5eHhfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUzMiBiYXNl KQo+ID4gIAlpbnRlbF9jcnRjLT5jdXJzb3JfYmFzZSA9IGJhc2U7Cj4gPiAgfQo+ID4gIAo+ID4g K3N0YXRpYyBib29sIGk5eHhfY3Vyc29yX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUg KnBsYW5lKQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwo+ID4gKwo+ID4gKwlyZXR1cm4gSTkxNV9SRUFEKENV UkNOVFIocGxhbmUtPnBpcGUpKSAmIENVUlNPUl9NT0RFOwo+ID4gK30KPiA+ICsKPiA+ICAvKiBJ ZiBuby1wYXJ0IG9mIHRoZSBjdXJzb3IgaXMgdmlzaWJsZSBvbiB0aGUgZnJhbWVidWZmZXIsIHRo ZW4gdGhlIEdQVSBtYXkgaGFuZy4uLiAqLwo+ID4gIHN0YXRpYyB2b2lkIGludGVsX2NydGNfdXBk YXRlX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAgCQkJCSAgICAgYm9vbCBvbikK PiA+IEBAIC0xMzUxOCwxMiArMTM1NDYsMTcgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmlu dGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiAgCX0K PiA+ICAJcHJpbWFyeS0+cGlwZSA9IHBpcGU7Cj4gPiAgCXByaW1hcnktPnBsYW5lID0gcGlwZTsK PiA+ICsJaWYgKEhBU19GQkMoZGV2KSAmJiBJTlRFTF9JTkZPKGRldiktPmdlbiA8IDQpCj4gPiAr CQlwcmltYXJ5LT5wbGFuZSA9ICFwaXBlOwo+ID4gIAlwcmltYXJ5LT5mcm9udGJ1ZmZlcl9iaXQg PSBJTlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZKHBpcGUpOwo+ID4gIAlwcmltYXJ5LT5jaGVja19w bGFuZSA9IGludGVsX2NoZWNrX3ByaW1hcnlfcGxhbmU7Cj4gPiAgCXByaW1hcnktPmNvbW1pdF9w bGFuZSA9IGludGVsX2NvbW1pdF9wcmltYXJ5X3BsYW5lOwo+ID4gIAlwcmltYXJ5LT5kaXNhYmxl X3BsYW5lID0gaW50ZWxfZGlzYWJsZV9wcmltYXJ5X3BsYW5lOwo+ID4gLQlpZiAoSEFTX0ZCQyhk ZXYpICYmIElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNCkKPiA+IC0JCXByaW1hcnktPnBsYW5lID0g IXBpcGU7Cj4gPiArCj4gPiArCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KQo+ID4gKwkJ cHJpbWFyeS0+Z2V0X2h3X3N0YXRlID0gc2t5bGFrZV9wcmltYXJ5X2dldF9od19zdGF0ZTsKPiA+ ICsJZWxzZQo+ID4gKwkJcHJpbWFyeS0+Z2V0X2h3X3N0YXRlID0gaTl4eF9wcmltYXJ5X2dldF9o d19zdGF0ZTsKPiA+ICAKPiA+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKPiA+ ICAJCWludGVsX3ByaW1hcnlfZm9ybWF0cyA9IHNrbF9wcmltYXJ5X2Zvcm1hdHM7Cj4gPiBAQCAt MTM2NzksNiArMTM3MTIsMTEgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX2N1cnNv cl9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJY3Vyc29yLT5jb21t aXRfcGxhbmUgPSBpbnRlbF9jb21taXRfY3Vyc29yX3BsYW5lOwo+ID4gIAljdXJzb3ItPmRpc2Fi bGVfcGxhbmUgPSBpbnRlbF9kaXNhYmxlX2N1cnNvcl9wbGFuZTsKPiA+ICAKPiA+ICsJaWYgKElT Xzg0NUcoZGV2KSB8fCBJU19JODY1RyhkZXYpKQo+ID4gKwkJY3Vyc29yLT5nZXRfaHdfc3RhdGUg PSBpODQ1X2N1cnNvcl9nZXRfaHdfc3RhdGU7Cj4gPiArCWVsc2UKPiA+ICsJCWN1cnNvci0+Z2V0 X2h3X3N0YXRlID0gaTl4eF9jdXJzb3JfZ2V0X2h3X3N0YXRlOwo+ID4gKwo+ID4gIAlkcm1fdW5p dmVyc2FsX3BsYW5lX2luaXQoZGV2LCAmY3Vyc29yLT5iYXNlLCAwLAo+ID4gIAkJCQkgJmludGVs X3BsYW5lX2Z1bmNzLAo+ID4gIAkJCQkgaW50ZWxfY3Vyc29yX2Zvcm1hdHMsCj4gPiBAQCAtMTQ4 ODYsNyArMTQ5MjQsMTEgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfY3J0YyhzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YykKPiA+ICAKPiA+ICAJCS8qIERpc2FibGUgZXZlcnl0aGluZyBidXQg dGhlIHByaW1hcnkgcGxhbmUgKi8KPiA+ICAJCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMo ZGV2LCBjcnRjLCBwbGFuZSkgewo+ID4gLQkJCWlmIChwbGFuZS0+YmFzZS50eXBlID09IERSTV9Q TEFORV9UWVBFX1BSSU1BUlkpCj4gPiArCQkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0 ZSA9Cj4gPiArCQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5iYXNlLnN0YXRlKTsKPiA+ ICsKPiA+ICsJCQlpZiAocGxhbmUtPmJhc2UudHlwZSA9PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZ IHx8Cj4gPiArCQkJICAgICFzdGF0ZS0+dmlzaWJsZSkKPiA+ICAJCQkJY29udGludWU7Cj4gPiAg Cj4gPiAgCQkJcGxhbmUtPmRpc2FibGVfcGxhbmUoJnBsYW5lLT5iYXNlLCAmY3J0Yy0+YmFzZSk7 Cj4gPiBAQCAtMTUwNTMsMjEgKzE1MDk1LDE4IEBAIHZvaWQgaTkxNV9yZWRpc2FibGVfdmdhKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCWk5MTVfcmVkaXNhYmxlX3ZnYV9wb3dlcl9vbihk ZXYpOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgYm9vbCBwcmltYXJ5X2dldF9od19zdGF0ZShz dHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ID4gLXsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwo+ID4gLQo+ID4gLQly ZXR1cm4gSTkxNV9SRUFEKERTUENOVFIocGxhbmUtPnBsYW5lKSkgJiBESVNQTEFZX1BMQU5FX0VO QUJMRTsKPiA+IC19Cj4gPiAtCj4gPiAgLyogRklYTUUgcmVhZCBvdXQgZnVsbCBwbGFuZSBzdGF0 ZSBmb3IgYWxsIHBsYW5lcyAqLwo+ID4gIHN0YXRpYyB2b2lkIHJlYWRvdXRfcGxhbmVfc3RhdGUo c3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gPiAgewo+ID4gLQlzdHJ1Y3QgaW50ZWxfcGxhbmVf c3RhdGUgKnBsYW5lX3N0YXRlID0KPiA+IC0JCXRvX2ludGVsX3BsYW5lX3N0YXRlKGNydGMtPmJh c2UucHJpbWFyeS0+c3RhdGUpOwo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ YmFzZS5kZXY7Cj4gPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Cj4gPiAgCj4gPiAtCXBs YW5lX3N0YXRlLT52aXNpYmxlID0KPiA+IC0JCXByaW1hcnlfZ2V0X2h3X3N0YXRlKHRvX2ludGVs X3BsYW5lKGNydGMtPmJhc2UucHJpbWFyeSkpOwo+ID4gKwlmb3JfZWFjaF9pbnRlbF9wbGFuZV9v bl9jcnRjKGRldiwgY3J0YywgcGxhbmUpIHsKPiA+ICsJCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0 ZSAqc3RhdGUgPQo+ID4gKwkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5iYXNlLnN0YXRl KTsKPiA+ICsKPiA+ICsJCXN0YXRlLT52aXNpYmxlID0gcGxhbmUtPmdldF9od19zdGF0ZShwbGFu ZSk7Cj4gPiArCX0KPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9y ZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ID4gaW5kZXggNDY0ODRlNC4uNjRkNmQ5MCAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTYyOCw2ICs2MjgsNyBAQCBzdHJ1Y3QgaW50ZWxfcGxh bmUgewo+ID4gIAkJCSAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpOwo+ID4gIAl2 b2lkICgqY29tbWl0X3BsYW5lKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ICAJCQkgICAg IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpOwo+ID4gKwlib29sICgqZ2V0X2h3X3N0 YXRlKShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKTsKPiA+ICB9Owo+ID4gIAo+ID4gIHN0cnVj dCBpbnRlbF93YXRlcm1hcmtfcGFyYW1zIHsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jCj4gPiBpbmRleCBjYTdlMjY0Li44YjJjNzQ0IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jCj4gPiBAQCAtMjkwLDYgKzI5MCwxNSBAQCBza2xfZGlzYWJsZV9wbGFu ZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiA+ICAJ aW50ZWxfdXBkYXRlX3Nwcml0ZV93YXRlcm1hcmtzKGRwbGFuZSwgY3J0YywgMCwgMCwgMCwgZmFs c2UsIGZhbHNlKTsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIGJvb2wKPiA+ICtza2xfcGxhbmVf Z2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gPiArewo+ID4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7 Cj4gPiArCj4gPiArCXJldHVybiBJOTE1X1JFQUQoUExBTkVfQ1RMKHBsYW5lLT5waXBlLAo+ID4g KwkJCQkgICBwbGFuZS0+cGxhbmUgKyAxKSkgJiBQTEFORV9DVExfRU5BQkxFOwo+ID4gK30KPiA+ ICsKPiA+ICBzdGF0aWMgdm9pZAo+ID4gIGNodl91cGRhdGVfY3NjKHN0cnVjdCBpbnRlbF9wbGFu ZSAqaW50ZWxfcGxhbmUsIHVpbnQzMl90IGZvcm1hdCkKPiA+ICB7Cj4gPiBAQCAtNDY5LDYgKzQ3 OCwxNCBAQCB2bHZfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsIHN0cnVj dCBkcm1fY3J0YyAqY3J0YykKPiA+ICAJUE9TVElOR19SRUFEKFNQU1VSRihwaXBlLCBwbGFuZSkp Owo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgYm9vbAo+ID4gK3Zsdl9wbGFuZV9nZXRfaHdfc3Rh dGUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiA+ICsKPiA+ ICsJcmV0dXJuIEk5MTVfUkVBRChTUENOVFIocGxhbmUtPnBpcGUsIHBsYW5lLT5wbGFuZSkpICYg U1BfRU5BQkxFOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgdm9pZAo+ID4gIGl2Yl91cGRhdGVf cGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ ICAJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+IEBAIC02MTEsNiArNjI4LDE0IEBA IGl2Yl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpCj4gPiAgCVBPU1RJTkdfUkVBRChTUFJTVVJGKHBpcGUpKTsKPiA+ICB9Cj4gPiAg Cj4gPiArc3RhdGljIGJvb2wKPiA+ICtpdmJfcGxhbmVfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRl bF9wbGFuZSAqcGxhbmUpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gPiArCj4gPiArCXJldHVybiBJOTE1 X1JFQUQoU1BSQ1RMKHBsYW5lLT5waXBlKSkgJiBTUFJJVEVfRU5BQkxFOwo+ID4gK30KPiA+ICsK PiA+ICBzdGF0aWMgdm9pZAo+ID4gIGlsa191cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiwKPiA+IEBAIC03MzksNiArNzY0LDE0IEBAIGlsa19kaXNhYmxlX3BsYW5lKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiAgCVBPU1RJTkdf UkVBRChEVlNTVVJGKHBpcGUpKTsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIGJvb2wKPiA+ICtp bGtfcGxhbmVfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gPiArewo+ ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5i YXNlLmRldik7Cj4gPiArCj4gPiArCXJldHVybiBJOTE1X1JFQUQoRFZTQ05UUihwbGFuZS0+cGlw ZSkpICYgRFZTX0VOQUJMRTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIGludAo+ID4gIGludGVs X2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ICAJCQkgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiBAQCAtMTA3NSw2ICsxMTA4LDcg QEAgaW50ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlw ZSwgaW50IHBsYW5lKQo+ID4gIAkJaW50ZWxfcGxhbmUtPm1heF9kb3duc2NhbGUgPSAxNjsKPiA+ ICAJCWludGVsX3BsYW5lLT51cGRhdGVfcGxhbmUgPSBpbGtfdXBkYXRlX3BsYW5lOwo+ID4gIAkJ aW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUgPSBpbGtfZGlzYWJsZV9wbGFuZTsKPiA+ICsJCWlu dGVsX3BsYW5lLT5nZXRfaHdfc3RhdGUgPSBpbGtfcGxhbmVfZ2V0X2h3X3N0YXRlOwo+ID4gIAo+ ID4gIAkJaWYgKElTX0dFTjYoZGV2KSkgewo+ID4gIAkJCXBsYW5lX2Zvcm1hdHMgPSBzbmJfcGxh bmVfZm9ybWF0czsKPiA+IEBAIC0xMDk4LDEyICsxMTMyLDE0IEBAIGludGVsX3BsYW5lX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKPiA+ICAJ CWlmIChJU19WQUxMRVlWSUVXKGRldikpIHsKPiA+ICAJCQlpbnRlbF9wbGFuZS0+dXBkYXRlX3Bs YW5lID0gdmx2X3VwZGF0ZV9wbGFuZTsKPiA+ICAJCQlpbnRlbF9wbGFuZS0+ZGlzYWJsZV9wbGFu ZSA9IHZsdl9kaXNhYmxlX3BsYW5lOwo+ID4gKwkJCWludGVsX3BsYW5lLT5nZXRfaHdfc3RhdGUg PSB2bHZfcGxhbmVfZ2V0X2h3X3N0YXRlOwo+ID4gIAo+ID4gIAkJCXBsYW5lX2Zvcm1hdHMgPSB2 bHZfcGxhbmVfZm9ybWF0czsKPiA+ICAJCQludW1fcGxhbmVfZm9ybWF0cyA9IEFSUkFZX1NJWkUo dmx2X3BsYW5lX2Zvcm1hdHMpOwo+ID4gIAkJfSBlbHNlIHsKPiA+ICAJCQlpbnRlbF9wbGFuZS0+ dXBkYXRlX3BsYW5lID0gaXZiX3VwZGF0ZV9wbGFuZTsKPiA+ICAJCQlpbnRlbF9wbGFuZS0+ZGlz YWJsZV9wbGFuZSA9IGl2Yl9kaXNhYmxlX3BsYW5lOwo+ID4gKwkJCWludGVsX3BsYW5lLT5nZXRf aHdfc3RhdGUgPSBpdmJfcGxhbmVfZ2V0X2h3X3N0YXRlOwo+ID4gIAo+ID4gIAkJCXBsYW5lX2Zv cm1hdHMgPSBzbmJfcGxhbmVfZm9ybWF0czsKPiA+ICAJCQludW1fcGxhbmVfZm9ybWF0cyA9IEFS UkFZX1NJWkUoc25iX3BsYW5lX2Zvcm1hdHMpOwo+ID4gQEAgLTExMTMsNiArMTE0OSw3IEBAIGlu dGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGlu dCBwbGFuZSkKPiA+ICAJCWludGVsX3BsYW5lLT5jYW5fc2NhbGUgPSB0cnVlOwo+ID4gIAkJaW50 ZWxfcGxhbmUtPnVwZGF0ZV9wbGFuZSA9IHNrbF91cGRhdGVfcGxhbmU7Cj4gPiAgCQlpbnRlbF9w bGFuZS0+ZGlzYWJsZV9wbGFuZSA9IHNrbF9kaXNhYmxlX3BsYW5lOwo+ID4gKwkJaW50ZWxfcGxh bmUtPmdldF9od19zdGF0ZSA9IHNrbF9wbGFuZV9nZXRfaHdfc3RhdGU7Cj4gPiAgCQlzdGF0ZS0+ c2NhbGVyX2lkID0gLTE7Cj4gPiAgCj4gPiAgCQlwbGFuZV9mb3JtYXRzID0gc2tsX3BsYW5lX2Zv cm1hdHM7Cj4gPiAtLSAKPiA+IDIuNC42Cj4gPiAKPiA+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiBJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gCj4gLS0gCj4gRGFuaWVsIFZldHRl cgo+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+IGh0dHA6Ly9ibG9nLmZm d2xsLmNoCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=