From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/3] drm/connector: Add generic underscan properties Date: Mon, 7 May 2018 18:01:44 +0300 Message-ID: <20180507150144.GE23723@intel.com> References: <20180507144434.20466-1-boris.brezillon@bootlin.com> <20180507144434.20466-2-boris.brezillon@bootlin.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180507144434.20466-2-boris.brezillon-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Boris Brezillon Cc: David Airlie , nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Eric Anholt , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Alex Deucher , Christian =?iso-8859-1?Q?K=F6nig?= , Ben Skeggs List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBNYXkgMDcsIDIwMTggYXQgMDQ6NDQ6MzJQTSArMDIwMCwgQm9yaXMgQnJlemlsbG9u IHdyb3RlOgo+IFdlIGhhdmUgMyBkcml2ZXJzIGRlZmluaW5nIHRoZSAidW5kZXJzY2FuIiwgInVu ZGVyc2NhbiBoYm9yZGVyIiBhbmQKPiAidW5kZXJzY2FuIHZib3JkZXIiIHByb3BlcnRpZXMgKHJh ZGVvbiwgYW1kIGFuZCBub3V2ZWF1KSBhbmQgd2UgYXJlCj4gYWJvdXQgdG8gYWRkIHRoZSBzYW1l IGtpbmQgb2YgdGhpbmcgaW4gVkM0Lgo+IAo+IERlZmluZSBnZW5lcmljIHVuZGVyc2NhbiBwcm9w cyBhbmQgYWRkIG5ldyBmaWVsZHMgdG8gdGhlIGRybV9jb25uZWN0b3IKPiBzdGF0ZSBzbyB0aGF0 IHRoZSBwcm9wZXJ0eSBwYXJzaW5nIGxvZ2ljIGNhbiBiZSBzaGFyZWQgYnkgYWxsIERSTQo+IGRy aXZlcnMuCj4gCj4gQSBkcml2ZXIgY2FuIG5vdyBhdHRhY2ggdW5kZXJzY2FuIHByb3BlcnRpZXMg dG8gaXRzIGNvbm5lY3RvciB0aHJvdWdoCj4gdGhlIGRybV9jb25uZWN0b3JfYXR0YWNoX3VuZGVy c2Nhbl9wcm9wZXJ0aWVzKCkgaGVscGVyLCBhbmQgY2FuCj4gY2hlY2svYXBwbHkgdGhlIHVuZGVy c2NhbiBzZXR1cCBiYXNlZCBvbiB0aGUKPiBkcm1fY29ubmVjdG9yX3N0YXRlLT51bmRlcnNjYW4g ZmllbGRzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemls bG9uQGJvb3RsaW4uY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAg IHwgIDEyICsrKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyB8IDEyMCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGluY2x1ZGUvZHJtL2RybV9j b25uZWN0b3IuaCAgICAgfCAgNzggKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgMyBmaWxl cyBjaGFuZ2VkLCAyMTAgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+IGluZGV4 IGRjODUwYjRiNmUyMS4uYjczMTJiZDE3MmM5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gQEAg LTEyNzgsNiArMTI3OCwxMiBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfY29ubmVjdG9yX3NldF9w cm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCQlyZXR1cm4gLUVJ TlZBTDsKPiAgCQl9Cj4gIAkJc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlvbiA9IHZhbDsKPiArCX0g ZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT51bmRlcnNjYW5fbW9kZV9wcm9wZXJ0eSkg ewo+ICsJCXN0YXRlLT51bmRlcnNjYW4ubW9kZSA9IHZhbDsKPiArCX0gZWxzZSBpZiAocHJvcGVy dHkgPT0gY29ubmVjdG9yLT51bmRlcnNjYW5faGJvcmRlcl9wcm9wZXJ0eSkgewo+ICsJCXN0YXRl LT51bmRlcnNjYW4uaGJvcmRlciA9IHZhbDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29u bmVjdG9yLT51bmRlcnNjYW5fdmJvcmRlcl9wcm9wZXJ0eSkgewo+ICsJCXN0YXRlLT51bmRlcnNj YW4udmJvcmRlciA9IHZhbDsKPiAgCX0gZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRvbWlj X3NldF9wcm9wZXJ0eSkgewo+ICAJCXJldHVybiBjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0 X3Byb3BlcnR5KGNvbm5lY3RvciwKPiAgCQkJCXN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKPiBAQCAt MTM1OSw2ICsxMzY1LDEyIEBAIGRybV9hdG9taWNfY29ubmVjdG9yX2dldF9wcm9wZXJ0eShzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCSp2YWwgPSBzdGF0ZS0+c2NhbGluZ19t b2RlOwo+ICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPmNvbnRlbnRfcHJvdGVj dGlvbl9wcm9wZXJ0eSkgewo+ICAJCSp2YWwgPSBzdGF0ZS0+Y29udGVudF9wcm90ZWN0aW9uOwo+ ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPnVuZGVyc2Nhbl9tb2RlX3Byb3Bl cnR5KSB7Cj4gKwkJKnZhbCA9IHN0YXRlLT51bmRlcnNjYW4ubW9kZTsKPiArCX0gZWxzZSBpZiAo cHJvcGVydHkgPT0gY29ubmVjdG9yLT51bmRlcnNjYW5faGJvcmRlcl9wcm9wZXJ0eSkgewo+ICsJ CSp2YWwgPSBzdGF0ZS0+dW5kZXJzY2FuLmhib3JkZXI7Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5 ID09IGNvbm5lY3Rvci0+dW5kZXJzY2FuX3Zib3JkZXJfcHJvcGVydHkpIHsKPiArCQkqdmFsID0g c3RhdGUtPnVuZGVyc2Nhbi52Ym9yZGVyOwo+ICAJfSBlbHNlIGlmIChjb25uZWN0b3ItPmZ1bmNz LT5hdG9taWNfZ2V0X3Byb3BlcnR5KSB7Cj4gIAkJcmV0dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmF0 b21pY19nZXRfcHJvcGVydHkoY29ubmVjdG9yLAo+ICAJCQkJc3RhdGUsIHByb3BlcnR5LCB2YWwp Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+IGluZGV4IGRmYzhjYTFlOTQxMy4uOTkzNzM5MGI4 YTI1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gQEAgLTkxNCw2ICs5MTQsMzEgQEAg RFJNX0VOVU1fTkFNRV9GTihkcm1fZ2V0X2NvbnRlbnRfcHJvdGVjdGlvbl9uYW1lLCBkcm1fY3Bf ZW51bV9saXN0KQo+ICAgKgljYW4gYWxzbyBleHBvc2UgdGhpcyBwcm9wZXJ0eSB0byBleHRlcm5h bCBvdXRwdXRzLCBpbiB3aGljaCBjYXNlIHRoZXkKPiAgICoJbXVzdCBzdXBwb3J0ICJOb25lIiwg d2hpY2ggc2hvdWxkIGJlIHRoZSBkZWZhdWx0IChzaW5jZSBleHRlcm5hbCBzY3JlZW5zCj4gICAq CWhhdmUgYSBidWlsdC1pbiBzY2FsZXIpLgo+ICsgKgo+ICsgKiB1bmRlcnNjYW46Cj4gKyAqCVRo aXMgcHJvcGVydGllcyBkZWZpbmVzIHdoZXRoZXIgdW5kZXJzY2FuIGlzIGFjdGl2YXRlZCBvciBu b3QsIGFuZCB3aGVuCj4gKyAqCWl0IGlzIGFjdGl2YXRlZCwgaG93IHRoZSBob3Jpem9udGFsIGFu ZCB2ZXJ0aWNhbCBib3JkZXJzIGFyZSBjYWxjdWxhdGVkOgo+ICsgKgo+ICsgKglvZmY6Cj4gKyAq CQlVbmRlcnNjYW4gaXMgZGlzYWJsZWQuIFRoZSBvdXRwdXQgaW1hZ2Ugc2hvdWxkbid0IGJlIHNj YWxlZCB0bwo+ICsgKgkJdGFrZSBzY3JlZW4gYm9yZGVycyBpbnRvIGFjY291bnQuCgo+ICsgKglv bjoKPiArICoJCVVuZGVyc2NhbiBpcyBhY3RpdmF0ZWQgYW5kIGhvcml6b250YWwgYW5kIHZlcnRp Y2FsIGJvcmRlcnMgYXJlCj4gKyAqCQlzcGVjaWZpZWQgdGhyb3VnaCB0aGUgInVuZGVyc2NhbiBo Ym9yZGVyIiBhbmQKPiArICoJCSJ1bmRlcnNjYW4gdmJvcmRlciIgcHJvcGVydGllcy4KCkhvdyBp cyB0aGUgb3V0cHV0IHNjYWxlZD8gV2hhdCBkb2VzIHRoZSB1c2VyIG1vZGUgaGRpc3BsYXkvdmRp c3BsYXkgbWVhbgppbiB0aGlzIGNhc2U/IFdoYXQgaWYgSSB3YW50IHVuZGVyc2NhbiB3aXRob3V0 IHNjYWxpbmc/Cgo+ICsgKglhdXRvOgo+ICsgKgkJVW5kZXJzY2FuIGlzIGFjdGl2YXRlZCBhbmQg aG9yaXpvbnRhbCBhbmQgdmVydGljYWwgYm9yZGVycyBhcmUKPiArICoJCWF1dG9tYXRpY2FsbHkg Y2hvc2VuIGJ5IHRoZSBkcml2ZXIuCgpTZWVtcyBvdmVybHkgdmFndWUgdG8gYmUgdXNlZnVsLiBZ b3UgZGlkbid0IGV2ZW4gc2VlbSB0byBpbXBsZW1lbnQgaXQKZm9yIHZjNC4KCj4gKyAqCj4gKyAq IHVuZGVyc2NhbiBoYm9yZGVyOgo+ICsgKglIb3Jpem9udGFsIGJvcmRlciBleHByZXNzZWQgaW4g cGl4ZWxzLiBUaGUgYm9yZGVyIGlzIHN5bW1ldHJpYywgd2hpY2gKPiArICoJbWVhbnMgeW91J2xs IGhhdmUgaGFsZiBvZiB0aGlzIHZhbHVlIHBsYWNlZCBvbiB0aGUgbGVmdCBhbmQgdGhlIG90aGVy Cj4gKyAqCWhhbGYgb24gdGhlIHJpZ2h0LgoKU2VlbXMgbGlrZSBhIHNsaWdodGx5IG9kZCB3YXkg dG8gc3BlY2lmeSB0aGlzLiBJIHRoaW5rIGZvciB0aGUgVFYgbWFyZ2lucwp3ZSBoYXZlIG9uZSB2 YWx1ZSBmb3IgZWFjaCBlZGdlLgoKPiArICoKPiArICogdW5kZXJzY2FuIHZib3JkZXI6Cj4gKyAq CVZlcnRpY2FsIGJvcmRlciBleHByZXNzZWQgaW4gcGl4ZWxzLiBUaGUgYm9yZGVyIGlzIHN5bW1l dHJpYywgd2hpY2gKPiArICoJbWVhbnMgeW91J2xsIGhhdmUgaGFsZiBvZiB0aGlzIHZhbHVlIHBs YWNlZCBvbiB0aGUgdG9wIGFuZCB0aGUgb3RoZXIKPiArICoJaGFsZiBvbiB0aGUgYm90dG9tLgo+ ICAgKi8KPiAgCj4gIGludCBkcm1fY29ubmVjdG9yX2NyZWF0ZV9zdGFuZGFyZF9wcm9wZXJ0aWVz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gQEAgLTExMDgsNiArMTEzMywxMDEgQEAgaW50IGRy bV9tb2RlX2NyZWF0ZV90dl9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIH0K PiAgRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9jcmVhdGVfdHZfcHJvcGVydGllcyk7Cj4gIAo+ICtz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCBkcm1fdW5kZXJzY2FuX21vZGVf ZW51bV9saXN0W10gPSB7Cj4gKwl7IERSTV9VTkRFUlNDQU5fT0ZGLCAib2ZmIiB9LAo+ICsJeyBE Uk1fVU5ERVJTQ0FOX09OLCAib24iIH0sCj4gKwl7IERSTV9VTkRFUlNDQU5fQVVUTywgImF1dG8i IH0sCj4gK307Cj4gKwo+ICsvKioKPiArICogZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfdW5kZXJzY2Fu X3Byb3BlcnRpZXMgLSBhdHRhY2ggYXRvbWljIHVuZGVyc2Nhbgo+ICsgKgkJCQkJICAgICAgIHBy b3BlcnRpZXMKPiArICogQGNvbm5lY3RvcjogY29ubmVjdG9yIHRvIGF0dGFjaCB1bmRlcnNjYW4g bW9kZSBwcm9wZXJ0aWVzIG9uLgo+ICsgKiBAbW9kZV9tYXNrOiBiaXRtYXNrIG9mICVEUk1fVU5E RVJTQ0FOX1hYIG1vZGVzIGVuY29kaW5nIHRoZSBzdXBwb3J0ZWQKPiArICoJICAgICAgIHVuZGVy c2NhbiBtb2Rlcy4KPiArICogQG1heF9oYm9yZGVyOiBtYXhpbXVtIHNpemUgb2YgdGhlIGhvcml6 b250YWwgYm9yZGVyIGV4cHJlc3NlZCBpbiBwaXhlbHMuCj4gKyAqCQkgU2hvdWxkIGJlID4gMC4K PiArICogQG1heF92Ym9yZGVyOiBtYXhpbXVtIHNpemUgb2YgdGhlIHZlcnRpY2FsIGJvcmRlciBl eHByZXNzZWQgaW4gcGl4ZWxzLgo+ICsgKgkJIFNob3VsZCBiZSA+IDAuCj4gKyAqCj4gKyAqIFRo aXMgaXMgdXNlZCB0byBhZGQgc3VwcG9ydCBmb3IgdW5kZXJzY2FuIHRvIGF0b21pYyBkcml2ZXJz Lgo+ICsgKiBUaGUgdW5kZXJzY2FuIGNvbmZpZyB3aWxsIGJlIHNldCB0byAmZHJtX2Nvbm5lY3Rv cl9zdGF0ZS51bmRlcnNjYW4KPiArICogYW5kIGNhbiBiZSB1c2VkIGZyb20gJmRybV9jb25uZWN0 b3JfaGVscGVyX2Z1bmNzLT5hdG9taWNfY2hlY2sgZm9yCj4gKyAqIHZhbGlkYXRpb24uCj4gKyAq Cj4gKyAqIFJldHVybnM6Cj4gKyAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gb24g ZmFpbHVyZS4KPiArICovCj4gK2ludCBkcm1fY29ubmVjdG9yX2F0dGFjaF91bmRlcnNjYW5fcHJv cGVydGllcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCQkJCSAgICAgIHUz MiBtb2RlX21hc2ssIHU2NCBtYXhfaGJvcmRlciwKPiArCQkJCQkgICAgICB1NjQgbWF4X3Zib3Jk ZXIpCj4gK3sKPiArCXVuc2lnbmVkIGludCBpLCBubW9kZXMgPSBBUlJBWV9TSVpFKGRybV91bmRl cnNjYW5fbW9kZV9lbnVtX2xpc3QpOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5l Y3Rvci0+ZGV2Owo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsKPiArCj4gKwlpZiAoIW1h eF9oYm9yZGVyIHx8ICFtYXhfdmJvcmRlcikKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwlp ZiAoIWh3ZWlnaHQzMihtb2RlX21hc2spIHx8IChtb2RlX21hc2sgJiB+R0VOTUFTSyhubW9kZXMg LSAxLCAwKSkpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJcHJvcCA9IGRybV9wcm9wZXJ0 eV9jcmVhdGUoZGV2LCBEUk1fTU9ERV9QUk9QX0VOVU0sICJ1bmRlcnNjYW4iLAo+ICsJCQkJICAg aHdlaWdodDMyKG1vZGVfbWFzaykpOwo+ICsJaWYgKCFwcm9wKQo+ICsJCXJldHVybiAtRU5PTUVN Owo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRybV91bmRlcnNjYW5fbW9kZV9l bnVtX2xpc3QpOyBpKyspIHsKPiArCQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9saXN0ICpl bnRyeTsKPiArCQlpbnQgcmV0Owo+ICsKPiArCQlpZiAoIShCSVQoaSkgJiBtb2RlX21hc2spKQo+ ICsJCQljb250aW51ZTsKPiArCj4gKwkJZW50cnkgPSAmZHJtX3VuZGVyc2Nhbl9tb2RlX2VudW1f bGlzdFtpXTsKPiArCQlyZXQgPSBkcm1fcHJvcGVydHlfYWRkX2VudW0ocHJvcCwgZW50cnktPnR5 cGUsIGVudHJ5LT5uYW1lKTsKPiArCQlpZiAocmV0KQo+ICsJCQlnb3RvIGVycl9mcmVlX21vZGVf cHJvcDsKPiArCX0KPiArCj4gKwljb25uZWN0b3ItPnVuZGVyc2Nhbl9tb2RlX3Byb3BlcnR5ID0g cHJvcDsKPiArCj4gKwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9yYW5nZShkZXYsIDAsICJ1 bmRlcnNjYW4gaGJvcmRlciIsIDAsCj4gKwkJCQkJIG1heF9oYm9yZGVyKTsKPiArCWlmICghcHJv cCkKPiArCQlnb3RvIGVycl9mcmVlX21vZGVfcHJvcDsKPiArCj4gKwljb25uZWN0b3ItPnVuZGVy c2Nhbl9oYm9yZGVyX3Byb3BlcnR5ID0gcHJvcDsKPiArCj4gKwlwcm9wID0gZHJtX3Byb3BlcnR5 X2NyZWF0ZV9yYW5nZShkZXYsIDAsICJ1bmRlcnNjYW4gdmJvcmRlciIsIDAsCj4gKwkJCQkJIG1h eF92Ym9yZGVyKTsKPiArCWlmICghcHJvcCkKPiArCQlnb3RvIGVycl9mcmVlX2hib3JkZXJfcHJv cDsKPiArCj4gKwljb25uZWN0b3ItPnVuZGVyc2Nhbl92Ym9yZGVyX3Byb3BlcnR5ID0gcHJvcDsK PiArCj4gKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAo+ICsJ CQkJICAgY29ubmVjdG9yLT51bmRlcnNjYW5fbW9kZV9wcm9wZXJ0eSwKPiArCQkJCSAgIERSTV9V TkRFUlNDQU5fT0ZGKTsKPiArCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3It PmJhc2UsCj4gKwkJCQkgICBjb25uZWN0b3ItPnVuZGVyc2Nhbl9oYm9yZGVyX3Byb3BlcnR5LCAw KTsKPiArCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCj4gKwkJ CQkgICBjb25uZWN0b3ItPnVuZGVyc2Nhbl92Ym9yZGVyX3Byb3BlcnR5LCAwKTsKPiArCj4gKwly ZXR1cm4gMDsKPiArCj4gK2Vycl9mcmVlX2hib3JkZXJfcHJvcDoKPiArCWRybV9wcm9wZXJ0eV9k ZXN0cm95KGRldiwgY29ubmVjdG9yLT51bmRlcnNjYW5faGJvcmRlcl9wcm9wZXJ0eSk7Cj4gKwlj b25uZWN0b3ItPnVuZGVyc2Nhbl9oYm9yZGVyX3Byb3BlcnR5ID0gTlVMTDsKPiArCj4gK2Vycl9m cmVlX21vZGVfcHJvcDoKPiArCWRybV9wcm9wZXJ0eV9kZXN0cm95KGRldiwgY29ubmVjdG9yLT51 bmRlcnNjYW5fbW9kZV9wcm9wZXJ0eSk7Cj4gKwljb25uZWN0b3ItPnVuZGVyc2Nhbl9tb2RlX3By b3BlcnR5ID0gTlVMTDsKPiArCj4gKwlyZXR1cm4gLUVOT01FTTsKPiArfQo+ICtFWFBPUlRfU1lN Qk9MKGRybV9jb25uZWN0b3JfYXR0YWNoX3VuZGVyc2Nhbl9wcm9wZXJ0aWVzKTsKPiArCj4gIC8q Kgo+ICAgKiBkcm1fbW9kZV9jcmVhdGVfc2NhbGluZ19tb2RlX3Byb3BlcnR5IC0gY3JlYXRlIHNj YWxpbmcgbW9kZSBwcm9wZXJ0eQo+ICAgKiBAZGV2OiBEUk0gZGV2aWNlCj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3Iu aAo+IGluZGV4IDY3NWNjM2Y4Y2Y4NS4uNDYzODBlZTZkNGVlIDEwMDY0NAo+IC0tLSBhL2luY2x1 ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3Iu aAo+IEBAIC0zNzIsNiArMzcyLDUyIEBAIHN0cnVjdCBkcm1fdHZfY29ubmVjdG9yX3N0YXRlIHsK PiAgCXVuc2lnbmVkIGludCBodWU7Cj4gIH07Cj4gIAo+ICsvKioKPiArICogZW51bSBkcm1fdW5k ZXJzY2FuX21vZGUgLSBVbmRlcnNjYW4gbW9kZQo+ICsgKgo+ICsgKiBUaGlzIGVudW0gaXMgdXNl ZCB0byB0cmFjayB0aGUgdW5kZXJzY2FuIG1vZGUuCj4gKyAqCj4gKyAqIEBEUk1fVU5ERVJTQ0FO X09GRjogTm8gdW5kZXJzY2FuIGFwcGxpZWQsIHRoZSBvdXRwdXQgaW1hZ2Ugd2lsbCBiZSB1bmNo YW5nZWQKPiArICogQERSTV9VTkRFUlNDQU5fT046IFVuZGVyc2NhbiBpcyBlbmFibGVkLCBhbmQg aG9yaXpvbnRhbC92ZXJ0aWNhbCBib3JkZXIgc2l6ZQo+ICsgKgkJICAgICAgYXJlIHNwZWNpZmll ZCB0aHJvdWdoIHRoZSAmc3RydWN0X2RybV91bmRlcnNjYW4tPmhib3JkZXIKPiArICoJCSAgICAg IGFuZCAmc3RydWN0X2RybV91bmRlcnNjYW4tPnZib3JkZXIgZmllbGRzLgo+ICsgKiBARFJNX1VO REVSU0NBTl9BVVRPOiBVbmRlcnNjYW4gaXMgZW5hYmxlZCBhbmQgJnN0cnVjdF9kcm1fdW5kZXJz Y2FuLT5oYm9yZGVyCj4gKyAqCQkJYW5kICZzdHJ1Y3RfZHJtX3VuZGVyc2Nhbi0+dmJvcmRlciBh cmUgZ3Vlc3NlZCBieSB0aGUKPiArICoJCQlkcml2ZXIuCj4gKyAqLwo+ICtlbnVtIGRybV91bmRl cnNjYW5fbW9kZSB7Cj4gKwlEUk1fVU5ERVJTQ0FOX09GRiwKPiArCURSTV9VTkRFUlNDQU5fT04s Cj4gKwlEUk1fVU5ERVJTQ0FOX0FVVE8sCj4gK307Cj4gKwo+ICsvKioKPiArICogc3RydWN0IGRy bV91bmRlcnNjYW4gLSBVbmRlcnNjYW4gcHJvcGVydGllcyBhdHRhY2hlZCB0byBhIGNvbm5lY3Rv ciBzdGF0ZQo+ICsgKgo+ICsgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHRlbGwgdGhlIENSVEMgaG93 IHRoZSBpbWFnZSBzaG91bGQgYmUgc2NhbGVkL3BsYWNlZCBpbgo+ICsgKiBvcmRlciB0byBjb3Zl ciBmaXQgaW4gdGhlIGRpc3BsYXkgY29ubmVjdGVkIHRocm91Z2ggdGhpcyBjb25uZWN0b3IuIE1v c3Qgb2YKPiArICogdGhlIHRpbWUgdXNlZCB0byBhZGRyZXNzIHNpdHVhdGlvbnMgd2hlcmUgdGhl IGRpc3BsYXkgYm9yZGVycyBhcmUgaGlkZGVuLgo+ICsgKiBDYW4gYWxzbyBiZSB1c2VkIHRvIGNv bXBlbnNhdGUgb3ZlcnNjYW4gZG9uZSBvbiB0aGUgZGlzcGxheSBzaWRlLgo+ICsgKi8KPiArc3Ry dWN0IGRybV91bmRlcnNjYW4gewo+ICsJLyoqCj4gKwkgKiBAbW9kZTogVW5kZXJzY2FuIG1vZGUu Cj4gKwkgKi8KPiArCWVudW0gZHJtX3VuZGVyc2Nhbl9tb2RlIG1vZGU7Cj4gKwo+ICsJLyoqCj4g KwkgKiBAaGJvcmRlcjogSG9yaXpvbnRhbCBib3JkZXIuIFRoaXMgdmFsdWVzIGVuY29kZXMgYm90 aCB0aGUgbGVmdCBhbmQKPiArCSAqIHJpZ2h0IGJvcmRlcnM6IGxlZnRfYm9yZGVyID0gcmlnaHRf Ym9yZGVyID0gaGJvcmRlciAvIDIuCj4gKwkgKi8KPiArCXVuc2lnbmVkIGludCBoYm9yZGVyOwo+ ICsKPiArCS8qKgo+ICsJICogQHZib3JkZXI6IFZlcnRpY2FsIGJvcmRlci4gVGhpcyB2YWx1ZXMg ZW5jb2RlcyBib3RoIHRoZSB0b3AgYW5kCj4gKwkgKiBib3R0b20gYm9yZGVyczogdG9wX2JvcmRl ciA9IGJvdHRvbV9ib3JkZXIgPSB2Ym9yZGVyIC8gMi4KPiArCSAqLwo+ICsJdW5zaWduZWQgaW50 IHZib3JkZXI7Cj4gK307Cj4gKwo+ICAvKioKPiAgICogc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgLSBtdXRhYmxlIGNvbm5lY3RvciBzdGF0ZQo+ICAgKiBAY29ubmVjdG9yOiBiYWNrcG9pbnRl ciB0byB0aGUgY29ubmVjdG9yCj4gQEAgLTQyOSw2ICs0NzUsMTIgQEAgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgewo+ICAJICogcHJvdGVjdGlvbi4gVGhpcyBpcyBtb3N0IGNvbW1vbmx5IHVz ZWQgZm9yIEhEQ1AuCj4gIAkgKi8KPiAgCXVuc2lnbmVkIGludCBjb250ZW50X3Byb3RlY3Rpb247 Cj4gKwo+ICsJLyoqCj4gKwkgKiBAdW5kZXJzY2FuOiBVbmRlcnNjYW4gaW5mb3JtYXRpb24uIE1v c3QgY29tbW9ubHkgdXNlZCB0byBhZGp1c3QKPiArCSAqIGltYWdlIHdoZW4gdGhlIGRpc3BsYXkg aXMgZG9pbmcgb3ZlcnNjYW4uCj4gKwkgKi8KPiArCXN0cnVjdCBkcm1fdW5kZXJzY2FuIHVuZGVy c2NhbjsKPiAgfTsKPiAgCj4gIC8qKgo+IEBAIC04OTIsNiArOTQ0LDI5IEBAIHN0cnVjdCBkcm1f Y29ubmVjdG9yIHsKPiAgCSAqLwo+ICAJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICp0aWxlX2Js b2JfcHRyOwo+ICAKPiArCS8qKgo+ICsJICogQHVuZGVyc2Nhbl9tb2RlX3Byb3BlcnR5OiBPcHRp b25hbCBjb25uZWN0b3IgdW5kZXJzY2FuIG1vZGUuIFVzZWQgYnkKPiArCSAqIHRoZSBkcml2ZXIg dG8gc2NhbGUgdGhlIG91dHB1dCBpbWFnZSBhbmQgY29tcGVuc2F0ZSBhbiBvdmVyc2NhbiBkb25l Cj4gKwkgKiBvbiB0aGUgZGlzcGxheSBzaWRlLgo+ICsJICovCj4gKwlzdHJ1Y3QgZHJtX3Byb3Bl cnR5ICp1bmRlcnNjYW5fbW9kZV9wcm9wZXJ0eTsKPiArCj4gKwkvKioKPiArCSAqIEB1bmRlcnNj YW5faGJvcmRlcl9wcm9wZXJ0eTogT3B0aW9uYWwgY29ubmVjdG9yIHVuZGVyc2NhbiBob3Jpem9u dGFsCj4gKwkgKiBib3JkZXIgKGV4cHJlc3NlZCBpbiBwaXhlbHMpLiBVc2VkIGJ5IHRoZSBkcml2 ZXIgdG8gYWRqdXN0IHRoZQo+ICsJICogb3V0cHV0IGltYWdlIHBvc2l0aW9uIGFuZCBjb21wZW5z YXRlIGFuIG92ZXJzY2FuIGRvbmUgb24gdGhlIGRpc3BsYXkKPiArCSAqIHNpZGUuCj4gKwkgKi8K PiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnVuZGVyc2Nhbl9oYm9yZGVyX3Byb3BlcnR5Owo+ICsK PiArCS8qKgo+ICsJICogQHVuZGVyc2Nhbl9oYm9yZGVyX3Byb3BlcnR5OiBPcHRpb25hbCBjb25u ZWN0b3IgdW5kZXJzY2FuIHZlcnRpY2FsCj4gKwkgKiBib3JkZXIgKGV4cHJlc3NlZCBpbiBwaXhl bHMpLiBVc2VkIGJ5IHRoZSBkcml2ZXIgdG8gYWRqdXN0IHRoZQo+ICsJICogb3V0cHV0IGltYWdl IHBvc2l0aW9uIGFuZCBjb21wZW5zYXRlIGFuIG92ZXJzY2FuIGRvbmUgb24gdGhlIGRpc3BsYXkK PiArCSAqIHNpZGUuCj4gKwkgKi8KPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnVuZGVyc2Nhbl92 Ym9yZGVyX3Byb3BlcnR5Owo+ICsKPiAgLyogc2hvdWxkIHdlIHBvbGwgdGhpcyBjb25uZWN0b3Ig Zm9yIGNvbm5lY3RzIGFuZCBkaXNjb25uZWN0cyAqLwo+ICAvKiBob3QgcGx1ZyBkZXRlY3RhYmxl ICovCj4gICNkZWZpbmUgRFJNX0NPTk5FQ1RPUl9QT0xMX0hQRCAoMSA8PCAwKQo+IEBAIC0xMDg4 LDYgKzExNjMsOSBAQCBpbnQgZHJtX21vZGVfY3JlYXRlX2R2aV9pX3Byb3BlcnRpZXMoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7Cj4gIGludCBkcm1fbW9kZV9jcmVhdGVfdHZfcHJvcGVydGllcyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJICB1bnNpZ25lZCBpbnQgbnVtX21vZGVzLAo+ ICAJCQkJICBjb25zdCBjaGFyICogY29uc3QgbW9kZXNbXSk7Cj4gK2ludCBkcm1fY29ubmVjdG9y X2F0dGFjaF91bmRlcnNjYW5fcHJvcGVydGllcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+ICsJCQkJCSAgICAgIHUzMiBtb2RlX21hc2ssIHU2NCBtYXhfaGJvcmRlciwKPiArCQkJ CQkgICAgICB1NjQgbWF4X3Zib3JkZXIpOwo+ICBpbnQgZHJtX21vZGVfY3JlYXRlX3NjYWxpbmdf bW9kZV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgaW50IGRybV9jb25uZWN0 b3JfYXR0YWNoX3NjYWxpbmdfbW9kZV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+ICAJCQkJCSAgICAgICB1MzIgc2NhbGluZ19tb2RlX21hc2spOwo+IC0tIAo+IDIu MTQuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2FtZC1nZngK