From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v3 01/21] drm/vc4: Declare the DSI encoder as a bridge element Date: Sun, 24 Nov 2019 12:01:30 +0200 Message-ID: <20191124100130.GC4727@pendragon.ideasonboard.com> References: <20191023154512.9762-1-boris.brezillon@collabora.com> <20191023154512.9762-2-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 9CEFE89EB4 for ; Sun, 24 Nov 2019 10:01:44 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20191023154512.9762-2-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 IGF0IDA1OjQ0OjUyUE0gKzAyMDAsIEJvcmlzIEJyZXppbGxvbiB3cm90ZToKPiBFbmNvZGVyIGRy aXZlcnMgd2lsbCBwcm9ncmVzc2l2ZWx5IHRyYW5zaXRpb24gdG8gdGhlIGRybV9icmlkZ2UKPiBp bnRlcmZhY2UgaW4gcGxhY2Ugb2YgdGhlIGRybV9lbmNvZGVyIG9uZS4KPiAKPiBMZXQncyBzdGFy dCB3aXRoIHRoZSBWQzQgZHJpdmVyLCBhbmQgdXNlIHRoZSAtPnByZV97ZW5hYmxlLGRpc2FibGV9 KCkKPiBob29rcyB0byBnZXQgcmlkIG9mIHRoZSBoYWNrIHJlc2V0dGluZyBlbmNvZGVyLT5icmlk Z2UubmV4dCAod2hpY2ggd2FzCj4gbmVlZGVkIHRvIGNvbnRyb2wgdGhlIGVuY29kZXIvYnJpZGdl IGVuYWJsZS9kaXNhYmxlIHNlcXVlbmNlKS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBCb3JpcyBCcmV6 aWxsb24gPGJvcmlzLmJyZXppbGxvbkBjb2xsYWJvcmEuY29tPgo+IC0tLQo+IENoYW5nZXMgaW4g djM6Cj4gKiBFbWJlZCBhIGRybV9icmlkZ2Ugb2JqZWN0IGluIHZjNF9kc2kgc2luY2UgZHJtX2Vu Y29kZXIgbm8gbG9uZ2VyIGhhcwo+ICAgYSBkdW1teSBicmlkZ2UKPiAKPiBDaGFuZ2VzIGluIHYy Ogo+ICogTmV3IHBhdGNoIChyZXBsYWNlcyAiZHJtL3ZjNDogR2V0IHJpZCBvZiB0aGUgZHNpLT5i cmlkZ2UgZmllbGQiKQo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2kuYyB8IDg4 ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA1 MiBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3ZjNC92YzRfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2kuYwo+ IGluZGV4IGM5YmE4M2VkNDliOS4uNDlmOGEzMTNlNzU5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS92YzQvdmM0X2RzaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHNp LmMKPiBAQCAtNDk4LDcgKzQ5OCwxMSBAQCBzdHJ1Y3QgdmM0X2RzaSB7Cj4gIAo+ICAJc3RydWN0 IG1pcGlfZHNpX2hvc3QgZHNpX2hvc3Q7Cj4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7 Cj4gLQlzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlOwo+ICsKPiArCS8qIEVtYmVkIGEgYnJpZGdl IG9iamVjdCBzbyB3ZSBjYW4gaW1wbGVtZW50IGJyaWRnZSBmdW5jcyBpbnN0ZWFkIG9mCj4gKwkg KiBlbmNvZGVyIG9uZXMuCj4gKwkgKi8KPiArCXN0cnVjdCBkcm1fYnJpZGdlIGJyaWRnZTsKPiAg Cj4gIAl2b2lkIF9faW9tZW0gKnJlZ3M7Cj4gIAo+IEBAIC01NDMsNiArNTQ3LDExIEBAIHN0cnVj dCB2YzRfZHNpIHsKPiAgCXN0cnVjdCBkZWJ1Z2ZzX3JlZ3NldDMyIHJlZ3NldDsKPiAgfTsKPiAg Cj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IHZjNF9kc2kgKmJyaWRnZV90b192YzRfZHNpKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3sKPiArCXJldHVybiBjb250YWluZXJfb2YoYnJpZGdl LCBzdHJ1Y3QgdmM0X2RzaSwgYnJpZGdlKTsKPiArfQo+ICsKPiAgI2RlZmluZSBob3N0X3RvX2Rz aShob3N0KSBjb250YWluZXJfb2YoaG9zdCwgc3RydWN0IHZjNF9kc2ksIGRzaV9ob3N0KQo+ICAK PiAgc3RhdGljIGlubGluZSB2b2lkCj4gQEAgLTc0NywxNiArNzU2LDExIEBAIGRzaV9lc2NfdGlt aW5nKHUzMiBucykKPiAgCXJldHVybiBESVZfUk9VTkRfVVAobnMsIEVTQ19USU1FX05TKTsKPiAg fQo+ICAKPiAtc3RhdGljIHZvaWQgdmM0X2RzaV9lbmNvZGVyX2Rpc2FibGUoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCB2YzRfZHNpX2JyaWRnZV9wb3N0X2Rpc2Fi bGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgewo+IC0Jc3RydWN0IHZjNF9kc2lfZW5j b2RlciAqdmM0X2VuY29kZXIgPSB0b192YzRfZHNpX2VuY29kZXIoZW5jb2Rlcik7Cj4gLQlzdHJ1 Y3QgdmM0X2RzaSAqZHNpID0gdmM0X2VuY29kZXItPmRzaTsKPiArCXN0cnVjdCB2YzRfZHNpICpk c2kgPSBicmlkZ2VfdG9fdmM0X2RzaShicmlkZ2UpOwo+ICAJc3RydWN0IGRldmljZSAqZGV2ID0g JmRzaS0+cGRldi0+ZGV2Owo+ICAKPiAtCWRybV9icmlkZ2VfZGlzYWJsZShkc2ktPmJyaWRnZSk7 Cj4gLQl2YzRfZHNpX3VscHMoZHNpLCB0cnVlKTsKPiAtCWRybV9icmlkZ2VfcG9zdF9kaXNhYmxl KGRzaS0+YnJpZGdlKTsKPiAtCj4gIAljbGtfZGlzYWJsZV91bnByZXBhcmUoZHNpLT5wbGxfcGh5 X2Nsb2NrKTsKPiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShkc2ktPmVzY2FwZV9jbG9jayk7Cj4g IAljbGtfZGlzYWJsZV91bnByZXBhcmUoZHNpLT5waXhlbF9jbG9jayk7Cj4gQEAgLTc2NCw2ICs3 NjgsMTMgQEAgc3RhdGljIHZvaWQgdmM0X2RzaV9lbmNvZGVyX2Rpc2FibGUoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyKQo+ICAJcG1fcnVudGltZV9wdXQoZGV2KTsKPiAgfQo+ICAKPiArc3Rh dGljIHZvaWQgdmM0X2RzaV9icmlkZ2VfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdl KQo+ICt7Cj4gKwlzdHJ1Y3QgdmM0X2RzaSAqZHNpID0gYnJpZGdlX3RvX3ZjNF9kc2koYnJpZGdl KTsKPiArCj4gKwl2YzRfZHNpX3VscHMoZHNpLCB0cnVlKTsKPiArfQo+ICsKPiAgLyogRXh0ZW5k cyB0aGUgbW9kZSdzIGJsYW5rIGludGVydmFscyB0byBoYW5kbGUgQkNNMjgzNSdzIGludGVnZXIt b25seQo+ICAgKiBEU0kgUExMIGRpdmlkZXIuCj4gICAqCj4gQEAgLTc3NywxMiArNzg4LDExIEBA IHN0YXRpYyB2b2lkIHZjNF9kc2lfZW5jb2Rlcl9kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcikKPiAgICogaGlnaGVyLXRoYW4tZXhwZWN0ZWQgY2xvY2sgcmF0ZSB0byB0aGUgcGFu ZWwsIGJ1dCB0aGF0J3Mgd2hhdCB0aGUKPiAgICogZmlybXdhcmUgZG9lcyB0b28uCj4gICAqLwo+ IC1zdGF0aWMgYm9vbCB2YzRfZHNpX2VuY29kZXJfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsCj4gLQkJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUsCj4gLQkJCQkgICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUpCj4gK3N0YXRpYyBib29sIHZjNF9kc2lfYnJpZGdlX21vZGVfZml4dXAoc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSwKPiArCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICptb2RlLAo+ICsJCQkJICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUpCj4gIHsKPiAtCXN0cnVjdCB2YzRfZHNpX2VuY29kZXIgKnZjNF9lbmNvZGVyID0gdG9fdmM0 X2RzaV9lbmNvZGVyKGVuY29kZXIpOwo+IC0Jc3RydWN0IHZjNF9kc2kgKmRzaSA9IHZjNF9lbmNv ZGVyLT5kc2k7Cj4gKwlzdHJ1Y3QgdmM0X2RzaSAqZHNpID0gYnJpZGdlX3RvX3ZjNF9kc2koYnJp ZGdlKTsKPiAgCXN0cnVjdCBjbGsgKnBoeV9wYXJlbnQgPSBjbGtfZ2V0X3BhcmVudChkc2ktPnBs bF9waHlfY2xvY2spOwo+ICAJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0 ZShwaHlfcGFyZW50KTsKPiAgCXVuc2lnbmVkIGxvbmcgcGl4ZWxfY2xvY2tfaHogPSBtb2RlLT5j bG9jayAqIDEwMDA7Cj4gQEAgLTgxNiwxMSArODI2LDExIEBAIHN0YXRpYyBib29sIHZjNF9kc2lf ZW5jb2Rlcl9tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCXJldHVy biB0cnVlOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCB2YzRfZHNpX2VuY29kZXJfZW5hYmxlKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgdmM0X2RzaV9icmlkZ2Vf cHJlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICB7Cj4gKwlzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIgPSBicmlkZ2UtPmVuY29kZXI7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZSA9ICZlbmNvZGVyLT5jcnRjLT5zdGF0ZS0+YWRqdXN0ZWRfbW9kZTsKPiAt CXN0cnVjdCB2YzRfZHNpX2VuY29kZXIgKnZjNF9lbmNvZGVyID0gdG9fdmM0X2RzaV9lbmNvZGVy KGVuY29kZXIpOwo+IC0Jc3RydWN0IHZjNF9kc2kgKmRzaSA9IHZjNF9lbmNvZGVyLT5kc2k7Cj4g KwlzdHJ1Y3QgdmM0X2RzaSAqZHNpID0gYnJpZGdlX3RvX3ZjNF9kc2koYnJpZGdlKTsKPiAgCXN0 cnVjdCBkZXZpY2UgKmRldiA9ICZkc2ktPnBkZXYtPmRldjsKPiAgCWJvb2wgZGVidWdfZHVtcF9y ZWdzID0gZmFsc2U7Cj4gIAl1bnNpZ25lZCBsb25nIGhzX2Nsb2NrOwo+IEBAIC0xMDU0LDggKzEw NjQsMTIgQEAgc3RhdGljIHZvaWQgdmM0X2RzaV9lbmNvZGVyX2VuYWJsZShzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCj4gIAl9Cj4gIAo+ICAJdmM0X2RzaV91bHBzKGRzaSwgZmFsc2UpOwo+ ICt9Cj4gIAo+IC0JZHJtX2JyaWRnZV9wcmVfZW5hYmxlKGRzaS0+YnJpZGdlKTsKCklmIEknbSBu b3QgbWlzdGFrZW4gdGhpcyBzd2l0Y2hlcyB0aGUgb3JkZXIgb2YgdGhlIERTSSdzIGVuY29kZXIK cHJlLWVuYWJsZSBhbmQgdGhlIG5leHQgYnJpZGdlJ3MgcHJlLWVuYWJsZS4gSSB0aGluayBpdCdz IHRydWUgZm9yCnBvc3QtZGlzYWJsZSB0b28uIEl0IG1heSBub3QgYmUgYSBwcm9ibGVtLCBidXQg aGF2ZSB0aGlzIGJlZW4gdGVzdGVkID8KCj4gK3N0YXRpYyB2b2lkIHZjNF9kc2lfYnJpZGdlX2Vu YWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICt7Cj4gKwlzdHJ1Y3QgdmM0X2RzaSAq ZHNpID0gYnJpZGdlX3RvX3ZjNF9kc2koYnJpZGdlKTsKPiArCWJvb2wgZGVidWdfZHVtcF9yZWdz ID0gZmFsc2U7Cj4gIAo+ICAJaWYgKGRzaS0+bW9kZV9mbGFncyAmIE1JUElfRFNJX01PREVfVklE RU8pIHsKPiAgCQlEU0lfUE9SVF9XUklURShESVNQMF9DVFJMLAo+IEBAIC0xMDcyLDggKzEwODYs NiBAQCBzdGF0aWMgdm9pZCB2YzRfZHNpX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcikKPiAgCQkJICAgICAgIERTSV9ESVNQMF9FTkFCTEUpOwo+ICAJfQo+ICAKPiAt CWRybV9icmlkZ2VfZW5hYmxlKGRzaS0+YnJpZGdlKTsKPiAtCj4gIAlpZiAoZGVidWdfZHVtcF9y ZWdzKSB7Cj4gIAkJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1faW5mb19wcmludGVyKCZkc2kt PnBkZXYtPmRldik7Cj4gIAkJZGV2X2luZm8oJmRzaS0+cGRldi0+ZGV2LCAiRFNJIHJlZ3MgYWZ0 ZXI6XG4iKTsKPiBAQCAtMTI5MCwxMCArMTMwMiwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1p cGlfZHNpX2hvc3Rfb3BzIHZjNF9kc2lfaG9zdF9vcHMgPSB7Cj4gIAkudHJhbnNmZXIgPSB2YzRf ZHNpX2hvc3RfdHJhbnNmZXIsCj4gIH07Cj4gIAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9l bmNvZGVyX2hlbHBlcl9mdW5jcyB2YzRfZHNpX2VuY29kZXJfaGVscGVyX2Z1bmNzID0gewo+IC0J LmRpc2FibGUgPSB2YzRfZHNpX2VuY29kZXJfZGlzYWJsZSwKPiAtCS5lbmFibGUgPSB2YzRfZHNp X2VuY29kZXJfZW5hYmxlLAo+IC0JLm1vZGVfZml4dXAgPSB2YzRfZHNpX2VuY29kZXJfbW9kZV9m aXh1cCwKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIHZjNF9kc2lfYnJp ZGdlX2Z1bmNzID0gewo+ICsJLnByZV9lbmFibGUgPSB2YzRfZHNpX2JyaWRnZV9wcmVfZW5hYmxl LAo+ICsJLmVuYWJsZSA9IHZjNF9kc2lfYnJpZGdlX2VuYWJsZSwKPiArCS5kaXNhYmxlID0gdmM0 X2RzaV9icmlkZ2VfZGlzYWJsZSwKPiArCS5wb3N0X2Rpc2FibGUgPSB2YzRfZHNpX2JyaWRnZV9w b3N0X2Rpc2FibGUsCj4gKwkubW9kZV9maXh1cCA9IHZjNF9kc2lfYnJpZGdlX21vZGVfZml4dXAs Cj4gIH07Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB2YzRfZHNpX2R0 X21hdGNoW10gPSB7Cj4gQEAgLTE0NDUsNiArMTQ1OSw3IEBAIHN0YXRpYyBpbnQgdmM0X2RzaV9i aW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRh KQo+ICAJc3RydWN0IHZjNF9kZXYgKnZjNCA9IHRvX3ZjNF9kZXYoZHJtKTsKPiAgCXN0cnVjdCB2 YzRfZHNpICpkc2kgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiAgCXN0cnVjdCB2YzRfZHNpX2Vu Y29kZXIgKnZjNF9kc2lfZW5jb2RlcjsKPiArCXN0cnVjdCBkcm1fYnJpZGdlICpuZXh0X2JyaWRn ZTsKPiAgCXN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsOwo+ICAJY29uc3Qgc3RydWN0IG9mX2Rldmlj ZV9pZCAqbWF0Y2g7Cj4gIAlkbWFfY2FwX21hc2tfdCBkbWFfbWFzazsKPiBAQCAtMTU2MSw3ICsx NTc2LDcgQEAgc3RhdGljIGludCB2YzRfZHNpX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4gIAl9Cj4gIAo+ICAJcmV0ID0gZHJtX29m X2ZpbmRfcGFuZWxfb3JfYnJpZGdlKGRldi0+b2Zfbm9kZSwgMCwgMCwKPiAtCQkJCQkgICZwYW5l bCwgJmRzaS0+YnJpZGdlKTsKPiArCQkJCQkgICZwYW5lbCwgJm5leHRfYnJpZGdlKTsKPiAgCWlm IChyZXQpIHsKPiAgCQkvKiBJZiB0aGUgYnJpZGdlIG9yIHBhbmVsIHBvaW50ZWQgYnkgZGV2LT5v Zl9ub2RlIGlzIG5vdAo+ICAJCSAqIGVuYWJsZWQsIGp1c3QgcmV0dXJuIDAgaGVyZSBzbyB0aGF0 IHdlIGRvbid0IHByZXZlbnQgdGhlIERSTQo+IEBAIC0xNTc2LDEwICsxNTkxLDEwIEBAIHN0YXRp YyBpbnQgdmM0X2RzaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFz dGVyLCB2b2lkICpkYXRhKQo+ICAJfQo+ICAKPiAgCWlmIChwYW5lbCkgewo+IC0JCWRzaS0+YnJp ZGdlID0gZGV2bV9kcm1fcGFuZWxfYnJpZGdlX2FkZF90eXBlZChkZXYsIHBhbmVsLAo+ICsJCW5l eHRfYnJpZGdlID0gZGV2bV9kcm1fcGFuZWxfYnJpZGdlX2FkZF90eXBlZChkZXYsIHBhbmVsLAo+ ICAJCQkJCQkJICAgICAgRFJNX01PREVfQ09OTkVDVE9SX0RTSSk7Cj4gLQkJaWYgKElTX0VSUihk c2ktPmJyaWRnZSkpCj4gLQkJCXJldHVybiBQVFJfRVJSKGRzaS0+YnJpZGdlKTsKPiArCQlpZiAo SVNfRVJSKG5leHRfYnJpZGdlKSkKPiArCQkJcmV0dXJuIFBUUl9FUlIobmV4dF9icmlkZ2UpOwo+ ICAJfQo+ICAKPiAgCS8qIFRoZSBlc2MgY2xvY2sgcmF0ZSBpcyBzdXBwb3NlZCB0byBhbHdheXMg YmUgMTAwTWh6LiAqLwo+IEBAIC0xNTk4LDE5ICsxNjEzLDIwIEBAIHN0YXRpYyBpbnQgdmM0X2Rz aV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpk YXRhKQo+ICAKPiAgCWRybV9lbmNvZGVyX2luaXQoZHJtLCBkc2ktPmVuY29kZXIsICZ2YzRfZHNp X2VuY29kZXJfZnVuY3MsCj4gIAkJCSBEUk1fTU9ERV9FTkNPREVSX0RTSSwgTlVMTCk7Cj4gLQlk cm1fZW5jb2Rlcl9oZWxwZXJfYWRkKGRzaS0+ZW5jb2RlciwgJnZjNF9kc2lfZW5jb2Rlcl9oZWxw ZXJfZnVuY3MpOwo+ICAKPiAtCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGRzaS0+ZW5jb2Rlciwg ZHNpLT5icmlkZ2UsIE5VTEwpOwo+ICsJLyogRGVjbGFyZSBvdXJzZWxmIGFzIHRoZSBmaXJzdCBi cmlkZ2UgZWxlbWVudC4gKi8KPiArCWRzaS0+YnJpZGdlLmZ1bmNzID0gJnZjNF9kc2lfYnJpZGdl X2Z1bmNzOwo+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZHNpLT5lbmNvZGVyLCAmZHNpLT5i cmlkZ2UsIE5VTEwpOwo+ICsJaWYgKHJldCkgewo+ICsJCWRldl9lcnIoZGV2LCAiYnJpZGdlIGF0 dGFjaCBmYWlsZWQ6ICVkXG4iLCByZXQpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJ cmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZHNpLT5lbmNvZGVyLCBuZXh0X2JyaWRnZSwgJmRzaS0+ YnJpZGdlKTsKPiAgCWlmIChyZXQpIHsKPiAgCQlkZXZfZXJyKGRldiwgImJyaWRnZSBhdHRhY2gg ZmFpbGVkOiAlZFxuIiwgcmV0KTsKPiAgCQlyZXR1cm4gcmV0Owo+ICAJfQoKVGhpcyBpcyB1c3Vh bGx5IGRvbmUgaW4gdGhlIGJyaWRnZSBhdHRhY2ggb3BlcmF0aW9uLiBBcyB3ZSdyZSBpbiBjb250 cm9sCndlIGNhbiBhdHRhY2ggdGhlIG5leHQgYnJpZGdlIGhlcmUsIGJ1dCBJIHRoaW5rIHRoZSBk cml2ZXIgd291bGQgbG9vawptb3JlIHN0YW5kYXJkIGlmIHlvdSBtb3ZlZCB0aGUgc2Vjb25kIGF0 dGFjaCBjYWxsIHRvIHRoaXMgYnJpZGdlJ3MKYXR0YWNoIG9wZXJhdGlvbi4KCldpdGggdGhpcyBm aXhlZCwgYW5kIGlmIHRoZSBkcml2ZXIgaGFzIGJlZW4gdGVzdGVkIGFuZCB0aGUKZW5hYmxlL2Rp c2FibGUgb3JkZXIgY2hhbmdlIGRvZXNuJ3QgY2F1c2UgaXNzdWVzLAoKUmV2aWV3ZWQtYnk6IExh dXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KCj4gLQkv KiBEaXNhYmxlIHRoZSBhdG9taWMgaGVscGVyIGNhbGxzIGludG8gdGhlIGJyaWRnZS4gIFdlCj4g LQkgKiBtYW51YWxseSBjYWxsIHRoZSBicmlkZ2UgcHJlX2VuYWJsZSAvIGVuYWJsZSAvIGV0Yy4g Y2FsbHMKPiAtCSAqIGZyb20gb3VyIGRyaXZlciwgc2luY2Ugd2UgbmVlZCB0byBzZXF1ZW5jZSB0 aGVtIHdpdGhpbiB0aGUKPiAtCSAqIGVuY29kZXIncyBlbmFibGUvZGlzYWJsZSBwYXRocy4KPiAt CSAqLwo+IC0JZHNpLT5lbmNvZGVyLT5icmlkZ2UgPSBOVUxMOwo+ICAKPiAgCWlmIChkc2ktPnBv cnQgPT0gMCkKPiAgCQl2YzRfZGVidWdmc19hZGRfcmVnc2V0MzIoZHJtLCAiZHNpMF9yZWdzIiwg JmRzaS0+cmVnc2V0KTsKPiBAQCAtMTYyOSw3ICsxNjQ1LDcgQEAgc3RhdGljIHZvaWQgdmM0X2Rz aV91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gIAlz dHJ1Y3QgdmM0X2RldiAqdmM0ID0gdG9fdmM0X2Rldihkcm0pOwo+ICAJc3RydWN0IHZjNF9kc2kg KmRzaSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICAKPiAtCWlmIChkc2ktPmJyaWRnZSkKPiAr CWlmIChkc2ktPmJyaWRnZS5uZXh0KQo+ICAJCXBtX3J1bnRpbWVfZGlzYWJsZShkZXYpOwo+ICAK PiAgCXZjNF9kc2lfZW5jb2Rlcl9kZXN0cm95KGRzaS0+ZW5jb2Rlcik7CgotLSAKUmVnYXJkcywK CkxhdXJlbnQgUGluY2hhcnQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVs