From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v3 3/3] drm: sti: rework init sequence Date: Tue, 21 Jun 2016 21:32:35 +0200 Message-ID: <20160621193235.GI23520@phenom.ffwll.local> References: <1466514580-15194-1-git-send-email-benjamin.gaignard@linaro.org> <1466514580-15194-4-git-send-email-benjamin.gaignard@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x243.google.com (mail-lf0-x243.google.com [IPv6:2a00:1450:4010:c07::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3DA136E2EF for ; Tue, 21 Jun 2016 19:32:40 +0000 (UTC) Received: by mail-lf0-x243.google.com with SMTP id w130so6295845lfd.2 for ; Tue, 21 Jun 2016 12:32:40 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1466514580-15194-4-git-send-email-benjamin.gaignard@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Benjamin Gaignard Cc: emil.l.velikov@gmail.com, fabien.dessenne@st.com, dri-devel@lists.freedesktop.org, vincent.abriou@st.com List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBKdW4gMjEsIDIwMTYgYXQgMDM6MDk6NDBQTSArMDIwMCwgQmVuamFtaW4gR2FpZ25h cmQgd3JvdGU6Cj4gVXNlIGRybV9kZXZfYWxsb2MoKSBhbmQgZHJtX2Rldl9yZWdpc3RlcigpIGlu c3RlYWQgb2YgLmxvYWQoKQo+IFRvIHNpbXBsaWZ5IGluaXQgc2VxdWVuY2Ugb25seSBjcmVhdGUg ZmJkZXYgd2hlbiByZXF1ZXN0ZWQKPiBpbiBvdXRwdXRfcG9sbF9jaGFuZ2VkKCkuCj4gCj4gdmVy c2lvbiAyOgo+IHJlbW92ZSBjYWxsIHRvIGRybV9jb25uZWN0b3JfdW5yZWdpc3Rlcl9hbGwoKSBh bmQKPiBkcm1fZGV2X3NldF91bmlxdWUoKQo+IAo+IFNpZ25lZC1vZmYtYnk6IEJlbmphbWluIEdh aWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBsaW5hcm8ub3JnPgo+IC0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vc3RpL3N0aV9kcnYuYyAgfCAxMzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHJ2LmggIHwgICAxICsKPiAg ZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHZvLmMgIHwgICA3IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vc3RpL3N0aV9oZGEuYyAgfCAgIDggKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hk bWkuYyB8ICAyMSArLS0tLS0tCj4gIDUgZmlsZXMgY2hhbmdlZCwgMTAwIGluc2VydGlvbnMoKyks IDc0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0 aV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2Rydi5jCj4gaW5kZXggMjZhYTg1ZC4u OTZiZDNkMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9kcnYuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2Rydi5jCj4gQEAgLTIyNiw4ICsyMjYsMjggQEAg c3RhdGljIGludCBzdGlfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+ICAJ cmV0dXJuIDA7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIHN0aV9vdXRwdXRfcG9sbF9jaGFuZ2Vk KHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2KQo+ICt7Cj4gKwlzdHJ1Y3Qgc3RpX3ByaXZhdGUgKnBy aXZhdGUgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKPiArCj4gKwlpZiAoIWRkZXYtPm1vZGVfY29uZmln Lm51bV9jb25uZWN0b3IpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWlmIChwcml2YXRlLT5mYmRldikg ewo+ICsJCWRybV9mYmRldl9jbWFfaG90cGx1Z19ldmVudChwcml2YXRlLT5mYmRldik7Cj4gKwkJ cmV0dXJuOwo+ICsJfQo+ICsKPiArCXByaXZhdGUtPmZiZGV2ID0gZHJtX2ZiZGV2X2NtYV9pbml0 KGRkZXYsIDMyLAo+ICsJCQkJCSAgICBkZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YywKPiArCQkJ CQkgICAgZGRldi0+bW9kZV9jb25maWcubnVtX2Nvbm5lY3Rvcik7Cj4gKwlpZiAoSVNfRVJSKHBy aXZhdGUtPmZiZGV2KSkKPiArCQlwcml2YXRlLT5mYmRldiA9IE5VTEw7Cj4gK30KClRoaXMgY3Jl YXRlcyBhbm90aGVyIGNvcHkgb2YgdGhlIGNvcHktcGFzdGVkIGRlZmVycmVkIGZiZGV2IGluaXQg Y29kZS4KVGhpZXJyeSBSZWRkaW5nIGlzIHdvcmtpbmcgdG8gY2xlYW4gdGhhdCB1cCwgYnV0IHNp bmNlIHlvdSd2ZSBqdXN0IGNyZWF0ZWQKbW9yZSB3b3JrIGZvciBoaW0gaGVyZSBJIHRoaW5rIHlv dSd2ZSB2b2x1bnRlZXJlZCB0byByZXZpZXcgVGhpZXJyeSdzCnBhdGNoZXMgOy0pCgpBbGwgdGhy ZWUgcGF0Y2hlcyBtZXJnZWQgdG8gZHJtLW1pc2MsIHRoYW5rcy4KLURhbmllbAoKPiArCj4gIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIHN0aV9tb2RlX2NvbmZpZ19m dW5jcyA9IHsKPiAgCS5mYl9jcmVhdGUgPSBkcm1fZmJfY21hX2NyZWF0ZSwKPiArCS5vdXRwdXRf cG9sbF9jaGFuZ2VkID0gc3RpX291dHB1dF9wb2xsX2NoYW5nZWQsCj4gIAkuYXRvbWljX2NoZWNr ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2ssCj4gIAkuYXRvbWljX2NvbW1pdCA9IHN0aV9hdG9t aWNfY29tbWl0LAo+ICB9Owo+IEBAIC0yNDgsNDQgKzI2OCw2IEBAIHN0YXRpYyB2b2lkIHN0aV9t b2RlX2NvbmZpZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlkZXYtPm1vZGVfY29u ZmlnLmZ1bmNzID0gJnN0aV9tb2RlX2NvbmZpZ19mdW5jczsKPiAgfQo+ICAKPiAtc3RhdGljIGlu dCBzdGlfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQo+ IC17Cj4gLQlzdHJ1Y3Qgc3RpX3ByaXZhdGUgKnByaXZhdGU7Cj4gLQlpbnQgcmV0Owo+IC0KPiAt CXByaXZhdGUgPSBremFsbG9jKHNpemVvZigqcHJpdmF0ZSksIEdGUF9LRVJORUwpOwo+IC0JaWYg KCFwcml2YXRlKSB7Cj4gLQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgcHJpdmF0ZVxu Iik7Cj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gLQl9Cj4gLQlkZXYtPmRldl9wcml2YXRlID0gKHZv aWQgKilwcml2YXRlOwo+IC0JcHJpdmF0ZS0+ZHJtX2RldiA9IGRldjsKPiAtCj4gLQltdXRleF9p bml0KCZwcml2YXRlLT5jb21taXQubG9jayk7Cj4gLQlJTklUX1dPUksoJnByaXZhdGUtPmNvbW1p dC53b3JrLCBzdGlfYXRvbWljX3dvcmspOwo+IC0KPiAtCWRybV9tb2RlX2NvbmZpZ19pbml0KGRl dik7Cj4gLQlkcm1fa21zX2hlbHBlcl9wb2xsX2luaXQoZGV2KTsKPiAtCj4gLQlzdGlfbW9kZV9j b25maWdfaW5pdChkZXYpOwo+IC0KPiAtCXJldCA9IGNvbXBvbmVudF9iaW5kX2FsbChkZXYtPmRl diwgZGV2KTsKPiAtCWlmIChyZXQpIHsKPiAtCQlkcm1fa21zX2hlbHBlcl9wb2xsX2ZpbmkoZGV2 KTsKPiAtCQlkcm1fbW9kZV9jb25maWdfY2xlYW51cChkZXYpOwo+IC0JCWtmcmVlKHByaXZhdGUp Owo+IC0JCXJldHVybiByZXQ7Cj4gLQl9Cj4gLQo+IC0JZHJtX21vZGVfY29uZmlnX3Jlc2V0KGRl dik7Cj4gLQo+IC0JZHJtX2ZiZGV2X2NtYV9pbml0KGRldiwgMzIsCj4gLQkJCSAgIGRldi0+bW9k ZV9jb25maWcubnVtX2NydGMsCj4gLQkJCSAgIGRldi0+bW9kZV9jb25maWcubnVtX2Nvbm5lY3Rv cik7Cj4gLQo+IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmls ZV9vcGVyYXRpb25zIHN0aV9kcml2ZXJfZm9wcyA9IHsKPiAgCS5vd25lciA9IFRISVNfTU9EVUxF LAo+ICAJLm9wZW4gPSBkcm1fb3BlbiwKPiBAQCAtMzAyLDcgKzI4NCw2IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHN0aV9kcml2ZXJfZm9wcyA9IHsKPiAgc3RhdGljIHN0 cnVjdCBkcm1fZHJpdmVyIHN0aV9kcml2ZXIgPSB7Cj4gIAkuZHJpdmVyX2ZlYXR1cmVzID0gRFJJ VkVSX0hBVkVfSVJRIHwgRFJJVkVSX01PREVTRVQgfAo+ICAJICAgIERSSVZFUl9HRU0gfCBEUklW RVJfUFJJTUUgfCBEUklWRVJfQVRPTUlDLAo+IC0JLmxvYWQgPSBzdGlfbG9hZCwKPiAgCS5nZW1f ZnJlZV9vYmplY3RfdW5sb2NrZWQgPSBkcm1fZ2VtX2NtYV9mcmVlX29iamVjdCwKPiAgCS5nZW1f dm1fb3BzID0gJmRybV9nZW1fY21hX3ZtX29wcywKPiAgCS5kdW1iX2NyZWF0ZSA9IGRybV9nZW1f Y21hX2R1bWJfY3JlYXRlLAo+IEBAIC0zMzksMTQgKzMyMCw4OCBAQCBzdGF0aWMgaW50IGNvbXBh cmVfb2Yoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQo+ICAJcmV0dXJuIGRldi0+b2Zf bm9kZSA9PSBkYXRhOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50IHN0aV9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZGV2KQo+ICt7Cj4gKwlzdHJ1Y3Qgc3RpX3ByaXZhdGUgKnByaXZhdGU7Cj4gKwo+ ICsJcHJpdmF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpwcml2YXRlKSwgR0ZQX0tFUk5FTCk7Cj4gKwlp ZiAoIXByaXZhdGUpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJZGRldi0+ZGV2X3ByaXZh dGUgPSAodm9pZCAqKXByaXZhdGU7Cj4gKwlkZXZfc2V0X2RydmRhdGEoZGRldi0+ZGV2LCBkZGV2 KTsKPiArCXByaXZhdGUtPmRybV9kZXYgPSBkZGV2Owo+ICsKPiArCW11dGV4X2luaXQoJnByaXZh dGUtPmNvbW1pdC5sb2NrKTsKPiArCUlOSVRfV09SSygmcHJpdmF0ZS0+Y29tbWl0LndvcmssIHN0 aV9hdG9taWNfd29yayk7Cj4gKwo+ICsJZHJtX21vZGVfY29uZmlnX2luaXQoZGRldik7Cj4gKwo+ ICsJc3RpX21vZGVfY29uZmlnX2luaXQoZGRldik7Cj4gKwo+ICsJZHJtX2ttc19oZWxwZXJfcG9s bF9pbml0KGRkZXYpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBz dGlfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGRldikKPiArewo+ICsJc3RydWN0IHN0aV9w cml2YXRlICpwcml2YXRlID0gZGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwo+ICsJaWYgKHByaXZhdGUt PmZiZGV2KSB7Cj4gKwkJZHJtX2ZiZGV2X2NtYV9maW5pKHByaXZhdGUtPmZiZGV2KTsKPiArCQlw cml2YXRlLT5mYmRldiA9IE5VTEw7Cj4gKwl9Cj4gKwo+ICsJZHJtX2ttc19oZWxwZXJfcG9sbF9m aW5pKGRkZXYpOwo+ICsJZHJtX3ZibGFua19jbGVhbnVwKGRkZXYpOwo+ICsJa2ZyZWUocHJpdmF0 ZSk7Cj4gKwlkZGV2LT5kZXZfcHJpdmF0ZSA9IE5VTEw7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQg c3RpX2JpbmQoc3RydWN0IGRldmljZSAqZGV2KQo+ICB7Cj4gLQlyZXR1cm4gZHJtX3BsYXRmb3Jt X2luaXQoJnN0aV9kcml2ZXIsIHRvX3BsYXRmb3JtX2RldmljZShkZXYpKTsKPiArCXN0cnVjdCBk cm1fZGV2aWNlICpkZGV2Owo+ICsJaW50IHJldDsKPiArCj4gKwlkZGV2ID0gZHJtX2Rldl9hbGxv Yygmc3RpX2RyaXZlciwgZGV2KTsKPiArCWlmICghZGRldikKPiArCQlyZXR1cm4gLUVOT01FTTsK PiArCj4gKwlkZGV2LT5wbGF0Zm9ybWRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpOwo+ICsK PiArCXJldCA9IHN0aV9pbml0KGRkZXYpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGVycl9kcm1f ZGV2X3VucmVmOwo+ICsKPiArCXJldCA9IGNvbXBvbmVudF9iaW5kX2FsbChkZGV2LT5kZXYsIGRk ZXYpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGVycl9jbGVhbnVwOwo+ICsKPiArCXJldCA9IGRy bV9kZXZfcmVnaXN0ZXIoZGRldiwgMCk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZXJyX3JlZ2lz dGVyOwo+ICsKPiArCWRybV9tb2RlX2NvbmZpZ19yZXNldChkZGV2KTsKPiArCj4gKwlyZXR1cm4g MDsKPiArCj4gK2Vycl9yZWdpc3RlcjoKPiArCWRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKGRkZXYp Owo+ICtlcnJfY2xlYW51cDoKPiArCXN0aV9jbGVhbnVwKGRkZXYpOwo+ICtlcnJfZHJtX2Rldl91 bnJlZjoKPiArCWRybV9kZXZfdW5yZWYoZGRldik7Cj4gKwlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+ ICBzdGF0aWMgdm9pZCBzdGlfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgewo+IC0JZHJt X3B1dF9kZXYoZGV2X2dldF9kcnZkYXRhKGRldikpOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRk ZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiArCj4gKwlkcm1fZGV2X3VucmVnaXN0ZXIoZGRl dik7Cj4gKwlzdGlfY2xlYW51cChkZGV2KTsKPiArCWRybV9kZXZfdW5yZWYoZGRldik7Cj4gIH0K PiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X21hc3Rlcl9vcHMgc3RpX29wcyA9 IHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vc3RpL3N0aV9kcnYuaAo+IGluZGV4IDMwZGRjMjAuLjc4ZWJlNWUgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vc3RpL3N0aV9kcnYuaAo+IEBAIC0yNCw2ICsyNCw3IEBAIHN0cnVjdCBzdGlfcHJpdmF0ZSB7 Cj4gIAlzdHJ1Y3Qgc3RpX2NvbXBvc2l0b3IgKmNvbXBvOwo+ICAJc3RydWN0IGRybV9wcm9wZXJ0 eSAqcGxhbmVfem9yZGVyX3Byb3BlcnR5Owo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXY7 Cj4gKwlzdHJ1Y3QgZHJtX2ZiZGV2X2NtYSAqZmJkZXY7Cj4gIAo+ICAJc3RydWN0IHsKPiAgCQlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9zdGkvc3RpX2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHZvLmMKPiBpbmRl eCA4YTJiNDhmLi5lYzMxMDgwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3Rp X2R2by5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHZvLmMKPiBAQCAtNDk3LDEw ICs0OTcsNiBAQCBzdGF0aWMgaW50IHN0aV9kdm9fYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPiAgCWRybV9jb25uZWN0b3JfaGVscGVy X2FkZChkcm1fY29ubmVjdG9yLAo+ICAJCQkJICZzdGlfZHZvX2Nvbm5lY3Rvcl9oZWxwZXJfZnVu Y3MpOwo+ICAKPiAtCWVyciA9IGRybV9jb25uZWN0b3JfcmVnaXN0ZXIoZHJtX2Nvbm5lY3Rvcik7 Cj4gLQlpZiAoZXJyKQo+IC0JCWdvdG8gZXJyX2Nvbm5lY3RvcjsKPiAtCj4gIAllcnIgPSBkcm1f bW9kZV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoZHJtX2Nvbm5lY3RvciwgZW5jb2Rlcik7Cj4g IAlpZiAoZXJyKSB7Cj4gIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYXR0YWNoIGEgY29ubmVjdG9y IHRvIGEgZW5jb2RlclxuIik7Cj4gQEAgLTUxMCwxMCArNTA2LDcgQEAgc3RhdGljIGludCBzdGlf ZHZvX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQg KmRhdGEpCj4gIAlyZXR1cm4gMDsKPiAgCj4gIGVycl9zeXNmczoKPiAtCWRybV9jb25uZWN0b3Jf dW5yZWdpc3Rlcihkcm1fY29ubmVjdG9yKTsKPiAtZXJyX2Nvbm5lY3RvcjoKPiAgCWRybV9icmlk Z2VfcmVtb3ZlKGJyaWRnZSk7Cj4gLQlkcm1fY29ubmVjdG9yX2NsZWFudXAoZHJtX2Nvbm5lY3Rv cik7Cj4gIAlyZXR1cm4gLUVJTlZBTDsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3N0aS9zdGlfaGRhLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZGEuYwo+IGlu ZGV4IGUzMWQ1MmQuLjg1MDU1NjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N0aS9z dGlfaGRhLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZGEuYwo+IEBAIC03NjEs MTAgKzc2MSw2IEBAIHN0YXRpYyBpbnQgc3RpX2hkYV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQo+ICAJZHJtX2Nvbm5lY3Rvcl9oZWxw ZXJfYWRkKGRybV9jb25uZWN0b3IsCj4gIAkJCSZzdGlfaGRhX2Nvbm5lY3Rvcl9oZWxwZXJfZnVu Y3MpOwo+ICAKPiAtCWVyciA9IGRybV9jb25uZWN0b3JfcmVnaXN0ZXIoZHJtX2Nvbm5lY3Rvcik7 Cj4gLQlpZiAoZXJyKQo+IC0JCWdvdG8gZXJyX2Nvbm5lY3RvcjsKPiAtCj4gIAllcnIgPSBkcm1f bW9kZV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoZHJtX2Nvbm5lY3RvciwgZW5jb2Rlcik7Cj4g IAlpZiAoZXJyKSB7Cj4gIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYXR0YWNoIGEgY29ubmVjdG9y IHRvIGEgZW5jb2RlclxuIik7Cj4gQEAgLTc3Nyw5ICs3NzMsNyBAQCBzdGF0aWMgaW50IHN0aV9o ZGFfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAq ZGF0YSkKPiAgCXJldHVybiAwOwo+ICAKPiAgZXJyX3N5c2ZzOgo+IC0JZHJtX2Nvbm5lY3Rvcl91 bnJlZ2lzdGVyKGRybV9jb25uZWN0b3IpOwo+IC1lcnJfY29ubmVjdG9yOgo+IC0JZHJtX2Nvbm5l Y3Rvcl9jbGVhbnVwKGRybV9jb25uZWN0b3IpOwo+ICsJZHJtX2JyaWRnZV9yZW1vdmUoYnJpZGdl KTsKPiAgCXJldHVybiAtRUlOVkFMOwo+ICB9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vc3RpL3N0aV9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZG1pLmMKPiBp bmRleCA5ZDljMmM1Li44ZDE0MDJiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdGkv c3RpX2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkbWkuYwo+IEBAIC05 MTUsMTYgKzkxNSw2IEBAIHN0aV9oZG1pX2Nvbm5lY3Rvcl9kZXRlY3Qoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiAgCXJldHVybiBjb25uZWN0b3Jfc3RhdHVz X2Rpc2Nvbm5lY3RlZDsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgc3RpX2hkbWlfY29ubmVjdG9y X2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAtewo+IC0Jc3RydWN0 IHN0aV9oZG1pX2Nvbm5lY3RvciAqaGRtaV9jb25uZWN0b3IKPiAtCQk9IHRvX3N0aV9oZG1pX2Nv bm5lY3Rvcihjb25uZWN0b3IpOwo+IC0KPiAtCWRybV9jb25uZWN0b3JfdW5yZWdpc3Rlcihjb25u ZWN0b3IpOwo+IC0JZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7Cj4gLQlrZnJlZSho ZG1pX2Nvbm5lY3Rvcik7Cj4gLX0KPiAtCj4gIHN0YXRpYyB2b2lkIHN0aV9oZG1pX2Nvbm5lY3Rv cl9pbml0X3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAo+ICAJCQkJCSAgICAg c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+IEBAIC0xMDI0LDcgKzEwMTQs NyBAQCBzdGF0aWMgaW50IHN0aV9oZG1pX2xhdGVfcmVnaXN0ZXIoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcikKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNz IHN0aV9oZG1pX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiAgCS5maWxsX21vZGVzID0gZHJtX2hlbHBl cl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAo+ICAJLmRldGVjdCA9IHN0aV9oZG1pX2Nv bm5lY3Rvcl9kZXRlY3QsCj4gLQkuZGVzdHJveSA9IHN0aV9oZG1pX2Nvbm5lY3Rvcl9kZXN0cm95 LAo+ICsJLmRlc3Ryb3kgPSBkcm1fY29ubmVjdG9yX2NsZWFudXAsCj4gIAkucmVzZXQgPSBkcm1f YXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQsCj4gIAkuc2V0X3Byb3BlcnR5ID0gZHJtX2F0 b21pY19oZWxwZXJfY29ubmVjdG9yX3NldF9wcm9wZXJ0eSwKPiAgCS5hdG9taWNfc2V0X3Byb3Bl cnR5ID0gc3RpX2hkbWlfY29ubmVjdG9yX3NldF9wcm9wZXJ0eSwKPiBAQCAtMTA5MiwxMCArMTA4 Miw2IEBAIHN0YXRpYyBpbnQgc3RpX2hkbWlfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPiAgCS8qIGluaXRpYWxpc2UgcHJvcGVydHkg Ki8KPiAgCXN0aV9oZG1pX2Nvbm5lY3Rvcl9pbml0X3Byb3BlcnR5KGRybV9kZXYsIGRybV9jb25u ZWN0b3IpOwo+ICAKPiAtCWVyciA9IGRybV9jb25uZWN0b3JfcmVnaXN0ZXIoZHJtX2Nvbm5lY3Rv cik7Cj4gLQlpZiAoZXJyKQo+IC0JCWdvdG8gZXJyX2Nvbm5lY3RvcjsKPiAtCj4gIAllcnIgPSBk cm1fbW9kZV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoZHJtX2Nvbm5lY3RvciwgZW5jb2Rlcik7 Cj4gIAlpZiAoZXJyKSB7Cj4gIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYXR0YWNoIGEgY29ubmVj dG9yIHRvIGEgZW5jb2RlclxuIik7Cj4gQEAgLTExMDgsMTAgKzEwOTQsNyBAQCBzdGF0aWMgaW50 IHN0aV9oZG1pX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIs IHZvaWQgKmRhdGEpCj4gIAlyZXR1cm4gMDsKPiAgCj4gIGVycl9zeXNmczoKPiAtCWRybV9jb25u ZWN0b3JfdW5yZWdpc3Rlcihkcm1fY29ubmVjdG9yKTsKPiAtZXJyX2Nvbm5lY3RvcjoKPiAtCWRy bV9jb25uZWN0b3JfY2xlYW51cChkcm1fY29ubmVjdG9yKTsKPiAtCj4gKwlkcm1fYnJpZGdlX3Jl bW92ZShicmlkZ2UpOwo+ICAJcmV0dXJuIC1FSU5WQUw7Cj4gIH0KPiAgCj4gLS0gCj4gMS45LjEK PiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK