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: Vinod Koul Message-Id: <20190104171953.GQ13372@vkoul-mobl.Dlink> Date: Fri, 4 Jan 2019 22:49:53 +0530 To: Long Cheng 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: T24gMDItMDEtMTksIDEwOjEyLCBMb25nIENoZW5nIHdyb3RlOgo+IEluIERNQSBlbmdpbmUgZnJh bWV3b3JrLCBhZGQgODI1MCB1YXJ0IGRtYSB0byBzdXBwb3J0IE1lZGlhVGVrIHVhcnQuCj4gSWYg TWVkaWFUZWsgdWFydCBlbmFibGVkKFNFUklBTF84MjUwX01UNjU3NyksIGFuZCB3YW50IHRvIGlt cHJvdmUKPiB0aGUgcGVyZm9ybWFuY2UsIGNhbiBlbmFibGUgdGhlIGZ1bmN0aW9uLgoKSXMgdGhl IERNQSBjb250cm9sbGVyIFVBUlQgc3BlY2lmaWMsIGNhbiBpdCB3b3JrIHdpdGggb3RoZXIgY29u dHJvbGxlcnMKYXMgd2VsbCwgaWYgc28geW91IHNob3VsZCBnZXQgcmlkIG9mIHVhcnQgbmFtZSBp biBwYXRjaAoKPiArI2RlZmluZSBNVEtfVUFSVF9BUERNQV9DSEFOTkVMUwkJKENPTkZJR19TRVJJ QUxfODI1MF9OUl9VQVJUUyAqIDIpCgpXaHkgYXJlIHRoZSBjaGFubmVscyBub3QgY29taW5nIGZy b20gRFQ/Cgo+ICsKPiArI2RlZmluZSBWRkZfRU5fQgkJQklUKDApCj4gKyNkZWZpbmUgVkZGX1NU T1BfQgkJQklUKDApCj4gKyNkZWZpbmUgVkZGX0ZMVVNIX0IJCUJJVCgwKQo+ICsjZGVmaW5lIFZG Rl80R19TVVBQT1JUX0IJQklUKDApCj4gKyNkZWZpbmUgVkZGX1JYX0lOVF9FTjBfQglCSVQoMCkJ LypyeCB2YWxpZCBzaXplID49ICB2ZmYgdGhyZSovCj4gKyNkZWZpbmUgVkZGX1JYX0lOVF9FTjFf QglCSVQoMSkKPiArI2RlZmluZSBWRkZfVFhfSU5UX0VOX0IJCUJJVCgwKQkvKnR4IGxlZnQgc2l6 ZSA+PSB2ZmYgdGhyZSovCgpzcGFjZSBhcm91bmQgLyogc3BhY2UgKi8gYWxzbyBydW4gY2hlY2tw YXRjaCB0byBjaGVjayBmb3Igc3R5bGUgZXJyb3JzCgo+ICtzdGF0aWMgdm9pZCBtdGtfdWFydF9h cGRtYV9zdGFydF90eChzdHJ1Y3QgbXRrX2NoYW4gKmMpCj4gK3sKPiArCXVuc2lnbmVkIGludCBs ZW4sIHNlbmQsIGxlZnQsIHdwdCwgZF93cHQsIHRtcDsKPiArCWludCByZXQ7Cj4gKwo+ICsJbGVm dCA9IG10a191YXJ0X2FwZG1hX3JlYWQoYywgVkZGX0xFRlRfU0laRSk7Cj4gKwlpZiAoIWxlZnQp IHsKPiArCQltdGtfdWFydF9hcGRtYV93cml0ZShjLCBWRkZfSU5UX0VOLCBWRkZfVFhfSU5UX0VO X0IpOwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwkvKiBXYWl0IDFzZWMgZm9yIGZsdXNoLCAg Y2FuJ3Qgc2xlZXAqLwo+ICsJcmV0ID0gcmVhZHhfcG9sbF90aW1lb3V0KHJlYWRsLCBjLT5iYXNl ICsgVkZGX0ZMVVNILCB0bXAsCj4gKwkJCXRtcCAhPSBWRkZfRkxVU0hfQiwgMCwgMTAwMDAwMCk7 Cj4gKwlpZiAocmV0KQo+ICsJCWRldl93YXJuKGMtPnZjLmNoYW4uZGV2aWNlLT5kZXYsICJ0eDog ZmFpbCwgZGVidWc9MHgleFxuIiwKPiArCQkJbXRrX3VhcnRfYXBkbWFfcmVhZChjLCBWRkZfREVC VUdfU1RBVFVTKSk7Cj4gKwo+ICsJc2VuZCA9IG1pbl90KHVuc2lnbmVkIGludCwgbGVmdCwgYy0+ ZGVzYy0+YXZhaWxfbGVuKTsKPiArCXdwdCA9IG10a191YXJ0X2FwZG1hX3JlYWQoYywgVkZGX1dQ VCk7Cj4gKwlsZW4gPSBtdGtfdWFydF9hcGRtYV9yZWFkKGMsIFZGRl9MRU4pOwo+ICsKPiArCWRf d3B0ID0gd3B0ICsgc2VuZDsKPiArCWlmICgoZF93cHQgJiBWRkZfUklOR19TSVpFKSA+PSBsZW4p IHsKPiArCQlkX3dwdCA9IGRfd3B0IC0gbGVuOwo+ICsJCWRfd3B0ID0gZF93cHQgXiBWRkZfUklO R19XUkFQOwo+ICsJfQo+ICsJbXRrX3VhcnRfYXBkbWFfd3JpdGUoYywgVkZGX1dQVCwgZF93cHQp Owo+ICsKPiArCWMtPmRlc2MtPmF2YWlsX2xlbiAtPSBzZW5kOwo+ICsKPiArCW10a191YXJ0X2Fw ZG1hX3dyaXRlKGMsIFZGRl9JTlRfRU4sIFZGRl9UWF9JTlRfRU5fQik7Cj4gKwlpZiAobXRrX3Vh cnRfYXBkbWFfcmVhZChjLCBWRkZfRkxVU0gpID09IDBVKQo+ICsJCW10a191YXJ0X2FwZG1hX3dy aXRlKGMsIFZGRl9GTFVTSCwgVkZGX0ZMVVNIX0IpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBt dGtfdWFydF9hcGRtYV9zdGFydF9yeChzdHJ1Y3QgbXRrX2NoYW4gKmMpCj4gK3sKPiArCXN0cnVj dCBtdGtfdWFydF9hcGRtYV9kZXNjICpkID0gYy0+ZGVzYzsKPiArCXVuc2lnbmVkIGludCBsZW4s IHdnLCByZywgY250Owo+ICsKPiArCWlmICgobXRrX3VhcnRfYXBkbWFfcmVhZChjLCBWRkZfVkFM SURfU0laRSkgPT0gMFUpIHx8Cj4gKwkJIWQgfHwgIXZjaGFuX25leHRfZGVzYygmYy0+dmMpKQo+ ICsJCXJldHVybjsKPiArCj4gKwlsZW4gPSBtdGtfdWFydF9hcGRtYV9yZWFkKGMsIFZGRl9MRU4p Owo+ICsJcmcgPSBtdGtfdWFydF9hcGRtYV9yZWFkKGMsIFZGRl9SUFQpOwo+ICsJd2cgPSBtdGtf dWFydF9hcGRtYV9yZWFkKGMsIFZGRl9XUFQpOwo+ICsJaWYgKChyZyBeIHdnKSAmIFZGRl9SSU5H X1dSQVApCj4gKwkJY250ID0gKHdnICYgVkZGX1JJTkdfU0laRSkgKyBsZW4gLSAocmcgJiBWRkZf UklOR19TSVpFKTsKPiArCWVsc2UKPiArCQljbnQgPSAod2cgJiBWRkZfUklOR19TSVpFKSAtIChy ZyAmIFZGRl9SSU5HX1NJWkUpOwo+ICsKPiArCWMtPnJ4X3N0YXR1cyA9IGNudDsKPiArCW10a191 YXJ0X2FwZG1hX3dyaXRlKGMsIFZGRl9SUFQsIHdnKTsKPiArCj4gKwlsaXN0X2RlbCgmZC0+dmQu bm9kZSk7Cj4gKwl2Y2hhbl9jb29raWVfY29tcGxldGUoJmQtPnZkKTsKPiArfQoKdGhpcyBsb29r cyBvZGQsIHdoeSBkbyB5b3UgaGF2ZSBkaWZmZXJlbnQgcnggYW5kIHR4IHN0YXJ0IHJvdXRpbmVz PwoKPiArc3RhdGljIGludCBtdGtfdWFydF9hcGRtYV9hbGxvY19jaGFuX3Jlc291cmNlcyhzdHJ1 Y3QgZG1hX2NoYW4gKmNoYW4pCj4gK3sKPiArCXN0cnVjdCBtdGtfdWFydF9hcGRtYWRldiAqbXRr ZCA9IHRvX210a191YXJ0X2FwZG1hX2RldihjaGFuLT5kZXZpY2UpOwo+ICsJc3RydWN0IG10a19j aGFuICpjID0gdG9fbXRrX3VhcnRfYXBkbWFfY2hhbihjaGFuKTsKPiArCXUzMiB0bXA7Cj4gKwlp bnQgcmV0Owo+ICsKPiArCXBtX3J1bnRpbWVfZ2V0X3N5bmMobXRrZC0+ZGRldi5kZXYpOwo+ICsK PiArCW10a191YXJ0X2FwZG1hX3dyaXRlKGMsIFZGRl9BRERSLCAwKTsKPiArCW10a191YXJ0X2Fw ZG1hX3dyaXRlKGMsIFZGRl9USFJFLCAwKTsKPiArCW10a191YXJ0X2FwZG1hX3dyaXRlKGMsIFZG Rl9MRU4sIDApOwo+ICsJbXRrX3VhcnRfYXBkbWFfd3JpdGUoYywgVkZGX1JTVCwgVkZGX1dBUk1f UlNUX0IpOwo+ICsKPiArCXJldCA9IHJlYWR4X3BvbGxfdGltZW91dChyZWFkbCwgYy0+YmFzZSAr IFZGRl9FTiwgdG1wLAo+ICsJCQl0bXAgPT0gMCwgMTAsIDEwMCk7Cj4gKwlpZiAocmV0KSB7Cj4g KwkJZGV2X2VycihjaGFuLT5kZXZpY2UtPmRldiwgImRtYSByZXNldDogZmFpbCwgdGltZW91dFxu Iik7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KCnJlZ2lzdGVyIHJlYWQgZG9lcyByZXNldD8KCj4g Kwo+ICsJaWYgKCFjLT5yZXF1ZXN0ZWQpIHsKPiArCQljLT5yZXF1ZXN0ZWQgPSB0cnVlOwo+ICsJ CXJldCA9IHJlcXVlc3RfaXJxKG10a2QtPmRtYV9pcnFbY2hhbi0+Y2hhbl9pZF0sCj4gKwkJCQkg IG10a191YXJ0X2FwZG1hX2lycV9oYW5kbGVyLCBJUlFGX1RSSUdHRVJfTk9ORSwKPiArCQkJCSAg S0JVSUxEX01PRE5BTUUsIGNoYW4pOwoKd2h5IGlzIHRoZSBpcnEgbm90IHJlcXVlc3RlZCBpbiBk cml2ZXIgcHJvYmU/Cgo+ICtzdGF0aWMgZW51bSBkbWFfc3RhdHVzIG10a191YXJ0X2FwZG1hX3R4 X3N0YXR1cyhzdHJ1Y3QgZG1hX2NoYW4gKmNoYW4sCj4gKwkJCQkJIGRtYV9jb29raWVfdCBjb29r aWUsCj4gKwkJCQkJIHN0cnVjdCBkbWFfdHhfc3RhdGUgKnR4c3RhdGUpCj4gK3sKPiArCXN0cnVj dCBtdGtfY2hhbiAqYyA9IHRvX210a191YXJ0X2FwZG1hX2NoYW4oY2hhbik7Cj4gKwllbnVtIGRt YV9zdGF0dXMgcmV0Owo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsKPiArCj4gKwlpZiAoIXR4c3Rh dGUpCj4gKwkJcmV0dXJuIERNQV9FUlJPUjsKPiArCj4gKwlyZXQgPSBkbWFfY29va2llX3N0YXR1 cyhjaGFuLCBjb29raWUsIHR4c3RhdGUpOwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmMtPnZjLmxv Y2ssIGZsYWdzKTsKPiArCWlmIChyZXQgPT0gRE1BX0lOX1BST0dSRVNTKSB7Cj4gKwkJYy0+cnhf c3RhdHVzID0gbXRrX3VhcnRfYXBkbWFfcmVhZChjLCBWRkZfUlBUKSAmIFZGRl9SSU5HX1NJWkU7 Cj4gKwkJZG1hX3NldF9yZXNpZHVlKHR4c3RhdGUsIGMtPnJ4X3N0YXR1cyk7Cj4gKwl9IGVsc2Ug aWYgKHJldCA9PSBETUFfQ09NUExFVEUgJiYgYy0+Y2ZnLmRpcmVjdGlvbiA9PSBETUFfREVWX1RP X01FTSkgewoKd2h5IHNldCByZXNpZGUgd2hlbiBpdCBpcyBjb21wbGV0ZT8gYWxzbyByZXNpZGUg Y2FuIGJlIG51bGwsIHRoYXQgc2hvdWxkCmJlIGNoZWNrZWQgYXMgd2VsbAoKPiArc3RhdGljIHN0 cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAqbXRrX3VhcnRfYXBkbWFfcHJlcF9zbGF2ZV9z Zwo+ICsJKHN0cnVjdCBkbWFfY2hhbiAqY2hhbiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2wsCj4g Kwl1bnNpZ25lZCBpbnQgc2dsZW4sIGVudW0gZG1hX3RyYW5zZmVyX2RpcmVjdGlvbiBkaXIsCj4g Kwl1bnNpZ25lZCBsb25nIHR4X2ZsYWdzLCB2b2lkICpjb250ZXh0KQo+ICt7Cj4gKwlzdHJ1Y3Qg bXRrX2NoYW4gKmMgPSB0b19tdGtfdWFydF9hcGRtYV9jaGFuKGNoYW4pOwo+ICsJc3RydWN0IG10 a191YXJ0X2FwZG1hX2Rlc2MgKmQ7Cj4gKwo+ICsJaWYgKChkaXIgIT0gRE1BX0RFVl9UT19NRU0p ICYmCj4gKwkJKGRpciAhPSBETUFfTUVNX1RPX0RFVikpIHsKPiArCQlkZXZfZXJyKGNoYW4tPmRl dmljZS0+ZGV2LCAiYmFkIGRpcmVjdGlvblxuIik7Cj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwl9Cgp3 ZSBoYXZlIGEgbWFjcm8gZm9yIHRoaXMKCj4gKwo+ICsJLyogTm93IGFsbG9jYXRlIGFuZCBzZXR1 cCB0aGUgZGVzY3JpcHRvciAqLwo+ICsJZCA9IGt6YWxsb2Moc2l6ZW9mKCpkKSwgR0ZQX0FUT01J Qyk7Cj4gKwlpZiAoIWQpCj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJLyogc2dsZW4gaXMgMSAq LwoKPwoKPiArc3RhdGljIGludCBtdGtfdWFydF9hcGRtYV9zbGF2ZV9jb25maWcoc3RydWN0IGRt YV9jaGFuICpjaGFuLAo+ICsJCQkJc3RydWN0IGRtYV9zbGF2ZV9jb25maWcgKmNmZykKPiArewo+ ICsJc3RydWN0IG10a19jaGFuICpjID0gdG9fbXRrX3VhcnRfYXBkbWFfY2hhbihjaGFuKTsKPiAr CXN0cnVjdCBtdGtfdWFydF9hcGRtYWRldiAqbXRrZCA9Cj4gKwkJCQl0b19tdGtfdWFydF9hcGRt YV9kZXYoYy0+dmMuY2hhbi5kZXZpY2UpOwo+ICsKPiArCWMtPmNmZyA9ICpjZmc7Cj4gKwo+ICsJ aWYgKGNmZy0+ZGlyZWN0aW9uID09IERNQV9ERVZfVE9fTUVNKSB7CgpmZy0+ZGlyZWN0aW9uIGlz IGRlcHJlY2F0ZWQsIGluIGZhY3QgSSBoYXZlIHJlbW92ZWQgYWxsIHVzZXJzIHJlY2VudGx5LApw bGVhc2UgZG8gbm90IHVzZSB0aGlzCgo+ICsJCXVuc2lnbmVkIGludCByeF9sZW4gPSBjZmctPnNy Y19hZGRyX3dpZHRoICogMTAyNDsKPiArCj4gKwkJbXRrX3VhcnRfYXBkbWFfd3JpdGUoYywgVkZG X0FERFIsIGNmZy0+c3JjX2FkZHIpOwo+ICsJCW10a191YXJ0X2FwZG1hX3dyaXRlKGMsIFZGRl9M RU4sIHJ4X2xlbik7Cj4gKwkJbXRrX3VhcnRfYXBkbWFfd3JpdGUoYywgVkZGX1RIUkUsIFZGRl9S WF9USFJFKHJ4X2xlbikpOwo+ICsJCW10a191YXJ0X2FwZG1hX3dyaXRlKGMsIFZGRl9JTlRfRU4s Cj4gKwkJCQlWRkZfUlhfSU5UX0VOMF9CIHwgVkZGX1JYX0lOVF9FTjFfQik7Cj4gKwkJbXRrX3Vh cnRfYXBkbWFfd3JpdGUoYywgVkZGX1JQVCwgMCk7Cj4gKwkJbXRrX3VhcnRfYXBkbWFfd3JpdGUo YywgVkZGX0lOVF9GTEFHLCBWRkZfUlhfSU5UX0ZMQUdfQ0xSX0IpOwo+ICsJCW10a191YXJ0X2Fw ZG1hX3dyaXRlKGMsIFZGRl9FTiwgVkZGX0VOX0IpOwoKd2h5IGFyZSB3ZSB3cml0aW5nIHRoaXMg aGVyZSwgd2UgYXJlIHN1cHBvc2VkIHRvIGRvIHRoYXQgd2hlbiB0eG4Kc3RhcnRzIQoKPiArc3Rh dGljIGludCBtdGtfdWFydF9hcGRtYV9kZXZpY2VfcmVzdW1lKHN0cnVjdCBkbWFfY2hhbiAqY2hh bikKPiArewo+ICsJLyoganVzdCBmb3IgY2hlY2sgY2FwcyBwYXNzICovCj4gKwlyZXR1cm4gMDsK PiArfQoKaWYgeW91IGRvIG5vdCBzdXBwb3J0IHRoaXMgcGxlYXNlIHJlbW92ZSB0aGlzIQoKPiAr c3RhdGljIHZvaWQgbXRrX3VhcnRfYXBkbWFfZnJlZShzdHJ1Y3QgbXRrX3VhcnRfYXBkbWFkZXYg Km10a2QpCj4gK3sKPiArCXdoaWxlIChsaXN0X2VtcHR5KCZtdGtkLT5kZGV2LmNoYW5uZWxzKSA9 PSAwKSB7Cj4gKwkJc3RydWN0IG10a19jaGFuICpjID0gbGlzdF9maXJzdF9lbnRyeSgmbXRrZC0+ ZGRldi5jaGFubmVscywKPiArCQkJc3RydWN0IG10a19jaGFuLCB2Yy5jaGFuLmRldmljZV9ub2Rl KTsKPiArCj4gKwkJbGlzdF9kZWwoJmMtPnZjLmNoYW4uZGV2aWNlX25vZGUpOwo+ICsJCXRhc2ts ZXRfa2lsbCgmYy0+dmMudGFzayk7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIG10a191YXJ0X2FwZG1hX21hdGNoW10gPSB7Cj4gKwl7IC5jb21wYXRp YmxlID0gIm1lZGlhdGVrLG10NjU3Ny11YXJ0LWRtYSIsIH0sCgp3aGVyZSBpcyB0aGUgYmluZGlu ZyBkb2N1bWVudCBmb3IgZWRpYXRlayxtdDY1NzctdWFydC1kbWEgPz8K