From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 3/3] drm/tilcdc: Add drm bridge support for attaching drm bridge drivers Date: Thu, 03 Nov 2016 19:50:08 +0200 Message-ID: <4030126.Q3156qUFoV@avalon> References: <463d18493ac508708ed764e71d11c2b89662544c.1478103726.git.jsarha@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <463d18493ac508708ed764e71d11c2b89662544c.1478103726.git.jsarha@ti.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jyri Sarha Cc: devicetree@vger.kernel.org, bcousson@baylibre.com, khilman@baylibre.com, dri-devel@lists.freedesktop.org, bgolaszewski@baylibre.com, tomi.valkeinen@ti.com List-Id: devicetree@vger.kernel.org SGkgSnlyaSwKClRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoLgoKT24gV2VkbmVzZGF5IDAyIE5vdiAy MDE2IDE4OjMyOjE3IEp5cmkgU2FyaGEgd3JvdGU6Cj4gQWRkcyBkcm0gYnJpZGUgc3VwcG9ydCBm b3IgYXR0YWNoaW5nIGRybSBicmlkZ2UgZHJpdmVycyB0byB0aWxjZGMuIFRoZQo+IGRlY2lzaW9u IHdoZXRoZXIgYSB2aWRlbyBwb3J0IGxlYWRzIHRvIGFuIGV4dGVybmFsIGVuY29kZXIgb3IgYnJp ZGdlCj4gaXMgbWFkZSBzaW1wbHkgYmFzZWQgb24gcmVtb3RlIGRldmljZSdzIGNvbXBhdGlibGUg c3RyaW5nLiBUaGUgY29kZQo+IGhhcyBiZWVuIHRlc3RlZCB3aXRoIEJlYWdsZUJvbmUtQmxhY2sg d2l0aCBhbmQgd2l0aG91dCBCZWFnbGVCb25lCj4gRFZJLUQgQ2FwZSBSZXYgQTMgdXNpbmcgdGkt dGZwNDEwIGRyaXZlci4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKeXJpIFNhcmhhIDxqc2FyaGFAdGku Y29tPgo+IC0tLQo+ICAuLi4vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3RpbGNkYy90aWxj ZGMudHh0ICB8ICAgNyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19kcnYuYyAg ICAgICAgICAgICAgICB8ICAgNyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19k cnYuaCAgICAgICAgICAgICAgICB8ICAgMiArCj4gIGRyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGls Y2RjX2V4dGVybmFsLmMgICAgICAgICAgIHwgMTQwICsrKysrKysrKysrKysrLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2V4dGVybmFsLmggICAgICAgICAgIHwgICAxICsKPiAg NSBmaWxlcyBjaGFuZ2VkLCAxMzUgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3Rp bGNkYy90aWxjZGMudHh0Cj4gYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlz cGxheS90aWxjZGMvdGlsY2RjLnR4dCBpbmRleAo+IDZmZGRiNGYuLmFlN2E5NDIgMTAwNjQ0Cj4g LS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvdGlsY2RjL3Rp bGNkYy50eHQKPiArKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxh eS90aWxjZGMvdGlsY2RjLnR4dAo+IEBAIC0zNCw5ICszNCwxMCBAQCBPcHRpb25hbCBwcm9wZXJ0 aWVzOgo+IAo+ICBPcHRpb25hbCBub2RlczoKPiAKPiAtIC0gcG9ydC9wb3J0czogdG8gZGVzY3Jp YmUgYSBjb25uZWN0aW9uIHRvIGFuIGV4dGVybmFsIGVuY29kZXIuIFRoZQo+IC0gICBiaW5kaW5n IGZvbGxvd3MgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dyYXBoLnR4dCBhbmQK PiAtICAgc3VwcG9ycyBhIHNpbmdsZSBwb3J0IHdpdGggYSBzaW5nbGUgZW5kcG9pbnQuCj4gKyAt IHBvcnQvcG9ydHM6IHRvIGRlc2NyaWJlIGEgY29ubmVjdGlvbiB0byBhbiBleHRlcm5hbCBlbmNv ZGVyIG9yCj4gKyAgIGJyaWRnZS4gVGhlIGJpbmRpbmcgZm9sbG93cwoKV2hhdCdzIHRoZSBkaWZm ZXJlbmNlIGJldHdlZW4gZW5jb2RlciBhbmQgYnJpZGdlIGhlcmUgPyBkcm1fYnJpZGdlIGFuZCAK ZHJtX2VuY29kZXIgYXJlIGlycmVsZXZhbnQgdG8gRFQgYmluZGluZ3MsIHdlIHNob3VsZCBvbmx5 IGNhcmUgYWJvdXQgdGhlIApoYXJkd2FyZSB2aWV3IG9mIHRoZSBzeXN0ZW0gaGVyZS4KCj4gKyAg IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncmFwaC50eHQgYW5kIHN1cHBvcnMg YSBzaW5nbGUKPiArICAgcG9ydCB3aXRoIGEgc2luZ2xlIGVuZHBvaW50Lgo+IAo+ICAgLSBTZWUg YWxzbyBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS90aWxjZGMvcGFu ZWwudHh0IGFuZAo+ICAgICBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxh eS90aWxjZGMvdGZwNDEwLnR4dCBmb3IKPiBjb25uZWN0aW5nIGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdGlsY2RjL3RpbGNkY19kcnYuYwo+IGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90 aWxjZGNfZHJ2LmMgaW5kZXggZGNjOTYyMS4uZWMyMjU3NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vdGlsY2RjL3RpbGNkY19kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90aWxj ZGMvdGlsY2RjX2Rydi5jCj4gQEAgLTM4NCw5ICszODQsMTQgQEAgc3RhdGljIGludCB0aWxjZGNf aW5pdChzdHJ1Y3QgZHJtX2RyaXZlciAqZGRydiwgc3RydWN0Cj4gZGV2aWNlICpkZXYpIHJldCA9 IHRpbGNkY19hZGRfZXh0ZXJuYWxfZW5jb2RlcnMoZGRldik7Cj4gIAkJaWYgKHJldCA8IDApCj4g IAkJCWdvdG8gaW5pdF9mYWlsZWQ7Cj4gKwl9IGVsc2Ugewo+ICsJCXJldCA9IHRpbGNkY19hdHRh Y2hfcmVtb3RlX2RldmljZShkZGV2KTsKPiArCQlpZiAocmV0KQo+ICsJCQlnb3RvIGluaXRfZmFp bGVkOwo+ICAJfQo+IAo+IC0JaWYgKChwcml2LT5udW1fZW5jb2RlcnMgPT0gMCkgfHwgKHByaXYt Pm51bV9jb25uZWN0b3JzID09IDApKSB7Cj4gKwlpZiAoIXByaXYtPnJlbW90ZV9lbmNvZGVyICYm Cj4gKwkgICAgKChwcml2LT5udW1fZW5jb2RlcnMgPT0gMCkgfHwgKHByaXYtPm51bV9jb25uZWN0 b3JzID09IDApKSkgewo+ICAJCWRldl9lcnIoZGV2LCAibm8gZW5jb2RlcnMvY29ubmVjdG9ycyBm b3VuZFxuIik7Cj4gIAkJcmV0ID0gLUVOWElPOwo+ICAJCWdvdG8gaW5pdF9mYWlsZWQ7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2Rydi5oCj4gYi9kcml2ZXJz L2dwdS9kcm0vdGlsY2RjL3RpbGNkY19kcnYuaCBpbmRleCBkMzFmZTVkLi4yODNmZjI4IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2Rydi5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZHJ2LmgKPiBAQCAtOTAsNiArOTAsOCBAQCBzdHJ1 Y3QgdGlsY2RjX2RybV9wcml2YXRlIHsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3JzWzhdOwo+ICAJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzICpjb25u ZWN0b3JfZnVuY3NbOF07Cj4gCj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKnJlbW90ZV9lbmNvZGVy Owo+ICsKPiAgCWJvb2wgaXNfcmVnaXN0ZXJlZDsKPiAgCWJvb2wgaXNfY29tcG9uZW50aXplZDsK PiAgfTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZXh0ZXJu YWwuYwo+IGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZXh0ZXJuYWwuYyBpbmRleCAw NmE0YzU4Li5iY2IxMzI0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGls Y2RjX2V4dGVybmFsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19leHRl cm5hbC5jCj4gQEAgLTI4LDYgKzI4LDE4IEBACj4gIAkJLnJhc3Rlcl9vcmRlciAgICAgICAgICAg PSAwLAo+ICB9Owo+IAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHRpbGNkY19wYW5lbF9pbmZvIHBh bmVsX2luZm9fZGVmYXVsdCA9IHsKPiArCQkuYWNfYmlhcyAgICAgICAgICAgICAgICA9IDI1NSwK PiArCQkuYWNfYmlhc19pbnRycHQgICAgICAgICA9IDAsCj4gKwkJLmRtYV9idXJzdF9zeiAgICAg ICAgICAgPSAxNiwKPiArCQkuYnBwICAgICAgICAgICAgICAgICAgICA9IDE2LAo+ICsJCS5mZGQg ICAgICAgICAgICAgICAgICAgID0gMHg4MCwKPiArCQkudGZ0X2FsdF9tb2RlICAgICAgICAgICA9 IDAsCj4gKwkJLnN5bmNfZWRnZSAgICAgICAgICAgICAgPSAwLAo+ICsJCS5zeW5jX2N0cmwgICAg ICAgICAgICAgID0gMSwKPiArCQkucmFzdGVyX29yZGVyICAgICAgICAgICA9IDAsCj4gK307Cj4g Kwo+ICBzdGF0aWMgaW50IHRpbGNkY19leHRlcm5hbF9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCj4gIAkJCQkgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZSkKPiAgewo+IEBAIC0xMzAsNiArMTQyLDEwMSBAQCB2b2lkIHRpbGNkY19yZW1vdmVfZXh0 ZXJuYWxfZW5jb2RlcnMoc3RydWN0IGRybV9kZXZpY2UKPiAqZGV2KSBwcml2LT5jb25uZWN0b3Jf ZnVuY3NbaV0pOwo+ICB9Cj4gCj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVuY3MgdGls Y2RjX3JlbW90ZV9lbmNvZGVyX2Z1bmNzID0gewo+ICsJLmRlc3Ryb3kJPSBkcm1fZW5jb2Rlcl9j bGVhbnVwLAo+ICt9Owo+ICsKPiArc3RhdGljCj4gK2ludCB0aWxjZGNfYXR0YWNoX2JyaWRnZShz dHJ1Y3QgZHJtX2RldmljZSAqZGRldiwgc3RydWN0IGRybV9icmlkZ2UKPiAqYnJpZGdlKSArewo+ ICsJc3RydWN0IHRpbGNkY19kcm1fcHJpdmF0ZSAqcHJpdiA9IGRkZXYtPmRldl9wcml2YXRlOwo+ ICsJaW50IHJldDsKPiArCj4gKwlwcml2LT5yZW1vdGVfZW5jb2Rlci0+cG9zc2libGVfY3J0Y3Mg PSBCSVQoMCk7Cj4gKwlwcml2LT5yZW1vdGVfZW5jb2Rlci0+YnJpZGdlID0gYnJpZGdlOwo+ICsJ YnJpZGdlLT5lbmNvZGVyID0gcHJpdi0+cmVtb3RlX2VuY29kZXI7Cj4gKwo+ICsJcmV0ID0gZHJt X2JyaWRnZV9hdHRhY2goZGRldiwgYnJpZGdlKTsKPiArCWlmIChyZXQpIHsKPiArCQlkZXZfZXJy KGRkZXYtPmRldiwgImRybV9icmlkZ2VfYXR0YWNoKCkgZmFpbGVkICVkXG4iLCByZXQpOwo+ICsJ CXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJdGlsY2RjX2NydGNfc2V0X3BhbmVsX2luZm8ocHJp di0+Y3J0YywgJnBhbmVsX2luZm9fZGVmYXVsdCk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgdGlsY2RjX25vZGVfaGFzX3BvcnQoc3RydWN0IGRldmljZV9ub2RlICpk ZXZfbm9kZSkKPiArewo+ICsJc3RydWN0IGRldmljZV9ub2RlICpub2RlOwo+ICsKPiArCW5vZGUg PSBvZl9nZXRfY2hpbGRfYnlfbmFtZShkZXZfbm9kZSwgInBvcnRzIik7Cj4gKwlpZiAoIW5vZGUp Cj4gKwkJbm9kZSA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKGRldl9ub2RlLCAicG9ydCIpOwo+ICsJ aWYgKCFub2RlKQo+ICsJCXJldHVybiAwOwo+ICsJb2Zfbm9kZV9wdXQobm9kZSk7Cj4gKwo+ICsJ cmV0dXJuIDE7Cj4gK30KPiArCj4gK3N0YXRpYwo+ICtzdHJ1Y3QgZGV2aWNlX25vZGUgKnRpbGNk Y19nZXRfcmVtb3RlX25vZGUoc3RydWN0IGRldmljZV9ub2RlICpub2RlKQo+ICt7Cj4gKwlzdHJ1 Y3QgZGV2aWNlX25vZGUgKmVwOwo+ICsJc3RydWN0IGRldmljZV9ub2RlICpwYXJlbnQ7Cj4gKwo+ ICsJaWYgKCF0aWxjZGNfbm9kZV9oYXNfcG9ydChub2RlKSkKPiArCQlyZXR1cm4gTlVMTDsKPiAr Cj4gKwllcCA9IG9mX2dyYXBoX2dldF9uZXh0X2VuZHBvaW50KG5vZGUsIE5VTEwpOwo+ICsJaWYg KCFlcCkKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwlwYXJlbnQgPSBvZl9ncmFwaF9nZXRfcmVt b3RlX3BvcnRfcGFyZW50KGVwKTsKPiArCW9mX25vZGVfcHV0KGVwKTsKPiArCj4gKwlyZXR1cm4g cGFyZW50Owo+ICt9Cj4gKwo+ICtpbnQgdGlsY2RjX2F0dGFjaF9yZW1vdGVfZGV2aWNlKHN0cnVj dCBkcm1fZGV2aWNlICpkZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgdGlsY2RjX2RybV9wcml2YXRlICpw cml2ID0gZGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKnJlbW90ZV9u b2RlOwo+ICsJc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZTsKPiArCWludCByZXQ7Cj4gKwo+ICsJ cmVtb3RlX25vZGUgPSB0aWxjZGNfZ2V0X3JlbW90ZV9ub2RlKGRkZXYtPmRldi0+b2Zfbm9kZSk7 Cj4gKwlpZiAoIXJlbW90ZV9ub2RlKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWJyaWRnZSA9IG9m X2RybV9maW5kX2JyaWRnZShyZW1vdGVfbm9kZSk7Cj4gKwlvZl9ub2RlX3B1dChyZW1vdGVfbm9k ZSk7Cj4gKwlpZiAoIWJyaWRnZSkKPiArCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsKPiArCj4gKwlw cml2LT5yZW1vdGVfZW5jb2RlciA9IGRldm1fa3phbGxvYyhkZGV2LT5kZXYsCj4gKwkJCQkJICAg IHNpemVvZigqcHJpdi0+cmVtb3RlX2VuY29kZXIpLAo+ICsJCQkJCSAgICBHRlBfS0VSTkVMKTsK PiArCWlmICghcHJpdi0+cmVtb3RlX2VuY29kZXIpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ ICsJcmV0ID0gZHJtX2VuY29kZXJfaW5pdChkZGV2LCBwcml2LT5yZW1vdGVfZW5jb2RlciwKPiAr CQkJICAgICAgICZ0aWxjZGNfcmVtb3RlX2VuY29kZXJfZnVuY3MsCj4gKwkJCSAgICAgICBEUk1f TU9ERV9FTkNPREVSX05PTkUsIE5VTEwpOwo+ICsJaWYgKHJldCkgewo+ICsJCWRldl9lcnIoZGRl di0+ZGV2LCAiZHJtX2VuY29kZXJfaW5pdCgpIGZhaWxlZCAlZFxuIiwgcmV0KTsKPiArCQlyZXR1 cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldCA9IHRpbGNkY19hdHRhY2hfYnJpZGdlKGRkZXYsIGJy aWRnZSk7Cj4gKwlpZiAocmV0KQo+ICsJCWRybV9lbmNvZGVyX2NsZWFudXAocHJpdi0+cmVtb3Rl X2VuY29kZXIpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgZGV2 X21hdGNoX29mKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKPiAgewo+ICAJcmV0dXJu IGRldi0+b2Zfbm9kZSA9PSBkYXRhOwo+IEBAIC0xNDEsMTYgKzI0OCwxMCBAQCBpbnQgdGlsY2Rj X2dldF9leHRlcm5hbF9jb21wb25lbnRzKHN0cnVjdCBkZXZpY2UgKmRldiwKPiBzdHJ1Y3QgZGV2 aWNlX25vZGUgKm5vZGU7Cj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKmVwID0gTlVMTDsKPiAgCWlu dCBjb3VudCA9IDA7Cj4gKwlpbnQgcmV0ID0gMDsKPiAKPiAtCS8qIEF2b2lkIGVycm9yIHByaW50 IGJ5IG9mX2dyYXBoX2dldF9uZXh0X2VuZHBvaW50KCkgaWYgdGhlcmUKPiAtCSAqIGlzIG5vIHBv cnRzIHByZXNlbnQuCj4gLQkgKi8KPiAtCW5vZGUgPSBvZl9nZXRfY2hpbGRfYnlfbmFtZShkZXYt Pm9mX25vZGUsICJwb3J0cyIpOwo+IC0JaWYgKCFub2RlKQo+IC0JCW5vZGUgPSBvZl9nZXRfY2hp bGRfYnlfbmFtZShkZXYtPm9mX25vZGUsICJwb3J0Iik7Cj4gLQlpZiAoIW5vZGUpCj4gKwlpZiAo IXRpbGNkY19ub2RlX2hhc19wb3J0KGRldi0+b2Zfbm9kZSkpCj4gIAkJcmV0dXJuIDA7Cj4gLQlv Zl9ub2RlX3B1dChub2RlKTsKPiAKPiAgCXdoaWxlICgoZXAgPSBvZl9ncmFwaF9nZXRfbmV4dF9l bmRwb2ludChkZXYtPm9mX25vZGUsIGVwKSkpIHsKPiAgCQlub2RlID0gb2ZfZ3JhcGhfZ2V0X3Jl bW90ZV9wb3J0X3BhcmVudChlcCk7Cj4gQEAgLTE2MCwxNyArMjYxLDIwIEBAIGludCB0aWxjZGNf Z2V0X2V4dGVybmFsX2NvbXBvbmVudHMoc3RydWN0IGRldmljZSAqZGV2LAo+IH0KPiAKPiAgCQlk ZXZfZGJnKGRldiwgIlN1YmRldmljZSBub2RlICclcycgZm91bmRcbiIsIG5vZGUtPm5hbWUpOwo+ IC0JCWlmIChtYXRjaCkKPiAtCQkJZHJtX29mX2NvbXBvbmVudF9tYXRjaF9hZGQoZGV2LCBtYXRj aCwgZGV2X21hdGNoX29mLAo+IC0JCQkJCQkgICBub2RlKTsKPiAtCQlvZl9ub2RlX3B1dChub2Rl KTsKPiAtCQljb3VudCsrOwo+IC0JfQo+IAo+IC0JaWYgKGNvdW50ID4gMSkgewo+IC0JCWRldl9l cnIoZGV2LCAiT25seSBvbmUgZXh0ZXJuYWwgZW5jb2RlciBpcyBzdXBwb3J0ZWRcbiIpOwo+IC0J CXJldHVybiAtRUlOVkFMOwo+ICsJCWlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShub2RlLCAi bnhwLHRkYTk5OHgiKSkgewo+ICsJCQlpZiAobWF0Y2gpCj4gKwkJCQlkcm1fb2ZfY29tcG9uZW50 X21hdGNoX2FkZChkZXYsIG1hdGNoLAo+ICsJCQkJCQkJICAgZGV2X21hdGNoX29mLCAKbm9kZSk7 Cj4gKwkJCXJldCA9IDE7Cj4gKwkJfQo+ICsKPiArCQlvZl9ub2RlX3B1dChub2RlKTsKPiArCQlp ZiAoY291bnQrKyA+IDEpIHsKPiArCQkJZGV2X2VycihkZXYsICJPbmx5IG9uZSBwb3J0IGlzIHN1 cHBvcnRlZFxuIik7Cj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICsJCX0KPiAgCX0KPiAKPiAtCXJl dHVybiBjb3VudDsKPiArCXJldHVybiByZXQ7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3RpbGNkYy90aWxjZGNfZXh0ZXJuYWwuaAo+IGIvZHJpdmVycy9ncHUvZHJtL3RpbGNk Yy90aWxjZGNfZXh0ZXJuYWwuaCBpbmRleCBjNzAwZTBjLi5hMjdjMzY1IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2V4dGVybmFsLmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vdGlsY2RjL3RpbGNkY19leHRlcm5hbC5oCj4gQEAgLTIyLDQgKzIyLDUgQEAKPiAg dm9pZCB0aWxjZGNfcmVtb3ZlX2V4dGVybmFsX2VuY29kZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpOwo+ICBpbnQgdGlsY2RjX2dldF9leHRlcm5hbF9jb21wb25lbnRzKHN0cnVjdCBkZXZpY2Ug KmRldiwKPiAgCQkJCSAgIHN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKiptYXRjaCk7Cj4gK2ludCB0 aWxjZGNfYXR0YWNoX3JlbW90ZV9kZXZpY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRkZXYpOwo+ICAj ZW5kaWYgLyogX19USUxDRENfU0xBVkVfSF9fICovCgotLSAKUmVnYXJkcywKCkxhdXJlbnQgUGlu Y2hhcnQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=