From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 3/4] drm/tilcdc: Stop using struct drm_driver load() callback Date: Wed, 19 Oct 2016 09:28:45 +0200 Message-ID: <20161019072845.GF20761@phenom.ffwll.local> References: <1559710e0dce0a8595b4a0577a1e373fcc353e47.1476825466.git.jsarha@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9E0766E838 for ; Wed, 19 Oct 2016 07:28:50 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id g16so2596987wmg.2 for ; Wed, 19 Oct 2016 00:28:50 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1559710e0dce0a8595b4a0577a1e373fcc353e47.1476825466.git.jsarha@ti.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jyri Sarha Cc: khilman@baylibre.com, dri-devel@lists.freedesktop.org, bgolaszewski@baylibre.com, tomi.valkeinen@ti.com, laurent.pinchart@ideasonboard.com, rmk+kernel@arm.linux.org.uk List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBPY3QgMTksIDIwMTYgYXQgMTI6MzM6NTVBTSArMDMwMCwgSnlyaSBTYXJoYSB3cm90 ZToKPiBTdG9wIHVzaW5nIHN0cnVjdCBkcm1fZHJpdmVyIGxvYWQoKSBjYWxsYmFjay4gVGhlIGxv YWQoKSBjYWxsYmFjawo+IHNob3VsZCBub3QgYmUgdXNlZCBhbnltb3JlLiBJbnN0ZWFkIHRoZSBk cm1fZGV2aWNlIGlzIGFsbG9jYXRlZCB3aXRoCj4gZHJtX2Rldl9hbGxvYygpIGFuZCByZWdpc3Rl cmVkIHdpdGggZHJtX2Rldl9yZWdpc3RlcigpIG9ubHkgYWZ0ZXIgdGhlCj4gZHJpdmVyIGlzIGNv bXBsZXRlbHkgaW5pdGlhbGl6ZWQuCj4gCj4gU2lnbmVkLW9mZi1ieTogSnlyaSBTYXJoYSA8anNh cmhhQHRpLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZHJ2LmMg fCAxMDMgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFu Z2VkLCA1OCBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdGls Y2RjL3RpbGNkY19kcnYuYwo+IGluZGV4IDIzMWYyYzcuLjJkY2E4MjIgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vdGlsY2RjL3RpbGNkY19kcnYuYwo+IEBAIC0yMzAsMjUgKzIzMCwzMSBAQCBzdGF0aWMgaW50 IHRpbGNkY191bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCXJldHVybiAwOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgaW50IHRpbGNkY19sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVu c2lnbmVkIGxvbmcgZmxhZ3MpCj4gK3N0YXRpYyBpbnQgdGlsY2RjX2luaXQoc3RydWN0IGRybV9k cml2ZXIgKmRkcnYsIHN0cnVjdCBkZXZpY2UgKmRldikKPiAgewo+IC0Jc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldiA9IGRldi0+cGxhdGZvcm1kZXY7Cj4gLQlzdHJ1Y3QgZGV2aWNlX25vZGUg Km5vZGUgPSBwZGV2LT5kZXYub2Zfbm9kZTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2Owo+ ICsJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYp Owo+ICsJc3RydWN0IGRldmljZV9ub2RlICpub2RlID0gZGV2LT5vZl9ub2RlOwo+ICAJc3RydWN0 IHRpbGNkY19kcm1fcHJpdmF0ZSAqcHJpdjsKPiAgCXN0cnVjdCByZXNvdXJjZSAqcmVzOwo+ICAJ dTMyIGJwcCA9IDA7Cj4gIAlpbnQgcmV0Owo+ICAKPiAtCXByaXYgPSBkZXZtX2t6YWxsb2MoZGV2 LT5kZXYsIHNpemVvZigqcHJpdiksIEdGUF9LRVJORUwpOwo+ICsJcHJpdiA9IGRldm1fa3phbGxv YyhkZXYsIHNpemVvZigqcHJpdiksIEdGUF9LRVJORUwpOwo+ICAJaWYgKCFwcml2KSB7Cj4gLQkJ ZGV2X2VycihkZXYtPmRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSBwcml2YXRlIGRhdGFcbiIpOwo+ ICsJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGFsbG9jYXRlIHByaXZhdGUgZGF0YVxuIik7Cj4g IAkJcmV0dXJuIC1FTk9NRU07Cj4gIAl9Cj4gIAo+IC0JZGV2LT5kZXZfcHJpdmF0ZSA9IHByaXY7 Cj4gKwlkZGV2ID0gZHJtX2Rldl9hbGxvYyhkZHJ2LCBkZXYpOwo+ICsJaWYgKElTX0VSUihkZGV2 KSkKPiArCQlyZXR1cm4gUFRSX0VSUihkZGV2KTsKPiArCj4gKwlkZGV2LT5wbGF0Zm9ybWRldiA9 IHBkZXY7Cj4gKwlkZGV2LT5kZXZfcHJpdmF0ZSA9IHByaXY7Cj4gIAo+ICAJcHJpdi0+aXNfY29t cG9uZW50aXplZCA9Cj4gLQkJdGlsY2RjX2dldF9leHRlcm5hbF9jb21wb25lbnRzKGRldi0+ZGV2 LCBOVUxMKSA+IDA7Cj4gKwkJdGlsY2RjX2dldF9leHRlcm5hbF9jb21wb25lbnRzKGRldiwgTlVM TCkgPiAwOwo+ICAKPiAgCXByaXYtPndxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoInRpbGNk YyIsIDApOwo+ICAJaWYgKCFwcml2LT53cSkgewo+IEBAIC0yNTgsMjEgKzI2NCwyMSBAQCBzdGF0 aWMgaW50IHRpbGNkY19sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcg ZmxhZ3MpCj4gIAo+ICAJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VS Q0VfTUVNLCAwKTsKPiAgCWlmICghcmVzKSB7Cj4gLQkJZGV2X2VycihkZXYtPmRldiwgImZhaWxl ZCB0byBnZXQgbWVtb3J5IHJlc291cmNlXG4iKTsKPiArCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0 byBnZXQgbWVtb3J5IHJlc291cmNlXG4iKTsKPiAgCQlyZXQgPSAtRUlOVkFMOwo+ICAJCWdvdG8g ZmFpbF9mcmVlX3dxOwo+ICAJfQo+ICAKPiAgCXByaXYtPm1taW8gPSBpb3JlbWFwX25vY2FjaGUo cmVzLT5zdGFydCwgcmVzb3VyY2Vfc2l6ZShyZXMpKTsKPiAgCWlmICghcHJpdi0+bW1pbykgewo+ IC0JCWRldl9lcnIoZGV2LT5kZXYsICJmYWlsZWQgdG8gaW9yZW1hcFxuIik7Cj4gKwkJZGV2X2Vy cihkZXYsICJmYWlsZWQgdG8gaW9yZW1hcFxuIik7Cj4gIAkJcmV0ID0gLUVOT01FTTsKPiAgCQln b3RvIGZhaWxfZnJlZV93cTsKPiAgCX0KPiAgCj4gLQlwcml2LT5jbGsgPSBjbGtfZ2V0KGRldi0+ ZGV2LCAiZmNrIik7Cj4gKwlwcml2LT5jbGsgPSBjbGtfZ2V0KGRldiwgImZjayIpOwo+ICAJaWYg KElTX0VSUihwcml2LT5jbGspKSB7Cj4gLQkJZGV2X2VycihkZXYtPmRldiwgImZhaWxlZCB0byBn ZXQgZnVuY3Rpb25hbCBjbG9ja1xuIik7Cj4gKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0 IGZ1bmN0aW9uYWwgY2xvY2tcbiIpOwo+ICAJCXJldCA9IC1FTk9ERVY7Cj4gIAkJZ290byBmYWls X2lvdW5tYXA7Cj4gIAl9Cj4gQEAgLTI4Miw3ICsyODgsNyBAQCBzdGF0aWMgaW50IHRpbGNkY19s b2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCj4gIAlyZXQg PSBjcHVmcmVxX3JlZ2lzdGVyX25vdGlmaWVyKCZwcml2LT5mcmVxX3RyYW5zaXRpb24sCj4gIAkJ CUNQVUZSRVFfVFJBTlNJVElPTl9OT1RJRklFUik7Cj4gIAlpZiAocmV0KSB7Cj4gLQkJZGV2X2Vy cihkZXYtPmRldiwgImZhaWxlZCB0byByZWdpc3RlciBjcHVmcmVxIG5vdGlmaWVyXG4iKTsKPiAr CQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZWdpc3RlciBjcHVmcmVxIG5vdGlmaWVyXG4iKTsK PiAgCQlnb3RvIGZhaWxfcHV0X2NsazsKPiAgCX0KPiAgI2VuZGlmCj4gQEAgLTMwMywxMSArMzA5 LDExIEBAIHN0YXRpYyBpbnQgdGlsY2RjX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5z aWduZWQgbG9uZyBmbGFncykKPiAgCj4gIAlEQkcoIk1heGltdW0gUGl4ZWwgQ2xvY2sgVmFsdWUg JWRLSHoiLCBwcml2LT5tYXhfcGl4ZWxjbG9jayk7Cj4gIAo+IC0JcG1fcnVudGltZV9lbmFibGUo ZGV2LT5kZXYpOwo+ICsJcG1fcnVudGltZV9lbmFibGUoZGV2KTsKPiAgCj4gIAkvKiBEZXRlcm1p bmUgTENEIElQIFZlcnNpb24gKi8KPiAtCXBtX3J1bnRpbWVfZ2V0X3N5bmMoZGV2LT5kZXYpOwo+ IC0Jc3dpdGNoICh0aWxjZGNfcmVhZChkZXYsIExDRENfUElEX1JFRykpIHsKPiArCXBtX3J1bnRp bWVfZ2V0X3N5bmMoZGV2KTsKPiArCXN3aXRjaCAodGlsY2RjX3JlYWQoZGRldiwgTENEQ19QSURf UkVHKSkgewo+ICAJY2FzZSAweDRjMTAwMTAyOgo+ICAJCXByaXYtPnJldiA9IDE7Cj4gIAkJYnJl YWs7Cj4gQEAgLTMxNiwxNCArMzIyLDE0IEBAIHN0YXRpYyBpbnQgdGlsY2RjX2xvYWQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKPiAgCQlwcml2LT5yZXYgPSAy Owo+ICAJCWJyZWFrOwo+ICAJZGVmYXVsdDoKPiAtCQlkZXZfd2FybihkZXYtPmRldiwgIlVua25v d24gUElEIFJlZyB2YWx1ZSAweCUwOHgsICIKPiAtCQkJCSJkZWZhdWx0aW5nIHRvIExDRCByZXZp c2lvbiAxXG4iLAo+IC0JCQkJdGlsY2RjX3JlYWQoZGV2LCBMQ0RDX1BJRF9SRUcpKTsKPiArCQlk ZXZfd2FybihkZXYsICJVbmtub3duIFBJRCBSZWcgdmFsdWUgMHglMDh4LCAiCj4gKwkJCSJkZWZh dWx0aW5nIHRvIExDRCByZXZpc2lvbiAxXG4iLAo+ICsJCQl0aWxjZGNfcmVhZChkZGV2LCBMQ0RD X1BJRF9SRUcpKTsKPiAgCQlwcml2LT5yZXYgPSAxOwo+ICAJCWJyZWFrOwo+ICAJfQo+ICAKPiAt CXBtX3J1bnRpbWVfcHV0X3N5bmMoZGV2LT5kZXYpOwo+ICsJcG1fcnVudGltZV9wdXRfc3luYyhk ZXYpOwo+ICAKPiAgCWlmIChwcml2LT5yZXYgPT0gMSkgewo+ICAJCURCRygiUmV2aXNpb24gMSBM Q0RDIHN1cHBvcnRzIG9ubHkgUkdCNTY1IGZvcm1hdCIpOwo+IEBAIC0zNTYsNzQgKzM2Miw4MiBA QCBzdGF0aWMgaW50IHRpbGNkY19sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVk IGxvbmcgZmxhZ3MpCj4gIAkJfQo+ICAJfQo+ICAKPiAtCXJldCA9IG1vZGVzZXRfaW5pdChkZXYp Owo+ICsJcmV0ID0gbW9kZXNldF9pbml0KGRkZXYpOwo+ICAJaWYgKHJldCA8IDApIHsKPiAtCQlk ZXZfZXJyKGRldi0+ZGV2LCAiZmFpbGVkIHRvIGluaXRpYWxpemUgbW9kZSBzZXR0aW5nXG4iKTsK PiArCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIG1vZGUgc2V0dGluZ1xuIik7 Cj4gIAkJZ290byBmYWlsX2NwdWZyZXFfdW5yZWdpc3RlcjsKPiAgCX0KPiAgCj4gLQlwbGF0Zm9y bV9zZXRfZHJ2ZGF0YShwZGV2LCBkZXYpOwo+ICsJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwg ZGRldik7Cj4gIAo+ICAJaWYgKHByaXYtPmlzX2NvbXBvbmVudGl6ZWQpIHsKPiAtCQlyZXQgPSBj b21wb25lbnRfYmluZF9hbGwoZGV2LT5kZXYsIGRldik7Cj4gKwkJcmV0ID0gY29tcG9uZW50X2Jp bmRfYWxsKGRldiwgZGRldik7Cj4gIAkJaWYgKHJldCA8IDApCj4gIAkJCWdvdG8gZmFpbF9tb2Rl X2NvbmZpZ19jbGVhbnVwOwo+ICAKPiAtCQlyZXQgPSB0aWxjZGNfYWRkX2V4dGVybmFsX2VuY29k ZXJzKGRldik7Cj4gKwkJcmV0ID0gdGlsY2RjX2FkZF9leHRlcm5hbF9lbmNvZGVycyhkZGV2KTsK PiAgCQlpZiAocmV0IDwgMCkKPiAgCQkJZ290byBmYWlsX2NvbXBvbmVudF9jbGVhbnVwOwo+ICAJ fQo+ICAKPiAgCWlmICgocHJpdi0+bnVtX2VuY29kZXJzID09IDApIHx8IChwcml2LT5udW1fY29u bmVjdG9ycyA9PSAwKSkgewo+IC0JCWRldl9lcnIoZGV2LT5kZXYsICJubyBlbmNvZGVycy9jb25u ZWN0b3JzIGZvdW5kXG4iKTsKPiArCQlkZXZfZXJyKGRldiwgIm5vIGVuY29kZXJzL2Nvbm5lY3Rv cnMgZm91bmRcbiIpOwo+ICAJCXJldCA9IC1FTlhJTzsKPiAgCQlnb3RvIGZhaWxfZXh0ZXJuYWxf Y2xlYW51cDsKPiAgCX0KPiAgCj4gLQlyZXQgPSBkcm1fdmJsYW5rX2luaXQoZGV2LCAxKTsKPiAr CXJldCA9IGRybV92YmxhbmtfaW5pdChkZGV2LCAxKTsKPiAgCWlmIChyZXQgPCAwKSB7Cj4gLQkJ ZGV2X2VycihkZXYtPmRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIHZibGFua1xuIik7Cj4gKwkJ ZGV2X2VycihkZXYsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSB2YmxhbmtcbiIpOwo+ICAJCWdvdG8g ZmFpbF9leHRlcm5hbF9jbGVhbnVwOwo+ICAJfQo+ICAKPiAtCXJldCA9IGRybV9pcnFfaW5zdGFs bChkZXYsIHBsYXRmb3JtX2dldF9pcnEoZGV2LT5wbGF0Zm9ybWRldiwgMCkpOwo+ICsJcmV0ID0g ZHJtX2lycV9pbnN0YWxsKGRkZXYsIHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCkpOwo+ICAJaWYg KHJldCA8IDApIHsKPiAtCQlkZXZfZXJyKGRldi0+ZGV2LCAiZmFpbGVkIHRvIGluc3RhbGwgSVJR IGhhbmRsZXJcbiIpOwo+ICsJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGluc3RhbGwgSVJRIGhh bmRsZXJcbiIpOwo+ICAJCWdvdG8gZmFpbF92YmxhbmtfY2xlYW51cDsKPiAgCX0KPiAgCj4gLQlk cm1fbW9kZV9jb25maWdfcmVzZXQoZGV2KTsKPiArCWRybV9tb2RlX2NvbmZpZ19yZXNldChkZGV2 KTsKPiAgCj4gLQlwcml2LT5mYmRldiA9IGRybV9mYmRldl9jbWFfaW5pdChkZXYsIGJwcCwKPiAt CQkJZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YywKPiAtCQkJZGV2LT5tb2RlX2NvbmZpZy5udW1f Y29ubmVjdG9yKTsKPiArCXByaXYtPmZiZGV2ID0gZHJtX2ZiZGV2X2NtYV9pbml0KGRkZXYsIGJw cCwKPiArCQkJZGRldi0+bW9kZV9jb25maWcubnVtX2NydGMsCj4gKwkJCWRkZXYtPm1vZGVfY29u ZmlnLm51bV9jb25uZWN0b3IpOwo+ICAJaWYgKElTX0VSUihwcml2LT5mYmRldikpIHsKPiAgCQly ZXQgPSBQVFJfRVJSKHByaXYtPmZiZGV2KTsKPiAgCQlnb3RvIGZhaWxfaXJxX3VuaW5zdGFsbDsK PiAgCX0KPiAgCj4gLQlkcm1fa21zX2hlbHBlcl9wb2xsX2luaXQoZGV2KTsKPiArCWRybV9rbXNf aGVscGVyX3BvbGxfaW5pdChkZGV2KTsKPiArCj4gKwlyZXQgPSBkcm1fZGV2X3JlZ2lzdGVyKGRk ZXYsIDApOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGZhaWxfcGxhdGZvcm1faW5pdDsKPiAgCj4g IAlyZXR1cm4gMDsKPiAgCj4gK2ZhaWxfcGxhdGZvcm1faW5pdDoKPiArCWRybV9rbXNfaGVscGVy X3BvbGxfZmluaShkZGV2KTsKPiArCWRybV9mYmRldl9jbWFfZmluaShwcml2LT5mYmRldik7Cj4g Kwo+ICBmYWlsX2lycV91bmluc3RhbGw6Cj4gLQlkcm1faXJxX3VuaW5zdGFsbChkZXYpOwo+ICsJ ZHJtX2lycV91bmluc3RhbGwoZGRldik7Cj4gIAo+ICBmYWlsX3ZibGFua19jbGVhbnVwOgo+IC0J ZHJtX3ZibGFua19jbGVhbnVwKGRldik7Cj4gKwlkcm1fdmJsYW5rX2NsZWFudXAoZGRldik7Cj4g IAo+ICBmYWlsX2NvbXBvbmVudF9jbGVhbnVwOgo+ICAJaWYgKHByaXYtPmlzX2NvbXBvbmVudGl6 ZWQpCj4gLQkJY29tcG9uZW50X3VuYmluZF9hbGwoZGV2LT5kZXYsIGRldik7Cj4gKwkJY29tcG9u ZW50X3VuYmluZF9hbGwoZGV2LCBkZXYpOwo+ICAKPiAgZmFpbF9tb2RlX2NvbmZpZ19jbGVhbnVw Ogo+IC0JZHJtX21vZGVfY29uZmlnX2NsZWFudXAoZGV2KTsKPiArCWRybV9tb2RlX2NvbmZpZ19j bGVhbnVwKGRkZXYpOwo+ICAKPiAgZmFpbF9leHRlcm5hbF9jbGVhbnVwOgo+IC0JdGlsY2RjX3Jl bW92ZV9leHRlcm5hbF9lbmNvZGVycyhkZXYpOwo+ICsJdGlsY2RjX3JlbW92ZV9leHRlcm5hbF9l bmNvZGVycyhkZGV2KTsKPiAgCj4gIGZhaWxfY3B1ZnJlcV91bnJlZ2lzdGVyOgo+IC0JcG1fcnVu dGltZV9kaXNhYmxlKGRldi0+ZGV2KTsKPiArCXBtX3J1bnRpbWVfZGlzYWJsZShkZXYpOwo+ICAj aWZkZWYgQ09ORklHX0NQVV9GUkVRCj4gIAljcHVmcmVxX3VucmVnaXN0ZXJfbm90aWZpZXIoJnBy aXYtPmZyZXFfdHJhbnNpdGlvbiwKPiAgCQkJQ1BVRlJFUV9UUkFOU0lUSU9OX05PVElGSUVSKTsK PiBAQCAtNDQwLDcgKzQ1NCw4IEBAIGZhaWxfZnJlZV93cToKPiAgCWRlc3Ryb3lfd29ya3F1ZXVl KHByaXYtPndxKTsKPiAgCj4gIGZhaWxfdW5zZXRfcHJpdjoKPiAtCWRldi0+ZGV2X3ByaXZhdGUg PSBOVUxMOwo+ICsJZGRldi0+ZGV2X3ByaXZhdGUgPSBOVUxMOwo+ICsJZHJtX2Rldl91bnJlZihk ZGV2KTsKPiAgCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gQEAgLTU4Nyw3ICs2MDIsNiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3BzID0gewo+ICBzdGF0aWMgc3RydWN0 IGRybV9kcml2ZXIgdGlsY2RjX2RyaXZlciA9IHsKPiAgCS5kcml2ZXJfZmVhdHVyZXMgICAgPSAo RFJJVkVSX0hBVkVfSVJRIHwgRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwKPiAgCQkJICAg ICAgIERSSVZFUl9QUklNRSB8IERSSVZFUl9BVE9NSUMpLAo+IC0JLmxvYWQgICAgICAgICAgICAg ICA9IHRpbGNkY19sb2FkLAo+ICAJLnVubG9hZCAgICAgICAgICAgICA9IHRpbGNkY191bmxvYWQs CgpidHcgZm9yIHN5bW1ldHJ5IEkgcmVjb21tZW5kIGdldHRpbmcgcmlkIG9mIHVubG9hZCB0b28u IEVpdGhlciB3YXksIG5pY2UKdGhhdCBhbm90aGVyIGRyaXZlciBpcyBkZW1pZGxheWVyZWQuCi1E YW5pZWwKCj4gIAkubGFzdGNsb3NlICAgICAgICAgID0gdGlsY2RjX2xhc3RjbG9zZSwKPiAgCS5p cnFfaGFuZGxlciAgICAgICAgPSB0aWxjZGNfaXJxLAo+IEBAIC02NjIsMTAgKzY3Niw5IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyB0aWxjZGNfcG1fb3BzID0gewo+ICAvKgo+ICAg KiBQbGF0Zm9ybSBkcml2ZXI6Cj4gICAqLwo+IC0KPiAgc3RhdGljIGludCB0aWxjZGNfYmluZChz dHJ1Y3QgZGV2aWNlICpkZXYpCj4gIHsKPiAtCXJldHVybiBkcm1fcGxhdGZvcm1faW5pdCgmdGls Y2RjX2RyaXZlciwgdG9fcGxhdGZvcm1fZGV2aWNlKGRldikpOwo+ICsJcmV0dXJuIHRpbGNkY19p bml0KCZ0aWxjZGNfZHJpdmVyLCBkZXYpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCB0aWxjZGNf dW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPiBAQCAtNjk5LDcgKzcxMiw3IEBAIHN0YXRpYyBp bnQgdGlsY2RjX3BkZXZfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCWlm IChyZXQgPCAwKQo+ICAJCXJldHVybiByZXQ7Cj4gIAllbHNlIGlmIChyZXQgPT0gMCkKPiAtCQly ZXR1cm4gZHJtX3BsYXRmb3JtX2luaXQoJnRpbGNkY19kcml2ZXIsIHBkZXYpOwo+ICsJCXJldHVy biB0aWxjZGNfaW5pdCgmdGlsY2RjX2RyaXZlciwgJnBkZXYtPmRldik7Cj4gIAllbHNlCj4gIAkJ cmV0dXJuIGNvbXBvbmVudF9tYXN0ZXJfYWRkX3dpdGhfbWF0Y2goJnBkZXYtPmRldiwKPiAgCQkJ CQkJICAgICAgICZ0aWxjZGNfY29tcF9vcHMsCj4gLS0gCj4gMS45LjEKPiAKCi0tIApEYW5pZWwg VmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5m ZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK