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 12:24:33 +0200 Message-ID: <20191124102433.GD4727@pendragon.ideasonboard.com> References: <20191023154512.9762-1-boris.brezillon@collabora.com> <20191023154512.9762-4-boris.brezillon@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 4818A89CDD for ; Sun, 24 Nov 2019 10:24:45 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20191023154512.9762-4-boris.brezillon@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 SGkgQm9yaXMsCgpUaGFuayB5b3UgZm9yIHRoZSBwYXRjaC4KCk9uIFdlZCwgT2N0IDIzLCAyMDE5 IGF0IDA1OjQ0OjU0UE0gKzAyMDAsIEJvcmlzIEJyZXppbGxvbiB3cm90ZToKPiBFbmNvZGVyIGRy aXZlcnMgd2lsbCBwcm9ncmVzc2l2ZWx5IHRyYW5zaXRpb24gdG8gdGhlIGRybV9icmlkZ2UKPiBp bnRlcmZhY2UgaW4gcGxhY2Ugb2YgdGhlIGRybV9lbmNvZGVyIG9uZS4KPiAKPiBDb252ZXJ0aW5n IHRoZSBFeHlub3MgRFNJIGVuY29kZXIgZHJpdmVyIHRvIHRoaXMgYXBwcm9hY2ggYWxsb3dzIHVz IHRvCj4gdXNlIHRoZSAtPnByZV97ZW5hYmxlLGRpc2FibGV9KCkgIGhvb2tzIGFuZCBnZXQgcmlk IG9mIHRoZSBoYWNrCj4gcmVzZXR0aW5nIGVuY29kZXItPmJyaWRnZS5uZXh0ICh3aGljaCB3YXMg bmVlZGVkIHRvIGNvbnRyb2wgdGhlCj4gZW5jb2Rlci9icmlkZ2UgZW5hYmxlL2Rpc2FibGUgc2Vx dWVuY2UpLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemls bG9uQGNvbGxhYm9yYS5jb20+Cj4gLS0tCj4gQ2hhbmdlcyBpbiB2MzoKPiAqIEVtYmVkIGEgZHJt X2JyaWRnZSBvYmplY3QgaW4gZXh5bm9zX2RzaSBzaW5jZSBkcm1fZW5jb2RlciBubyBsb25nZXIK PiAgIGhhcyBhIGR1bW15IGJyaWRnZQo+IAo+IENoYW5nZXMgaW4gdjI6Cj4gKiBOZXcgcGF0Y2gg KHJlcGxhY2VtZW50IGZvciAiZHJtL2V4eW5vczogR2V0IHJpZCBvZiBleHlub3NfZHNpLT5vdXRf YnJpZGdlIikKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RzaS5j IHwgODkgKysrKysrKysrKysrKysrLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgNTUgaW5z ZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zX2RybV9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RybV9kc2kuYwo+IGluZGV4IDcyNzI2ZjJjN2E5Zi4uMzkxNWY1MGIwMDVlIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kc2kuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kc2kuYwo+IEBAIC0yNTIsMTAgKzI1Miwx MCBAQCBzdHJ1Y3QgZXh5bm9zX2RzaV9kcml2ZXJfZGF0YSB7Cj4gIAo+ICBzdHJ1Y3QgZXh5bm9z X2RzaSB7Cj4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgZW5jb2RlcjsKPiArCXN0cnVjdCBkcm1fYnJp ZGdlIGJyaWRnZTsKPiAgCXN0cnVjdCBtaXBpX2RzaV9ob3N0IGRzaV9ob3N0Owo+ICAJc3RydWN0 IGRybV9jb25uZWN0b3IgY29ubmVjdG9yOwo+ICAJc3RydWN0IGRybV9wYW5lbCAqcGFuZWw7Cj4g LQlzdHJ1Y3QgZHJtX2JyaWRnZSAqb3V0X2JyaWRnZTsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldjsK PiAgCj4gIAl2b2lkIF9faW9tZW0gKnJlZ19iYXNlOwo+IEBAIC0yOTEsNiArMjkxLDExIEBAIHN0 YXRpYyBpbmxpbmUgc3RydWN0IGV4eW5vc19kc2kgKmVuY29kZXJfdG9fZHNpKHN0cnVjdCBkcm1f ZW5jb2RlciAqZSkKPiAgCXJldHVybiBjb250YWluZXJfb2YoZSwgc3RydWN0IGV4eW5vc19kc2ks IGVuY29kZXIpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBleHlub3NfZHNpICpi cmlkZ2VfdG9fZHNpKHN0cnVjdCBkcm1fYnJpZGdlICpiKQo+ICt7Cj4gKwlyZXR1cm4gY29udGFp bmVyX29mKGIsIHN0cnVjdCBleHlub3NfZHNpLCBicmlkZ2UpOwo+ICt9Cj4gKwo+ICBlbnVtIHJl Z19pZHggewo+ICAJRFNJTV9TVEFUVVNfUkVHLAkvKiBTdGF0dXMgcmVnaXN0ZXIgKi8KPiAgCURT SU1fU1dSU1RfUkVHLAkJLyogU29mdHdhcmUgcmVzZXQgcmVnaXN0ZXIgKi8KPiBAQCAtMTM3NCwy NSArMTM3OSwzOCBAQCBzdGF0aWMgdm9pZCBleHlub3NfZHNpX3VucmVnaXN0ZXJfdGVfaXJxKHN0 cnVjdCBleHlub3NfZHNpICpkc2kpCj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGV4eW5v c19kc2lfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQg ZXh5bm9zX2RzaV9wcmVfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIHsKPiAt CXN0cnVjdCBleHlub3NfZHNpICpkc2kgPSBlbmNvZGVyX3RvX2RzaShlbmNvZGVyKTsKPiArCXN0 cnVjdCBleHlub3NfZHNpICpkc2kgPSBicmlkZ2VfdG9fZHNpKGJyaWRnZSk7Cj4gIAlpbnQgcmV0 Owo+ICAKPiAgCWlmIChkc2ktPnN0YXRlICYgRFNJTV9TVEFURV9FTkFCTEVEKQo+ICAJCXJldHVy bjsKClRoaXMgY2FuIHByb2JhYmx5IGJlIHJlbW92ZWQgbm93IGFzIHRoZSBjb3JlIHNob3VsZCBl bnN1cmUgdGhhdApkb3VibGUtZW5hYmxlIG9yIGRvdWJsZS1kaXNhYmxlIG5ldmVyIG9jY3Vycywg YnV0IGl0IGNhbiBiZSBkb25lIGluIGEKc2VwYXJhdGUgcGF0Y2guCgo+ICAKPiAgCXBtX3J1bnRp bWVfZ2V0X3N5bmMoZHNpLT5kZXYpOwo+IC0JZHNpLT5zdGF0ZSB8PSBEU0lNX1NUQVRFX0VOQUJM RUQ7Cj4gIAo+ICAJaWYgKGRzaS0+cGFuZWwpIHsKPiAgCQlyZXQgPSBkcm1fcGFuZWxfcHJlcGFy ZShkc2ktPnBhbmVsKTsKPiAgCQlpZiAocmV0IDwgMCkKPiAgCQkJZ290byBlcnJfcHV0X3N5bmM7 Cj4gLQl9IGVsc2Ugewo+IC0JCWRybV9icmlkZ2VfcHJlX2VuYWJsZShkc2ktPm91dF9icmlkZ2Up Owo+ICAJfQoKSXQgd291bGQgYmUgbmljZSB0byBzd2l0Y2ggdG8gdGhlIGRybSBwYW5lbCBicmlk Z2UsIGJ1dCB0aGF0IGNhbiBhbHNvIGJlCmRvbmUgb24gdG9wIG9mIHRoaXMgc2VyaWVzLgoKPiAg Cj4gKwlkc2ktPnN0YXRlIHw9IERTSU1fU1RBVEVfRU5BQkxFRDsKPiArCXJldHVybjsKPiArCj4g K2Vycl9wdXRfc3luYzoKPiArCXBtX3J1bnRpbWVfcHV0KGRzaS0+ZGV2KTsKPiArfQo+ICsKPiAr c3RhdGljIHZvaWQgZXh5bm9zX2RzaV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkK PiArewo+ICsJc3RydWN0IGV4eW5vc19kc2kgKmRzaSA9IGJyaWRnZV90b19kc2koYnJpZGdlKTsK PiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKCEoZHNpLT5zdGF0ZSAmIERTSU1fU1RBVEVfRU5BQkxF RCkgfHwKPiArCSAgICAoZHNpLT5zdGF0ZSAmIERTSU1fU1RBVEVfVklET1VUX0FWQUlMQUJMRSkp Cj4gKwkJcmV0dXJuOwo+ICsKPiAgCWV4eW5vc19kc2lfc2V0X2Rpc3BsYXlfbW9kZShkc2kpOwo+ ICAJZXh5bm9zX2RzaV9zZXRfZGlzcGxheV9lbmFibGUoZHNpLCB0cnVlKTsKPiAgCj4gQEAgLTE0 MDAsOCArMTQxOCw2IEBAIHN0YXRpYyB2b2lkIGV4eW5vc19kc2lfZW5hYmxlKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcikKPiAgCQlyZXQgPSBkcm1fcGFuZWxfZW5hYmxlKGRzaS0+cGFuZWwp Owo+ICAJCWlmIChyZXQgPCAwKQo+ICAJCQlnb3RvIGVycl9kaXNwbGF5X2Rpc2FibGU7Cj4gLQl9 IGVsc2Ugewo+IC0JCWRybV9icmlkZ2VfZW5hYmxlKGRzaS0+b3V0X2JyaWRnZSk7Cj4gIAl9Cj4g IAo+ICAJZHNpLT5zdGF0ZSB8PSBEU0lNX1NUQVRFX1ZJRE9VVF9BVkFJTEFCTEU7Cj4gQEAgLTE0 MTAsMjggKzE0MjYsMzAgQEAgc3RhdGljIHZvaWQgZXh5bm9zX2RzaV9lbmFibGUoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyKQo+ICBlcnJfZGlzcGxheV9kaXNhYmxlOgo+ICAJZXh5bm9zX2Rz aV9zZXRfZGlzcGxheV9lbmFibGUoZHNpLCBmYWxzZSk7Cj4gIAlkcm1fcGFuZWxfdW5wcmVwYXJl KGRzaS0+cGFuZWwpOwoKRG9lcyB0aGlzIGJlbG9uZyBoZXJlLCBhcyBkcm1fcGFuZWxfcHJlcGFy ZSgpIHdhcyBjYWxsZWQgaW4KZXh5bm9zX2RzaV9wcmVfZW5hYmxlKCkgPwoKPiAtCj4gLWVycl9w dXRfc3luYzoKPiAtCWRzaS0+c3RhdGUgJj0gfkRTSU1fU1RBVEVfRU5BQkxFRDsKPiAtCXBtX3J1 bnRpbWVfcHV0KGRzaS0+ZGV2KTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZXh5bm9zX2RzaV9k aXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgZXh5bm9z X2RzaV9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIHsKPiAtCXN0cnVjdCBl eHlub3NfZHNpICpkc2kgPSBlbmNvZGVyX3RvX2RzaShlbmNvZGVyKTsKPiArCXN0cnVjdCBleHlu b3NfZHNpICpkc2kgPSBicmlkZ2VfdG9fZHNpKGJyaWRnZSk7Cj4gKwo+ICsJaWYgKCEoZHNpLT5z dGF0ZSAmIERTSU1fU1RBVEVfVklET1VUX0FWQUlMQUJMRSkpCj4gKwkJcmV0dXJuOwo+ICsKPiAr CWRybV9wYW5lbF9kaXNhYmxlKGRzaS0+cGFuZWwpOwo+ICsJZXh5bm9zX2RzaV9zZXRfZGlzcGxh eV9lbmFibGUoZHNpLCBmYWxzZSk7Cj4gKwlkc2ktPnN0YXRlICY9IH5EU0lNX1NUQVRFX1ZJRE9V VF9BVkFJTEFCTEU7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGV4eW5vc19kc2lfcG9zdF9kaXNh YmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3sKPiArCXN0cnVjdCBleHlub3NfZHNp ICpkc2kgPSBicmlkZ2VfdG9fZHNpKGJyaWRnZSk7Cj4gIAo+ICAJaWYgKCEoZHNpLT5zdGF0ZSAm IERTSU1fU1RBVEVfRU5BQkxFRCkpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWRzaS0+c3RhdGUgJj0g fkRTSU1fU1RBVEVfVklET1VUX0FWQUlMQUJMRTsKPiAtCj4gLQlkcm1fcGFuZWxfZGlzYWJsZShk c2ktPnBhbmVsKTsKPiAtCWRybV9icmlkZ2VfZGlzYWJsZShkc2ktPm91dF9icmlkZ2UpOwo+IC0J ZXh5bm9zX2RzaV9zZXRfZGlzcGxheV9lbmFibGUoZHNpLCBmYWxzZSk7Cj4gIAlkcm1fcGFuZWxf dW5wcmVwYXJlKGRzaS0+cGFuZWwpOwo+IC0JZHJtX2JyaWRnZV9wb3N0X2Rpc2FibGUoZHNpLT5v dXRfYnJpZGdlKTsKPiAtCWRzaS0+c3RhdGUgJj0gfkRTSU1fU1RBVEVfRU5BQkxFRDsKPiAgCXBt X3J1bnRpbWVfcHV0X3N5bmMoZHNpLT5kZXYpOwo+ICsJZHNpLT5zdGF0ZSAmPSB+RFNJTV9TVEFU RV9FTkFCTEVEOwo+ICB9Cj4gIAo+ICBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwo+ IEBAIC0xNDk5LDkgKzE1MTcsMTEgQEAgc3RhdGljIGludCBleHlub3NfZHNpX2NyZWF0ZV9jb25u ZWN0b3Ioc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAg Cj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzIGV4eW5vc19k c2lfZW5jb2Rlcl9oZWxwZXJfZnVuY3MgPSB7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Jy aWRnZV9mdW5jcyBleHlub3NfZHNpX2JyaWRnZV9mdW5jcyA9IHsKPiArCS5wcmVfZW5hYmxlID0g ZXh5bm9zX2RzaV9wcmVfZW5hYmxlLAo+ICAJLmVuYWJsZSA9IGV4eW5vc19kc2lfZW5hYmxlLAo+ ICAJLmRpc2FibGUgPSBleHlub3NfZHNpX2Rpc2FibGUsCj4gKwkucG9zdF9kaXNhYmxlID0gZXh5 bm9zX2RzaV9wb3N0X2Rpc2FibGUsCj4gIH07Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRy bV9lbmNvZGVyX2Z1bmNzIGV4eW5vc19kc2lfZW5jb2Rlcl9mdW5jcyA9IHsKPiBAQCAtMTUyMCw5 ICsxNTQwLDcgQEAgc3RhdGljIGludCBleHlub3NfZHNpX2hvc3RfYXR0YWNoKHN0cnVjdCBtaXBp X2RzaV9ob3N0ICpob3N0LAo+ICAKPiAgCW91dF9icmlkZ2UgID0gb2ZfZHJtX2ZpbmRfYnJpZGdl KGRldmljZS0+ZGV2Lm9mX25vZGUpOwo+ICAJaWYgKG91dF9icmlkZ2UpIHsKPiAtCQlkcm1fYnJp ZGdlX2F0dGFjaChlbmNvZGVyLCBvdXRfYnJpZGdlLCBOVUxMKTsKPiAtCQlkc2ktPm91dF9icmlk Z2UgPSBvdXRfYnJpZGdlOwo+IC0JCWVuY29kZXItPmJyaWRnZSA9IE5VTEw7Cj4gKwkJZHJtX2Jy aWRnZV9hdHRhY2goZW5jb2Rlciwgb3V0X2JyaWRnZSwgJmRzaS0+YnJpZGdlKTsKPiAgCX0gZWxz ZSB7Cj4gIAkJaW50IHJldCA9IGV4eW5vc19kc2lfY3JlYXRlX2Nvbm5lY3RvcihlbmNvZGVyKTsK PiAgCj4gQEAgLTE1NzUsMTkgKzE1OTMsMTkgQEAgc3RhdGljIGludCBleHlub3NfZHNpX2hvc3Rf ZGV0YWNoKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAo+ICAJCQkJICBzdHJ1Y3QgbWlwaV9k c2lfZGV2aWNlICpkZXZpY2UpCj4gIHsKPiAgCXN0cnVjdCBleHlub3NfZHNpICpkc2kgPSBob3N0 X3RvX2RzaShob3N0KTsKPiArCXN0cnVjdCBkcm1fYnJpZGdlICpvdXRfYnJpZGdlID0gZHNpLT5i cmlkZ2UubmV4dDsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBkc2ktPmVuY29kZXIuZGV2 Owo+ICAKPiAgCWlmIChkc2ktPnBhbmVsKSB7Cj4gIAkJbXV0ZXhfbG9jaygmZHJtLT5tb2RlX2Nv bmZpZy5tdXRleCk7Cj4gLQkJZXh5bm9zX2RzaV9kaXNhYmxlKCZkc2ktPmVuY29kZXIpOwo+ICsJ CWV4eW5vc19kc2lfZGlzYWJsZSgmZHNpLT5icmlkZ2UpOwo+ICsJCWV4eW5vc19kc2lfcG9zdF9k aXNhYmxlKCZkc2ktPmJyaWRnZSk7Cj4gIAkJZHJtX3BhbmVsX2RldGFjaChkc2ktPnBhbmVsKTsK PiAgCQlkc2ktPnBhbmVsID0gTlVMTDsKPiAgCQlkc2ktPmNvbm5lY3Rvci5zdGF0dXMgPSBjb25u ZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKPiAgCQltdXRleF91bmxvY2soJmRybS0+bW9kZV9j b25maWcubXV0ZXgpOwo+IC0JfSBlbHNlIHsKPiAtCQlpZiAoZHNpLT5vdXRfYnJpZGdlLT5mdW5j cy0+ZGV0YWNoKQo+IC0JCQlkc2ktPm91dF9icmlkZ2UtPmZ1bmNzLT5kZXRhY2goZHNpLT5vdXRf YnJpZGdlKTsKPiAtCQlkc2ktPm91dF9icmlkZ2UgPSBOVUxMOwo+ICsJfSBlbHNlIGlmIChvdXRf YnJpZGdlICYmIG91dF9icmlkZ2UtPmZ1bmNzLT5kZXRhY2gpIHsKPiArCQlvdXRfYnJpZGdlLT5m dW5jcy0+ZGV0YWNoKG91dF9icmlkZ2UpOwoKTWF5YmUgZHJtX2JyaWRnZV9kZXRhY2goKSA/Cgo+ ICAJfQo+ICAKPiAgCWlmIChkcm0tPm1vZGVfY29uZmlnLnBvbGxfZW5hYmxlZCkKPiBAQCAtMTY4 NywxNiArMTcwNSwxOCBAQCBzdGF0aWMgaW50IGV4eW5vc19kc2lfYmluZChzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKPiAgCWRybV9lbmNvZGVyX2luaXQoZHJtX2Rl diwgZW5jb2RlciwgJmV4eW5vc19kc2lfZW5jb2Rlcl9mdW5jcywKPiAgCQkJIERSTV9NT0RFX0VO Q09ERVJfVE1EUywgTlVMTCk7Cj4gIAo+IC0JZHJtX2VuY29kZXJfaGVscGVyX2FkZChlbmNvZGVy LCAmZXh5bm9zX2RzaV9lbmNvZGVyX2hlbHBlcl9mdW5jcyk7Cj4gLQo+ICAJcmV0ID0gZXh5bm9z X2RybV9zZXRfcG9zc2libGVfY3J0Y3MoZW5jb2RlciwgRVhZTk9TX0RJU1BMQVlfVFlQRV9MQ0Qp Owo+ICAJaWYgKHJldCA8IDApCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gKwkvKiBEZWNsYXJlIG91 cnNlbGYgYXMgdGhlIGZpcnN0IGJyaWRnZSBlbGVtZW50LiAqLwo+ICsJZHNpLT5icmlkZ2UuZnVu Y3MgPSAmZXh5bm9zX2RzaV9icmlkZ2VfZnVuY3M7Cj4gKwlkcm1fYnJpZGdlX2F0dGFjaChlbmNv ZGVyLCAmZHNpLT5icmlkZ2UsIE5VTEwpOwo+ICsKPiAgCWlmIChkc2ktPmluX2JyaWRnZV9ub2Rl KSB7Cj4gIAkJaW5fYnJpZGdlID0gb2ZfZHJtX2ZpbmRfYnJpZGdlKGRzaS0+aW5fYnJpZGdlX25v ZGUpOwo+ICAJCWlmIChpbl9icmlkZ2UpCj4gLQkJCWRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIs IGluX2JyaWRnZSwgTlVMTCk7Cj4gKwkJCWRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGluX2Jy aWRnZSwgJmRzaS0+YnJpZGdlKTsKPiAgCX0KClNhbWUgYXMgZm9yIHBhdGNoIDAxLzIxLCBtYXli ZSB0aGlzIGNvdWxkIGJlIG1vdmVkIHRvIHRoaXMgYnJpZGdlJ3MKYXR0YWNoIG9wZXJhdGlvbiA/ IEFjdHVhbGx5LCBub3cgdGhhdCBJJ3ZlIHJlYWQgdGhlIGNvZGUsIHRoaXMgaW5fYnJpZGdlCnBh cnQgbG9va3Mgd2VpcmQuIFdoeSB3b3VsZCB0aGUgRFNJIGVuY29kZXIgaGF2ZSBhbiBpbnB1dCBi cmlkZ2UgdGhhdCBpcwpoYXMgdG8gbWFuYWdlIGl0c2VsZiA/CgpJIGRvbid0IGZlZWwgY29uZmlk ZW50IGVub3VnaCB0byBhY2sgdGhpcyBwYXRjaC4gSXQgZ29lcyBpbiB0aGUgcmlnaHQKZGlyZWN0 aW9uIGFzIGZhciBhcyB0aGUgQVBJIGV2b2x1dGlvbiBpcyBjb25jZXJuZWQsIHNvIGlmIHlvdSBn ZXQgYW4gYWNrCmZyb20gdGhlIEV4eW5vcyBtYWludGFpbmVycywgSSdtIGhhcHB5IGVub3VnaCB0 byBzZWUgaXQgbWVyZ2VkLgoKPiAgCj4gIAlyZXR1cm4gbWlwaV9kc2lfaG9zdF9yZWdpc3Rlcigm ZHNpLT5kc2lfaG9zdCk7Cj4gQEAgLTE3MDgsNyArMTcyOCw4IEBAIHN0YXRpYyB2b2lkIGV4eW5v c19kc2lfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAo+ ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4g IAlzdHJ1Y3QgZXh5bm9zX2RzaSAqZHNpID0gZW5jb2Rlcl90b19kc2koZW5jb2Rlcik7Cj4gIAo+ IC0JZXh5bm9zX2RzaV9kaXNhYmxlKGVuY29kZXIpOwo+ICsJZXh5bm9zX2RzaV9kaXNhYmxlKCZk c2ktPmJyaWRnZSk7Cj4gKwlleHlub3NfZHNpX3Bvc3RfZGlzYWJsZSgmZHNpLT5icmlkZ2UpOwo+ ICAKPiAgCW1pcGlfZHNpX2hvc3RfdW5yZWdpc3RlcigmZHNpLT5kc2lfaG9zdCk7Cj4gIH0KCi0t IApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWw=