From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v6 03/10] drm/bridge: analogix: Do not use device's drvdata Date: Fri, 20 Oct 2017 12:52:26 -0400 Message-ID: <20171020165226.vqoeldcmreuc73le@art_vandelay> References: <20171019034812.13768-1-jeffy.chen@rock-chips.com> <20171019034812.13768-4-jeffy.chen@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20171019034812.13768-4-jeffy.chen@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jeffy Chen Cc: Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Laurent Pinchart , Marek Szyprowski , linux-samsung-soc@vger.kernel.org, briannorris@chromium.org, Krzysztof Kozlowski , linux-rockchip@lists.infradead.org, Kukjin Kim , Caesar Wang , linux-arm-kernel@lists.infradead.org, zain wang , Tomeu Vizoso , Jingoo Han , Seung-Woo Kim , dianders@chromium.org, tfiga@chromium.org, Kyungmin Park List-Id: linux-rockchip.vger.kernel.org T24gVGh1LCBPY3QgMTksIDIwMTcgYXQgMTE6NDg6MDVBTSArMDgwMCwgSmVmZnkgQ2hlbiB3cm90 ZToKClRoaXMgcGF0Y2ggaGFzIHNvbWVob3cgbG9zdCBpdCdzIG9yaWdpbmFsIGF1dGhvci4gSSBh c3N1bWUgdGhpcyBpcyBub3QKaW50ZW50aW9uYWwuCgpTZWFuCgo+IFRoZSBkcml2ZXIgdGhhdCBp bnN0YW50aWF0ZXMgdGhlIGJyaWRnZSBzaG91bGQgb3duIHRoZSBkcnZkYXRhLCBhcyBhbGwKPiBk cml2ZXIgbW9kZWwgY2FsbGJhY2tzIChwcm9iZSwgcmVtb3ZlLCBzaHV0ZG93biwgUE0gb3BzLCBl dGMuKSBhcmUgYWxzbwo+IG93bmVkIGJ5IGl0cyBkcml2ZXIgc3RydWN0LiBNb3Jlb3Zlciwgc3Rv cmluZyB0d28gZGlmZmVyZW50IHBvaW50ZXIKPiB0eXBlcyBpbiBkcml2ZXIgZGF0YSBkZXBlbmRp bmcgb24gZHJpdmVyIGluaXRpYWxpemF0aW9uIHN0YXR1cyBpcyBiYXJlbHkKPiBhIGdvb2QgcHJh Y3RpY2UgYW5kIGluIGZhY3QgaGFzIGxlZCB0byBtYW55IGJ1Z3MgaW4gdGhpcyBkcml2ZXIuCj4g Cj4gTGV0J3MgY2xlYW4gdXAgdGhpcyBtZXNzIGFuZCBjaGFuZ2UgQW5hbG9naXggZW50cnkgcG9p bnRzIHRvIHNpbXBseQo+IGFjY2VwdCBzb21lIG9wYXF1ZSBzdHJ1Y3QgcG9pbnRlciwgYWRqdXN0 aW5nIHRoZWlyIHVzZXJzIGF0IHRoZSBzYW1lCj4gdGltZSB0byBhdm9pZCBicmVha2luZyB0aGUg Y29tcGlsYXRpb24uCj4gCj4gU2lnbmVkLW9mZi1ieTogVG9tYXN6IEZpZ2EgPHRmaWdhQGNocm9t aXVtLm9yZz4KPiBTaWduZWQtb2ZmLWJ5OiBKZWZmeSBDaGVuIDxqZWZmeS5jaGVuQHJvY2stY2hp cHMuY29tPgo+IFJldmlld2VkLWJ5OiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29t Pgo+IFJldmlld2VkLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KPiBBY2tl ZC1ieTogSmluZ29vIEhhbiA8amluZ29vaGFuMUBnbWFpbC5jb20+Cj4gQWNrZWQtYnk6IEFyY2hp dCBUYW5lamEgPGFyY2hpdHRAY29kZWF1cm9yYS5vcmc+Cj4gLS0tCj4gCj4gQ2hhbmdlcyBpbiB2 NjogTm9uZQo+IENoYW5nZXMgaW4gdjU6IE5vbmUKPiAKPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMgfCA1MCArKysrKysrKystLS0tLS0tLS0tLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RwLmMgICAgICAgICAgICAgICAgIHwg MjYgKysrKysrLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJv Y2tjaGlwLmMgICAgfCA0OSArKysrKysrKysrKystLS0tLS0tLS0KPiAgaW5jbHVkZS9kcm0vYnJp ZGdlL2FuYWxvZ2l4X2RwLmggICAgICAgICAgICAgICAgICAgfCAxOSArKysrLS0tLQo+ICA0IGZp bGVzIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUu YyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5jCj4g aW5kZXggNWRkM2YxY2QwNzRhLi43NGQyNzRiNmQzMWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYwo+IEBAIC05OCwxNyAr OTgsMTUgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9kZXRlY3RfaHBkKHN0cnVjdCBhbmFsb2dp eF9kcF9kZXZpY2UgKmRwKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLWludCBhbmFsb2dpeF9k cF9wc3Jfc3VwcG9ydGVkKHN0cnVjdCBkZXZpY2UgKmRldikKPiAraW50IGFuYWxvZ2l4X2RwX3Bz cl9zdXBwb3J0ZWQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCj4gIHsKPiAtCXN0cnVj dCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gIAo+ICAJ cmV0dXJuIGRwLT5wc3Jfc3VwcG9ydDsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTChhbmFsb2dp eF9kcF9wc3Jfc3VwcG9ydGVkKTsKPiAgCj4gLWludCBhbmFsb2dpeF9kcF9lbmFibGVfcHNyKHN0 cnVjdCBkZXZpY2UgKmRldikKPiAraW50IGFuYWxvZ2l4X2RwX2VuYWJsZV9wc3Ioc3RydWN0IGFu YWxvZ2l4X2RwX2RldmljZSAqZHApCj4gIHsKPiAtCXN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2Ug KmRwID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gIAlzdHJ1Y3QgZWRwX3ZzY19wc3IgcHNyX3Zz YzsKPiAgCj4gIAlpZiAoIWRwLT5wc3Jfc3VwcG9ydCkKPiBAQCAtMTI5LDkgKzEyNyw4IEBAIGlu dCBhbmFsb2dpeF9kcF9lbmFibGVfcHNyKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgfQo+ICBFWFBP UlRfU1lNQk9MX0dQTChhbmFsb2dpeF9kcF9lbmFibGVfcHNyKTsKPiAgCj4gLWludCBhbmFsb2dp eF9kcF9kaXNhYmxlX3BzcihzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gK2ludCBhbmFsb2dpeF9kcF9k aXNhYmxlX3BzcihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKPiAgewo+IC0Jc3RydWN0 IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiAgCXN0cnVj dCBlZHBfdnNjX3BzciBwc3JfdnNjOwo+ICAJaW50IHJldDsKPiAgCj4gQEAgLTEyODEsOCArMTI3 OCw5IEBAIHN0YXRpYyBzc2l6ZV90IGFuYWxvZ2l4X2RwYXV4X3RyYW5zZmVyKHN0cnVjdCBkcm1f ZHBfYXV4ICphdXgsCj4gIAlyZXR1cm4gYW5hbG9naXhfZHBfdHJhbnNmZXIoZHAsIG1zZyk7Cj4g IH0KPiAgCj4gLWludCBhbmFsb2dpeF9kcF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0 IGRybV9kZXZpY2UgKmRybV9kZXYsCj4gLQkJICAgICBzdHJ1Y3QgYW5hbG9naXhfZHBfcGxhdF9k YXRhICpwbGF0X2RhdGEpCj4gK3N0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKgo+ICthbmFsb2dp eF9kcF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYs Cj4gKwkJIHN0cnVjdCBhbmFsb2dpeF9kcF9wbGF0X2RhdGEgKnBsYXRfZGF0YSkKPiAgewo+ICAJ c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpOwo+ ICAJc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHA7Cj4gQEAgLTEyOTIsMTQgKzEyOTAsMTIg QEAgaW50IGFuYWxvZ2l4X2RwX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtX2RldiwKPiAgCj4gIAlpZiAoIXBsYXRfZGF0YSkgewo+ICAJCWRldl9lcnIoZGV2 LCAiSW52YWxpZGVkIGlucHV0IHBsYXRfZGF0YVxuIik7Cj4gLQkJcmV0dXJuIC1FSU5WQUw7Cj4g KwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4gIAl9Cj4gIAo+ICAJZHAgPSBkZXZtX2t6YWxs b2MoZGV2LCBzaXplb2Yoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSksIEdGUF9LRVJORUwpOwo+ ICAJaWYgKCFkcCkKPiAtCQlyZXR1cm4gLUVOT01FTTsKPiAtCj4gLQlkZXZfc2V0X2RydmRhdGEo ZGV2LCBkcCk7Cj4gKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gIAo+ICAJZHAtPmRldiA9 ICZwZGV2LT5kZXY7Cj4gIAlkcC0+ZHBtc19tb2RlID0gRFJNX01PREVfRFBNU19PRkY7Cj4gQEAg LTEzMTYsNyArMTMxMiw3IEBAIGludCBhbmFsb2dpeF9kcF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCj4gIAo+ICAJcmV0ID0gYW5hbG9naXhfZHBf ZHRfcGFyc2VfcGRhdGEoZHApOwo+ICAJaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+ICsJCXJl dHVybiBFUlJfUFRSKHJldCk7Cj4gIAo+ICAJZHAtPnBoeSA9IGRldm1fcGh5X2dldChkcC0+ZGV2 LCAiZHAiKTsKPiAgCWlmIChJU19FUlIoZHAtPnBoeSkpIHsKPiBAQCAtMTMzMCwxNCArMTMyNiwx NCBAQCBpbnQgYW5hbG9naXhfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1f ZGV2aWNlICpkcm1fZGV2LAo+ICAJCQlpZiAocmV0ID09IC1FTk9TWVMgfHwgcmV0ID09IC1FTk9E RVYpCj4gIAkJCQlkcC0+cGh5ID0gTlVMTDsKPiAgCQkJZWxzZQo+IC0JCQkJcmV0dXJuIHJldDsK PiArCQkJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gIAkJfQo+ICAJfQo+ICAKPiAgCWRwLT5jbG9j ayA9IGRldm1fY2xrX2dldCgmcGRldi0+ZGV2LCAiZHAiKTsKPiAgCWlmIChJU19FUlIoZHAtPmNs b2NrKSkgewo+ICAJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgY2xvY2tcbiIp Owo+IC0JCXJldHVybiBQVFJfRVJSKGRwLT5jbG9jayk7Cj4gKwkJcmV0dXJuIEVSUl9DQVNUKGRw LT5jbG9jayk7Cj4gIAl9Cj4gIAo+ICAJY2xrX3ByZXBhcmVfZW5hYmxlKGRwLT5jbG9jayk7Cj4g QEAgLTEzNDYsNyArMTM0Miw3IEBAIGludCBhbmFsb2dpeF9kcF9iaW5kKHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCj4gIAo+ICAJZHAtPnJlZ19iYXNlID0g ZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHJlcyk7Cj4gIAlpZiAoSVNfRVJSKGRw LT5yZWdfYmFzZSkpCj4gLQkJcmV0dXJuIFBUUl9FUlIoZHAtPnJlZ19iYXNlKTsKPiArCQlyZXR1 cm4gRVJSX0NBU1QoZHAtPnJlZ19iYXNlKTsKPiAgCj4gIAlkcC0+Zm9yY2VfaHBkID0gb2ZfcHJv cGVydHlfcmVhZF9ib29sKGRldi0+b2Zfbm9kZSwgImZvcmNlLWhwZCIpOwo+ICAKPiBAQCAtMTM2 Nyw3ICsxMzYzLDcgQEAgaW50IGFuYWxvZ2l4X2RwX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwKPiAgCQkJCQkgICAgImhwZF9ncGlvIik7Cj4gIAkJ aWYgKHJldCkgewo+ICAJCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IGhwZCBn cGlvXG4iKTsKPiAtCQkJcmV0dXJuIHJldDsKPiArCQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAg CQl9Cj4gIAkJZHAtPmlycSA9IGdwaW9fdG9faXJxKGRwLT5ocGRfZ3Bpbyk7Cj4gIAkJaXJxX2Zs YWdzID0gSVJRRl9UUklHR0VSX1JJU0lORyB8IElSUUZfVFJJR0dFUl9GQUxMSU5HOwo+IEBAIC0x Mzc5LDcgKzEzNzUsNyBAQCBpbnQgYW5hbG9naXhfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAo+ICAKPiAgCWlmIChkcC0+aXJxID09IC1FTlhJ Tykgewo+ICAJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgaXJxXG4iKTsKPiAt CQlyZXR1cm4gLUVOT0RFVjsKPiArCQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKPiAgCX0KPiAg Cj4gIAlwbV9ydW50aW1lX2VuYWJsZShkZXYpOwo+IEBAIC0xNDIwLDcgKzE0MTYsNyBAQCBpbnQg YW5hbG9naXhfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZGV2aWNlICpk cm1fZGV2LAo+ICAJcGh5X3Bvd2VyX29mZihkcC0+cGh5KTsKPiAgCXBtX3J1bnRpbWVfcHV0KGRl dik7Cj4gIAo+IC0JcmV0dXJuIDA7Cj4gKwlyZXR1cm4gZHA7Cj4gIAo+ICBlcnJfZGlzYWJsZV9w bV9ydW50aW1lOgo+ICAKPiBAQCAtMTQyOCwxNSArMTQyNCwxMiBAQCBpbnQgYW5hbG9naXhfZHBf YmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAo+ICAJ cG1fcnVudGltZV9wdXQoZGV2KTsKPiAgCXBtX3J1bnRpbWVfZGlzYWJsZShkZXYpOwo+ICAKPiAt CXJldHVybiByZXQ7Cj4gKwlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICB9Cj4gIEVYUE9SVF9TWU1C T0xfR1BMKGFuYWxvZ2l4X2RwX2JpbmQpOwo+ICAKPiAtdm9pZCBhbmFsb2dpeF9kcF91bmJpbmQo c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gLQkJCXZvaWQgKmRh dGEpCj4gK3ZvaWQgYW5hbG9naXhfZHBfdW5iaW5kKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2Ug KmRwKQo+ICB7Cj4gLQlzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCA9IGRldl9nZXRfZHJ2 ZGF0YShkZXYpOwo+IC0KPiAgCWFuYWxvZ2l4X2RwX2JyaWRnZV9kaXNhYmxlKGRwLT5icmlkZ2Up Owo+ICAJZHAtPmNvbm5lY3Rvci5mdW5jcy0+ZGVzdHJveSgmZHAtPmNvbm5lY3Rvcik7Cj4gIAlk cC0+ZW5jb2Rlci0+ZnVuY3MtPmRlc3Ryb3koZHAtPmVuY29kZXIpOwo+IEBAIC0xNDQ5LDE2ICsx NDQyLDE0IEBAIHZvaWQgYW5hbG9naXhfZHBfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0IGRldmljZSAqbWFzdGVyLAo+ICAJfQo+ICAKPiAgCWRybV9kcF9hdXhfdW5yZWdpc3Rlcigm ZHAtPmF1eCk7Cj4gLQlwbV9ydW50aW1lX2Rpc2FibGUoZGV2KTsKPiArCXBtX3J1bnRpbWVfZGlz YWJsZShkcC0+ZGV2KTsKPiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShkcC0+Y2xvY2spOwo+ICB9 Cj4gIEVYUE9SVF9TWU1CT0xfR1BMKGFuYWxvZ2l4X2RwX3VuYmluZCk7Cj4gIAo+ICAjaWZkZWYg Q09ORklHX1BNCj4gLWludCBhbmFsb2dpeF9kcF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikK PiAraW50IGFuYWxvZ2l4X2RwX3N1c3BlbmQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAp Cj4gIHsKPiAtCXN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwID0gZGV2X2dldF9kcnZkYXRh KGRldik7Cj4gLQo+ICAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRwLT5jbG9jayk7Cj4gIAo+ICAJ aWYgKGRwLT5wbGF0X2RhdGEtPnBhbmVsKSB7Cj4gQEAgLTE0NzAsOSArMTQ2MSw4IEBAIGludCBh bmFsb2dpeF9kcF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgfQo+ICBFWFBPUlRfU1lN Qk9MX0dQTChhbmFsb2dpeF9kcF9zdXNwZW5kKTsKPiAgCj4gLWludCBhbmFsb2dpeF9kcF9yZXN1 bWUoc3RydWN0IGRldmljZSAqZGV2KQo+ICtpbnQgYW5hbG9naXhfZHBfcmVzdW1lKHN0cnVjdCBh bmFsb2dpeF9kcF9kZXZpY2UgKmRwKQo+ICB7Cj4gLQlzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNl ICpkcCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICAJaW50IHJldDsKPiAgCj4gIAlyZXQgPSBj bGtfcHJlcGFyZV9lbmFibGUoZHAtPmNsb2NrKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3NfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2Rw LmMKPiBpbmRleCAzOTYyOWU3YTgwYjkuLmY3ZTViMmM0MDVlZCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3NfZHAuYwo+IEBAIC00MSw2ICs0MSw3IEBAIHN0cnVjdCBleHlub3NfZHBfZGV2 aWNlIHsKPiAgCXN0cnVjdCBkZXZpY2UgICAgICAgICAgICAgICpkZXY7Cj4gIAo+ICAJc3RydWN0 IHZpZGVvbW9kZSAgICAgICAgICAgdm07Cj4gKwlzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICph ZHA7Cj4gIAlzdHJ1Y3QgYW5hbG9naXhfZHBfcGxhdF9kYXRhIHBsYXRfZGF0YTsKPiAgfTsKPiAg Cj4gQEAgLTE1NywxMyArMTU4LDYgQEAgc3RhdGljIGludCBleHlub3NfZHBfYmluZChzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPiAgCXN0cnVj dCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZGF0YTsKPiAgCWludCByZXQ7Cj4gIAo+IC0JLyoKPiAt CSAqIEp1c3QgbGlrZSB0aGUgcHJvYmUgZnVuY3Rpb24gc2FpZCwgd2UgZG9uJ3QgbmVlZCB0aGUK PiAtCSAqIGRldmljZSBkcnZyYXRlIGFueW1vcmUsIHdlIHNob3VsZCBsZWF2ZSB0aGUgY2hhcmdl IHRvCj4gLQkgKiBhbmFsb2dpeCBkcCBkcml2ZXIsIHNldCB0aGUgZGV2aWNlIGRydmRhdGEgdG8g TlVMTC4KPiAtCSAqLwo+IC0JZGV2X3NldF9kcnZkYXRhKGRldiwgTlVMTCk7Cj4gLQo+ICAJZHAt PmRldiA9IGRldjsKPiAgCWRwLT5kcm1fZGV2ID0gZHJtX2RldjsKPiAgCj4gQEAgLTE5MCwxMyAr MTg0LDE5IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RwX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4gIAo+ICAJZHAtPnBsYXRfZGF0YS5l bmNvZGVyID0gZW5jb2RlcjsKPiAgCj4gLQlyZXR1cm4gYW5hbG9naXhfZHBfYmluZChkZXYsIGRw LT5kcm1fZGV2LCAmZHAtPnBsYXRfZGF0YSk7Cj4gKwlkcC0+YWRwID0gYW5hbG9naXhfZHBfYmlu ZChkZXYsIGRwLT5kcm1fZGV2LCAmZHAtPnBsYXRfZGF0YSk7Cj4gKwlpZiAoSVNfRVJSKGRwLT5h ZHApKQo+ICsJCXJldHVybiBQVFJfRVJSKGRwLT5hZHApOwo+ICsKPiArCXJldHVybiAwOwo+ICB9 Cj4gIAo+ICBzdGF0aWMgdm9pZCBleHlub3NfZHBfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IGRldmljZSAqbWFzdGVyLAo+ICAJCQkgICAgIHZvaWQgKmRhdGEpCj4gIHsKPiAtCXJl dHVybiBhbmFsb2dpeF9kcF91bmJpbmQoZGV2LCBtYXN0ZXIsIGRhdGEpOwo+ICsJc3RydWN0IGV4 eW5vc19kcF9kZXZpY2UgKmRwID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gKwo+ICsJcmV0dXJu IGFuYWxvZ2l4X2RwX3VuYmluZChkcC0+YWRwKTsKPiAgfQo+ICAKPiAgc3RhdGljIGNvbnN0IHN0 cnVjdCBjb21wb25lbnRfb3BzIGV4eW5vc19kcF9vcHMgPSB7Cj4gQEAgLTI1NywxMiArMjU3LDE2 IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQo+ICAjaWZkZWYgQ09ORklHX1BNCj4gIHN0YXRpYyBpbnQgZXh5bm9zX2RwX3N1c3BlbmQo c3RydWN0IGRldmljZSAqZGV2KQo+ICB7Cj4gLQlyZXR1cm4gYW5hbG9naXhfZHBfc3VzcGVuZChk ZXYpOwo+ICsJc3RydWN0IGV4eW5vc19kcF9kZXZpY2UgKmRwID0gZGV2X2dldF9kcnZkYXRhKGRl dik7Cj4gKwo+ICsJcmV0dXJuIGFuYWxvZ2l4X2RwX3N1c3BlbmQoZHAtPmFkcCk7Cj4gIH0KPiAg Cj4gIHN0YXRpYyBpbnQgZXh5bm9zX2RwX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gIHsK PiAtCXJldHVybiBhbmFsb2dpeF9kcF9yZXN1bWUoZGV2KTsKPiArCXN0cnVjdCBleHlub3NfZHBf ZGV2aWNlICpkcCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArCXJldHVybiBhbmFsb2dp eF9kcF9yZXN1bWUoZHAtPmFkcCk7Cj4gIH0KPiAgI2VuZGlmCj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvYW5hbG9naXhfZHAtcm9ja2NoaXAuYyBiL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9hbmFsb2dpeF9kcC1yb2NrY2hpcC5jCj4gaW5kZXggOGNhZTVhZDky NmNkLi5mYTAzNjVkZTMxZDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv YW5hbG9naXhfZHAtcm9ja2NoaXAuYwo+IEBAIC03Nyw2ICs3Nyw3IEBAIHN0cnVjdCByb2NrY2hp cF9kcF9kZXZpY2Ugewo+ICAKPiAgCWNvbnN0IHN0cnVjdCByb2NrY2hpcF9kcF9jaGlwX2RhdGEg KmRhdGE7Cj4gIAo+ICsJc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqYWRwOwo+ICAJc3RydWN0 IGFuYWxvZ2l4X2RwX3BsYXRfZGF0YSBwbGF0X2RhdGE7Cj4gIH07Cj4gIAo+IEBAIC04NSw3ICs4 Niw3IEBAIHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX3Bzcl9zZXQoc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyLCBib29sIGVuYWJsZWQpCj4gIAlzdHJ1Y3Qgcm9ja2NoaXBfZHBfZGV2aWNlICpk cCA9IHRvX2RwKGVuY29kZXIpOwo+ICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiAgCj4gLQlpZiAo IWFuYWxvZ2l4X2RwX3Bzcl9zdXBwb3J0ZWQoZHAtPmRldikpCj4gKwlpZiAoIWFuYWxvZ2l4X2Rw X3Bzcl9zdXBwb3J0ZWQoZHAtPmFkcCkpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCURSTV9ERVZfREVC VUcoZHAtPmRldiwgIiVzIFBTUi4uLlxuIiwgZW5hYmxlZCA/ICJFbnRyeSIgOiAiRXhpdCIpOwo+ IEBAIC0xMTYsOSArMTE3LDkgQEAgc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfcHNyX3dvcmsoc3Ry dWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICAKPiAgCXNwaW5fbG9ja19pcnFzYXZlKCZkcC0+cHNy X2xvY2ssIGZsYWdzKTsKPiAgCWlmIChkcC0+cHNyX3N0YXRlID09IEVEUF9WU0NfUFNSX1NUQVRF X0FDVElWRSkKPiAtCQlhbmFsb2dpeF9kcF9lbmFibGVfcHNyKGRwLT5kZXYpOwo+ICsJCWFuYWxv Z2l4X2RwX2VuYWJsZV9wc3IoZHAtPmFkcCk7Cj4gIAllbHNlCj4gLQkJYW5hbG9naXhfZHBfZGlz YWJsZV9wc3IoZHAtPmRldik7Cj4gKwkJYW5hbG9naXhfZHBfZGlzYWJsZV9wc3IoZHAtPmFkcCk7 Cj4gIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkcC0+cHNyX2xvY2ssIGZsYWdzKTsKPiAgfQo+ ICAKPiBAQCAtMjczLDcgKzI3NCw2IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZHBfb2ZfcHJvYmUo c3RydWN0IHJvY2tjaGlwX2RwX2RldmljZSAqZHApCj4gIHsKPiAgCXN0cnVjdCBkZXZpY2UgKmRl diA9IGRwLT5kZXY7Cj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gZGV2LT5vZl9ub2RlOwo+ IC0JaW50IHJldDsKPiAgCj4gIAlkcC0+Z3JmID0gc3lzY29uX3JlZ21hcF9sb29rdXBfYnlfcGhh bmRsZShucCwgInJvY2tjaGlwLGdyZiIpOwo+ICAJaWYgKElTX0VSUihkcC0+Z3JmKSkgewo+IEBA IC0zMzcsMTMgKzMzNyw2IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZHBfYmluZChzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpk cm1fZGV2ID0gZGF0YTsKPiAgCWludCByZXQ7Cj4gIAo+IC0JLyoKPiAtCSAqIEp1c3QgbGlrZSB0 aGUgcHJvYmUgZnVuY3Rpb24gc2FpZCwgd2UgZG9uJ3QgbmVlZCB0aGUKPiAtCSAqIGRldmljZSBk cnZyYXRlIGFueW1vcmUsIHdlIHNob3VsZCBsZWF2ZSB0aGUgY2hhcmdlIHRvCj4gLQkgKiBhbmFs b2dpeCBkcCBkcml2ZXIsIHNldCB0aGUgZGV2aWNlIGRydmRhdGEgdG8gTlVMTC4KPiAtCSAqLwo+ IC0JZGV2X3NldF9kcnZkYXRhKGRldiwgTlVMTCk7Cj4gLQo+ICAJZHBfZGF0YSA9IG9mX2Rldmlj ZV9nZXRfbWF0Y2hfZGF0YShkZXYpOwo+ICAJaWYgKCFkcF9kYXRhKQo+ICAJCXJldHVybiAtRU5P REVWOwo+IEBAIC0zNzAsNyArMzYzLDExIEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZHBfYmluZChz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKPiAgCj4gIAlyb2NrY2hp cF9kcm1fcHNyX3JlZ2lzdGVyKCZkcC0+ZW5jb2RlciwgYW5hbG9naXhfZHBfcHNyX3NldCk7Cj4g IAo+IC0JcmV0dXJuIGFuYWxvZ2l4X2RwX2JpbmQoZGV2LCBkcC0+ZHJtX2RldiwgJmRwLT5wbGF0 X2RhdGEpOwo+ICsJZHAtPmFkcCA9IGFuYWxvZ2l4X2RwX2JpbmQoZGV2LCBkcC0+ZHJtX2Rldiwg JmRwLT5wbGF0X2RhdGEpOwo+ICsJaWYgKElTX0VSUihkcC0+YWRwKSkKPiArCQlyZXR1cm4gUFRS X0VSUihkcC0+YWRwKTsKPiArCj4gKwlyZXR1cm4gMDsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQg cm9ja2NoaXBfZHBfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFz dGVyLAo+IEBAIC0zNzksOCArMzc2LDcgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZHBfdW5iaW5k KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAo+ICAJc3RydWN0IHJv Y2tjaGlwX2RwX2RldmljZSAqZHAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiAgCj4gIAlyb2Nr Y2hpcF9kcm1fcHNyX3VucmVnaXN0ZXIoJmRwLT5lbmNvZGVyKTsKPiAtCj4gLQlhbmFsb2dpeF9k cF91bmJpbmQoZGV2LCBtYXN0ZXIsIGRhdGEpOwo+ICsJYW5hbG9naXhfZHBfdW5iaW5kKGRwLT5h ZHApOwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9vcHMgcm9ja2No aXBfZHBfY29tcG9uZW50X29wcyA9IHsKPiBAQCAtNDEwLDExICs0MDYsNiBAQCBzdGF0aWMgaW50 IHJvY2tjaGlwX2RwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAlpZiAo cmV0IDwgMCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAtCS8qCj4gLQkgKiBXZSBqdXN0IHVzZSB0 aGUgZHJ2ZGF0YSB1bnRpbCBkcml2ZXIgcnVuIGludG8gY29tcG9uZW50Cj4gLQkgKiBhZGQgZnVu Y3Rpb24sIGFuZCB0aGVuIHdlIHdvdWxkIHNldCBkcnZkYXRhIHRvIG51bGwsIHNvCj4gLQkgKiB0 aGF0IGFuYWxvZ2l4IGRwIGRyaXZlciBjb3VsZCB0YWtlIGNoYXJnZSBvZiB0aGUgZHJ2ZGF0YS4K PiAtCSAqLwo+ICAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgZHApOwo+ICAKPiAgCXJldHVy biBjb21wb25lbnRfYWRkKGRldiwgJnJvY2tjaGlwX2RwX2NvbXBvbmVudF9vcHMpOwo+IEBAIC00 MjcsMTAgKzQxOCwyNiBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX2RwX3JlbW92ZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gKyNpZmRlZiBDT05G SUdfUE1fU0xFRVAKPiArc3RhdGljIGludCByb2NrY2hpcF9kcF9zdXNwZW5kKHN0cnVjdCBkZXZp Y2UgKmRldikKPiArewo+ICsJc3RydWN0IHJvY2tjaGlwX2RwX2RldmljZSAqZHAgPSBkZXZfZ2V0 X2RydmRhdGEoZGV2KTsKPiArCj4gKwlyZXR1cm4gYW5hbG9naXhfZHBfc3VzcGVuZChkcC0+YWRw KTsKPiArfQo+ICsKPiArc3RhdGljIGludCByb2NrY2hpcF9kcF9yZXN1bWUoc3RydWN0IGRldmlj ZSAqZGV2KQo+ICt7Cj4gKwlzdHJ1Y3Qgcm9ja2NoaXBfZHBfZGV2aWNlICpkcCA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOwo+ICsKPiArCXJldHVybiBhbmFsb2dpeF9kcF9yZXN1bWUoZHAtPmFkcCk7 Cj4gK30KPiArI2VuZGlmCj4gKwo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgcm9j a2NoaXBfZHBfcG1fb3BzID0gewo+ICAjaWZkZWYgQ09ORklHX1BNX1NMRUVQCj4gLQkuc3VzcGVu ZCA9IGFuYWxvZ2l4X2RwX3N1c3BlbmQsCj4gLQkucmVzdW1lX2Vhcmx5ID0gYW5hbG9naXhfZHBf cmVzdW1lLAo+ICsJLnN1c3BlbmQgPSByb2NrY2hpcF9kcF9zdXNwZW5kLAo+ICsJLnJlc3VtZV9l YXJseSA9IHJvY2tjaGlwX2RwX3Jlc3VtZSwKPiAgI2VuZGlmCj4gIH07Cj4gIAo+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS9icmlkZ2UvYW5hbG9naXhfZHAuaCBiL2luY2x1ZGUvZHJtL2JyaWRn ZS9hbmFsb2dpeF9kcC5oCj4gaW5kZXggYzk5ZDZlYWVmMWFjLi41NTE4ZmM3NWRkNmUgMTAwNjQ0 Cj4gLS0tIGEvaW5jbHVkZS9kcm0vYnJpZGdlL2FuYWxvZ2l4X2RwLmgKPiArKysgYi9pbmNsdWRl L2RybS9icmlkZ2UvYW5hbG9naXhfZHAuaAo+IEBAIC0xMyw2ICsxMyw4IEBACj4gIAo+ICAjaW5j bHVkZSA8ZHJtL2RybV9jcnRjLmg+Cj4gIAo+ICtzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlOwo+ ICsKPiAgZW51bSBhbmFsb2dpeF9kcF9kZXZ0eXBlIHsKPiAgCUVYWU5PU19EUCwKPiAgCVJLMzI4 OF9EUCwKPiBAQCAtMzgsMTYgKzQwLDE3IEBAIHN0cnVjdCBhbmFsb2dpeF9kcF9wbGF0X2RhdGEg ewo+ICAJCQkgc3RydWN0IGRybV9jb25uZWN0b3IgKik7Cj4gIH07Cj4gIAo+IC1pbnQgYW5hbG9n aXhfZHBfcHNyX3N1cHBvcnRlZChzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+IC1pbnQgYW5hbG9naXhf ZHBfZW5hYmxlX3BzcihzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+IC1pbnQgYW5hbG9naXhfZHBfZGlz YWJsZV9wc3Ioc3RydWN0IGRldmljZSAqZGV2KTsKPiAraW50IGFuYWxvZ2l4X2RwX3Bzcl9zdXBw b3J0ZWQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApOwo+ICtpbnQgYW5hbG9naXhfZHBf ZW5hYmxlX3BzcihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7Cj4gK2ludCBhbmFsb2dp eF9kcF9kaXNhYmxlX3BzcihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7Cj4gIAo+IC1p bnQgYW5hbG9naXhfZHBfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gLWludCBhbmFsb2dp eF9kcF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gK2ludCBhbmFsb2dpeF9kcF9yZXN1 bWUoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApOwo+ICtpbnQgYW5hbG9naXhfZHBfc3Vz cGVuZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7Cj4gIAo+IC1pbnQgYW5hbG9naXhf ZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAo+ IC0JCSAgICAgc3RydWN0IGFuYWxvZ2l4X2RwX3BsYXRfZGF0YSAqcGxhdF9kYXRhKTsKPiAtdm9p ZCBhbmFsb2dpeF9kcF91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICpt YXN0ZXIsIHZvaWQgKmRhdGEpOwo+ICtzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICoKPiArYW5h bG9naXhfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm1f ZGV2LAo+ICsJCSBzdHJ1Y3QgYW5hbG9naXhfZHBfcGxhdF9kYXRhICpwbGF0X2RhdGEpOwo+ICt2 b2lkIGFuYWxvZ2l4X2RwX3VuYmluZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7Cj4g IAo+ICBpbnQgYW5hbG9naXhfZHBfc3RhcnRfY3JjKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IpOwo+ICBpbnQgYW5hbG9naXhfZHBfc3RvcF9jcmMoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3Rvcik7Cj4gLS0gCj4gMi4xMS4wCj4gCj4gCgotLSAKU2VhbiBQYXVsLCBTb2Z0d2Fy ZSBFbmdpbmVlciwgR29vZ2xlIC8gQ2hyb21pdW0gT1MKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==