From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v9,1/2] dmaengine: 8250_mtk_dma: add MediaTek uart DMA support From: Long Cheng Message-Id: <1547116431.3831.43.camel@mhfsdcap03> Date: Thu, 10 Jan 2019 18:33:51 +0800 To: Vinod Koul Cc: Randy Dunlap , Rob Herring , Mark Rutland , Ryder Lee , Sean Wang , Nicolas Boichat , Matthias Brugger , Dan Williams , Greg Kroah-Hartman , Jiri Slaby , Sean Wang , dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, srv_heupstream@mediatek.com, Yingjoe Chen , YT Shen , Zhenbao Liu List-ID: T24gRnJpLCAyMDE5LTAxLTA0IGF0IDIyOjQ5ICswNTMwLCBWaW5vZCBLb3VsIHdyb3RlOgo+IE9u IDAyLTAxLTE5LCAxMDoxMiwgTG9uZyBDaGVuZyB3cm90ZToKPiA+IEluIERNQSBlbmdpbmUgZnJh bWV3b3JrLCBhZGQgODI1MCB1YXJ0IGRtYSB0byBzdXBwb3J0IE1lZGlhVGVrIHVhcnQuCj4gPiBJ ZiBNZWRpYVRlayB1YXJ0IGVuYWJsZWQoU0VSSUFMXzgyNTBfTVQ2NTc3KSwgYW5kIHdhbnQgdG8g aW1wcm92ZQo+ID4gdGhlIHBlcmZvcm1hbmNlLCBjYW4gZW5hYmxlIHRoZSBmdW5jdGlvbi4KPiAK PiBJcyB0aGUgRE1BIGNvbnRyb2xsZXIgVUFSVCBzcGVjaWZpYywgY2FuIGl0IHdvcmsgd2l0aCBv dGhlciBjb250cm9sbGVycwo+IGFzIHdlbGwsIGlmIHNvIHlvdSBzaG91bGQgZ2V0IHJpZCBvZiB1 YXJ0IG5hbWUgaW4gcGF0Y2gKPiAKCkkgZG9uJ3Qga25vdyB0aGF0IGl0IGNhbiB3b3JrIG9yIG5v dCBvbiBvdGhlciBjb250cm9sbGVyLiBidXQgaXQncyBmb3IKTWVkaWFUZWsgU09DCgo+ID4gKyNk ZWZpbmUgTVRLX1VBUlRfQVBETUFfQ0hBTk5FTFMJCShDT05GSUdfU0VSSUFMXzgyNTBfTlJfVUFS VFMgKiAyKQo+IAo+IFdoeSBhcmUgdGhlIGNoYW5uZWxzIG5vdCBjb21pbmcgZnJvbSBEVD8KPiAK Cmkgd2lsbCB1c2luZyBkbWEtcmVxdWVzdHMgaW5zdGFsbCBvZiBpdC4KCj4gPiArCj4gPiArI2Rl ZmluZSBWRkZfRU5fQgkJQklUKDApCj4gPiArI2RlZmluZSBWRkZfU1RPUF9CCQlCSVQoMCkKPiA+ ICsjZGVmaW5lIFZGRl9GTFVTSF9CCQlCSVQoMCkKPiA+ICsjZGVmaW5lIFZGRl80R19TVVBQT1JU X0IJQklUKDApCj4gPiArI2RlZmluZSBWRkZfUlhfSU5UX0VOMF9CCUJJVCgwKQkvKnJ4IHZhbGlk IHNpemUgPj0gIHZmZiB0aHJlKi8KPiA+ICsjZGVmaW5lIFZGRl9SWF9JTlRfRU4xX0IJQklUKDEp Cj4gPiArI2RlZmluZSBWRkZfVFhfSU5UX0VOX0IJCUJJVCgwKQkvKnR4IGxlZnQgc2l6ZSA+PSB2 ZmYgdGhyZSovCj4gCj4gc3BhY2UgYXJvdW5kIC8qIHNwYWNlICovIGFsc28gcnVuIGNoZWNrcGF0 Y2ggdG8gY2hlY2sgZm9yIHN0eWxlIGVycm9ycwo+IAoKb2suCgo+ID4gK3N0YXRpYyB2b2lkIG10 a191YXJ0X2FwZG1hX3N0YXJ0X3R4KHN0cnVjdCBtdGtfY2hhbiAqYykKPiA+ICt7Cj4gPiArCXVu c2lnbmVkIGludCBsZW4sIHNlbmQsIGxlZnQsIHdwdCwgZF93cHQsIHRtcDsKPiA+ICsJaW50IHJl dDsKPiA+ICsKPiA+ICsJbGVmdCA9IG10a191YXJ0X2FwZG1hX3JlYWQoYywgVkZGX0xFRlRfU0la RSk7Cj4gPiArCWlmICghbGVmdCkgewo+ID4gKwkJbXRrX3VhcnRfYXBkbWFfd3JpdGUoYywgVkZG X0lOVF9FTiwgVkZGX1RYX0lOVF9FTl9CKTsKPiA+ICsJCXJldHVybjsKPiA+ICsJfQo+ID4gKwo+ ID4gKwkvKiBXYWl0IDFzZWMgZm9yIGZsdXNoLCAgY2FuJ3Qgc2xlZXAqLwo+ID4gKwlyZXQgPSBy ZWFkeF9wb2xsX3RpbWVvdXQocmVhZGwsIGMtPmJhc2UgKyBWRkZfRkxVU0gsIHRtcCwKPiA+ICsJ CQl0bXAgIT0gVkZGX0ZMVVNIX0IsIDAsIDEwMDAwMDApOwo+ID4gKwlpZiAocmV0KQo+ID4gKwkJ ZGV2X3dhcm4oYy0+dmMuY2hhbi5kZXZpY2UtPmRldiwgInR4OiBmYWlsLCBkZWJ1Zz0weCV4XG4i LAo+ID4gKwkJCW10a191YXJ0X2FwZG1hX3JlYWQoYywgVkZGX0RFQlVHX1NUQVRVUykpOwo+ID4g Kwo+ID4gKwlzZW5kID0gbWluX3QodW5zaWduZWQgaW50LCBsZWZ0LCBjLT5kZXNjLT5hdmFpbF9s ZW4pOwo+ID4gKwl3cHQgPSBtdGtfdWFydF9hcGRtYV9yZWFkKGMsIFZGRl9XUFQpOwo+ID4gKwls ZW4gPSBtdGtfdWFydF9hcGRtYV9yZWFkKGMsIFZGRl9MRU4pOwo+ID4gKwo+ID4gKwlkX3dwdCA9 IHdwdCArIHNlbmQ7Cj4gPiArCWlmICgoZF93cHQgJiBWRkZfUklOR19TSVpFKSA+PSBsZW4pIHsK PiA+ICsJCWRfd3B0ID0gZF93cHQgLSBsZW47Cj4gPiArCQlkX3dwdCA9IGRfd3B0IF4gVkZGX1JJ TkdfV1JBUDsKPiA+ICsJfQo+ID4gKwltdGtfdWFydF9hcGRtYV93cml0ZShjLCBWRkZfV1BULCBk X3dwdCk7Cj4gPiArCj4gPiArCWMtPmRlc2MtPmF2YWlsX2xlbiAtPSBzZW5kOwo+ID4gKwo+ID4g KwltdGtfdWFydF9hcGRtYV93cml0ZShjLCBWRkZfSU5UX0VOLCBWRkZfVFhfSU5UX0VOX0IpOwo+ ID4gKwlpZiAobXRrX3VhcnRfYXBkbWFfcmVhZChjLCBWRkZfRkxVU0gpID09IDBVKQo+ID4gKwkJ bXRrX3VhcnRfYXBkbWFfd3JpdGUoYywgVkZGX0ZMVVNILCBWRkZfRkxVU0hfQik7Cj4gPiArfQo+ ID4gKwo+ID4gK3N0YXRpYyB2b2lkIG10a191YXJ0X2FwZG1hX3N0YXJ0X3J4KHN0cnVjdCBtdGtf Y2hhbiAqYykKPiA+ICt7Cj4gPiArCXN0cnVjdCBtdGtfdWFydF9hcGRtYV9kZXNjICpkID0gYy0+ ZGVzYzsKPiA+ICsJdW5zaWduZWQgaW50IGxlbiwgd2csIHJnLCBjbnQ7Cj4gPiArCj4gPiArCWlm ICgobXRrX3VhcnRfYXBkbWFfcmVhZChjLCBWRkZfVkFMSURfU0laRSkgPT0gMFUpIHx8Cj4gPiAr CQkhZCB8fCAhdmNoYW5fbmV4dF9kZXNjKCZjLT52YykpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4g PiArCWxlbiA9IG10a191YXJ0X2FwZG1hX3JlYWQoYywgVkZGX0xFTik7Cj4gPiArCXJnID0gbXRr X3VhcnRfYXBkbWFfcmVhZChjLCBWRkZfUlBUKTsKPiA+ICsJd2cgPSBtdGtfdWFydF9hcGRtYV9y ZWFkKGMsIFZGRl9XUFQpOwo+ID4gKwlpZiAoKHJnIF4gd2cpICYgVkZGX1JJTkdfV1JBUCkKPiA+ ICsJCWNudCA9ICh3ZyAmIFZGRl9SSU5HX1NJWkUpICsgbGVuIC0gKHJnICYgVkZGX1JJTkdfU0la RSk7Cj4gPiArCWVsc2UKPiA+ICsJCWNudCA9ICh3ZyAmIFZGRl9SSU5HX1NJWkUpIC0gKHJnICYg VkZGX1JJTkdfU0laRSk7Cj4gPiArCj4gPiArCWMtPnJ4X3N0YXR1cyA9IGNudDsKPiA+ICsJbXRr X3VhcnRfYXBkbWFfd3JpdGUoYywgVkZGX1JQVCwgd2cpOwo+ID4gKwo+ID4gKwlsaXN0X2RlbCgm ZC0+dmQubm9kZSk7Cj4gPiArCXZjaGFuX2Nvb2tpZV9jb21wbGV0ZSgmZC0+dmQpOwo+ID4gK30K PiAKPiB0aGlzIGxvb2tzIG9kZCwgd2h5IGRvIHlvdSBoYXZlIGRpZmZlcmVudCByeCBhbmQgdHgg c3RhcnQgcm91dGluZXM/Cj4gCgpXb3VsZCB5b3UgbGlrZSBleHBsYWluIGl0IGluIG1vcmUgZGV0 YWlsPyB0aGFua3MuCkluIHR4IGZ1bmN0aW9uLCB3aWxsIHdhaXQgdGhlIGxhc3QgZGF0YSBmbHVz aCBkb25lLiBhbmQgdGhlIGNvdW50IHRoZQpzaXplIHRoYXQgc2VuZC4KSW4gUnggZnVuY3Rpb24s IHdpbGwgY291bnQgdGhlIHNpemUgdGhhdCByZWNlaXZlLgpBbnkgd2F5LCBpbiByeCAvIHR4LCBu ZWVkIGFuZGxlIFdQVCBvciBSUFQuCgo+ID4gK3N0YXRpYyBpbnQgbXRrX3VhcnRfYXBkbWFfYWxs b2NfY2hhbl9yZXNvdXJjZXMoc3RydWN0IGRtYV9jaGFuICpjaGFuKQo+ID4gK3sKPiA+ICsJc3Ry dWN0IG10a191YXJ0X2FwZG1hZGV2ICptdGtkID0gdG9fbXRrX3VhcnRfYXBkbWFfZGV2KGNoYW4t PmRldmljZSk7Cj4gPiArCXN0cnVjdCBtdGtfY2hhbiAqYyA9IHRvX210a191YXJ0X2FwZG1hX2No YW4oY2hhbik7Cj4gPiArCXUzMiB0bXA7Cj4gPiArCWludCByZXQ7Cj4gPiArCj4gPiArCXBtX3J1 bnRpbWVfZ2V0X3N5bmMobXRrZC0+ZGRldi5kZXYpOwo+ID4gKwo+ID4gKwltdGtfdWFydF9hcGRt YV93cml0ZShjLCBWRkZfQUREUiwgMCk7Cj4gPiArCW10a191YXJ0X2FwZG1hX3dyaXRlKGMsIFZG Rl9USFJFLCAwKTsKPiA+ICsJbXRrX3VhcnRfYXBkbWFfd3JpdGUoYywgVkZGX0xFTiwgMCk7Cj4g PiArCW10a191YXJ0X2FwZG1hX3dyaXRlKGMsIFZGRl9SU1QsIFZGRl9XQVJNX1JTVF9CKTsKPiA+ ICsKPiA+ICsJcmV0ID0gcmVhZHhfcG9sbF90aW1lb3V0KHJlYWRsLCBjLT5iYXNlICsgVkZGX0VO LCB0bXAsCj4gPiArCQkJdG1wID09IDAsIDEwLCAxMDApOwo+ID4gKwlpZiAocmV0KSB7Cj4gPiAr CQlkZXZfZXJyKGNoYW4tPmRldmljZS0+ZGV2LCAiZG1hIHJlc2V0OiBmYWlsLCB0aW1lb3V0XG4i KTsKPiA+ICsJCXJldHVybiByZXQ7Cj4gPiArCX0KPiAKPiByZWdpc3RlciByZWFkIGRvZXMgcmVz ZXQ/Cj4gCgonbXRrX3VhcnRfYXBkbWFfd3JpdGUoYywgVkZGX1JTVCwgVkZGX1dBUk1fUlNUX0Ip OycgaXMgcmVzZXQuIHJlc2QganVzdApwb2xsIHJlc2V0IGRvbmUuCgo+ID4gKwo+ID4gKwlpZiAo IWMtPnJlcXVlc3RlZCkgewo+ID4gKwkJYy0+cmVxdWVzdGVkID0gdHJ1ZTsKPiA+ICsJCXJldCA9 IHJlcXVlc3RfaXJxKG10a2QtPmRtYV9pcnFbY2hhbi0+Y2hhbl9pZF0sCj4gPiArCQkJCSAgbXRr X3VhcnRfYXBkbWFfaXJxX2hhbmRsZXIsIElSUUZfVFJJR0dFUl9OT05FLAo+ID4gKwkJCQkgIEtC VUlMRF9NT0ROQU1FLCBjaGFuKTsKPiAKPiB3aHkgaXMgdGhlIGlycSBub3QgcmVxdWVzdGVkIGlu IGRyaXZlciBwcm9iZT8KPiAKCkkgaGF2ZSBleHBsYWluZWQgaW4gYmVsb3csCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL3BpcGVybWFpbC9saW51eC1tZWRpYXRlay8yMDE4LURlY2VtYmVyLzAx NjQxOC5odG1sCgo+ID4gK3N0YXRpYyBlbnVtIGRtYV9zdGF0dXMgbXRrX3VhcnRfYXBkbWFfdHhf c3RhdHVzKHN0cnVjdCBkbWFfY2hhbiAqY2hhbiwKPiA+ICsJCQkJCSBkbWFfY29va2llX3QgY29v a2llLAo+ID4gKwkJCQkJIHN0cnVjdCBkbWFfdHhfc3RhdGUgKnR4c3RhdGUpCj4gPiArewo+ID4g KwlzdHJ1Y3QgbXRrX2NoYW4gKmMgPSB0b19tdGtfdWFydF9hcGRtYV9jaGFuKGNoYW4pOwo+ID4g KwllbnVtIGRtYV9zdGF0dXMgcmV0Owo+ID4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ID4gKwo+ ID4gKwlpZiAoIXR4c3RhdGUpCj4gPiArCQlyZXR1cm4gRE1BX0VSUk9SOwo+ID4gKwo+ID4gKwly ZXQgPSBkbWFfY29va2llX3N0YXR1cyhjaGFuLCBjb29raWUsIHR4c3RhdGUpOwo+ID4gKwlzcGlu X2xvY2tfaXJxc2F2ZSgmYy0+dmMubG9jaywgZmxhZ3MpOwo+ID4gKwlpZiAocmV0ID09IERNQV9J Tl9QUk9HUkVTUykgewo+ID4gKwkJYy0+cnhfc3RhdHVzID0gbXRrX3VhcnRfYXBkbWFfcmVhZChj LCBWRkZfUlBUKSAmIFZGRl9SSU5HX1NJWkU7Cj4gPiArCQlkbWFfc2V0X3Jlc2lkdWUodHhzdGF0 ZSwgYy0+cnhfc3RhdHVzKTsKPiA+ICsJfSBlbHNlIGlmIChyZXQgPT0gRE1BX0NPTVBMRVRFICYm IGMtPmNmZy5kaXJlY3Rpb24gPT0gRE1BX0RFVl9UT19NRU0pIHsKPiAKPiB3aHkgc2V0IHJlc2lk ZSB3aGVuIGl0IGlzIGNvbXBsZXRlPyBhbHNvIHJlc2lkZSBjYW4gYmUgbnVsbCwgdGhhdCBzaG91 bGQKPiBiZSBjaGVja2VkIGFzIHdlbGwKPiAKSW4gZGlmZmVyZW50IHN0YXR1cywgc2V0IGRpZmZl cmVudCByZXNpZGUuCgo+ID4gK3N0YXRpYyBzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3Ig Km10a191YXJ0X2FwZG1hX3ByZXBfc2xhdmVfc2cKPiA+ICsJKHN0cnVjdCBkbWFfY2hhbiAqY2hh biwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2wsCj4gPiArCXVuc2lnbmVkIGludCBzZ2xlbiwgZW51 bSBkbWFfdHJhbnNmZXJfZGlyZWN0aW9uIGRpciwKPiA+ICsJdW5zaWduZWQgbG9uZyB0eF9mbGFn cywgdm9pZCAqY29udGV4dCkKPiA+ICt7Cj4gPiArCXN0cnVjdCBtdGtfY2hhbiAqYyA9IHRvX210 a191YXJ0X2FwZG1hX2NoYW4oY2hhbik7Cj4gPiArCXN0cnVjdCBtdGtfdWFydF9hcGRtYV9kZXNj ICpkOwo+ID4gKwo+ID4gKwlpZiAoKGRpciAhPSBETUFfREVWX1RPX01FTSkgJiYKPiA+ICsJCShk aXIgIT0gRE1BX01FTV9UT19ERVYpKSB7Cj4gPiArCQlkZXZfZXJyKGNoYW4tPmRldmljZS0+ZGV2 LCAiYmFkIGRpcmVjdGlvblxuIik7Cj4gPiArCQlyZXR1cm4gTlVMTDsKPiA+ICsJfQo+IAo+IHdl IGhhdmUgYSBtYWNybyBmb3IgdGhpcwoKVGhhbmtzIGZvciB5b3VyIHN1Z2dlc3Rpb24uIGkgd2ls bCBtb2RpZnkgaXQuCj4gCj4gPiArCj4gPiArCS8qIE5vdyBhbGxvY2F0ZSBhbmQgc2V0dXAgdGhl IGRlc2NyaXB0b3IgKi8KPiA+ICsJZCA9IGt6YWxsb2Moc2l6ZW9mKCpkKSwgR0ZQX0FUT01JQyk7 Cj4gPiArCWlmICghZCkKPiA+ICsJCXJldHVybiBOVUxMOwo+ID4gKwo+ID4gKwkvKiBzZ2xlbiBp cyAxICovCj4gCj4gPwo+IAo+ID4gK3N0YXRpYyBpbnQgbXRrX3VhcnRfYXBkbWFfc2xhdmVfY29u ZmlnKHN0cnVjdCBkbWFfY2hhbiAqY2hhbiwKPiA+ICsJCQkJc3RydWN0IGRtYV9zbGF2ZV9jb25m aWcgKmNmZykKPiA+ICt7Cj4gPiArCXN0cnVjdCBtdGtfY2hhbiAqYyA9IHRvX210a191YXJ0X2Fw ZG1hX2NoYW4oY2hhbik7Cj4gPiArCXN0cnVjdCBtdGtfdWFydF9hcGRtYWRldiAqbXRrZCA9Cj4g PiArCQkJCXRvX210a191YXJ0X2FwZG1hX2RldihjLT52Yy5jaGFuLmRldmljZSk7Cj4gPiArCj4g PiArCWMtPmNmZyA9ICpjZmc7Cj4gPiArCj4gPiArCWlmIChjZmctPmRpcmVjdGlvbiA9PSBETUFf REVWX1RPX01FTSkgewo+IAo+IGZnLT5kaXJlY3Rpb24gaXMgZGVwcmVjYXRlZCwgaW4gZmFjdCBJ IGhhdmUgcmVtb3ZlZCBhbGwgdXNlcnMgcmVjZW50bHksCj4gcGxlYXNlIGRvIG5vdCB1c2UgdGhp cwoKWW91IHdpbGwgcmVtb3ZlICdkaXJlY3Rpb24nIGluICdzdHJ1Y3QgZG1hX3NsYXZlX2NvbmZp Zyc/IGlmIHJlbW92ZSwgaG93CmRvIGNvbmZpcm0gZGlyZWN0aW9uPwoKPiAKPiA+ICsJCXVuc2ln bmVkIGludCByeF9sZW4gPSBjZmctPnNyY19hZGRyX3dpZHRoICogMTAyNDsKPiA+ICsKPiA+ICsJ CW10a191YXJ0X2FwZG1hX3dyaXRlKGMsIFZGRl9BRERSLCBjZmctPnNyY19hZGRyKTsKPiA+ICsJ CW10a191YXJ0X2FwZG1hX3dyaXRlKGMsIFZGRl9MRU4sIHJ4X2xlbik7Cj4gPiArCQltdGtfdWFy dF9hcGRtYV93cml0ZShjLCBWRkZfVEhSRSwgVkZGX1JYX1RIUkUocnhfbGVuKSk7Cj4gPiArCQlt dGtfdWFydF9hcGRtYV93cml0ZShjLCBWRkZfSU5UX0VOLAo+ID4gKwkJCQlWRkZfUlhfSU5UX0VO MF9CIHwgVkZGX1JYX0lOVF9FTjFfQik7Cj4gPiArCQltdGtfdWFydF9hcGRtYV93cml0ZShjLCBW RkZfUlBULCAwKTsKPiA+ICsJCW10a191YXJ0X2FwZG1hX3dyaXRlKGMsIFZGRl9JTlRfRkxBRywg VkZGX1JYX0lOVF9GTEFHX0NMUl9CKTsKPiA+ICsJCW10a191YXJ0X2FwZG1hX3dyaXRlKGMsIFZG Rl9FTiwgVkZGX0VOX0IpOwo+IAo+IHdoeSBhcmUgd2Ugd3JpdGluZyB0aGlzIGhlcmUsIHdlIGFy ZSBzdXBwb3NlZCB0byBkbyB0aGF0IHdoZW4gdHhuCj4gc3RhcnRzIQo+IAoKYWxzbyB5b3UgY2Fu IHJldmlldyB0aGUgbGluawpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9waXBlcm1haWwvbGlu dXgtbWVkaWF0ZWsvMjAxOC1EZWNlbWJlci8wMTY0MTguaHRtbAoKPiA+ICtzdGF0aWMgaW50IG10 a191YXJ0X2FwZG1hX2RldmljZV9yZXN1bWUoc3RydWN0IGRtYV9jaGFuICpjaGFuKQo+ID4gK3sK PiA+ICsJLyoganVzdCBmb3IgY2hlY2sgY2FwcyBwYXNzICovCj4gPiArCXJldHVybiAwOwo+ID4g K30KPiAKPiBpZiB5b3UgZG8gbm90IHN1cHBvcnQgdGhpcyBwbGVhc2UgcmVtb3ZlIHRoaXMhCj4g Cj4gPiArc3RhdGljIHZvaWQgbXRrX3VhcnRfYXBkbWFfZnJlZShzdHJ1Y3QgbXRrX3VhcnRfYXBk bWFkZXYgKm10a2QpCj4gPiArewo+ID4gKwl3aGlsZSAobGlzdF9lbXB0eSgmbXRrZC0+ZGRldi5j aGFubmVscykgPT0gMCkgewo+ID4gKwkJc3RydWN0IG10a19jaGFuICpjID0gbGlzdF9maXJzdF9l bnRyeSgmbXRrZC0+ZGRldi5jaGFubmVscywKPiA+ICsJCQlzdHJ1Y3QgbXRrX2NoYW4sIHZjLmNo YW4uZGV2aWNlX25vZGUpOwo+ID4gKwo+ID4gKwkJbGlzdF9kZWwoJmMtPnZjLmNoYW4uZGV2aWNl X25vZGUpOwo+ID4gKwkJdGFza2xldF9raWxsKCZjLT52Yy50YXNrKTsKPiA+ICsJfQo+ID4gK30K PiA+ICsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfdWFydF9hcGRt YV9tYXRjaFtdID0gewo+ID4gKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10NjU3Ny11YXJ0 LWRtYSIsIH0sCj4gCj4gd2hlcmUgaXMgdGhlIGJpbmRpbmcgZG9jdW1lbnQgZm9yIGVkaWF0ZWss bXQ2NTc3LXVhcnQtZG1hID8/Cj4gCgpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9waXBlcm1h aWwvbGludXgtbWVkaWF0ZWsvMjAxOC1EZWNlbWJlci8wMTYxNTQuaHRtbAo=