From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v3 03/21] drm/exynos: Declare the DSI encoder as a bridge element Date: Sun, 24 Nov 2019 16:02:50 +0200 Message-ID: <20191124140250.GI4727@pendragon.ideasonboard.com> References: <20191023154512.9762-1-boris.brezillon@collabora.com> <20191023154512.9762-4-boris.brezillon@collabora.com> <20191124102433.GD4727@pendragon.ideasonboard.com> <20191124141727.45597a6e@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by gabe.freedesktop.org (Postfix) with ESMTPS id D0E426E06E for ; Sun, 24 Nov 2019 14:03:02 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20191124141727.45597a6e@collabora.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: 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 SGkgQm9yaXMsCgpPbiBTdW4sIE5vdiAyNCwgMjAxOSBhdCAwMjoxNzoyN1BNICswMTAwLCBCb3Jp cyBCcmV6aWxsb24gd3JvdGU6Cj4gT24gU3VuLCAyNCBOb3YgMjAxOSAxMjoyNDozMyArMDIwMCBM YXVyZW50IFBpbmNoYXJ0IHdyb3RlOgo+ID4gT24gV2VkLCBPY3QgMjMsIDIwMTkgYXQgMDU6NDQ6 NTRQTSArMDIwMCwgQm9yaXMgQnJlemlsbG9uIHdyb3RlOgo+ID4gPiBFbmNvZGVyIGRyaXZlcnMg d2lsbCBwcm9ncmVzc2l2ZWx5IHRyYW5zaXRpb24gdG8gdGhlIGRybV9icmlkZ2UKPiA+ID4gaW50 ZXJmYWNlIGluIHBsYWNlIG9mIHRoZSBkcm1fZW5jb2RlciBvbmUuCj4gPiA+IAo+ID4gPiBDb252 ZXJ0aW5nIHRoZSBFeHlub3MgRFNJIGVuY29kZXIgZHJpdmVyIHRvIHRoaXMgYXBwcm9hY2ggYWxs b3dzIHVzIHRvCj4gPiA+IHVzZSB0aGUgLT5wcmVfe2VuYWJsZSxkaXNhYmxlfSgpICBob29rcyBh bmQgZ2V0IHJpZCBvZiB0aGUgaGFjawo+ID4gPiByZXNldHRpbmcgZW5jb2Rlci0+YnJpZGdlLm5l eHQgKHdoaWNoIHdhcyBuZWVkZWQgdG8gY29udHJvbCB0aGUKPiA+ID4gZW5jb2Rlci9icmlkZ2Ug ZW5hYmxlL2Rpc2FibGUgc2VxdWVuY2UpLgo+ID4gPiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogQm9y aXMgQnJlemlsbG9uIDxib3Jpcy5icmV6aWxsb25AY29sbGFib3JhLmNvbT4KPiA+ID4gLS0tCj4g PiA+IENoYW5nZXMgaW4gdjM6Cj4gPiA+ICogRW1iZWQgYSBkcm1fYnJpZGdlIG9iamVjdCBpbiBl eHlub3NfZHNpIHNpbmNlIGRybV9lbmNvZGVyIG5vIGxvbmdlcgo+ID4gPiAgIGhhcyBhIGR1bW15 IGJyaWRnZQo+ID4gPiAKPiA+ID4gQ2hhbmdlcyBpbiB2MjoKPiA+ID4gKiBOZXcgcGF0Y2ggKHJl cGxhY2VtZW50IGZvciAiZHJtL2V4eW5vczogR2V0IHJpZCBvZiBleHlub3NfZHNpLT5vdXRfYnJp ZGdlIikKPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1f ZHNpLmMgfCA4OSArKysrKysrKysrKysrKystLS0tLS0tLS0tCj4gPiA+ICAxIGZpbGUgY2hhbmdl ZCwgNTUgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RzaS5jIGIvZHJpdmVycy9n cHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RzaS5jCj4gPiA+IGluZGV4IDcyNzI2ZjJjN2E5Zi4u MzkxNWY1MGIwMDVlIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19kcm1fZHNpLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3Nf ZHJtX2RzaS5jCj4gPiA+IEBAIC0yNTIsMTAgKzI1MiwxMCBAQCBzdHJ1Y3QgZXh5bm9zX2RzaV9k cml2ZXJfZGF0YSB7Cj4gPiA+ICAKPiA+ID4gIHN0cnVjdCBleHlub3NfZHNpIHsKPiA+ID4gIAlz dHJ1Y3QgZHJtX2VuY29kZXIgZW5jb2RlcjsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2JyaWRnZSBicmlk Z2U7Cj4gPiA+ICAJc3RydWN0IG1pcGlfZHNpX2hvc3QgZHNpX2hvc3Q7Cj4gPiA+ICAJc3RydWN0 IGRybV9jb25uZWN0b3IgY29ubmVjdG9yOwo+ID4gPiAgCXN0cnVjdCBkcm1fcGFuZWwgKnBhbmVs Owo+ID4gPiAtCXN0cnVjdCBkcm1fYnJpZGdlICpvdXRfYnJpZGdlOwo+ID4gPiAgCXN0cnVjdCBk ZXZpY2UgKmRldjsKPiA+ID4gIAo+ID4gPiAgCXZvaWQgX19pb21lbSAqcmVnX2Jhc2U7Cj4gPiA+ IEBAIC0yOTEsNiArMjkxLDExIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGV4eW5vc19kc2kgKmVu Y29kZXJfdG9fZHNpKHN0cnVjdCBkcm1fZW5jb2RlciAqZSkKPiA+ID4gIAlyZXR1cm4gY29udGFp bmVyX29mKGUsIHN0cnVjdCBleHlub3NfZHNpLCBlbmNvZGVyKTsKPiA+ID4gIH0KPiA+ID4gIAo+ ID4gPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZXh5bm9zX2RzaSAqYnJpZGdlX3RvX2RzaShzdHJ1 Y3QgZHJtX2JyaWRnZSAqYikKPiA+ID4gK3sKPiA+ID4gKwlyZXR1cm4gY29udGFpbmVyX29mKGIs IHN0cnVjdCBleHlub3NfZHNpLCBicmlkZ2UpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICBlbnVt IHJlZ19pZHggewo+ID4gPiAgCURTSU1fU1RBVFVTX1JFRywJLyogU3RhdHVzIHJlZ2lzdGVyICov Cj4gPiA+ICAJRFNJTV9TV1JTVF9SRUcsCQkvKiBTb2Z0d2FyZSByZXNldCByZWdpc3RlciAqLwo+ ID4gPiBAQCAtMTM3NCwyNSArMTM3OSwzOCBAQCBzdGF0aWMgdm9pZCBleHlub3NfZHNpX3VucmVn aXN0ZXJfdGVfaXJxKHN0cnVjdCBleHlub3NfZHNpICpkc2kpCj4gPiA+ICAJfQo+ID4gPiAgfQo+ ID4gPiAgCj4gPiA+IC1zdGF0aWMgdm9pZCBleHlub3NfZHNpX2VuYWJsZShzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCj4gPiA+ICtzdGF0aWMgdm9pZCBleHlub3NfZHNpX3ByZV9lbmFibGUo c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiA+ID4gIHsKPiA+ID4gLQlzdHJ1Y3QgZXh5bm9z X2RzaSAqZHNpID0gZW5jb2Rlcl90b19kc2koZW5jb2Rlcik7Cj4gPiA+ICsJc3RydWN0IGV4eW5v c19kc2kgKmRzaSA9IGJyaWRnZV90b19kc2koYnJpZGdlKTsKPiA+ID4gIAlpbnQgcmV0Owo+ID4g PiAgCj4gPiA+ICAJaWYgKGRzaS0+c3RhdGUgJiBEU0lNX1NUQVRFX0VOQUJMRUQpCj4gPiA+ICAJ CXJldHVybjsgIAo+ID4gCj4gPiBUaGlzIGNhbiBwcm9iYWJseSBiZSByZW1vdmVkIG5vdyBhcyB0 aGUgY29yZSBzaG91bGQgZW5zdXJlIHRoYXQKPiA+IGRvdWJsZS1lbmFibGUgb3IgZG91YmxlLWRp c2FibGUgbmV2ZXIgb2NjdXJzLCBidXQgaXQgY2FuIGJlIGRvbmUgaW4gYQo+ID4gc2VwYXJhdGUg cGF0Y2guCj4gCj4gRXhjZXB0IHRoZSBlbmFibGUvZGlzYWJsZSgpIGltcGxlbWVudGF0aW9ucyBo YW5kbGUgZmFpbHVyZXMgKHRoZQo+IGZyYW1ld29yayBkb2VzIG5vdCBleHBlY3QgdGhvc2UgdG8g ZmFpbHMgQlRXKSwgYW5kIEkgZ3Vlc3MgaXQncwo+IGltcG9ydGFudCB0byBrbm93IHRoZSBhY3R1 YWwgSFcgc3RhdGUgaW4gb3JkZXIgdG8ga2VlcCBydW50aW1lIFBNCj4gZ2V0L3B1dCBjYWxscyBi YWxhbmNlZC4KPiAKPiA+ID4gIAo+ID4gPiAgCXBtX3J1bnRpbWVfZ2V0X3N5bmMoZHNpLT5kZXYp Owo+ID4gPiAtCWRzaS0+c3RhdGUgfD0gRFNJTV9TVEFURV9FTkFCTEVEOwo+ID4gPiAgCj4gPiA+ ICAJaWYgKGRzaS0+cGFuZWwpIHsKPiA+ID4gIAkJcmV0ID0gZHJtX3BhbmVsX3ByZXBhcmUoZHNp LT5wYW5lbCk7Cj4gPiA+ICAJCWlmIChyZXQgPCAwKQo+ID4gPiAgCQkJZ290byBlcnJfcHV0X3N5 bmM7Cj4gPiA+IC0JfSBlbHNlIHsKPiA+ID4gLQkJZHJtX2JyaWRnZV9wcmVfZW5hYmxlKGRzaS0+ b3V0X2JyaWRnZSk7Cj4gPiA+ICAJfSAgCj4gPiAKPiA+IEl0IHdvdWxkIGJlIG5pY2UgdG8gc3dp dGNoIHRvIHRoZSBkcm0gcGFuZWwgYnJpZGdlLCBidXQgdGhhdCBjYW4gYWxzbyBiZQo+ID4gZG9u ZSBvbiB0b3Agb2YgdGhpcyBzZXJpZXMuCj4gCj4gSSBhZ3JlZSwganVzdCBkaWRuJ3Qgd2FudCB0 byBhZGQgbW9yZSBzdHVmZiB0byB0aGlzIHNlcmllcy4KPiAKPiA+ID4gIAo+ID4gPiArCWRzaS0+ c3RhdGUgfD0gRFNJTV9TVEFURV9FTkFCTEVEOwo+ID4gPiArCXJldHVybjsKPiA+ID4gKwo+ID4g PiArZXJyX3B1dF9zeW5jOgo+ID4gPiArCXBtX3J1bnRpbWVfcHV0KGRzaS0+ZGV2KTsKPiA+ID4g K30KPiA+ID4gKwo+ID4gPiArc3RhdGljIHZvaWQgZXh5bm9zX2RzaV9lbmFibGUoc3RydWN0IGRy bV9icmlkZ2UgKmJyaWRnZSkKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgZXh5bm9zX2RzaSAqZHNp ID0gYnJpZGdlX3RvX2RzaShicmlkZ2UpOwo+ID4gPiArCWludCByZXQ7Cj4gPiA+ICsKPiA+ID4g KwlpZiAoIShkc2ktPnN0YXRlICYgRFNJTV9TVEFURV9FTkFCTEVEKSB8fAo+ID4gPiArCSAgICAo ZHNpLT5zdGF0ZSAmIERTSU1fU1RBVEVfVklET1VUX0FWQUlMQUJMRSkpCj4gPiA+ICsJCXJldHVy bjsKPiA+ID4gKwo+ID4gPiAgCWV4eW5vc19kc2lfc2V0X2Rpc3BsYXlfbW9kZShkc2kpOwo+ID4g PiAgCWV4eW5vc19kc2lfc2V0X2Rpc3BsYXlfZW5hYmxlKGRzaSwgdHJ1ZSk7Cj4gPiA+ICAKPiA+ ID4gQEAgLTE0MDAsOCArMTQxOCw2IEBAIHN0YXRpYyB2b2lkIGV4eW5vc19kc2lfZW5hYmxlKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiA+ID4gIAkJcmV0ID0gZHJtX3BhbmVsX2VuYWJs ZShkc2ktPnBhbmVsKTsKPiA+ID4gIAkJaWYgKHJldCA8IDApCj4gPiA+ICAJCQlnb3RvIGVycl9k aXNwbGF5X2Rpc2FibGU7Cj4gPiA+IC0JfSBlbHNlIHsKPiA+ID4gLQkJZHJtX2JyaWRnZV9lbmFi bGUoZHNpLT5vdXRfYnJpZGdlKTsKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gIAlkc2ktPnN0YXRl IHw9IERTSU1fU1RBVEVfVklET1VUX0FWQUlMQUJMRTsKPiA+ID4gQEAgLTE0MTAsMjggKzE0MjYs MzAgQEAgc3RhdGljIHZvaWQgZXh5bm9zX2RzaV9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKQo+ID4gPiAgZXJyX2Rpc3BsYXlfZGlzYWJsZToKPiA+ID4gIAlleHlub3NfZHNpX3Nl dF9kaXNwbGF5X2VuYWJsZShkc2ksIGZhbHNlKTsKPiA+ID4gIAlkcm1fcGFuZWxfdW5wcmVwYXJl KGRzaS0+cGFuZWwpOyAgCj4gPiAKPiA+IERvZXMgdGhpcyBiZWxvbmcgaGVyZSwgYXMgZHJtX3Bh bmVsX3ByZXBhcmUoKSB3YXMgY2FsbGVkIGluCj4gPiBleHlub3NfZHNpX3ByZV9lbmFibGUoKSA/ Cj4gCj4gTm9wZSwgdGhpcyBvbmUgc2hvdWxkIGJlIGRyb3BwZWQuCj4gCj4gPiA+IC0KPiA+ID4g LWVycl9wdXRfc3luYzoKPiA+ID4gLQlkc2ktPnN0YXRlICY9IH5EU0lNX1NUQVRFX0VOQUJMRUQ7 Cj4gPiA+IC0JcG1fcnVudGltZV9wdXQoZHNpLT5kZXYpOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ IC1zdGF0aWMgdm9pZCBleHlub3NfZHNpX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKQo+ID4gPiArc3RhdGljIHZvaWQgZXh5bm9zX2RzaV9kaXNhYmxlKHN0cnVjdCBkcm1fYnJp ZGdlICpicmlkZ2UpCj4gPiA+ICB7Cj4gPiA+IC0Jc3RydWN0IGV4eW5vc19kc2kgKmRzaSA9IGVu Y29kZXJfdG9fZHNpKGVuY29kZXIpOwo+ID4gPiArCXN0cnVjdCBleHlub3NfZHNpICpkc2kgPSBi cmlkZ2VfdG9fZHNpKGJyaWRnZSk7Cj4gPiA+ICsKPiA+ID4gKwlpZiAoIShkc2ktPnN0YXRlICYg RFNJTV9TVEFURV9WSURPVVRfQVZBSUxBQkxFKSkKPiA+ID4gKwkJcmV0dXJuOwo+ID4gPiArCj4g PiA+ICsJZHJtX3BhbmVsX2Rpc2FibGUoZHNpLT5wYW5lbCk7Cj4gPiA+ICsJZXh5bm9zX2RzaV9z ZXRfZGlzcGxheV9lbmFibGUoZHNpLCBmYWxzZSk7Cj4gPiA+ICsJZHNpLT5zdGF0ZSAmPSB+RFNJ TV9TVEFURV9WSURPVVRfQVZBSUxBQkxFOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMg dm9pZCBleHlub3NfZHNpX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ ID4gPiArewo+ID4gPiArCXN0cnVjdCBleHlub3NfZHNpICpkc2kgPSBicmlkZ2VfdG9fZHNpKGJy aWRnZSk7Cj4gPiA+ICAKPiA+ID4gIAlpZiAoIShkc2ktPnN0YXRlICYgRFNJTV9TVEFURV9FTkFC TEVEKSkKPiA+ID4gIAkJcmV0dXJuOwo+ID4gPiAgCj4gPiA+IC0JZHNpLT5zdGF0ZSAmPSB+RFNJ TV9TVEFURV9WSURPVVRfQVZBSUxBQkxFOwo+ID4gPiAtCj4gPiA+IC0JZHJtX3BhbmVsX2Rpc2Fi bGUoZHNpLT5wYW5lbCk7Cj4gPiA+IC0JZHJtX2JyaWRnZV9kaXNhYmxlKGRzaS0+b3V0X2JyaWRn ZSk7Cj4gPiA+IC0JZXh5bm9zX2RzaV9zZXRfZGlzcGxheV9lbmFibGUoZHNpLCBmYWxzZSk7Cj4g PiA+ICAJZHJtX3BhbmVsX3VucHJlcGFyZShkc2ktPnBhbmVsKTsKPiA+ID4gLQlkcm1fYnJpZGdl X3Bvc3RfZGlzYWJsZShkc2ktPm91dF9icmlkZ2UpOwo+ID4gPiAtCWRzaS0+c3RhdGUgJj0gfkRT SU1fU1RBVEVfRU5BQkxFRDsKPiA+ID4gIAlwbV9ydW50aW1lX3B1dF9zeW5jKGRzaS0+ZGV2KTsK PiA+ID4gKwlkc2ktPnN0YXRlICY9IH5EU0lNX1NUQVRFX0VOQUJMRUQ7Cj4gPiA+ICB9Cj4gPiA+ ICAKPiA+ID4gIHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCj4gPiA+IEBAIC0xNDk5 LDkgKzE1MTcsMTEgQEAgc3RhdGljIGludCBleHlub3NfZHNpX2NyZWF0ZV9jb25uZWN0b3Ioc3Ry dWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ID4gPiAgCXJldHVybiAwOwo+ID4gPiAgfQo+ID4g PiAgCj4gPiA+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcyBl eHlub3NfZHNpX2VuY29kZXJfaGVscGVyX2Z1bmNzID0gewo+ID4gPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIGV4eW5vc19kc2lfYnJpZGdlX2Z1bmNzID0gewo+ID4gPiAr CS5wcmVfZW5hYmxlID0gZXh5bm9zX2RzaV9wcmVfZW5hYmxlLAo+ID4gPiAgCS5lbmFibGUgPSBl eHlub3NfZHNpX2VuYWJsZSwKPiA+ID4gIAkuZGlzYWJsZSA9IGV4eW5vc19kc2lfZGlzYWJsZSwK PiA+ID4gKwkucG9zdF9kaXNhYmxlID0gZXh5bm9zX2RzaV9wb3N0X2Rpc2FibGUsCj4gPiA+ICB9 Owo+ID4gPiAgCj4gPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGV4 eW5vc19kc2lfZW5jb2Rlcl9mdW5jcyA9IHsKPiA+ID4gQEAgLTE1MjAsOSArMTU0MCw3IEBAIHN0 YXRpYyBpbnQgZXh5bm9zX2RzaV9ob3N0X2F0dGFjaChzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9z dCwKPiA+ID4gIAo+ID4gPiAgCW91dF9icmlkZ2UgID0gb2ZfZHJtX2ZpbmRfYnJpZGdlKGRldmlj ZS0+ZGV2Lm9mX25vZGUpOwo+ID4gPiAgCWlmIChvdXRfYnJpZGdlKSB7Cj4gPiA+IC0JCWRybV9i cmlkZ2VfYXR0YWNoKGVuY29kZXIsIG91dF9icmlkZ2UsIE5VTEwpOwo+ID4gPiAtCQlkc2ktPm91 dF9icmlkZ2UgPSBvdXRfYnJpZGdlOwo+ID4gPiAtCQllbmNvZGVyLT5icmlkZ2UgPSBOVUxMOwo+ ID4gPiArCQlkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBvdXRfYnJpZGdlLCAmZHNpLT5icmlk Z2UpOwo+ID4gPiAgCX0gZWxzZSB7Cj4gPiA+ICAJCWludCByZXQgPSBleHlub3NfZHNpX2NyZWF0 ZV9jb25uZWN0b3IoZW5jb2Rlcik7Cj4gPiA+ICAKPiA+ID4gQEAgLTE1NzUsMTkgKzE1OTMsMTkg QEAgc3RhdGljIGludCBleHlub3NfZHNpX2hvc3RfZGV0YWNoKHN0cnVjdCBtaXBpX2RzaV9ob3N0 ICpob3N0LAo+ID4gPiAgCQkJCSAgc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZGV2aWNlKQo+ID4g PiAgewo+ID4gPiAgCXN0cnVjdCBleHlub3NfZHNpICpkc2kgPSBob3N0X3RvX2RzaShob3N0KTsK PiA+ID4gKwlzdHJ1Y3QgZHJtX2JyaWRnZSAqb3V0X2JyaWRnZSA9IGRzaS0+YnJpZGdlLm5leHQ7 Cj4gPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGRzaS0+ZW5jb2Rlci5kZXY7Cj4gPiA+ ICAKPiA+ID4gIAlpZiAoZHNpLT5wYW5lbCkgewo+ID4gPiAgCQltdXRleF9sb2NrKCZkcm0tPm1v ZGVfY29uZmlnLm11dGV4KTsKPiA+ID4gLQkJZXh5bm9zX2RzaV9kaXNhYmxlKCZkc2ktPmVuY29k ZXIpOwo+ID4gPiArCQlleHlub3NfZHNpX2Rpc2FibGUoJmRzaS0+YnJpZGdlKTsKPiA+ID4gKwkJ ZXh5bm9zX2RzaV9wb3N0X2Rpc2FibGUoJmRzaS0+YnJpZGdlKTsKPiA+ID4gIAkJZHJtX3BhbmVs X2RldGFjaChkc2ktPnBhbmVsKTsKPiA+ID4gIAkJZHNpLT5wYW5lbCA9IE5VTEw7Cj4gPiA+ICAJ CWRzaS0+Y29ubmVjdG9yLnN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkOwo+ ID4gPiAgCQltdXRleF91bmxvY2soJmRybS0+bW9kZV9jb25maWcubXV0ZXgpOwo+ID4gPiAtCX0g ZWxzZSB7Cj4gPiA+IC0JCWlmIChkc2ktPm91dF9icmlkZ2UtPmZ1bmNzLT5kZXRhY2gpCj4gPiA+ IC0JCQlkc2ktPm91dF9icmlkZ2UtPmZ1bmNzLT5kZXRhY2goZHNpLT5vdXRfYnJpZGdlKTsKPiA+ ID4gLQkJZHNpLT5vdXRfYnJpZGdlID0gTlVMTDsKPiA+ID4gKwl9IGVsc2UgaWYgKG91dF9icmlk Z2UgJiYgb3V0X2JyaWRnZS0+ZnVuY3MtPmRldGFjaCkgewo+ID4gPiArCQlvdXRfYnJpZGdlLT5m dW5jcy0+ZGV0YWNoKG91dF9icmlkZ2UpOyAgCj4gPiAKPiA+IE1heWJlIGRybV9icmlkZ2VfZGV0 YWNoKCkgPwo+IAo+IFRoaXMgZnVuY3Rpb24gaXMgbm90IGV4cG9ydGVkLCBhbmQgSSBzdXBwb3Nl IHRoYXQncyB3aHkgdGhleSB1c2VkIHRoZQo+IGZ1bmN0aW9uIHBvaW50ZXIgaW4gdGhpcyBkcml2 ZXIuIEkgYmV0IHRoZXJlJ3MgYSBnb29kIHJlYXNvbiBmb3Igbm90Cj4gZXhwb3NpbmcgdGhpcyBm dW5jdGlvbi4uLgoKSW5kZWVkLCBteSBiYWQuIEl0J3MgY2FsbGVkIGJ5IGRybV9lbmNvZGVyX2Ns ZWFudXAoKSwgSSBhc3N1bWUgaXQncyBub3QKZW5vdWdoID8gSWYgdGhlcmUncyBhIGdvb2QgdXNl IGNhc2UgZm9yIGV4cG9ydGluZyBpdCwgdGhlbiBJIHRoaW5rIGl0CnNob3VsZCBiZSBleHBvcnRl ZC4KCj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+ICAJaWYgKGRybS0+bW9kZV9jb25maWcucG9sbF9l bmFibGVkKQo+ID4gPiBAQCAtMTY4NywxNiArMTcwNSwxOCBAQCBzdGF0aWMgaW50IGV4eW5vc19k c2lfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKPiA+ID4g IAlkcm1fZW5jb2Rlcl9pbml0KGRybV9kZXYsIGVuY29kZXIsICZleHlub3NfZHNpX2VuY29kZXJf ZnVuY3MsCj4gPiA+ICAJCQkgRFJNX01PREVfRU5DT0RFUl9UTURTLCBOVUxMKTsKPiA+ID4gIAo+ ID4gPiAtCWRybV9lbmNvZGVyX2hlbHBlcl9hZGQoZW5jb2RlciwgJmV4eW5vc19kc2lfZW5jb2Rl cl9oZWxwZXJfZnVuY3MpOwo+ID4gPiAtCj4gPiA+ICAJcmV0ID0gZXh5bm9zX2RybV9zZXRfcG9z c2libGVfY3J0Y3MoZW5jb2RlciwgRVhZTk9TX0RJU1BMQVlfVFlQRV9MQ0QpOwo+ID4gPiAgCWlm IChyZXQgPCAwKQo+ID4gPiAgCQlyZXR1cm4gcmV0Owo+ID4gPiAgCj4gPiA+ICsJLyogRGVjbGFy ZSBvdXJzZWxmIGFzIHRoZSBmaXJzdCBicmlkZ2UgZWxlbWVudC4gKi8KPiA+ID4gKwlkc2ktPmJy aWRnZS5mdW5jcyA9ICZleHlub3NfZHNpX2JyaWRnZV9mdW5jczsKPiA+ID4gKwlkcm1fYnJpZGdl X2F0dGFjaChlbmNvZGVyLCAmZHNpLT5icmlkZ2UsIE5VTEwpOwo+ID4gPiArCj4gPiA+ICAJaWYg KGRzaS0+aW5fYnJpZGdlX25vZGUpIHsKPiA+ID4gIAkJaW5fYnJpZGdlID0gb2ZfZHJtX2ZpbmRf YnJpZGdlKGRzaS0+aW5fYnJpZGdlX25vZGUpOwo+ID4gPiAgCQlpZiAoaW5fYnJpZGdlKQo+ID4g PiAtCQkJZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgaW5fYnJpZGdlLCBOVUxMKTsKPiA+ID4g KwkJCWRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGluX2JyaWRnZSwgJmRzaS0+YnJpZGdlKTsK PiA+ID4gIAl9ICAKPiA+IAo+ID4gU2FtZSBhcyBmb3IgcGF0Y2ggMDEvMjEsIG1heWJlIHRoaXMg Y291bGQgYmUgbW92ZWQgdG8gdGhpcyBicmlkZ2Uncwo+ID4gYXR0YWNoIG9wZXJhdGlvbiA/IEFj dHVhbGx5LCBub3cgdGhhdCBJJ3ZlIHJlYWQgdGhlIGNvZGUsIHRoaXMgaW5fYnJpZGdlCj4gPiBw YXJ0IGxvb2tzIHdlaXJkLiBXaHkgd291bGQgdGhlIERTSSBlbmNvZGVyIGhhdmUgYW4gaW5wdXQg YnJpZGdlIHRoYXQgaXMKPiA+IGhhcyB0byBtYW5hZ2UgaXRzZWxmID8KPiAKPiBZZXMsIEkga25v dywgaXQgZG9lc24ndCBtYWtlIGFueSBzZW5zZS4gRWl0aGVyIHdlJ3JlIGRlYWxpbmcgd2l0aCBh Cj4gYnJpZGdlIHdoaWNoIGNhbiBiZSBjaGFpbmVkIHRvIG90aGVyIGJyaWRnZXMgKGNhbiBiZSBw bGFjZWQgaW4gdGhlCj4gbWlkZGxlIG9mIGEgY2hhaW4gYXMgd2VsbCksIG9yIHdlJ3JlIGRlYWxp bmcgd2l0aCBhbiBlbmNvZGVyIHdoaWNoCj4gcHJlY2VkZXMgYW55IGJyaWRnZXMuIEluIHRoZSBs YXR0ZXIgY2FzZSAod2hpY2ggaXMgaG93IGV4eW5vc19kc2kgaXMKPiBpbXBsZW1lbnRlZCkgaW5f YnJpZGdlIGRvZXNuJ3QgaGF2ZSBhbnkgbWVhbmluZywgYW5kIHRoYXQncyBldmVuIHdvcnNlCj4g c2luY2Ugd2UncmUgcGxhY2luZyB0aGUgc28tY2FsbGVkIGlucHV0IGJyaWRnZSAoQUtBIHByZXZp b3VzIGJyaWRnZSkKPiBhZnRlciBvdXIgZW5jb2RlciAodGhhdCdzIHdoYXQgZHJtX2JyaWRnZV9h dHRhY2goZW5jb2RlciwgaW5fYnJpZGdlLAo+IE5VTEwpIGRvZXMpLgoKQ2FuIHdlIGdldCBpbnB1 dCBmcm9tIHRoZSBleHlub3MgbWFpbnRhaW5lcnMgPyBPciBpcyB0aGUgZHJpdmVyIG5vdAphY3Rp dmVseSBtYWludGFpbmVkIGFueW1vcmUgPwoKPiBUQkgsIEkgZGlkbid0IHdhbnQgdG8gZ28gdGhh dCBmYXIgYW5kIGZpeCBleGlzdGluZyBkcml2ZXJzIHdoZW4gSQo+IHN0YXJ0ZWQgdGhpcyBzZXJp ZXMsIHNvIEkgdGhpbmsgSSdsbCByZXdvcmsgdGhlIHBhdGNoc2V0IHRvIGdldCByaWQgb2YKPiB0 aGUgVkM0IGFuZCBleHlub3MgcGF0Y2hlcywgZXZlbiBpZiB0aGF0IG1lYW5zIGhhdmluZyAyIGRy aXZlcnMgdGhhdAo+IG1lc3MgdXAgd2l0aCB0aGUgZW5jb2Rlci0+YnJpZGdlX2NoYWluIGxpc3Qu CgpJIGRvbid0IG1pbmQgdGhlIGFib3ZlIGNoYW5nZXMgcmVhbGx5IChhbmQgdGhlIG9uZSBmb3Ig VkM0IHNlZW1zIHByZXR0eQpmaW5lIHNvIGZhcikuCgotLSAKUmVnYXJkcywKCkxhdXJlbnQgUGlu Y2hhcnQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs