From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [PATCH v2 2/6] drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL Date: Fri, 4 May 2018 13:58:20 +0200 Message-ID: <20180504135820.37b8cea4@bbrezillon> References: <20180503164009.14395-1-boris.brezillon@bootlin.com> <20180503164009.14395-3-boris.brezillon@bootlin.com> <20180504101852.GG13459@ulmo> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180504101852.GG13459@ulmo> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: Mark Rutland , devicetree@vger.kernel.org, Pawel Moll , Ian Campbell , David Airlie , dri-devel@lists.freedesktop.org, Rob Herring , Kumar Gala List-Id: devicetree@vger.kernel.org SGkgVGhpZXJyeSwKCk9uIEZyaSwgNCBNYXkgMjAxOCAxMjoxODo1MiArMDIwMApUaGllcnJ5IFJl ZGluZyA8dGhpZXJyeS5yZWRpbmdAZ21haWwuY29tPiB3cm90ZToKCj4gT24gVGh1LCBNYXkgMDMs IDIwMTggYXQgMDY6NDA6MDVQTSArMDIwMCwgQm9yaXMgQnJlemlsbG9uIHdyb3RlOgo+ID4gUmln aHQgbm93LCB0aGUgRFJNIHBhbmVsIGxvZ2ljIHJldHVybnMgTlVMTCB3aGVuIGEgcGFuZWwgcG9p bnRpbmcgdG8KPiA+IHRoZSBwYXNzZWQgT0Ygbm9kZSBpcyBub3QgcHJlc2VudCBpbiB0aGUgbGlz dCBvZiByZWdpc3RlcmVkIHBhbmVscy4KPiA+IAo+ID4gTW9zdCBkcml2ZXJzIGludGVycHJldCB0 aGlzIE5VTEwgdmFsdWUgYXMgLUVQUk9CRV9ERUZFUiwgYnV0IHdlIGFyZQo+ID4gYWJvdXQgdG8g bW9kaWZ5IHRoZSBzZW1hbnRpYyBvZiBvZl9kcm1fZmluZF9wYW5lbCgpIGFuZCBsZXQgdGhlCj4g PiBmcmFtZXdvcmsgcmV0dXJuIC1FTk9ERVYgd2hlbiB0aGUgZGV2aWNlIG5vZGUgd2UncmUgcG9p bnRpbmcgdG8gaGFzCj4gPiBhIHN0YXR1cyBwcm9wZXJ0eSB0aGF0IGlzIG5vdCBlcXVhbCB0byAi b2theSIgb3IgIm9rIi4KPiA+IAo+ID4gTGV0J3MgZmlyc3QgcGF0Y2ggdGhlIG9mX2RybV9maW5k X3BhbmVsKCkgaW1wbGVtZW50YXRpb24gdG8gcmV0dXJuCj4gPiBFUlJfUFRSKC1FUFJPQkVfREVG RVIpIGluc3RlYWQgb2YgTlVMTCBhbmQgcGF0Y2ggYWxsIGNhbGxlcnMgdG8gcmVwbGFjZQo+ID4g dGhlICchcGFuZWwnIGNoZWNrIGJ5IGFuICdJU19FUlIocGFuZWwpJyBvbmUuCj4gPiAKPiA+IFNp Z25lZC1vZmYtYnk6IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemlsbG9uQGJvb3RsaW4uY29t Pgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9jZG5zLWRzaS5jICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2x2ZHMtZW5jb2Rl ci5jICAgICAgICAgICAgICAgfCAgNCArKy0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9vZi5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrKysrLS0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vZHJtX3BhbmVsLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKysrLS0KPiA+ ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcC5jICAgICAgICAgICAgICAgICAgfCAg OSArKysrKystLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHBpLmMg ICAgICAgICAgICAgfCAgOSArKysrKystLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19kcm1fZHNpLmMgICAgICAgICAgICAgfCAgNiArKysrLS0KPiA+ICBkcml2ZXJzL2dwdS9k cm0vZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2IuYyAgICAgICAgICAgfCAgOCArKysrKy0tLQo+ID4g IGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA0L21kcDRfbGNkY19lbmNvZGVyLmMgICB8ICA0 ICsrLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNC9tZHA0X2x2ZHNfY29ubmVj dG9yLmMgfCAxMCArKysrKysrLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX2hv c3QuYyAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vcmNhci1k dS9yY2FyX2x2ZHMuYyAgICAgICAgICAgICAgICAgfCAgOSArKysrKystLS0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2kuYyAgICAgICAgICAgICAgfCAgMiArLQo+ID4g IGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jICAgICAgICAgICAgICAgICAgICAgICB8ICA3 ICsrKysrLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNmlfbWlwaV9kc2kuYyAgICAg ICAgICAgICAgfCAgNCArKy0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RzaS5jICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDYgKysrKy0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL3RlZ3Jh L291dHB1dC5jICAgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKysrKysrKystLS0tLS0tCj4g PiAgaW5jbHVkZS9kcm0vZHJtX3BhbmVsLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KPiA+ICAxOCBmaWxlcyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlv bnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvY2Rucy1k c2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvY2Rucy1kc2kuYwo+ID4gaW5kZXggYzI1NWZj M2UxYmU1Li4yYzU5OTFjZjUzOTcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL2NkbnMtZHNpLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvY2Rucy1kc2ku Ywo+ID4gQEAgLTExNTIsNyArMTE1Miw3IEBAIHN0YXRpYyBpbnQgY2Ruc19kc2lfYXR0YWNoKHN0 cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAo+ID4gIAkJbnAgPSBvZl9ub2RlX2dldChkZXYtPmRl di5vZl9ub2RlKTsKPiA+ICAKPiA+ICAJcGFuZWwgPSBvZl9kcm1fZmluZF9wYW5lbChucCk7Cj4g PiAtCWlmIChwYW5lbCkgewo+ID4gKwlpZiAoIUlTX0VSUihwYW5lbCkpIHsKPiA+ICAJCWJyaWRn ZSA9IGRybV9wYW5lbF9icmlkZ2VfYWRkKHBhbmVsLCBEUk1fTU9ERV9DT05ORUNUT1JfRFNJKTsK PiA+ICAJfSBlbHNlIHsKPiA+ICAJCWJyaWRnZSA9IG9mX2RybV9maW5kX2JyaWRnZShkZXYtPmRl di5vZl9ub2RlKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2x2ZHMt ZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9sdmRzLWVuY29kZXIuYwo+ID4gaW5k ZXggNzViMGQzZjZlNGRlLi5mNTZjOTJmN2FmN2MgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vYnJpZGdlL2x2ZHMtZW5jb2Rlci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL2x2ZHMtZW5jb2Rlci5jCj4gPiBAQCAtNjgsOSArNjgsOSBAQCBzdGF0aWMgaW50IGx2ZHNf ZW5jb2Rlcl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gIAo+ID4gIAlw YW5lbCA9IG9mX2RybV9maW5kX3BhbmVsKHBhbmVsX25vZGUpOwo+ID4gIAlvZl9ub2RlX3B1dChw YW5lbF9ub2RlKTsKPiA+IC0JaWYgKCFwYW5lbCkgewo+ID4gKwlpZiAoSVNfRVJSKHBhbmVsKSkg ewo+ID4gIAkJZGV2X2RiZygmcGRldi0+ZGV2LCAicGFuZWwgbm90IGZvdW5kLCBkZWZlcnJpbmcg cHJvYmVcbiIpOwo+ID4gLQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7Cj4gPiArCQlyZXR1cm4gUFRS X0VSUihwYW5lbCk7Cj4gPiAgCX0KPiA+ICAKPiA+ICAJbHZkc19lbmNvZGVyLT5wYW5lbF9icmlk Z2UgPQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fb2YuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fb2YuYwo+ID4gaW5kZXggMWZlMTIyNDYxMjk4Li5mNDEzZmFlNmY2ZGMgMTAw NjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX29mLmMKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fb2YuYwo+ID4gQEAgLTIzOSw5ICsyMzksMTMgQEAgaW50IGRybV9vZl9maW5k X3BhbmVsX29yX2JyaWRnZShjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAo+ID4gIAkJcmV0 dXJuIC1FTk9ERVY7Cj4gPiAgCj4gPiAgCWlmIChwYW5lbCkgewo+ID4gLQkJKnBhbmVsID0gb2Zf ZHJtX2ZpbmRfcGFuZWwocmVtb3RlKTsKPiA+IC0JCWlmICgqcGFuZWwpCj4gPiArCQlzdHJ1Y3Qg ZHJtX3BhbmVsICp0bXBfcGFuZWw7Cj4gPiArCj4gPiArCQl0bXBfcGFuZWwgPSBvZl9kcm1fZmlu ZF9wYW5lbChyZW1vdGUpOwo+ID4gKwkJaWYgKCFJU19FUlIodG1wX3BhbmVsKSkgewo+ID4gKwkJ CSpwYW5lbCA9IHRtcF9wYW5lbDsKPiA+ICAJCQlyZXQgPSAwOwo+ID4gKwkJfSAgCj4gCj4gSSB0 aGluayB0aGUgaW50cm9kdWN0aW9uIG9mIHRoaXMgdGVtcG9yYXJ5IHZhcmlhYmxlIG1ha2VzIHRo ZSBjb2RlIGhhcmQKPiB0byByZWFkIGFuZCB0aGUgZGlmZiBkaWZmaWN1bHQgdG8gdW5kZXJzdGFu ZC4gV2h5IG5vdCBqdXN0IHN0aWNrIHdpdGgKPiB0aGUgb3JpZ2luYWwgc3R5bGUgYW5kIG1ha2Ug dGhpczoKPiAKPiAJCSpwYW5lbCA9IG9mX2RybV9maW5kX3BhbmVsKHJlbW90ZSk7Cj4gCQlpZiAo SVNfRVJSKCpwYW5lbCkpCj4gCQkJKnBhbmVsID0gTlVMTDsKPiAJCWVsc2UKPiAJCQlyZXQgPSAw Owo+IAo+ID8KClN1cmUuCgo+IAo+ID4gIAl9Cj4gPiAgCj4gPiAgCS8qIE5vIHBhbmVsIGZvdW5k IHlldCwgY2hlY2sgZm9yIGEgYnJpZGdlIG5leHQuICovCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jCj4gPiBp bmRleCAzMDhkNDQyYTUzMWIuLjJkOWUyNjg0YzZjOCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fcGFuZWwuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5j Cj4gPiBAQCAtMTM1LDcgKzEzNSw5IEBAIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVsX2RldGFjaCk7 Cj4gPiAgICogdHJlZSBub2RlLiBJZiBhIG1hdGNoaW5nIHBhbmVsIGlzIGZvdW5kLCByZXR1cm4g YSBwb2ludGVyIHRvIGl0Lgo+ID4gICAqCj4gPiAgICogUmV0dXJuOiBBIHBvaW50ZXIgdG8gdGhl IHBhbmVsIHJlZ2lzdGVyZWQgZm9yIHRoZSBzcGVjaWZpZWQgZGV2aWNlIHRyZWUKPiA+IC0gKiBu b2RlIG9yIE5VTEwgaWYgbm8gcGFuZWwgbWF0Y2hpbmcgdGhlIGRldmljZSB0cmVlIG5vZGUgY2Fu IGJlIGZvdW5kLgo+ID4gKyAqIG5vZGUgb3IgYW4gRVJSX1BUUigpIGlmIG5vIHBhbmVsIG1hdGNo aW5nIHRoZSBkZXZpY2UgdHJlZSBub2RlIGNhbiBiZSBmb3VuZC4KPiA+ICsgKiBUaGUgb25seSBl cnJvciB0aGF0IGNhbiBiZSByZXBvcnRlZCBpcyAtRVBST0JFX0RFRkVSLCBtZWFuaW5nIHRoYXQg dGhlIHBhbmVsCj4gPiArICogZGV2aWNlIGhhcyBub3QgYmVlbiBwcm9iZWQgeWV0LCBhbmQgdGhl IGNhbGxlciBzaG91bGQgcmUtcmV0cnkgbGF0ZXIuICAKPiAKPiBJIHRoaW5rIHlvdSBjYW4gZHJv cCB0aGUgZXh0cmEgcmUtIGZyb20gcmUtcmV0cnkuCgpZZXAsIHdpbGwgZml4IHRoYXQuCgo+IAo+ ID4gICAqLwo+ID4gIHN0cnVjdCBkcm1fcGFuZWwgKm9mX2RybV9maW5kX3BhbmVsKGNvbnN0IHN0 cnVjdCBkZXZpY2Vfbm9kZSAqbnApCj4gPiAgewo+ID4gQEAgLTE1MSw3ICsxNTMsNyBAQCBzdHJ1 Y3QgZHJtX3BhbmVsICpvZl9kcm1fZmluZF9wYW5lbChjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUg Km5wKQo+ID4gIAl9Cj4gPiAgCj4gPiAgCW11dGV4X3VubG9jaygmcGFuZWxfbG9jayk7Cj4gPiAt CXJldHVybiBOVUxMOwo+ID4gKwlyZXR1cm4gRVJSX1BUUigtRVBST0JFX0RFRkVSKTsKPiA+ICB9 Cj4gPiAgRVhQT1JUX1NZTUJPTChvZl9kcm1fZmluZF9wYW5lbCk7Cj4gPiAgI2VuZGlmCj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHAuYyBiL2RyaXZlcnMv Z3B1L2RybS9leHlub3MvZXh5bm9zX2RwLmMKPiA+IGluZGV4IDg2MzMwZjM5Njc4NC4uOTYyY2Fk MDI3NmU1IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHAu Ywo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHAuYwo+ID4gQEAgLTIz MSwxMCArMjMxLDEzIEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RwX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCj4gPiAgCS8qIFRoaXMgaXMgZm9yIHRoZSBiYWNrd2FyZCBjb21wYXRp YmlsaXR5LiAqLwo+ID4gIAlucCA9IG9mX3BhcnNlX3BoYW5kbGUoZGV2LT5vZl9ub2RlLCAicGFu ZWwiLCAwKTsKPiA+ICAJaWYgKG5wKSB7Cj4gPiAtCQlkcC0+cGxhdF9kYXRhLnBhbmVsID0gb2Zf ZHJtX2ZpbmRfcGFuZWwobnApOwo+ID4gKwkJc3RydWN0IGRybV9wYW5lbCAqcGFuZWwgPSBvZl9k cm1fZmluZF9wYW5lbChucCk7Cj4gPiArCj4gPiAgCQlvZl9ub2RlX3B1dChucCk7Cj4gPiAtCQlp ZiAoIWRwLT5wbGF0X2RhdGEucGFuZWwpCj4gPiAtCQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7Cj4g PiArCQlpZiAoSVNfRVJSKHBhbmVsKSkKPiA+ICsJCQlyZXR1cm4gUFRSX0VSUihwYW5lbCk7ICAK PiAKPiBJIGRvbid0IHNlZSB0aGUgcG9pbnQgaW4gdGhlIGV4dHJhIHZhcmlhYmxlIGhlcmUuIGRw IGlzIGFsbG9jYXRlZCB1c2luZwo+IGRldm1fa3phbGxvYygpLCBzbyBpdCB3aWxsIGdvIGF3YXkg b24gdGhlIGVycm9yIHJldHVybi4gWW91IHNob3VsZG4ndAo+IG5lZWQgdG8gd29ycnkgYWJvdXQg a2VlcGluZyB0aGUgZHAtPnBsYXRfZGF0YS5wYW5lbCB1bnRvdWNoZWQgaW4gY2FzZSBvZgo+IGVy cm9yLgoKQWxzbyB0cnVlLiBJJ2xsIGFzc2lnbiBkcC0+cGxhdF9kYXRhLnBhbmVsIGRpcmVjdGx5 LgoKPiAKPiA+ICsKPiA+ICsJCWRwLT5wbGF0X2RhdGEucGFuZWwgPSBwYW5lbDsKPiA+ICAJCWdv dG8gb3V0Owo+ID4gIAl9Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3NfZHJtX2RwaS5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJt X2RwaS5jCj4gPiBpbmRleCA2Njk0NWUwZGM1N2YuLmU5YzdkMWMxY2Y4ZiAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcGkuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RwaS5jCj4gPiBAQCAtMjM5LDkgKzIzOSwx MiBAQCBzdHJ1Y3QgZHJtX2VuY29kZXIgKmV4eW5vc19kcGlfcHJvYmUoc3RydWN0IGRldmljZSAq ZGV2KQo+ID4gIAl9Cj4gPiAgCj4gPiAgCWlmIChjdHgtPnBhbmVsX25vZGUpIHsKPiA+IC0JCWN0 eC0+cGFuZWwgPSBvZl9kcm1fZmluZF9wYW5lbChjdHgtPnBhbmVsX25vZGUpOwo+ID4gLQkJaWYg KCFjdHgtPnBhbmVsKQo+ID4gLQkJCXJldHVybiBFUlJfUFRSKC1FUFJPQkVfREVGRVIpOwo+ID4g KwkJc3RydWN0IGRybV9wYW5lbCAqcGFuZWwgPSBvZl9kcm1fZmluZF9wYW5lbChjdHgtPnBhbmVs X25vZGUpOwo+ID4gKwo+ID4gKwkJaWYgKElTX0VSUihwYW5lbCkpCj4gPiArCQkJcmV0dXJuIEVS Ul9DQVNUKHBhbmVsKTsKPiA+ICsKPiA+ICsJCWN0eC0+cGFuZWwgPSBwYW5lbDsgIAo+IAo+IFNh bWUgaGVyZS4KClllcC4KCj4gCj4gPiAgCX0KPiA+ICAKPiA+ICAJcmV0dXJuICZjdHgtPmVuY29k ZXI7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rz aS5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RzaS5jCj4gPiBpbmRleCA3 OTA0ZmZhOWFiZmIuLjk2MjA2ZGViODZhMCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2RybV9kc2kuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3NfZHJtX2RzaS5jCj4gPiBAQCAtMTUyMCw2ICsxNTIwLDcgQEAgc3RhdGljIGludCBl eHlub3NfZHNpX2hvc3RfYXR0YWNoKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAo+ID4gIHsK PiA+ICAJc3RydWN0IGV4eW5vc19kc2kgKmRzaSA9IGhvc3RfdG9fZHNpKGhvc3QpOwo+ID4gIAlz dHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gZHNpLT5jb25uZWN0b3IuZGV2Owo+ID4gKwlzdHJ1Y3Qg ZHJtX3BhbmVsICpwYW5lbDsKPiA+ICAKPiA+ICAJLyoKPiA+ICAJICogVGhpcyBpcyBhIHRlbXBv cmFyeSBzb2x1dGlvbiBhbmQgc2hvdWxkIGJlIG1hZGUgYnkgbW9yZSBnZW5lcmljIHdheS4KPiA+ IEBAIC0xNTM4LDggKzE1MzksOSBAQCBzdGF0aWMgaW50IGV4eW5vc19kc2lfaG9zdF9hdHRhY2go c3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCj4gPiAgCWRzaS0+bGFuZXMgPSBkZXZpY2UtPmxh bmVzOwo+ID4gIAlkc2ktPmZvcm1hdCA9IGRldmljZS0+Zm9ybWF0Owo+ID4gIAlkc2ktPm1vZGVf ZmxhZ3MgPSBkZXZpY2UtPm1vZGVfZmxhZ3M7Cj4gPiAtCWRzaS0+cGFuZWwgPSBvZl9kcm1fZmlu ZF9wYW5lbChkZXZpY2UtPmRldi5vZl9ub2RlKTsKPiA+IC0JaWYgKGRzaS0+cGFuZWwpIHsKPiA+ ICsJcGFuZWwgPSBvZl9kcm1fZmluZF9wYW5lbChkZXZpY2UtPmRldi5vZl9ub2RlKTsKPiA+ICsJ aWYgKCFJU19FUlIocGFuZWwpKSB7Cj4gPiArCQlkc2ktPnBhbmVsID0gcGFuZWw7Cj4gPiAgCQlk cm1fcGFuZWxfYXR0YWNoKGRzaS0+cGFuZWwsICZkc2ktPmNvbm5lY3Rvcik7Cj4gPiAgCQlkc2kt PmNvbm5lY3Rvci5zdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKPiA+ICAJfSAg Cj4gCj4gSXQgc2VlbXMgdG8gYmUgYSBwb3RlbnRpYWwgcHJvYmxlbSBoZXJlIGlmIGRzaS0+cGFu ZWwgaXMgYW4gRVJSX1BUUigpLQo+IGVuY29kZWQgdmFsdWUsIGJ1dCBJIHN0aWxsIHRoaW5rIHRo aXMgYmVjb21lcyBjbGVhcmVyIGlmIHlvdSBkbzoKPiAKPiAJZHNpLT5wYW5lbCA9IG9mX2RybV9m aW5kX3BhbmVsKC4uLik7Cj4gCWlmICghSVNfRVJSKGRzaS0+cGFuZWwpKSB7Cj4gCQkuLi4KPiAJ fSBlbHNlIHsKPiAJCWRzaS0+cGFuZWwgPSBOVUxMOwo+IAl9Cj4gCj4gT3IgbWF5YmUgZXZlbjoK PiAKPiAJZHNpLT5wYW5lbCA9IG9mX2RybV9maW5kX3BhbmVsKC4uLik7Cj4gCWlmIChJU19FUlIo ZHNpLT5wYW5lbCkpCj4gCQlkc2ktPnBhbmVsID0gTlVMTDsKPiAKPiAJaWYgKGRzaS0+cGFuZWwp IHsKPiAJfQo+IAo+IFRoYXQncyBtb3JlIGV4cGxpY2l0bHkgc2F5aW5nIHRoYXQgdGhlIHBhbmVs IHN1cHBvcnQgaXMgb3B0aW9uYWwuCgpJJ2xsIGdvIGZvciB0aGUgMm5kIG9wdGlvbi4KCj4gCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fcmdiLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2IuYwo+ID4gaW5kZXggYzU0 ODA2ZDA4ZGQ3Li43NzUzYjMwOTM0NzIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2IuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2ZzbC1k Y3UvZnNsX2RjdV9kcm1fcmdiLmMKPiA+IEBAIC0xNDYsMTAgKzE0NiwxMiBAQCBpbnQgZnNsX2Rj dV9jcmVhdGVfb3V0cHV0cyhzdHJ1Y3QgZnNsX2RjdV9kcm1fZGV2aWNlICpmc2xfZGV2KQo+ID4g IAkvKiBUaGlzIGlzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovCj4gPiAgCXBhbmVsX25v ZGUgPSBvZl9wYXJzZV9waGFuZGxlKGZzbF9kZXYtPm5wLCAiZnNsLHBhbmVsIiwgMCk7Cj4gPiAg CWlmIChwYW5lbF9ub2RlKSB7Cj4gPiAtCQlmc2xfZGV2LT5jb25uZWN0b3IucGFuZWwgPSBvZl9k cm1fZmluZF9wYW5lbChwYW5lbF9ub2RlKTsKPiA+ICsJCXBhbmVsID0gb2ZfZHJtX2ZpbmRfcGFu ZWwocGFuZWxfbm9kZSk7Cj4gPiAgCQlvZl9ub2RlX3B1dChwYW5lbF9ub2RlKTsKPiA+IC0JCWlm ICghZnNsX2Rldi0+Y29ubmVjdG9yLnBhbmVsKQo+ID4gLQkJCXJldHVybiAtRVBST0JFX0RFRkVS Owo+ID4gKwkJaWYgKElTX0VSUihwYW5lbCkpCj4gPiArCQkJcmV0dXJuIFBUUl9FUlIocGFuZWwp Owo+ID4gKwo+ID4gKwkJZnNsX2Rldi0+Y29ubmVjdG9yLnBhbmVsID0gcGFuZWw7ICAKPiAKPiBT YW1lIGhlcmUsIGZzbF9kZXYgZ29lcyBhd2F5IGFmdGVyIHRoZSBlcnJvciByZXR1cm4uCgpPa2F5 LCB3aWxsIGFzc2lnbiBmc2xfZGV2LT5jb25uZWN0b3IucGFuZWwgZGlyZWN0bHkuCgo+IAo+ID4g IAkJcmV0dXJuIGZzbF9kY3VfYXR0YWNoX3BhbmVsKGZzbF9kZXYsIGZzbF9kZXYtPmNvbm5lY3Rv ci5wYW5lbCk7Cj4gPiAgCX0KPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvbWRwNC9tZHA0X2xjZGNfZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL21kcDQvbWRwNF9sY2RjX2VuY29kZXIuYwo+ID4gaW5kZXggNGE2NDU5MjZlZGI3Li4yYmZi MzkwODJmNTQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNC9t ZHA0X2xjZGNfZW5jb2Rlci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRw NC9tZHA0X2xjZGNfZW5jb2Rlci5jCj4gPiBAQCAtMzQxLDcgKzM0MSw3IEBAIHN0YXRpYyB2b2lk IG1kcDRfbGNkY19lbmNvZGVyX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ ID4gIAltZHA0X3dyaXRlKG1kcDRfa21zLCBSRUdfTURQNF9MQ0RDX0VOQUJMRSwgMCk7Cj4gPiAg Cj4gPiAgCXBhbmVsID0gb2ZfZHJtX2ZpbmRfcGFuZWwobWRwNF9sY2RjX2VuY29kZXItPnBhbmVs X25vZGUpOwo+ID4gLQlpZiAocGFuZWwpIHsKPiA+ICsJaWYgKCFJU19FUlIocGFuZWwpKSB7Cj4g PiAgCQlkcm1fcGFuZWxfZGlzYWJsZShwYW5lbCk7Cj4gPiAgCQlkcm1fcGFuZWxfdW5wcmVwYXJl KHBhbmVsKTsKPiA+ICAJfQo+ID4gQEAgLTQxMCw3ICs0MTAsNyBAQCBzdGF0aWMgdm9pZCBtZHA0 X2xjZGNfZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ID4gIAkJ ZGV2X2VycihkZXYtPmRldiwgImZhaWxlZCB0byBlbmFibGUgbGNkY19jbGs6ICVkXG4iLCByZXQp Owo+ID4gIAo+ID4gIAlwYW5lbCA9IG9mX2RybV9maW5kX3BhbmVsKG1kcDRfbGNkY19lbmNvZGVy LT5wYW5lbF9ub2RlKTsKPiA+IC0JaWYgKHBhbmVsKSB7Cj4gPiArCWlmICghSVNfRVJSKHBhbmVs KSkgewo+ID4gIAkJZHJtX3BhbmVsX3ByZXBhcmUocGFuZWwpOwo+ID4gIAkJZHJtX3BhbmVsX2Vu YWJsZShwYW5lbCk7Cj4gPiAgCX0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvbWRwNC9tZHA0X2x2ZHNfY29ubmVjdG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvbWRwNC9tZHA0X2x2ZHNfY29ubmVjdG9yLmMKPiA+IGluZGV4IGUzYjFjODZiN2FhZS4uYzdk ZDcyYjQyOGY4IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDQv bWRwNF9sdmRzX2Nvbm5lY3Rvci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av bWRwNC9tZHA0X2x2ZHNfY29ubmVjdG9yLmMKPiA+IEBAIC0zNCw5ICszNCwxMyBAQCBzdGF0aWMg ZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBtZHA0X2x2ZHNfY29ubmVjdG9yX2RldGVjdCgKPiA+ ICAJc3RydWN0IG1kcDRfbHZkc19jb25uZWN0b3IgKm1kcDRfbHZkc19jb25uZWN0b3IgPQo+ID4g IAkJCXRvX21kcDRfbHZkc19jb25uZWN0b3IoY29ubmVjdG9yKTsKPiA+ICAKPiA+IC0JaWYgKCFt ZHA0X2x2ZHNfY29ubmVjdG9yLT5wYW5lbCkKPiA+IC0JCW1kcDRfbHZkc19jb25uZWN0b3ItPnBh bmVsID0KPiA+IC0JCQlvZl9kcm1fZmluZF9wYW5lbChtZHA0X2x2ZHNfY29ubmVjdG9yLT5wYW5l bF9ub2RlKTsKPiA+ICsJaWYgKCFtZHA0X2x2ZHNfY29ubmVjdG9yLT5wYW5lbCkgewo+ID4gKwkJ c3RydWN0IGRybV9wYW5lbCAqcGFuZWw7Cj4gPiArCj4gPiArCQlwYW5lbCA9IG9mX2RybV9maW5k X3BhbmVsKG1kcDRfbHZkc19jb25uZWN0b3ItPnBhbmVsX25vZGUpOwo+ID4gKwkJaWYgKCFJU19F UlIocGFuZWwpKQo+ID4gKwkJCW1kcDRfbHZkc19jb25uZWN0b3ItPnBhbmVsID0gcGFuZWw7Cj4g PiArCX0gIAo+IAo+IEh1aC4uLiB0aGlzIGlzIGhhY2t5IHRvIGJlZ2luIHdpdGguIFNlZW1zIGxp a2UgdGhpcyBkcml2ZXIgZG9lc24ndCBjYXJlCj4gYWJvdXQgd2FpdGluZyBmb3IgdGhlIHBhbmVs LCBpdCdsbCBqdXN0IHJldHJ5IHByb2JpbmcgdGhlIHBhbmVsCj4gZXZlcnl0aW1lIC0+ZGV0ZWN0 KCkgaXMgY2FsbGVkIG9uIHRoZSBjb25uZWN0b3IgdW50aWwgdGhlIHBhbmVsIGhhcwo+IHNob3du IHVwLiBUaGF0J3Mgbm90IHJlYWxseSBob3cgdGhpcyBpcyBzdXBwb3NlZCB0byB3b3JrLCBidXQg aXQncyBiZWVuCj4gdGhlcmUgYmVmb3JlIHlvdXIgcGF0Y2gsIHNvIHNob3VsZCBiZSBhZGRyZXNz ZWQgc2VwYXJhdGVseS4KClllcywgSSdtIG5vdCB0cnlpbmcgdG8gYWRkcmVzcyB0aGlzIGtpbmQg b2YgaXNzdWVzIGhlcmUsIGFuZCBJIGZlYXIKaXQncyBub3QgdGhlIG9ubHkgZHJpdmVyIHRvIGRv IHRoYXQuCgo+IAo+ID4gIAo+ID4gIAlyZXR1cm4gbWRwNF9sdmRzX2Nvbm5lY3Rvci0+cGFuZWwg Pwo+ID4gIAkJCWNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkIDoKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfaG9zdC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k c2kvZHNpX2hvc3QuYwo+ID4gaW5kZXggN2EwM2E5NDg5NzA4Li5mZmZjODBiNzM5NjYgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfaG9zdC5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfaG9zdC5jCj4gPiBAQCAtMTg4MSw3ICsxODgxLDcg QEAgaW50IG1zbV9kc2lfaG9zdF9yZWdpc3RlcihzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwg Ym9vbCBjaGVja19kZWZlcikKPiA+ICAJCSAqIG91dHB1dAo+ID4gIAkJICovCj4gPiAgCQlpZiAo Y2hlY2tfZGVmZXIgJiYgbXNtX2hvc3QtPmRldmljZV9ub2RlKSB7Cj4gPiAtCQkJaWYgKCFvZl9k cm1fZmluZF9wYW5lbChtc21faG9zdC0+ZGV2aWNlX25vZGUpKQo+ID4gKwkJCWlmIChJU19FUlIo b2ZfZHJtX2ZpbmRfcGFuZWwobXNtX2hvc3QtPmRldmljZV9ub2RlKSkpCj4gPiAgCQkJCWlmICgh b2ZfZHJtX2ZpbmRfYnJpZGdlKG1zbV9ob3N0LT5kZXZpY2Vfbm9kZSkpCj4gPiAgCQkJCQlyZXR1 cm4gLUVQUk9CRV9ERUZFUjsKPiA+ICAJCX0gIAo+IAo+IEFnYWluLCBwcmV0dHkgd2VpcmQgc3R1 ZmYgZ29pbmcgb24gaGVyZSwgcHJpb3IgdG8gdGhlIHBhdGNoLiBCdXQgSSB0aGluawo+IHRoaXMg bmVlZHMgdG8gYmUgY2hhbmdlZCB0byB0YWtlIHRoZSAtRU5PREVWIGludG8gYWNjb3VudCBpbiB0 aGUgbmV4dAo+IHBhdGNoLiBBcyBpdCBpcywgdGhpcyB3aWxsIGNvbnRpbnVlIHRvIGRlZmVyIHBy b2JlIGV2ZW4gaWYgdGhlIHBhbmVsCj4gbm9kZSBpcyBkaXNhYmxlZC4KCk5vdCBzdXJlIHRoaXMg aXMgYSBwcm9ibGVtLiBJIG1lYW4sIHRoZSBjb2RlIHdhcyB3b3JraW5nIGJlZm9yZSwgYW5kIHdl CmhhZCBubyB3YXkgdG8gZGlmZmVyZW50aWF0ZSB0aGUgLUVOT0RFViB2cyAtRVBST0JFX0RFRkVS LCB3aGljaCBpbiB0dXJuCm1lYW5zIHRoYXQsIGFueSBkcml2ZXIgdGhhdCBhc3N1bWVkIHRoYXQg dGhlIGRldmljZSB3b3VsZCBhcHBlYXIgYXQgc29tZQpwb2ludCB3ZXJlIGp1c3QgYXMgYnJva2Vu IGFzIHRoZXkgYXJlIGFmdGVyIHRoaXMgcGF0Y2ggd2hlbiB0aGUgbm9kZQp0aGV5J3JlIHBvaW50 aW5nIHRvIGhhcyBpdHMgc3RhdHVzIHNldCB0byAiZGlzYWJsZWQiLgoKSSdtIG5vdCB0cnlpbmcg dG8gcGF0Y2ggYWxsIGRyaXZlcnMgdG8gdGFrZSB0aGUgcmV0dXJuIGNvZGUgaW50bwphY2NvdW50 LCBqdXN0IHRob3NlIHRoYXQgbWlnaHQgdGFrZSBhZHZhbnRhZ2Ugb2YgaXQuCgo+IAo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfbHZkcy5jIGIvZHJpdmVycy9n cHUvZHJtL3JjYXItZHUvcmNhcl9sdmRzLmMKPiA+IGluZGV4IDNkMmQzYmJkMTM0Mi4uZDc3Yjhm OGJjZjk0IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRz LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfbHZkcy5jCj4gPiBAQCAt NDMwLDkgKzQzMCwxMiBAQCBzdGF0aWMgaW50IHJjYXJfbHZkc19wYXJzZV9kdChzdHJ1Y3QgcmNh cl9sdmRzICpsdmRzKQo+ID4gIAkJaWYgKCFsdmRzLT5uZXh0X2JyaWRnZSkKPiA+ICAJCQlyZXQg PSAtRVBST0JFX0RFRkVSOwo+ID4gIAl9IGVsc2Ugewo+ID4gLQkJbHZkcy0+cGFuZWwgPSBvZl9k cm1fZmluZF9wYW5lbChyZW1vdGUpOwo+ID4gLQkJaWYgKCFsdmRzLT5wYW5lbCkKPiA+IC0JCQly ZXQgPSAtRVBST0JFX0RFRkVSOwo+ID4gKwkJc3RydWN0IGRybV9wYW5lbCAqcGFuZWwgPSBvZl9k cm1fZmluZF9wYW5lbChyZW1vdGUpOwo+ID4gKwo+ID4gKwkJaWYgKElTX0VSUihwYW5lbCkpCj4g PiArCQkJcmV0ID0gUFRSX0VSUihwYW5lbCk7Cj4gPiArCQllbHNlCj4gPiArCQkJbHZkcy0+cGFu ZWwgPSBwYW5lbDsKPiA+ICAJfSAgCj4gCj4gU2ltaWxhciB0byBvdGhlcnMgYWJvdmUsIEkgdGhp bmsgdGhpcyBjYW4gZWFzaWx5IGJlIGRvbmUgd2l0aG91dCB0aGUKPiBleHRyYSB0ZW1wb3Jhcnkg dmFyaWFibGUuCgpTdXJlIChzYW1lIGdvZXMgZm9yIGFsbCBvY2N1cnJlbmNlcykuCgpbLi4uXQoK PiAKPiA+ICAJb3V0cHV0LT5lZGlkID0gb2ZfZ2V0X3Byb3BlcnR5KG91dHB1dC0+b2Zfbm9kZSwg Im52aWRpYSxlZGlkIiwgJnNpemUpOwo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9w YW5lbC5oIGIvaW5jbHVkZS9kcm0vZHJtX3BhbmVsLmgKPiA+IGluZGV4IDE0YWMyNDBhMWY2NC4u M2JiOTE1MTk0NjJlIDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3BhbmVsLmgKPiA+ ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oCj4gPiBAQCAtMTk5LDcgKzE5OSw3IEBAIHN0 cnVjdCBkcm1fcGFuZWwgKm9mX2RybV9maW5kX3BhbmVsKGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9k ZSAqbnApOwo+ID4gICNlbHNlCj4gPiAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX3BhbmVsICpv Zl9kcm1fZmluZF9wYW5lbChjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQo+ID4gIHsKPiA+ IC0JcmV0dXJuIE5VTEw7Cj4gPiArCXJldHVybiBFUlJfUFRSKC1FTk9UU1VQUCk7Cj4gPiAgfQo+ ID4gICNlbmRpZiAgCj4gCj4gTWF5YmUgbWFrZSB0aGlzIHJldHVybiBFUlJfUFRSKC1FTk9ERVYp IGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSByZWFsCj4gZnVuY3Rpb24/IElmIHdlIGFic29sdXRl bHkgZG8gbmVlZCB0byBkaWZmZXJlbnRpYXRlLCB0aGVuIHlvdSBzaG91bGQKPiBwcm9iYWJseSB1 cGRhdGUgdGhlIGtlcm5lbGRvYyBmb3Igb2ZfZHJtX2ZpbmRfcGFuZWwoKSB0byBtZW50aW9uIHRo ZQo+IC1FTk9UU1VQUCBjYXNlLgoKV2lsbCB1c2UgLUVOT0RFViBoZXJlLgoKVGhhbmtzIGZvciB0 aGUgcmV2aWV3LgoKQm9yaXMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==