From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/3] drm/connector: Add generic underscan properties Date: Mon, 7 May 2018 17:15:33 +0200 Message-ID: <20180507151533.GD28661@phenom.ffwll.local> 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@bootlin.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Boris Brezillon Cc: David Airlie , nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, Alex Deucher , Christian =?iso-8859-1?Q?K=F6nig?= , Ben Skeggs List-Id: amd-gfx.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 CWhhdmUgYSBidWlsdC1pbiBzY2FsZXIpLgoKSSB0aGluayBhIG5ldyBzZWN0aW9uIGhlcmUgd291 bGQgYmUgZ29vZCwgdG8gbWFrZSBpdCBtb3JlIG9idmlvdXMgdGhpcyBpcwphIGdyb3VwIG9mIHBy b3BlcnRpZXMuIFBsdXMgYSByZWZlcmVuY2UgdG8KZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfdW5kZXJz Y2FuX3Byb3BlcnRpZXMoKS4KCj4gKyAqCj4gKyAqIHVuZGVyc2NhbjoKPiArICoJVGhpcyBwcm9w ZXJ0aWVzIGRlZmluZXMgd2hldGhlciB1bmRlcnNjYW4gaXMgYWN0aXZhdGVkIG9yIG5vdCwgYW5k IHdoZW4KPiArICoJaXQgaXMgYWN0aXZhdGVkLCBob3cgdGhlIGhvcml6b250YWwgYW5kIHZlcnRp Y2FsIGJvcmRlcnMgYXJlIGNhbGN1bGF0ZWQ6Cj4gKyAqCj4gKyAqCW9mZjoKPiArICoJCVVuZGVy c2NhbiBpcyBkaXNhYmxlZC4gVGhlIG91dHB1dCBpbWFnZSBzaG91bGRuJ3QgYmUgc2NhbGVkIHRv Cj4gKyAqCQl0YWtlIHNjcmVlbiBib3JkZXJzIGludG8gYWNjb3VudC4KPiArICoJb246Cj4gKyAq CQlVbmRlcnNjYW4gaXMgYWN0aXZhdGVkIGFuZCBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBib3Jk ZXJzIGFyZQo+ICsgKgkJc3BlY2lmaWVkIHRocm91Z2ggdGhlICJ1bmRlcnNjYW4gaGJvcmRlciIg YW5kCj4gKyAqCQkidW5kZXJzY2FuIHZib3JkZXIiIHByb3BlcnRpZXMuCj4gKyAqCWF1dG86Cj4g KyAqCQlVbmRlcnNjYW4gaXMgYWN0aXZhdGVkIGFuZCBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBi b3JkZXJzIGFyZQo+ICsgKgkJYXV0b21hdGljYWxseSBjaG9zZW4gYnkgdGhlIGRyaXZlci4KPiAr ICoKPiArICogdW5kZXJzY2FuIGhib3JkZXI6Cj4gKyAqCUhvcml6b250YWwgYm9yZGVyIGV4cHJl c3NlZCBpbiBwaXhlbHMuIFRoZSBib3JkZXIgaXMgc3ltbWV0cmljLCB3aGljaAo+ICsgKgltZWFu cyB5b3UnbGwgaGF2ZSBoYWxmIG9mIHRoaXMgdmFsdWUgcGxhY2VkIG9uIHRoZSBsZWZ0IGFuZCB0 aGUgb3RoZXIKPiArICoJaGFsZiBvbiB0aGUgcmlnaHQuCj4gKyAqCj4gKyAqIHVuZGVyc2NhbiB2 Ym9yZGVyOgo+ICsgKglWZXJ0aWNhbCBib3JkZXIgZXhwcmVzc2VkIGluIHBpeGVscy4gVGhlIGJv cmRlciBpcyBzeW1tZXRyaWMsIHdoaWNoCj4gKyAqCW1lYW5zIHlvdSdsbCBoYXZlIGhhbGYgb2Yg dGhpcyB2YWx1ZSBwbGFjZWQgb24gdGhlIHRvcCBhbmQgdGhlIG90aGVyCj4gKyAqCWhhbGYgb24g dGhlIGJvdHRvbS4KPiAgICovCj4gIAo+ICBpbnQgZHJtX2Nvbm5lY3Rvcl9jcmVhdGVfc3RhbmRh cmRfcHJvcGVydGllcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IEBAIC0xMTA4LDYgKzExMzMs MTAxIEBAIGludCBkcm1fbW9kZV9jcmVhdGVfdHZfcHJvcGVydGllcyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJtX21vZGVfY3JlYXRlX3R2X3Byb3BlcnRp ZXMpOwo+ICAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgZHJtX3Vu ZGVyc2Nhbl9tb2RlX2VudW1fbGlzdFtdID0gewo+ICsJeyBEUk1fVU5ERVJTQ0FOX09GRiwgIm9m ZiIgfSwKPiArCXsgRFJNX1VOREVSU0NBTl9PTiwgIm9uIiB9LAo+ICsJeyBEUk1fVU5ERVJTQ0FO X0FVVE8sICJhdXRvIiB9LAo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIGRybV9jb25uZWN0b3JfYXR0 YWNoX3VuZGVyc2Nhbl9wcm9wZXJ0aWVzIC0gYXR0YWNoIGF0b21pYyB1bmRlcnNjYW4KPiArICoJ CQkJCSAgICAgICBwcm9wZXJ0aWVzCj4gKyAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciB0byBhdHRh Y2ggdW5kZXJzY2FuIG1vZGUgcHJvcGVydGllcyBvbi4KPiArICogQG1vZGVfbWFzazogYml0bWFz ayBvZiAlRFJNX1VOREVSU0NBTl9YWCBtb2RlcyBlbmNvZGluZyB0aGUgc3VwcG9ydGVkCj4gKyAq CSAgICAgICB1bmRlcnNjYW4gbW9kZXMuCj4gKyAqIEBtYXhfaGJvcmRlcjogbWF4aW11bSBzaXpl IG9mIHRoZSBob3Jpem9udGFsIGJvcmRlciBleHByZXNzZWQgaW4gcGl4ZWxzLgo+ICsgKgkJIFNo b3VsZCBiZSA+IDAuCj4gKyAqIEBtYXhfdmJvcmRlcjogbWF4aW11bSBzaXplIG9mIHRoZSB2ZXJ0 aWNhbCBib3JkZXIgZXhwcmVzc2VkIGluIHBpeGVscy4KPiArICoJCSBTaG91bGQgYmUgPiAwLgo+ ICsgKgo+ICsgKiBUaGlzIGlzIHVzZWQgdG8gYWRkIHN1cHBvcnQgZm9yIHVuZGVyc2NhbiB0byBh dG9taWMgZHJpdmVycy4KPiArICogVGhlIHVuZGVyc2NhbiBjb25maWcgd2lsbCBiZSBzZXQgdG8g JmRybV9jb25uZWN0b3Jfc3RhdGUudW5kZXJzY2FuCj4gKyAqIGFuZCBjYW4gYmUgdXNlZCBmcm9t ICZkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcy0+YXRvbWljX2NoZWNrIGZvcgo+ICsgKiB2YWxp ZGF0aW9uLgo+ICsgKgo+ICsgKiBSZXR1cm5zOgo+ICsgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0 aXZlIGVycm5vIG9uIGZhaWx1cmUuCj4gKyAqLwo+ICtpbnQgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hf dW5kZXJzY2FuX3Byb3BlcnRpZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAr CQkJCQkgICAgICB1MzIgbW9kZV9tYXNrLCB1NjQgbWF4X2hib3JkZXIsCj4gKwkJCQkJICAgICAg dTY0IG1heF92Ym9yZGVyKQo+ICt7Cj4gKwl1bnNpZ25lZCBpbnQgaSwgbm1vZGVzID0gQVJSQVlf U0laRShkcm1fdW5kZXJzY2FuX21vZGVfZW51bV9saXN0KTsKPiArCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBjb25uZWN0b3ItPmRldjsKPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7Cj4g Kwo+ICsJaWYgKCFtYXhfaGJvcmRlciB8fCAhbWF4X3Zib3JkZXIpCj4gKwkJcmV0dXJuIC1FSU5W QUw7Cj4gKwo+ICsJaWYgKCFod2VpZ2h0MzIobW9kZV9tYXNrKSB8fCAobW9kZV9tYXNrICYgfkdF Tk1BU0sobm1vZGVzIC0gMSwgMCkpKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCXByb3Ag PSBkcm1fcHJvcGVydHlfY3JlYXRlKGRldiwgRFJNX01PREVfUFJPUF9FTlVNLCAidW5kZXJzY2Fu IiwKPiArCQkJCSAgIGh3ZWlnaHQzMihtb2RlX21hc2spKTsKPiArCWlmICghcHJvcCkKPiArCQly ZXR1cm4gLUVOT01FTTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShkcm1fdW5k ZXJzY2FuX21vZGVfZW51bV9saXN0KTsgaSsrKSB7Cj4gKwkJY29uc3Qgc3RydWN0IGRybV9wcm9w X2VudW1fbGlzdCAqZW50cnk7Cj4gKwkJaW50IHJldDsKPiArCj4gKwkJaWYgKCEoQklUKGkpICYg bW9kZV9tYXNrKSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCWVudHJ5ID0gJmRybV91bmRlcnNj YW5fbW9kZV9lbnVtX2xpc3RbaV07Cj4gKwkJcmV0ID0gZHJtX3Byb3BlcnR5X2FkZF9lbnVtKHBy b3AsIGVudHJ5LT50eXBlLCBlbnRyeS0+bmFtZSk7Cj4gKwkJaWYgKHJldCkKPiArCQkJZ290byBl cnJfZnJlZV9tb2RlX3Byb3A7Cj4gKwl9Cj4gKwo+ICsJY29ubmVjdG9yLT51bmRlcnNjYW5fbW9k ZV9wcm9wZXJ0eSA9IHByb3A7Cj4gKwo+ICsJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfcmFu Z2UoZGV2LCAwLCAidW5kZXJzY2FuIGhib3JkZXIiLCAwLAo+ICsJCQkJCSBtYXhfaGJvcmRlcik7 Cj4gKwlpZiAoIXByb3ApCj4gKwkJZ290byBlcnJfZnJlZV9tb2RlX3Byb3A7Cj4gKwo+ICsJY29u bmVjdG9yLT51bmRlcnNjYW5faGJvcmRlcl9wcm9wZXJ0eSA9IHByb3A7Cj4gKwo+ICsJcHJvcCA9 IGRybV9wcm9wZXJ0eV9jcmVhdGVfcmFuZ2UoZGV2LCAwLCAidW5kZXJzY2FuIHZib3JkZXIiLCAw LAo+ICsJCQkJCSBtYXhfdmJvcmRlcik7Cj4gKwlpZiAoIXByb3ApCj4gKwkJZ290byBlcnJfZnJl ZV9oYm9yZGVyX3Byb3A7Cj4gKwo+ICsJY29ubmVjdG9yLT51bmRlcnNjYW5fdmJvcmRlcl9wcm9w ZXJ0eSA9IHByb3A7Cj4gKwo+ICsJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rv ci0+YmFzZSwKPiArCQkJCSAgIGNvbm5lY3Rvci0+dW5kZXJzY2FuX21vZGVfcHJvcGVydHksCj4g KwkJCQkgICBEUk1fVU5ERVJTQ0FOX09GRik7Cj4gKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0 eSgmY29ubmVjdG9yLT5iYXNlLAo+ICsJCQkJICAgY29ubmVjdG9yLT51bmRlcnNjYW5faGJvcmRl cl9wcm9wZXJ0eSwgMCk7Cj4gKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9y LT5iYXNlLAo+ICsJCQkJICAgY29ubmVjdG9yLT51bmRlcnNjYW5fdmJvcmRlcl9wcm9wZXJ0eSwg MCk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gKwo+ICtlcnJfZnJlZV9oYm9yZGVyX3Byb3A6Cj4gKwlk cm1fcHJvcGVydHlfZGVzdHJveShkZXYsIGNvbm5lY3Rvci0+dW5kZXJzY2FuX2hib3JkZXJfcHJv cGVydHkpOwo+ICsJY29ubmVjdG9yLT51bmRlcnNjYW5faGJvcmRlcl9wcm9wZXJ0eSA9IE5VTEw7 Cj4gKwo+ICtlcnJfZnJlZV9tb2RlX3Byb3A6Cj4gKwlkcm1fcHJvcGVydHlfZGVzdHJveShkZXYs IGNvbm5lY3Rvci0+dW5kZXJzY2FuX21vZGVfcHJvcGVydHkpOwo+ICsJY29ubmVjdG9yLT51bmRl cnNjYW5fbW9kZV9wcm9wZXJ0eSA9IE5VTEw7Cj4gKwo+ICsJcmV0dXJuIC1FTk9NRU07Cj4gK30K PiArRVhQT1JUX1NZTUJPTChkcm1fY29ubmVjdG9yX2F0dGFjaF91bmRlcnNjYW5fcHJvcGVydGll cyk7Cj4gKwo+ICAvKioKPiAgICogZHJtX21vZGVfY3JlYXRlX3NjYWxpbmdfbW9kZV9wcm9wZXJ0 eSAtIGNyZWF0ZSBzY2FsaW5nIG1vZGUgcHJvcGVydHkKPiAgICogQGRldjogRFJNIGRldmljZQo+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggYi9pbmNsdWRlL2RybS9k cm1fY29ubmVjdG9yLmgKPiBpbmRleCA2NzVjYzNmOGNmODUuLjQ2MzgwZWU2ZDRlZSAxMDA2NDQK PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPiArKysgYi9pbmNsdWRlL2RybS9k cm1fY29ubmVjdG9yLmgKPiBAQCAtMzcyLDYgKzM3Miw1MiBAQCBzdHJ1Y3QgZHJtX3R2X2Nvbm5l Y3Rvcl9zdGF0ZSB7Cj4gIAl1bnNpZ25lZCBpbnQgaHVlOwo+ICB9Owo+ICAKPiArLyoqCj4gKyAq IGVudW0gZHJtX3VuZGVyc2Nhbl9tb2RlIC0gVW5kZXJzY2FuIG1vZGUKPiArICoKPiArICogVGhp cyBlbnVtIGlzIHVzZWQgdG8gdHJhY2sgdGhlIHVuZGVyc2NhbiBtb2RlLgo+ICsgKgo+ICsgKiBA RFJNX1VOREVSU0NBTl9PRkY6IE5vIHVuZGVyc2NhbiBhcHBsaWVkLCB0aGUgb3V0cHV0IGltYWdl IHdpbGwgYmUgdW5jaGFuZ2VkCj4gKyAqIEBEUk1fVU5ERVJTQ0FOX09OOiBVbmRlcnNjYW4gaXMg ZW5hYmxlZCwgYW5kIGhvcml6b250YWwvdmVydGljYWwgYm9yZGVyIHNpemUKPiArICoJCSAgICAg IGFyZSBzcGVjaWZpZWQgdGhyb3VnaCB0aGUgJnN0cnVjdF9kcm1fdW5kZXJzY2FuLT5oYm9yZGVy Cj4gKyAqCQkgICAgICBhbmQgJnN0cnVjdF9kcm1fdW5kZXJzY2FuLT52Ym9yZGVyIGZpZWxkcy4K PiArICogQERSTV9VTkRFUlNDQU5fQVVUTzogVW5kZXJzY2FuIGlzIGVuYWJsZWQgYW5kICZzdHJ1 Y3RfZHJtX3VuZGVyc2Nhbi0+aGJvcmRlcgo+ICsgKgkJCWFuZCAmc3RydWN0X2RybV91bmRlcnNj YW4tPnZib3JkZXIgYXJlIGd1ZXNzZWQgYnkgdGhlCj4gKyAqCQkJZHJpdmVyLgo+ICsgKi8KPiAr ZW51bSBkcm1fdW5kZXJzY2FuX21vZGUgewo+ICsJRFJNX1VOREVSU0NBTl9PRkYsCj4gKwlEUk1f VU5ERVJTQ0FOX09OLAo+ICsJRFJNX1VOREVSU0NBTl9BVVRPLAo+ICt9Owo+ICsKPiArLyoqCj4g KyAqIHN0cnVjdCBkcm1fdW5kZXJzY2FuIC0gVW5kZXJzY2FuIHByb3BlcnRpZXMgYXR0YWNoZWQg dG8gYSBjb25uZWN0b3Igc3RhdGUKPiArICoKPiArICogVGhpcyBjYW4gYmUgdXNlZCB0byB0ZWxs IHRoZSBDUlRDIGhvdyB0aGUgaW1hZ2Ugc2hvdWxkIGJlIHNjYWxlZC9wbGFjZWQgaW4KPiArICog b3JkZXIgdG8gY292ZXIgZml0IGluIHRoZSBkaXNwbGF5IGNvbm5lY3RlZCB0aHJvdWdoIHRoaXMg Y29ubmVjdG9yLiBNb3N0IG9mCj4gKyAqIHRoZSB0aW1lIHVzZWQgdG8gYWRkcmVzcyBzaXR1YXRp b25zIHdoZXJlIHRoZSBkaXNwbGF5IGJvcmRlcnMgYXJlIGhpZGRlbi4KPiArICogQ2FuIGFsc28g YmUgdXNlZCB0byBjb21wZW5zYXRlIG92ZXJzY2FuIGRvbmUgb24gdGhlIGRpc3BsYXkgc2lkZS4K PiArICovCj4gK3N0cnVjdCBkcm1fdW5kZXJzY2FuIHsKCkknZCBjYWxsIHRoaXMgZHJtX3VuZGVy c2Nhbl9zdGF0ZSwgc2ltaWxhciB0byBob3cgd2UgaGF2ZQpkcm1fdHZfY29ubmVjdG9yX3N0YXRl LgoKPiArCS8qKgo+ICsJICogQG1vZGU6IFVuZGVyc2NhbiBtb2RlLgo+ICsJICovCj4gKwllbnVt IGRybV91bmRlcnNjYW5fbW9kZSBtb2RlOwo+ICsKPiArCS8qKgo+ICsJICogQGhib3JkZXI6IEhv cml6b250YWwgYm9yZGVyLiBUaGlzIHZhbHVlcyBlbmNvZGVzIGJvdGggdGhlIGxlZnQgYW5kCj4g KwkgKiByaWdodCBib3JkZXJzOiBsZWZ0X2JvcmRlciA9IHJpZ2h0X2JvcmRlciA9IGhib3JkZXIg LyAyLgo+ICsJICovCj4gKwl1bnNpZ25lZCBpbnQgaGJvcmRlcjsKPiArCj4gKwkvKioKPiArCSAq IEB2Ym9yZGVyOiBWZXJ0aWNhbCBib3JkZXIuIFRoaXMgdmFsdWVzIGVuY29kZXMgYm90aCB0aGUg dG9wIGFuZAo+ICsJICogYm90dG9tIGJvcmRlcnM6IHRvcF9ib3JkZXIgPSBib3R0b21fYm9yZGVy ID0gdmJvcmRlciAvIDIuCj4gKwkgKi8KPiArCXVuc2lnbmVkIGludCB2Ym9yZGVyOwo+ICt9Owo+ ICsKPiAgLyoqCj4gICAqIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIC0gbXV0YWJsZSBjb25u ZWN0b3Igc3RhdGUKPiAgICogQGNvbm5lY3RvcjogYmFja3BvaW50ZXIgdG8gdGhlIGNvbm5lY3Rv cgo+IEBAIC00MjksNiArNDc1LDEyIEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIHsKPiAg CSAqIHByb3RlY3Rpb24uIFRoaXMgaXMgbW9zdCBjb21tb25seSB1c2VkIGZvciBIRENQLgo+ICAJ ICovCj4gIAl1bnNpZ25lZCBpbnQgY29udGVudF9wcm90ZWN0aW9uOwo+ICsKPiArCS8qKgo+ICsJ ICogQHVuZGVyc2NhbjogVW5kZXJzY2FuIGluZm9ybWF0aW9uLiBNb3N0IGNvbW1vbmx5IHVzZWQg dG8gYWRqdXN0Cj4gKwkgKiBpbWFnZSB3aGVuIHRoZSBkaXNwbGF5IGlzIGRvaW5nIG92ZXJzY2Fu Lgo+ICsJICovCj4gKwlzdHJ1Y3QgZHJtX3VuZGVyc2NhbiB1bmRlcnNjYW47Cj4gIH07Cj4gIAo+ ICAvKioKPiBAQCAtODkyLDYgKzk0NCwyOSBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciB7Cj4gIAkg Ki8KPiAgCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqdGlsZV9ibG9iX3B0cjsKPiAgCj4gKwkv KioKPiArCSAqIEB1bmRlcnNjYW5fbW9kZV9wcm9wZXJ0eTogT3B0aW9uYWwgY29ubmVjdG9yIHVu ZGVyc2NhbiBtb2RlLiBVc2VkIGJ5Cj4gKwkgKiB0aGUgZHJpdmVyIHRvIHNjYWxlIHRoZSBvdXRw dXQgaW1hZ2UgYW5kIGNvbXBlbnNhdGUgYW4gb3ZlcnNjYW4gZG9uZQo+ICsJICogb24gdGhlIGRp c3BsYXkgc2lkZS4KPiArCSAqLwo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqdW5kZXJzY2FuX21v ZGVfcHJvcGVydHk7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAdW5kZXJzY2FuX2hib3JkZXJfcHJvcGVy dHk6IE9wdGlvbmFsIGNvbm5lY3RvciB1bmRlcnNjYW4gaG9yaXpvbnRhbAo+ICsJICogYm9yZGVy IChleHByZXNzZWQgaW4gcGl4ZWxzKS4gVXNlZCBieSB0aGUgZHJpdmVyIHRvIGFkanVzdCB0aGUK PiArCSAqIG91dHB1dCBpbWFnZSBwb3NpdGlvbiBhbmQgY29tcGVuc2F0ZSBhbiBvdmVyc2NhbiBk b25lIG9uIHRoZSBkaXNwbGF5Cj4gKwkgKiBzaWRlLgo+ICsJICovCj4gKwlzdHJ1Y3QgZHJtX3By b3BlcnR5ICp1bmRlcnNjYW5faGJvcmRlcl9wcm9wZXJ0eTsKPiArCj4gKwkvKioKPiArCSAqIEB1 bmRlcnNjYW5faGJvcmRlcl9wcm9wZXJ0eTogT3B0aW9uYWwgY29ubmVjdG9yIHVuZGVyc2NhbiB2 ZXJ0aWNhbAo+ICsJICogYm9yZGVyIChleHByZXNzZWQgaW4gcGl4ZWxzKS4gVXNlZCBieSB0aGUg ZHJpdmVyIHRvIGFkanVzdCB0aGUKPiArCSAqIG91dHB1dCBpbWFnZSBwb3NpdGlvbiBhbmQgY29t cGVuc2F0ZSBhbiBvdmVyc2NhbiBkb25lIG9uIHRoZSBkaXNwbGF5Cj4gKwkgKiBzaWRlLgo+ICsJ ICovCj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICp1bmRlcnNjYW5fdmJvcmRlcl9wcm9wZXJ0eTsK ClNpbmNlIHlvdSBkb24ndCBhbGxvdyBkcml2ZXJzIHRvIGhhdmUgYSBwZXItY29ubmVjdG9yIHZh bHVlIHJhbmdlIGZvcgp0aGVzZSBwcm9wZXJ0aWVzIHRoZXNlIHNob3VsZCBiZSBpbiBkcm1fbW9k ZV9jb25maWcgSSB0aGluay4KClllcyB0aGUgY29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5IHNo b3VsZCBwcm9iYWJseSBoYXZlIHRoZSBzYW1lCnRyZWF0bWVudC4gTm90ZSB0aGF0IGRybV9wcm9w ZXJ0eV9ibG9iIGRvZXMgbm90IGRlcml2ZSBmcm9tIGRybV9wcm9wZXJ0eSwKc28gdGhhdCBvbmUg aXMgb2sgdG8gYmUgdGhlcmUuIEFuZCB0aGUgc2NhbGluZyBwcm9wZXJ0eSBpcyBnZW5lcmFsbHkK cGVyLW91dHB1dC4KLURhbmllbAoKPiArCj4gIC8qIHNob3VsZCB3ZSBwb2xsIHRoaXMgY29ubmVj dG9yIGZvciBjb25uZWN0cyBhbmQgZGlzY29ubmVjdHMgKi8KPiAgLyogaG90IHBsdWcgZGV0ZWN0 YWJsZSAqLwo+ICAjZGVmaW5lIERSTV9DT05ORUNUT1JfUE9MTF9IUEQgKDEgPDwgMCkKPiBAQCAt MTA4OCw2ICsxMTYzLDkgQEAgaW50IGRybV9tb2RlX2NyZWF0ZV9kdmlfaV9wcm9wZXJ0aWVzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICBpbnQgZHJtX21vZGVfY3JlYXRlX3R2X3Byb3BlcnRp ZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCSAgdW5zaWduZWQgaW50IG51bV9tb2Rl cywKPiAgCQkJCSAgY29uc3QgY2hhciAqIGNvbnN0IG1vZGVzW10pOwo+ICtpbnQgZHJtX2Nvbm5l Y3Rvcl9hdHRhY2hfdW5kZXJzY2FuX3Byb3BlcnRpZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKPiArCQkJCQkgICAgICB1MzIgbW9kZV9tYXNrLCB1NjQgbWF4X2hib3JkZXIsCj4g KwkJCQkJICAgICAgdTY0IG1heF92Ym9yZGVyKTsKPiAgaW50IGRybV9tb2RlX2NyZWF0ZV9zY2Fs aW5nX21vZGVfcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIGludCBkcm1fY29u bmVjdG9yX2F0dGFjaF9zY2FsaW5nX21vZGVfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPiAgCQkJCQkgICAgICAgdTMyIHNjYWxpbmdfbW9kZV9tYXNrKTsKPiAtLSAK PiAyLjE0LjEKPiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBD b3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK