From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [PATCH v3 03/21] drm/exynos: Declare the DSI encoder as a bridge element Date: Sun, 24 Nov 2019 14:17:27 +0100 Message-ID: <20191124141727.45597a6e@collabora.com> References: <20191023154512.9762-1-boris.brezillon@collabora.com> <20191023154512.9762-4-boris.brezillon@collabora.com> <20191124102433.GD4727@pendragon.ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5DB7E89ABE for ; Sun, 24 Nov 2019 13:17:33 +0000 (UTC) In-Reply-To: <20191124102433.GD4727@pendragon.ideasonboard.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Laurent Pinchart Cc: Mark Rutland , Neil Armstrong , dri-devel@lists.freedesktop.org, Thierry Reding , kernel@collabora.com, Sam Ravnborg , Nikita Yushchenko , Andrey Smirnov , Kyungmin Park , Chris Healy , devicetree@vger.kernel.org, Jonas Karlman , Rob Herring , Jernej Skrabec , Seung-Woo Kim List-Id: dri-devel@lists.freedesktop.org SGkgTGF1cmVudCwKCk9uIFN1biwgMjQgTm92IDIwMTkgMTI6MjQ6MzMgKzAyMDAKTGF1cmVudCBQ aW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPiB3cm90ZToKCj4gSGkg Qm9yaXMsCj4gCj4gVGhhbmsgeW91IGZvciB0aGUgcGF0Y2guCj4gCj4gT24gV2VkLCBPY3QgMjMs IDIwMTkgYXQgMDU6NDQ6NTRQTSArMDIwMCwgQm9yaXMgQnJlemlsbG9uIHdyb3RlOgo+ID4gRW5j b2RlciBkcml2ZXJzIHdpbGwgcHJvZ3Jlc3NpdmVseSB0cmFuc2l0aW9uIHRvIHRoZSBkcm1fYnJp ZGdlCj4gPiBpbnRlcmZhY2UgaW4gcGxhY2Ugb2YgdGhlIGRybV9lbmNvZGVyIG9uZS4KPiA+IAo+ ID4gQ29udmVydGluZyB0aGUgRXh5bm9zIERTSSBlbmNvZGVyIGRyaXZlciB0byB0aGlzIGFwcHJv YWNoIGFsbG93cyB1cyB0bwo+ID4gdXNlIHRoZSAtPnByZV97ZW5hYmxlLGRpc2FibGV9KCkgIGhv b2tzIGFuZCBnZXQgcmlkIG9mIHRoZSBoYWNrCj4gPiByZXNldHRpbmcgZW5jb2Rlci0+YnJpZGdl Lm5leHQgKHdoaWNoIHdhcyBuZWVkZWQgdG8gY29udHJvbCB0aGUKPiA+IGVuY29kZXIvYnJpZGdl IGVuYWJsZS9kaXNhYmxlIHNlcXVlbmNlKS4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogQm9yaXMg QnJlemlsbG9uIDxib3Jpcy5icmV6aWxsb25AY29sbGFib3JhLmNvbT4KPiA+IC0tLQo+ID4gQ2hh bmdlcyBpbiB2MzoKPiA+ICogRW1iZWQgYSBkcm1fYnJpZGdlIG9iamVjdCBpbiBleHlub3NfZHNp IHNpbmNlIGRybV9lbmNvZGVyIG5vIGxvbmdlcgo+ID4gICBoYXMgYSBkdW1teSBicmlkZ2UKPiA+ IAo+ID4gQ2hhbmdlcyBpbiB2MjoKPiA+ICogTmV3IHBhdGNoIChyZXBsYWNlbWVudCBmb3IgImRy bS9leHlub3M6IEdldCByaWQgb2YgZXh5bm9zX2RzaS0+b3V0X2JyaWRnZSIpCj4gPiAtLS0KPiA+ ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHNpLmMgfCA4OSArKysrKysrKysr KysrKystLS0tLS0tLS0tCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyksIDM0 IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3NfZHJtX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rz aS5jCj4gPiBpbmRleCA3MjcyNmYyYzdhOWYuLjM5MTVmNTBiMDA1ZSAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kc2kuYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RzaS5jCj4gPiBAQCAtMjUyLDEwICsyNTIsMTAg QEAgc3RydWN0IGV4eW5vc19kc2lfZHJpdmVyX2RhdGEgewo+ID4gIAo+ID4gIHN0cnVjdCBleHlu b3NfZHNpIHsKPiA+ICAJc3RydWN0IGRybV9lbmNvZGVyIGVuY29kZXI7Cj4gPiArCXN0cnVjdCBk cm1fYnJpZGdlIGJyaWRnZTsKPiA+ICAJc3RydWN0IG1pcGlfZHNpX2hvc3QgZHNpX2hvc3Q7Cj4g PiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yIGNvbm5lY3RvcjsKPiA+ICAJc3RydWN0IGRybV9wYW5l bCAqcGFuZWw7Cj4gPiAtCXN0cnVjdCBkcm1fYnJpZGdlICpvdXRfYnJpZGdlOwo+ID4gIAlzdHJ1 Y3QgZGV2aWNlICpkZXY7Cj4gPiAgCj4gPiAgCXZvaWQgX19pb21lbSAqcmVnX2Jhc2U7Cj4gPiBA QCAtMjkxLDYgKzI5MSwxMSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBleHlub3NfZHNpICplbmNv ZGVyX3RvX2RzaShzdHJ1Y3QgZHJtX2VuY29kZXIgKmUpCj4gPiAgCXJldHVybiBjb250YWluZXJf b2YoZSwgc3RydWN0IGV4eW5vc19kc2ksIGVuY29kZXIpOwo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0 aWMgaW5saW5lIHN0cnVjdCBleHlub3NfZHNpICpicmlkZ2VfdG9fZHNpKHN0cnVjdCBkcm1fYnJp ZGdlICpiKQo+ID4gK3sKPiA+ICsJcmV0dXJuIGNvbnRhaW5lcl9vZihiLCBzdHJ1Y3QgZXh5bm9z X2RzaSwgYnJpZGdlKTsKPiA+ICt9Cj4gPiArCj4gPiAgZW51bSByZWdfaWR4IHsKPiA+ICAJRFNJ TV9TVEFUVVNfUkVHLAkvKiBTdGF0dXMgcmVnaXN0ZXIgKi8KPiA+ICAJRFNJTV9TV1JTVF9SRUcs CQkvKiBTb2Z0d2FyZSByZXNldCByZWdpc3RlciAqLwo+ID4gQEAgLTEzNzQsMjUgKzEzNzksMzgg QEAgc3RhdGljIHZvaWQgZXh5bm9zX2RzaV91bnJlZ2lzdGVyX3RlX2lycShzdHJ1Y3QgZXh5bm9z X2RzaSAqZHNpKQo+ID4gIAl9Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyB2b2lkIGV4eW5vc19k c2lfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiA+ICtzdGF0aWMgdm9pZCBl eHlub3NfZHNpX3ByZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiA+ICB7Cj4g PiAtCXN0cnVjdCBleHlub3NfZHNpICpkc2kgPSBlbmNvZGVyX3RvX2RzaShlbmNvZGVyKTsKPiA+ ICsJc3RydWN0IGV4eW5vc19kc2kgKmRzaSA9IGJyaWRnZV90b19kc2koYnJpZGdlKTsKPiA+ICAJ aW50IHJldDsKPiA+ICAKPiA+ICAJaWYgKGRzaS0+c3RhdGUgJiBEU0lNX1NUQVRFX0VOQUJMRUQp Cj4gPiAgCQlyZXR1cm47ICAKPiAKPiBUaGlzIGNhbiBwcm9iYWJseSBiZSByZW1vdmVkIG5vdyBh cyB0aGUgY29yZSBzaG91bGQgZW5zdXJlIHRoYXQKPiBkb3VibGUtZW5hYmxlIG9yIGRvdWJsZS1k aXNhYmxlIG5ldmVyIG9jY3VycywgYnV0IGl0IGNhbiBiZSBkb25lIGluIGEKPiBzZXBhcmF0ZSBw YXRjaC4KCkV4Y2VwdCB0aGUgZW5hYmxlL2Rpc2FibGUoKSBpbXBsZW1lbnRhdGlvbnMgaGFuZGxl IGZhaWx1cmVzICh0aGUKZnJhbWV3b3JrIGRvZXMgbm90IGV4cGVjdCB0aG9zZSB0byBmYWlscyBC VFcpLCBhbmQgSSBndWVzcyBpdCdzCmltcG9ydGFudCB0byBrbm93IHRoZSBhY3R1YWwgSFcgc3Rh dGUgaW4gb3JkZXIgdG8ga2VlcCBydW50aW1lIFBNCmdldC9wdXQgY2FsbHMgYmFsYW5jZWQuCgo+ IAo+ID4gIAo+ID4gIAlwbV9ydW50aW1lX2dldF9zeW5jKGRzaS0+ZGV2KTsKPiA+IC0JZHNpLT5z dGF0ZSB8PSBEU0lNX1NUQVRFX0VOQUJMRUQ7Cj4gPiAgCj4gPiAgCWlmIChkc2ktPnBhbmVsKSB7 Cj4gPiAgCQlyZXQgPSBkcm1fcGFuZWxfcHJlcGFyZShkc2ktPnBhbmVsKTsKPiA+ICAJCWlmIChy ZXQgPCAwKQo+ID4gIAkJCWdvdG8gZXJyX3B1dF9zeW5jOwo+ID4gLQl9IGVsc2Ugewo+ID4gLQkJ ZHJtX2JyaWRnZV9wcmVfZW5hYmxlKGRzaS0+b3V0X2JyaWRnZSk7Cj4gPiAgCX0gIAo+IAo+IEl0 IHdvdWxkIGJlIG5pY2UgdG8gc3dpdGNoIHRvIHRoZSBkcm0gcGFuZWwgYnJpZGdlLCBidXQgdGhh dCBjYW4gYWxzbyBiZQo+IGRvbmUgb24gdG9wIG9mIHRoaXMgc2VyaWVzLgoKSSBhZ3JlZSwganVz dCBkaWRuJ3Qgd2FudCB0byBhZGQgbW9yZSBzdHVmZiB0byB0aGlzIHNlcmllcy4KCj4gCj4gPiAg Cj4gPiArCWRzaS0+c3RhdGUgfD0gRFNJTV9TVEFURV9FTkFCTEVEOwo+ID4gKwlyZXR1cm47Cj4g PiArCj4gPiArZXJyX3B1dF9zeW5jOgo+ID4gKwlwbV9ydW50aW1lX3B1dChkc2ktPmRldik7Cj4g PiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGV4eW5vc19kc2lfZW5hYmxlKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZXh5bm9zX2RzaSAqZHNpID0gYnJp ZGdlX3RvX2RzaShicmlkZ2UpOwo+ID4gKwlpbnQgcmV0Owo+ID4gKwo+ID4gKwlpZiAoIShkc2kt PnN0YXRlICYgRFNJTV9TVEFURV9FTkFCTEVEKSB8fAo+ID4gKwkgICAgKGRzaS0+c3RhdGUgJiBE U0lNX1NUQVRFX1ZJRE9VVF9BVkFJTEFCTEUpKQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gIAll eHlub3NfZHNpX3NldF9kaXNwbGF5X21vZGUoZHNpKTsKPiA+ICAJZXh5bm9zX2RzaV9zZXRfZGlz cGxheV9lbmFibGUoZHNpLCB0cnVlKTsKPiA+ICAKPiA+IEBAIC0xNDAwLDggKzE0MTgsNiBAQCBz dGF0aWMgdm9pZCBleHlub3NfZHNpX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIp Cj4gPiAgCQlyZXQgPSBkcm1fcGFuZWxfZW5hYmxlKGRzaS0+cGFuZWwpOwo+ID4gIAkJaWYgKHJl dCA8IDApCj4gPiAgCQkJZ290byBlcnJfZGlzcGxheV9kaXNhYmxlOwo+ID4gLQl9IGVsc2Ugewo+ ID4gLQkJZHJtX2JyaWRnZV9lbmFibGUoZHNpLT5vdXRfYnJpZGdlKTsKPiA+ICAJfQo+ID4gIAo+ ID4gIAlkc2ktPnN0YXRlIHw9IERTSU1fU1RBVEVfVklET1VUX0FWQUlMQUJMRTsKPiA+IEBAIC0x NDEwLDI4ICsxNDI2LDMwIEBAIHN0YXRpYyB2b2lkIGV4eW5vc19kc2lfZW5hYmxlKHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcikKPiA+ICBlcnJfZGlzcGxheV9kaXNhYmxlOgo+ID4gIAlleHlu b3NfZHNpX3NldF9kaXNwbGF5X2VuYWJsZShkc2ksIGZhbHNlKTsKPiA+ICAJZHJtX3BhbmVsX3Vu cHJlcGFyZShkc2ktPnBhbmVsKTsgIAo+IAo+IERvZXMgdGhpcyBiZWxvbmcgaGVyZSwgYXMgZHJt X3BhbmVsX3ByZXBhcmUoKSB3YXMgY2FsbGVkIGluCj4gZXh5bm9zX2RzaV9wcmVfZW5hYmxlKCkg PwoKTm9wZSwgdGhpcyBvbmUgc2hvdWxkIGJlIGRyb3BwZWQuCgo+IAo+ID4gLQo+ID4gLWVycl9w dXRfc3luYzoKPiA+IC0JZHNpLT5zdGF0ZSAmPSB+RFNJTV9TVEFURV9FTkFCTEVEOwo+ID4gLQlw bV9ydW50aW1lX3B1dChkc2ktPmRldik7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyB2b2lkIGV4 eW5vc19kc2lfZGlzYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gPiArc3RhdGlj IHZvaWQgZXh5bm9zX2RzaV9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPiAg ewo+ID4gLQlzdHJ1Y3QgZXh5bm9zX2RzaSAqZHNpID0gZW5jb2Rlcl90b19kc2koZW5jb2Rlcik7 Cj4gPiArCXN0cnVjdCBleHlub3NfZHNpICpkc2kgPSBicmlkZ2VfdG9fZHNpKGJyaWRnZSk7Cj4g PiArCj4gPiArCWlmICghKGRzaS0+c3RhdGUgJiBEU0lNX1NUQVRFX1ZJRE9VVF9BVkFJTEFCTEUp KQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gKwlkcm1fcGFuZWxfZGlzYWJsZShkc2ktPnBhbmVs KTsKPiA+ICsJZXh5bm9zX2RzaV9zZXRfZGlzcGxheV9lbmFibGUoZHNpLCBmYWxzZSk7Cj4gPiAr CWRzaS0+c3RhdGUgJj0gfkRTSU1fU1RBVEVfVklET1VUX0FWQUlMQUJMRTsKPiA+ICt9Cj4gPiAr Cj4gPiArc3RhdGljIHZvaWQgZXh5bm9zX2RzaV9wb3N0X2Rpc2FibGUoc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSkKPiA+ICt7Cj4gPiArCXN0cnVjdCBleHlub3NfZHNpICpkc2kgPSBicmlkZ2Vf dG9fZHNpKGJyaWRnZSk7Cj4gPiAgCj4gPiAgCWlmICghKGRzaS0+c3RhdGUgJiBEU0lNX1NUQVRF X0VOQUJMRUQpKQo+ID4gIAkJcmV0dXJuOwo+ID4gIAo+ID4gLQlkc2ktPnN0YXRlICY9IH5EU0lN X1NUQVRFX1ZJRE9VVF9BVkFJTEFCTEU7Cj4gPiAtCj4gPiAtCWRybV9wYW5lbF9kaXNhYmxlKGRz aS0+cGFuZWwpOwo+ID4gLQlkcm1fYnJpZGdlX2Rpc2FibGUoZHNpLT5vdXRfYnJpZGdlKTsKPiA+ IC0JZXh5bm9zX2RzaV9zZXRfZGlzcGxheV9lbmFibGUoZHNpLCBmYWxzZSk7Cj4gPiAgCWRybV9w YW5lbF91bnByZXBhcmUoZHNpLT5wYW5lbCk7Cj4gPiAtCWRybV9icmlkZ2VfcG9zdF9kaXNhYmxl KGRzaS0+b3V0X2JyaWRnZSk7Cj4gPiAtCWRzaS0+c3RhdGUgJj0gfkRTSU1fU1RBVEVfRU5BQkxF RDsKPiA+ICAJcG1fcnVudGltZV9wdXRfc3luYyhkc2ktPmRldik7Cj4gPiArCWRzaS0+c3RhdGUg Jj0gfkRTSU1fU1RBVEVfRU5BQkxFRDsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIGVudW0gZHJt X2Nvbm5lY3Rvcl9zdGF0dXMKPiA+IEBAIC0xNDk5LDkgKzE1MTcsMTEgQEAgc3RhdGljIGludCBl eHlub3NfZHNpX2NyZWF0ZV9jb25uZWN0b3Ioc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ ID4gIAlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f ZW5jb2Rlcl9oZWxwZXJfZnVuY3MgZXh5bm9zX2RzaV9lbmNvZGVyX2hlbHBlcl9mdW5jcyA9IHsK PiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3MgZXh5bm9zX2RzaV9icmlk Z2VfZnVuY3MgPSB7Cj4gPiArCS5wcmVfZW5hYmxlID0gZXh5bm9zX2RzaV9wcmVfZW5hYmxlLAo+ ID4gIAkuZW5hYmxlID0gZXh5bm9zX2RzaV9lbmFibGUsCj4gPiAgCS5kaXNhYmxlID0gZXh5bm9z X2RzaV9kaXNhYmxlLAo+ID4gKwkucG9zdF9kaXNhYmxlID0gZXh5bm9zX2RzaV9wb3N0X2Rpc2Fi bGUsCj4gPiAgfTsKPiA+ICAKPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1 bmNzIGV4eW5vc19kc2lfZW5jb2Rlcl9mdW5jcyA9IHsKPiA+IEBAIC0xNTIwLDkgKzE1NDAsNyBA QCBzdGF0aWMgaW50IGV4eW5vc19kc2lfaG9zdF9hdHRhY2goc3RydWN0IG1pcGlfZHNpX2hvc3Qg Kmhvc3QsCj4gPiAgCj4gPiAgCW91dF9icmlkZ2UgID0gb2ZfZHJtX2ZpbmRfYnJpZGdlKGRldmlj ZS0+ZGV2Lm9mX25vZGUpOwo+ID4gIAlpZiAob3V0X2JyaWRnZSkgewo+ID4gLQkJZHJtX2JyaWRn ZV9hdHRhY2goZW5jb2Rlciwgb3V0X2JyaWRnZSwgTlVMTCk7Cj4gPiAtCQlkc2ktPm91dF9icmlk Z2UgPSBvdXRfYnJpZGdlOwo+ID4gLQkJZW5jb2Rlci0+YnJpZGdlID0gTlVMTDsKPiA+ICsJCWRy bV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIG91dF9icmlkZ2UsICZkc2ktPmJyaWRnZSk7Cj4gPiAg CX0gZWxzZSB7Cj4gPiAgCQlpbnQgcmV0ID0gZXh5bm9zX2RzaV9jcmVhdGVfY29ubmVjdG9yKGVu Y29kZXIpOwo+ID4gIAo+ID4gQEAgLTE1NzUsMTkgKzE1OTMsMTkgQEAgc3RhdGljIGludCBleHlu b3NfZHNpX2hvc3RfZGV0YWNoKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAo+ID4gIAkJCQkg IHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRldmljZSkKPiA+ICB7Cj4gPiAgCXN0cnVjdCBleHlu b3NfZHNpICpkc2kgPSBob3N0X3RvX2RzaShob3N0KTsKPiA+ICsJc3RydWN0IGRybV9icmlkZ2Ug Km91dF9icmlkZ2UgPSBkc2ktPmJyaWRnZS5uZXh0Owo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZHJtID0gZHNpLT5lbmNvZGVyLmRldjsKPiA+ICAKPiA+ICAJaWYgKGRzaS0+cGFuZWwpIHsKPiA+ ICAJCW11dGV4X2xvY2soJmRybS0+bW9kZV9jb25maWcubXV0ZXgpOwo+ID4gLQkJZXh5bm9zX2Rz aV9kaXNhYmxlKCZkc2ktPmVuY29kZXIpOwo+ID4gKwkJZXh5bm9zX2RzaV9kaXNhYmxlKCZkc2kt PmJyaWRnZSk7Cj4gPiArCQlleHlub3NfZHNpX3Bvc3RfZGlzYWJsZSgmZHNpLT5icmlkZ2UpOwo+ ID4gIAkJZHJtX3BhbmVsX2RldGFjaChkc2ktPnBhbmVsKTsKPiA+ICAJCWRzaS0+cGFuZWwgPSBO VUxMOwo+ID4gIAkJZHNpLT5jb25uZWN0b3Iuc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19kaXNj b25uZWN0ZWQ7Cj4gPiAgCQltdXRleF91bmxvY2soJmRybS0+bW9kZV9jb25maWcubXV0ZXgpOwo+ ID4gLQl9IGVsc2Ugewo+ID4gLQkJaWYgKGRzaS0+b3V0X2JyaWRnZS0+ZnVuY3MtPmRldGFjaCkK PiA+IC0JCQlkc2ktPm91dF9icmlkZ2UtPmZ1bmNzLT5kZXRhY2goZHNpLT5vdXRfYnJpZGdlKTsK PiA+IC0JCWRzaS0+b3V0X2JyaWRnZSA9IE5VTEw7Cj4gPiArCX0gZWxzZSBpZiAob3V0X2JyaWRn ZSAmJiBvdXRfYnJpZGdlLT5mdW5jcy0+ZGV0YWNoKSB7Cj4gPiArCQlvdXRfYnJpZGdlLT5mdW5j cy0+ZGV0YWNoKG91dF9icmlkZ2UpOyAgCj4gCj4gTWF5YmUgZHJtX2JyaWRnZV9kZXRhY2goKSA/ CgpUaGlzIGZ1bmN0aW9uIGlzIG5vdCBleHBvcnRlZCwgYW5kIEkgc3VwcG9zZSB0aGF0J3Mgd2h5 IHRoZXkgdXNlZCB0aGUKZnVuY3Rpb24gcG9pbnRlciBpbiB0aGlzIGRyaXZlci4gSSBiZXQgdGhl cmUncyBhIGdvb2QgcmVhc29uIGZvciBub3QKZXhwb3NpbmcgdGhpcyBmdW5jdGlvbi4uLgoKPiAK PiA+ICAJfQo+ID4gIAo+ID4gIAlpZiAoZHJtLT5tb2RlX2NvbmZpZy5wb2xsX2VuYWJsZWQpCj4g PiBAQCAtMTY4NywxNiArMTcwNSwxOCBAQCBzdGF0aWMgaW50IGV4eW5vc19kc2lfYmluZChzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKPiA+ICAJZHJtX2VuY29kZXJf aW5pdChkcm1fZGV2LCBlbmNvZGVyLCAmZXh5bm9zX2RzaV9lbmNvZGVyX2Z1bmNzLAo+ID4gIAkJ CSBEUk1fTU9ERV9FTkNPREVSX1RNRFMsIE5VTEwpOwo+ID4gIAo+ID4gLQlkcm1fZW5jb2Rlcl9o ZWxwZXJfYWRkKGVuY29kZXIsICZleHlub3NfZHNpX2VuY29kZXJfaGVscGVyX2Z1bmNzKTsKPiA+ IC0KPiA+ICAJcmV0ID0gZXh5bm9zX2RybV9zZXRfcG9zc2libGVfY3J0Y3MoZW5jb2RlciwgRVhZ Tk9TX0RJU1BMQVlfVFlQRV9MQ0QpOwo+ID4gIAlpZiAocmV0IDwgMCkKPiA+ICAJCXJldHVybiBy ZXQ7Cj4gPiAgCj4gPiArCS8qIERlY2xhcmUgb3Vyc2VsZiBhcyB0aGUgZmlyc3QgYnJpZGdlIGVs ZW1lbnQuICovCj4gPiArCWRzaS0+YnJpZGdlLmZ1bmNzID0gJmV4eW5vc19kc2lfYnJpZGdlX2Z1 bmNzOwo+ID4gKwlkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCAmZHNpLT5icmlkZ2UsIE5VTEwp Owo+ID4gKwo+ID4gIAlpZiAoZHNpLT5pbl9icmlkZ2Vfbm9kZSkgewo+ID4gIAkJaW5fYnJpZGdl ID0gb2ZfZHJtX2ZpbmRfYnJpZGdlKGRzaS0+aW5fYnJpZGdlX25vZGUpOwo+ID4gIAkJaWYgKGlu X2JyaWRnZSkKPiA+IC0JCQlkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBpbl9icmlkZ2UsIE5V TEwpOwo+ID4gKwkJCWRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGluX2JyaWRnZSwgJmRzaS0+ YnJpZGdlKTsKPiA+ICAJfSAgCj4gCj4gU2FtZSBhcyBmb3IgcGF0Y2ggMDEvMjEsIG1heWJlIHRo aXMgY291bGQgYmUgbW92ZWQgdG8gdGhpcyBicmlkZ2Uncwo+IGF0dGFjaCBvcGVyYXRpb24gPyBB Y3R1YWxseSwgbm93IHRoYXQgSSd2ZSByZWFkIHRoZSBjb2RlLCB0aGlzIGluX2JyaWRnZQo+IHBh cnQgbG9va3Mgd2VpcmQuIFdoeSB3b3VsZCB0aGUgRFNJIGVuY29kZXIgaGF2ZSBhbiBpbnB1dCBi cmlkZ2UgdGhhdCBpcwo+IGhhcyB0byBtYW5hZ2UgaXRzZWxmID8KClllcywgSSBrbm93LCBpdCBk b2Vzbid0IG1ha2UgYW55IHNlbnNlLiBFaXRoZXIgd2UncmUgZGVhbGluZyB3aXRoIGEKYnJpZGdl IHdoaWNoIGNhbiBiZSBjaGFpbmVkIHRvIG90aGVyIGJyaWRnZXMgKGNhbiBiZSBwbGFjZWQgaW4g dGhlCm1pZGRsZSBvZiBhIGNoYWluIGFzIHdlbGwpLCBvciB3ZSdyZSBkZWFsaW5nIHdpdGggYW4g ZW5jb2RlciB3aGljaApwcmVjZWRlcyBhbnkgYnJpZGdlcy4gSW4gdGhlIGxhdHRlciBjYXNlICh3 aGljaCBpcyBob3cgZXh5bm9zX2RzaSBpcwppbXBsZW1lbnRlZCkgaW5fYnJpZGdlIGRvZXNuJ3Qg aGF2ZSBhbnkgbWVhbmluZywgYW5kIHRoYXQncyBldmVuIHdvcnNlCnNpbmNlIHdlJ3JlIHBsYWNp bmcgdGhlIHNvLWNhbGxlZCBpbnB1dCBicmlkZ2UgKEFLQSBwcmV2aW91cyBicmlkZ2UpCmFmdGVy IG91ciBlbmNvZGVyICh0aGF0J3Mgd2hhdCBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBpbl9i cmlkZ2UsCk5VTEwpIGRvZXMpLgoKVEJILCBJIGRpZG4ndCB3YW50IHRvIGdvIHRoYXQgZmFyIGFu ZCBmaXggZXhpc3RpbmcgZHJpdmVycyB3aGVuIEkKc3RhcnRlZCB0aGlzIHNlcmllcywgc28gSSB0 aGluayBJJ2xsIHJld29yayB0aGUgcGF0Y2hzZXQgdG8gZ2V0IHJpZCBvZgp0aGUgVkM0IGFuZCBl eHlub3MgcGF0Y2hlcywgZXZlbiBpZiB0aGF0IG1lYW5zIGhhdmluZyAyIGRyaXZlcnMgdGhhdApt ZXNzIHVwIHdpdGggdGhlIGVuY29kZXItPmJyaWRnZV9jaGFpbiBsaXN0LgoKUmVnYXJkcywKCkJv cmlzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==