From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/mediatek: Add MTK Framebuffer-Device (mt7623) Date: Mon, 7 Jan 2019 11:36:40 +0100 Message-ID: <20190107103640.GH21184@phenom.ffwll.local> References: <20190102084917.4049-1-frank-w@public-files.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190102084917.4049-1-frank-w@public-files.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Frank Wunderlich Cc: David Airlie , Alexander Ryabchenko , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Matthias Brugger , linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org List-Id: linux-mediatek@lists.infradead.org T24gV2VkLCBKYW4gMDIsIDIwMTkgYXQgMDk6NDk6MTdBTSArMDEwMCwgRnJhbmsgV3VuZGVybGlj aCB3cm90ZToKPiBGcm9tOiBDSyBIdSA8Y2suaHVAbWVkaWF0ZWsuY29tPgo+IAo+IFRoaXMgcGF0 Y2ggYWRkcyBGcmFtZWJ1ZmZlci1Ecml2ZXIgZm9yIE1lZGlhdGVrCj4gCj4gY3VycmVudGx5IHRl c3RlZCBvbiBtdDc2MjMsIG1heWJlIHdvcmtzIG9uIG90aGVyIHBsYXRmb3Jtcwo+IE1USy1GQkRl diB3cml0dGVuIGJ5IENLIEh1IGFuZCBwb3J0ZWQgZnJvbSA0LjQKPiAKPiBiYXNlZCBvbiBwYXRj aHNldCBkcm0vaGRtaSBmb3IgNzYyMyB2NSAoZXhjZXB0IGxhc3QgcGFydCBpbmNsdWRlZCBpbiA0 LjIwKQo+ICAgaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L2xpbnV4LW1lZGlh dGVrL2xpc3QvP3Nlcmllcz0yNTk4OQo+IAo+IGRlcGVuZHMgb24KPiAgIGR0cy1wYXRjaCAocmVz ZW5kIG9mIDUvNSwgcGFydHMgMS00IGFscmVhZHkgaW4gNC4yMCk6Cj4gICAgICJhcm06IGR0czog bXQ3NjIzOiBhZGQgZGlzcGxheSBzdWJzeXN0ZW0gcmVsYXRlZCBkZXZpY2Ugbm9kZXMiCj4gICAg IGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcGF0Y2gvMTA1ODg5NTEvCj4gICAyIGJ1Z2Zp eC1wYXRjaGVzIGZyb20gYmliYnkgaHNpZWgKPiAgICAgZml4LWJvb3QtdXAtZm9yLTcyMC1hbmQt NDgwLWJ1dC0xMDgwCj4gICAgIHVzaW5nLWRpZmZlcmVudC1yb3VuZC1yYXRlLWZvci1tdDc2MjMK PiAgIDEgUGF0Y2ggZnJvbSBSeWRlciBMZWUKPiAgICAgaHR0cDovL2ZvcnVtLmJhbmFuYS1waS5v cmcvdC9rZXJuZWwtNC0xOS1yYzEtZm9yLXRlc3RlcnMvNjYxOC81Mgo+IAo+IGZ1bGwgd29ya2lu ZyB0cmVlIGhlcmUgZm9yIHJlZmVyZW5jZToKPiBodHRwczovL2dpdGh1Yi5jb20vZnJhbmstdy9C UEktUjItNC4xNC9jb21taXRzLzQuMjAtaGRtaXY1Cj4gCj4gU2lnbmVkLW9mZi1ieTogQ0sgSHUg PGNrLmh1QG1lZGlhdGVrLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgUnlhYmNoZW5r byA8ZDNhZG1lNHRAZ21haWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEZyYW5rIFd1bmRlcmxpY2gg PGZyYW5rLXdAcHVibGljLWZpbGVzLmRlPgo+IFRlc3RlZC1ieTogRnJhbmsgV3VuZGVybGljaCA8 ZnJhbmstd0BwdWJsaWMtZmlsZXMuZGU+CgpXb3VsZCBiZSBnb29kIHRvIHVzZSB0aGUgbmV3IGdl bmVyaWMgZmJkZXYgZW11bGF0aW9uIGNvZGUgaGVyZSwgZm9yIGV2ZW4KbGVzcyBjb2RlLiBPciBh dCBsZWFzdCBrbm93IHdoeSB0aGlzIGlzbid0IHBvc3NpYmxlIHRvIHVzZSBmb3IgbXRrIChhbmQK bWF5YmUgYWRkcmVzcyB0aGF0IGluIHRoZSBjb3JlIGNvZGUpLiBIYW5kLXJvbGxpbmcgZmJkZXYg Y29kZSBzaG91bGRuJ3QgYmUKbmVlZGVkIGFueW1vcmUuCi1EYW5pZWwKPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jICAgfCAgIDYgKwo+ICBkcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2RybV9kcnYuaCAgIHwgICA0ICsKPiAgZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kcm1fZmIuYyAgICB8ICAxMyArKwo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RybV9mYi5oICAgIHwgICAzICsKPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k cm1fZmJkZXYuYyB8IDE3OCArKysrKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9mYmRldi5oIHwgIDI1ICsrKysKPiAgNyBmaWxlcyBjaGFuZ2Vk LCAyMzAgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kcm1fZmJkZXYuYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kcm1fZmJkZXYuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFr ZWZpbGUKPiBpbmRleCA4MmFlNDljNjQyMjEuLmQ3MWU1N2RlYTc3YSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvTWFrZWZpbGUKPiBAQCAtMTQsNiArMTQsNyBAQCBtZWRpYXRlay1kcm0teSA6PSBt dGtfZGlzcF9jb2xvci5vIFwKPiAgCQkgIG10a19taXBpX3R4Lm8gXAo+ICAJCSAgbXRrX2RwaS5v Cj4gIAo+ICttZWRpYXRlay1kcm0tJChDT05GSUdfRFJNX0ZCREVWX0VNVUxBVElPTikgKz0gbXRr X2RybV9mYmRldi5vCj4gIG9iai0kKENPTkZJR19EUk1fTUVESUFURUspICs9IG1lZGlhdGVrLWRy bS5vCj4gIAo+ICBtZWRpYXRlay1kcm0taGRtaS1vYmpzIDo9IG10a19jZWMubyBcCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jIGIvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMKPiBpbmRleCA3ODAwODIyYjRkYjEuLjUxZjFl YzM0MTJkMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9k cnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jCj4gQEAg LTMyLDYgKzMyLDcgQEAKPiAgI2luY2x1ZGUgIm10a19kcm1fZGRwX2NvbXAuaCIKPiAgI2luY2x1 ZGUgIm10a19kcm1fZHJ2LmgiCj4gICNpbmNsdWRlICJtdGtfZHJtX2ZiLmgiCj4gKyNpbmNsdWRl ICJtdGtfZHJtX2ZiZGV2LmgiCj4gICNpbmNsdWRlICJtdGtfZHJtX2dlbS5oIgo+ICAKPiAgI2Rl ZmluZSBEUklWRVJfTkFNRSAibWVkaWF0ZWsiCj4gQEAgLTI5OSw2ICszMDAsMTAgQEAgc3RhdGlj IGludCBtdGtfZHJtX2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCj4gIAlkcm1fa21z X2hlbHBlcl9wb2xsX2luaXQoZHJtKTsKPiAgCWRybV9tb2RlX2NvbmZpZ19yZXNldChkcm0pOwo+ ICAKPiArCXJldCA9IG10a19mYmRldl9pbml0KGRybSk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8g ZXJyX2NvbXBvbmVudF91bmJpbmQ7Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIAo+ICBlcnJfY29tcG9u ZW50X3VuYmluZDoKPiBAQCAtMzExLDYgKzMxNiw3IEBAIHN0YXRpYyBpbnQgbXRrX2RybV9rbXNf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQo+ICAKPiAgc3RhdGljIHZvaWQgbXRrX2RybV9r bXNfZGVpbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCj4gIHsKPiArCW10a19mYmRldl9maW5p KGRybSk7Cj4gIAlkcm1fa21zX2hlbHBlcl9wb2xsX2ZpbmkoZHJtKTsKPiAgCj4gIAljb21wb25l bnRfdW5iaW5kX2FsbChkcm0tPmRldiwgZHJtKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9kcnYuaAo+IGluZGV4IDI1NmEzZmYyZTY2ZS4uNTYxMjlhMjFmYjJiIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmgKPiBAQCAtMTQsNiArMTQsNyBAQAo+ICAj aWZuZGVmIE1US19EUk1fRFJWX0gKPiAgI2RlZmluZSBNVEtfRFJNX0RSVl9ICj4gIAo+ICsjaW5j bHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2lvLmg+Cj4gICNp bmNsdWRlICJtdGtfZHJtX2RkcF9jb21wLmgiCj4gIAo+IEBAIC00Myw2ICs0NCw3IEBAIHN0cnVj dCBtdGtfZHJtX3ByaXZhdGUgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRybTsKPiAgCXN0cnVj dCBkZXZpY2UgKmRtYV9kZXY7Cj4gIAo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjW01BWF9DUlRD XTsKPiAgCXVuc2lnbmVkIGludCBudW1fcGlwZXM7Cj4gIAo+ICAJc3RydWN0IGRldmljZV9ub2Rl ICptdXRleF9ub2RlOwo+IEBAIC01OSw2ICs2MSw4IEBAIHN0cnVjdCBtdGtfZHJtX3ByaXZhdGUg ewo+ICAJfSBjb21taXQ7Cj4gIAo+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN1c3BlbmRf c3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2ZiX2hlbHBlciBmYl9oZWxwZXI7Cj4gKwlzdHJ1Y3QgZHJt X2dlbV9vYmplY3QgKmZiZGV2X2JvOwo+ICB9Owo+ICAKPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9y bV9kcml2ZXIgbXRrX2RkcF9kcml2ZXI7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZHJtX2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9m Yi5jCj4gaW5kZXggYmU1ZjZmMWRhZjU1Li43NTMzYWE0NzMzZDIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZmIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2ZiLmMKPiBAQCAtNTYsNiArNTYsMTkgQEAgc3RhdGljIHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKm10a19kcm1fZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICAJcmV0dXJuIGZiOwo+ICB9Cj4gIAo+ICtzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICptdGtfZHJtX2ZyYW1lYnVmZmVyX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICsJCQkJCWNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlLAo+ICsJCQkJCXN0cnVj dCBkcm1fZ2VtX29iamVjdCAqb2JqKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpt dGtfZmI7Cj4gKwo+ICsJbXRrX2ZiID0gbXRrX2RybV9mcmFtZWJ1ZmZlcl9pbml0KGRldiwgbW9k ZSwgb2JqKTsKPiArCWlmIChJU19FUlIobXRrX2ZiKSkKPiArCQlyZXR1cm4gRVJSX0NBU1QobXRr X2ZiKTsKPiArCj4gKwlyZXR1cm4gbXRrX2ZiOwo+ICt9Cj4gKwo+ICAvKgo+ICAgKiBXYWl0IGZv ciBhbnkgZXhjbHVzaXZlIGZlbmNlIGluIGZiJ3MgZ2VtIG9iamVjdCdzIHJlc2VydmF0aW9uIG9i amVjdC4KPiAgICoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k cm1fZmIuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2ZiLmgKPiBpbmRleCA3 Zjk3NmIxOTZhMTUuLmU0OWUwMTUzODBkMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2RybV9mYi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210 a19kcm1fZmIuaAo+IEBAIC0xOCw1ICsxOCw4IEBAIGludCBtdGtfZmJfd2FpdChzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYik7Cj4gIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm10a19kcm1fbW9k ZV9mYl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCQkgICAgICAgc3RydWN0 IGRybV9maWxlICpmaWxlLAo+ICAJCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJf Y21kMiAqY21kKTsKPiArc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqbXRrX2RybV9mcmFtZWJ1ZmZl cl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQljb25zdCBzdHJ1Y3QgZHJtX21v ZGVfZmJfY21kMiAqbW9kZSwKPiArCQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cj4gIAo+ ICAjZW5kaWYgLyogTVRLX0RSTV9GQl9IICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9mYmRldi5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAu Ljk2NzBmNTBkMTI0Nwo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RybV9mYmRldi5jCj4gQEAgLTAsMCArMSwxNzggQEAKPiArLy8gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiArLyoKPiArICogQ29weXJpZ2h0IChjKSAyMDE4IE1l ZGlhVGVrIEluYy4KPiArICogQXV0aG9yOiBDSyBIdSA8Y2suaHVAbWVkaWF0ZWsuY29tPgo+ICsg Ki8KPiArCj4gKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9jcnRj X2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KPiArI2luY2x1ZGUg PGRybS9kcm1fZ2VtLmg+Cj4gKwo+ICsjaW5jbHVkZSAibXRrX2RybV9kcnYuaCIKPiArI2luY2x1 ZGUgIm10a19kcm1fZmIuaCIKPiArI2luY2x1ZGUgIm10a19kcm1fZ2VtLmgiCj4gKyNpbmNsdWRl ICJtdGtfZHJtX2ZiZGV2LmgiCj4gKwo+ICsjZGVmaW5lIHRvX2RybV9wcml2YXRlKHgpIFwKPiAr CQljb250YWluZXJfb2YoeCwgc3RydWN0IG10a19kcm1fcHJpdmF0ZSwgZmJfaGVscGVyKQo+ICsK PiArc3RhdGljIGludCBtdGtfZHJtX2ZiZGV2X21tYXAoc3RydWN0IGZiX2luZm8gKmluZm8sIHN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAq aGVscGVyID0gaW5mby0+cGFyOwo+ICsJc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZSA9 IHRvX2RybV9wcml2YXRlKGhlbHBlcik7Cj4gKwo+ICsJcmV0dXJuIG10a19kcm1fZ2VtX21tYXBf YnVmKHByaXZhdGUtPmZiZGV2X2JvLCB2bWEpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGZi X29wcyBtdGtfZmJkZXZfb3BzID0gewo+ICsJLm93bmVyID0gVEhJU19NT0RVTEUsCj4gKwlEUk1f RkJfSEVMUEVSX0RFRkFVTFRfT1BTLAo+ICsJLmZiX2ZpbGxyZWN0ID0gZHJtX2ZiX2hlbHBlcl9j ZmJfZmlsbHJlY3QsCj4gKwkuZmJfY29weWFyZWEgPSBkcm1fZmJfaGVscGVyX2NmYl9jb3B5YXJl YSwKPiArCS5mYl9pbWFnZWJsaXQgPSBkcm1fZmJfaGVscGVyX2NmYl9pbWFnZWJsaXQsCj4gKwku ZmJfY2hlY2tfdmFyID0gZHJtX2ZiX2hlbHBlcl9jaGVja192YXIsCj4gKwkuZmJfc2V0X3BhciA9 IGRybV9mYl9oZWxwZXJfc2V0X3BhciwKPiArCS5mYl9ibGFuayA9IGRybV9mYl9oZWxwZXJfYmxh bmssCj4gKwkuZmJfcGFuX2Rpc3BsYXkgPSBkcm1fZmJfaGVscGVyX3Bhbl9kaXNwbGF5LAo+ICsJ LmZiX3NldGNtYXAgPSBkcm1fZmJfaGVscGVyX3NldGNtYXAsCj4gKwkuZmJfbW1hcCA9IG10a19k cm1fZmJkZXZfbW1hcCwKPiArfTsKPiArCj4gK3N0YXRpYyBpbnQgbXRrX2ZiZGV2X3Byb2JlKHN0 cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gKwkJCSAgIHN0cnVjdCBkcm1fZmJfaGVscGVy X3N1cmZhY2Vfc2l6ZSAqc2l6ZXMpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBo ZWxwZXItPmRldjsKPiArCXN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKnByaXZhdGUgPSB0b19kcm1f cHJpdmF0ZShoZWxwZXIpOwo+ICsJc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgbW9kZSA9IHsgMCB9 Owo+ICsJc3RydWN0IG10a19kcm1fZ2VtX29iaiAqbXRrX2dlbTsKPiArCXN0cnVjdCBmYl9pbmZv ICppbmZvOwo+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Cj4gKwl1bnNpZ25lZCBpbnQg Ynl0ZXNfcGVyX3BpeGVsOwo+ICsJdW5zaWduZWQgbG9uZyBvZmZzZXQ7Cj4gKwlzaXplX3Qgc2l6 ZTsKPiArCWludCBlcnIgPSAwOwo+ICsKPiArCWJ5dGVzX3Blcl9waXhlbCA9IERJVl9ST1VORF9V UChzaXplcy0+c3VyZmFjZV9icHAsIDgpOwo+ICsKPiArCW1vZGUud2lkdGggPSBzaXplcy0+c3Vy ZmFjZV93aWR0aDsKPiArCW1vZGUuaGVpZ2h0ID0gc2l6ZXMtPnN1cmZhY2VfaGVpZ2h0Owo+ICsJ bW9kZS5waXRjaGVzWzBdID0gc2l6ZXMtPnN1cmZhY2Vfd2lkdGggKiBieXRlc19wZXJfcGl4ZWw7 Cj4gKwltb2RlLnBpeGVsX2Zvcm1hdCA9IGRybV9tb2RlX2xlZ2FjeV9mYl9mb3JtYXQoc2l6ZXMt PnN1cmZhY2VfYnBwLAo+ICsJCQkJCQkgICAgICBzaXplcy0+c3VyZmFjZV9kZXB0aCk7Cj4gKwo+ ICsJc2l6ZSA9IG1vZGUucGl0Y2hlc1swXSAqIG1vZGUuaGVpZ2h0Owo+ICsKPiArCW10a19nZW0g PSBtdGtfZHJtX2dlbV9jcmVhdGUoZGV2LCBzaXplLCB0cnVlKTsKPiArCWlmIChJU19FUlIobXRr X2dlbSkpCj4gKwkJcmV0dXJuIFBUUl9FUlIobXRrX2dlbSk7Cj4gKwo+ICsJcHJpdmF0ZS0+ZmJk ZXZfYm8gPSAmbXRrX2dlbS0+YmFzZTsKPiArCj4gKwlpbmZvID0gZHJtX2ZiX2hlbHBlcl9hbGxv Y19mYmkoaGVscGVyKTsKPiArCWlmIChJU19FUlIoaW5mbykpIHsKPiArCQlEUk1fREVWX0VSUk9S KGRldi0+ZGV2LAo+ICsJCQkiZmFpbGVkIHRvIGFsbG9jYXRlIGZyYW1lYnVmZmVyIGluZm8sICVk XG4iLAo+ICsJCQllcnIpOwo+ICsJCWVyciA9IFBUUl9FUlIoaW5mbyk7Cj4gKwkJZ290byBvdXQ7 Cj4gKwl9Cj4gKwo+ICsJZmIgPSBtdGtfZHJtX2ZyYW1lYnVmZmVyX2NyZWF0ZShkZXYsICZtb2Rl LCBwcml2YXRlLT5mYmRldl9ibyk7Cj4gKwlpZiAoSVNfRVJSKGZiKSkgewo+ICsJCURSTV9ERVZf RVJST1IoZGV2LT5kZXYsCj4gKwkJCSJmYWlsZWQgdG8gYWxsb2NhdGUgRFJNIGZyYW1lYnVmZmVy LCAlZFxuIiwKPiArCQkJZXJyKTsKPiArCQllcnIgPSBQVFJfRVJSKGZiKTsKPiArCQlnb3RvIG91 dDsKPiArCX0KPiArCWhlbHBlci0+ZmIgPSBmYjsKPiArCj4gKwlpbmZvLT5wYXIgPSBoZWxwZXI7 Cj4gKwlpbmZvLT5mbGFncyA9IEZCSU5GT19GTEFHX0RFRkFVTFQ7Cj4gKwlpbmZvLT5mYm9wcyA9 ICZtdGtfZmJkZXZfb3BzOwo+ICsKPiArCWRybV9mYl9oZWxwZXJfZmlsbF9maXgoaW5mbywgZmIt PnBpdGNoZXNbMF0sIGZiLT5mb3JtYXQtPmRlcHRoKTsKPiArCWRybV9mYl9oZWxwZXJfZmlsbF92 YXIoaW5mbywgaGVscGVyLCBzaXplcy0+ZmJfd2lkdGgsIHNpemVzLT5mYl9oZWlnaHQpOwo+ICsK PiArCW9mZnNldCA9IGluZm8tPnZhci54b2Zmc2V0ICogYnl0ZXNfcGVyX3BpeGVsOwo+ICsJb2Zm c2V0ICs9IGluZm8tPnZhci55b2Zmc2V0ICogZmItPnBpdGNoZXNbMF07Cj4gKwo+ICsJZGV2LT5t b2RlX2NvbmZpZy5mYl9iYXNlID0gMDsKPiArCWluZm8tPnNjcmVlbl9iYXNlID0gbXRrX2dlbS0+ a3ZhZGRyICsgb2Zmc2V0Owo+ICsJaW5mby0+c2NyZWVuX3NpemUgPSBzaXplOwo+ICsJaW5mby0+ Zml4LnNtZW1fbGVuID0gc2l6ZTsKPiArCj4gKwlEUk1fREVCVUdfS01TKCJGQiBbJXV4JXVdLSV1 IG9mZnNldD0lbHUgc2l6ZT0lemRcbiIsCj4gKwkJICAgICAgZmItPndpZHRoLCBmYi0+aGVpZ2h0 LCBmYi0+Zm9ybWF0LT5kZXB0aCwgb2Zmc2V0LCBzaXplKTsKPiArCj4gKwlpbmZvLT5za2lwX3Z0 X3N3aXRjaCA9IHRydWU7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gKwo+ICtvdXQ6Cj4gKwo+ICsKPiAr CW10a19kcm1fZ2VtX2ZyZWVfb2JqZWN0KCZtdGtfZ2VtLT5iYXNlKTsKPiArCXJldHVybiBlcnI7 Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9mdW5jcyBtdGtf ZHJtX2ZiX2hlbHBlcl9mdW5jcyA9IHsKPiArCS5mYl9wcm9iZSA9IG10a19mYmRldl9wcm9iZSwK PiArfTsKPiArCj4gK2ludCBtdGtfZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ICt7Cj4gKwlzdHJ1Y3QgbXRrX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK PiArCXN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIgPSAmcHJpdi0+ZmJfaGVscGVyOwo+ICsJ aW50IHJldDsKPiArCj4gKwlpZiAoIWRldi0+bW9kZV9jb25maWcubnVtX2NydGMgfHwgIWRldi0+ bW9kZV9jb25maWcubnVtX2Nvbm5lY3RvcikKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwlk cm1fZmJfaGVscGVyX3ByZXBhcmUoZGV2LCBoZWxwZXIsICZtdGtfZHJtX2ZiX2hlbHBlcl9mdW5j cyk7Cj4gKwo+ICsJcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0KGRldiwgaGVscGVyLCBkZXYtPm1v ZGVfY29uZmlnLm51bV9jb25uZWN0b3IpOwo+ICsJaWYgKHJldCA8IDApIHsKPiArCQlEUk1fREVW X0VSUk9SKGRldi0+ZGV2LAo+ICsJCQkiZmFpbGVkIHRvIGluaXRpYWxpemUgRFJNIEZCIGhlbHBl ciwgJWRcbiIsCj4gKwkJCXJldCk7Cj4gKy8vCQlnb3RvIGZpbmk7Cj4gKwkJcmV0dXJuIHJldDsK PiArCX0KPiArCj4gKwlyZXQgPSBkcm1fZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5lY3Rv cnMoaGVscGVyKTsKPiArCWlmIChyZXQgPCAwKSB7Cj4gKwkJRFJNX0RFVl9FUlJPUihkZXYtPmRl diwgImZhaWxlZCB0byBhZGQgY29ubmVjdG9ycywgJWRcbiIsIHJldCk7Cj4gKwkJZ290byBmaW5p Owo+ICsJfQo+ICsKPiArCXJldCA9IGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoaGVscGVy LCAzMik7Cj4gKwlpZiAocmV0IDwgMCkgewo+ICsJCURSTV9ERVZfRVJST1IoZGV2LT5kZXYsCj4g KwkJCSJmYWlsZWQgdG8gc2V0IGluaXRpYWwgY29uZmlndXJhdGlvbiwgJWRcbiIsCj4gKwkJCXJl dCk7Cj4gKwkJZ290byBmaW5pOwo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICsKPiArZmluaToK PiArCWRybV9mYl9oZWxwZXJfZmluaShoZWxwZXIpOwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsK PiArdm9pZCBtdGtfZmJkZXZfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICt7Cj4gKwlz dHJ1Y3QgbXRrX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVj dCBkcm1fZmJfaGVscGVyICpoZWxwZXIgPSAmcHJpdi0+ZmJfaGVscGVyOwo+ICsKPiArCWRybV9m Yl9oZWxwZXJfdW5yZWdpc3Rlcl9mYmkoaGVscGVyKTsKPiArCj4gKwlpZiAoaGVscGVyLT5mYikg ewo+ICsJCWRybV9mcmFtZWJ1ZmZlcl91bnJlZ2lzdGVyX3ByaXZhdGUoaGVscGVyLT5mYik7Cj4g KwkJZHJtX2ZyYW1lYnVmZmVyX3JlbW92ZShoZWxwZXItPmZiKTsKPiArCX0KPiArCj4gKwlkcm1f ZmJfaGVscGVyX2ZpbmkoaGVscGVyKTsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9mYmRldi5oIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210 a19kcm1fZmJkZXYuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAw Li40NTcxN2I2NDJkYzUKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcm1fZmJkZXYuaAo+IEBAIC0wLDAgKzEsMjUgQEAKPiArLyogU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KPiArLyoKPiArICogQ29weXJpZ2h0IChjKSAyMDE4 IE1lZGlhVGVrIEluYy4KPiArICogQXV0aG9yOiBDSyBIdSA8Y2suaHVAbWVkaWF0ZWsuY29tPgo+ ICsgKi8KPiArCj4gKyNpZm5kZWYgTVRLX0RSTV9GQkRFVl9ICj4gKyNkZWZpbmUgTVRLX0RSTV9G QkRFVl9ICj4gKwo+ICsjaWZkZWYgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04KPiAraW50IG10 a19mYmRldl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICt2b2lkIG10a19mYmRldl9m aW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICsjZWxzZQo+ICtpbnQgbXRrX2ZiZGV2X2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArewo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4g K3ZvaWQgbXRrX2ZiZGV2X2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArewo+ICsKPiAr fQo+ICsjZW5kaWYgLyogQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04gKi8KPiArCj4gKyNlbmRp ZiAvKiBNVEtfRFJNX0ZCREVWX0ggKi8KPiAtLSAKPiAyLjE3LjEKPiAKCi0tIApEYW5pZWwgVmV0 dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZnds bC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK