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: [v10,1/3] dmaengine: 8250_mtk_dma: add MediaTek uart DMA support From: Matthias Brugger Message-Id: <56da4c16-2f47-0033-fe60-ad49ccd0758d@gmail.com> Date: Thu, 14 Feb 2019 11:08:23 +0100 To: Long Cheng , Vinod Koul , Randy Dunlap , Rob Herring , Mark Rutland , Ryder Lee , Sean Wang , Nicolas Boichat Cc: 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: T24gMTgvMDEvMjAxOSAwNDoxMCwgTG9uZyBDaGVuZyB3cm90ZToKPiBJbiBETUEgZW5naW5lIGZy YW1ld29yaywgYWRkIDgyNTAgdWFydCBkbWEgdG8gc3VwcG9ydCBNZWRpYVRlayB1YXJ0Lgo+IElm IE1lZGlhVGVrIHVhcnQgZW5hYmxlZChTRVJJQUxfODI1MF9NVDY1NzcpLCBhbmQgd2FudCB0byBp bXByb3ZlCj4gdGhlIHBlcmZvcm1hbmNlLCBjYW4gZW5hYmxlIHRoZSBmdW5jdGlvbi4KPiAKPiBT aWduZWQtb2ZmLWJ5OiBMb25nIENoZW5nIDxsb25nLmNoZW5nQG1lZGlhdGVrLmNvbT4KPiAtLS0K PiAgZHJpdmVycy9kbWEvbWVkaWF0ZWsvS2NvbmZpZyAgICAgICAgICB8ICAgMTEgKwo+ICBkcml2 ZXJzL2RtYS9tZWRpYXRlay9NYWtlZmlsZSAgICAgICAgIHwgICAgMSArCj4gIGRyaXZlcnMvZG1h L21lZGlhdGVrL210ay11YXJ0LWFwZG1hLmMgfCAgNjY5ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+ICAzIGZpbGVzIGNoYW5nZWQsIDY4MSBpbnNlcnRpb25zKCspCj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2RtYS9tZWRpYXRlay9tdGstdWFydC1hcGRtYS5jCj4gClsu Li5dCj4gKwo+ICtzdGF0aWMgaW50IG10a191YXJ0X2FwZG1hX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBwZGV2LT5k ZXYub2Zfbm9kZTsKPiArCXN0cnVjdCBtdGtfdWFydF9hcGRtYWRldiAqbXRrZDsKPiArCXN0cnVj dCByZXNvdXJjZSAqcmVzOwo+ICsJc3RydWN0IG10a19jaGFuICpjOwo+ICsJaW50IGJpdF9tYXNr ID0gMzIsIHJjOwo+ICsJdW5zaWduZWQgaW50IGk7Cj4gKwo+ICsJbXRrZCA9IGRldm1fa3phbGxv YygmcGRldi0+ZGV2LCBzaXplb2YoKm10a2QpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghbXRrZCkK PiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwltdGtkLT5jbGsgPSBkZXZtX2Nsa19nZXQoJnBk ZXYtPmRldiwgTlVMTCk7Cj4gKwlpZiAoSVNfRVJSKG10a2QtPmNsaykpIHsKPiArCQlkZXZfZXJy KCZwZGV2LT5kZXYsICJObyBjbG9jayBzcGVjaWZpZWRcbiIpOwo+ICsJCXJjID0gUFRSX0VSUiht dGtkLT5jbGspOwo+ICsJCXJldHVybiByYzsKPiArCX0KPiArCj4gKwlpZiAob2ZfcHJvcGVydHlf cmVhZF9ib29sKG5wLCAiZG1hLTMzYml0cyIpKQo+ICsJCW10a2QtPnN1cHBvcnRfMzNiaXRzID0g dHJ1ZTsKCmRtYS0zM2JpdHMgbm90IGRlZmluZWQgaW4gdGhlIGJpbmRpbmcgZGVzY3JpcHRpb24u Cgo+ICsKPiArCWlmIChtdGtkLT5zdXBwb3J0XzMzYml0cykKPiArCQliaXRfbWFzayA9IDMzOwo+ ICsKPiArCXJjID0gZG1hX3NldF9tYXNrX2FuZF9jb2hlcmVudCgmcGRldi0+ZGV2LCBETUFfQklU X01BU0soYml0X21hc2spKTsKPiArCWlmIChyYykKPiArCQlyZXR1cm4gcmM7Cj4gKwo+ICsJZG1h X2NhcF9zZXQoRE1BX1NMQVZFLCBtdGtkLT5kZGV2LmNhcF9tYXNrKTsKPiArCW10a2QtPmRkZXYu ZGV2aWNlX2FsbG9jX2NoYW5fcmVzb3VyY2VzID0KPiArCQkJCW10a191YXJ0X2FwZG1hX2FsbG9j X2NoYW5fcmVzb3VyY2VzOwo+ICsJbXRrZC0+ZGRldi5kZXZpY2VfZnJlZV9jaGFuX3Jlc291cmNl cyA9Cj4gKwkJCQltdGtfdWFydF9hcGRtYV9mcmVlX2NoYW5fcmVzb3VyY2VzOwo+ICsJbXRrZC0+ ZGRldi5kZXZpY2VfdHhfc3RhdHVzID0gbXRrX3VhcnRfYXBkbWFfdHhfc3RhdHVzOwo+ICsJbXRr ZC0+ZGRldi5kZXZpY2VfaXNzdWVfcGVuZGluZyA9IG10a191YXJ0X2FwZG1hX2lzc3VlX3BlbmRp bmc7Cj4gKwltdGtkLT5kZGV2LmRldmljZV9wcmVwX3NsYXZlX3NnID0gbXRrX3VhcnRfYXBkbWFf cHJlcF9zbGF2ZV9zZzsKPiArCW10a2QtPmRkZXYuZGV2aWNlX2NvbmZpZyA9IG10a191YXJ0X2Fw ZG1hX3NsYXZlX2NvbmZpZzsKPiArCW10a2QtPmRkZXYuZGV2aWNlX3BhdXNlID0gbXRrX3VhcnRf YXBkbWFfZGV2aWNlX3BhdXNlOwo+ICsJbXRrZC0+ZGRldi5kZXZpY2VfdGVybWluYXRlX2FsbCA9 IG10a191YXJ0X2FwZG1hX3Rlcm1pbmF0ZV9hbGw7Cj4gKwltdGtkLT5kZGV2LnNyY19hZGRyX3dp ZHRocyA9IEJJVChETUFfU0xBVkVfQlVTV0lEVEhfMV9CWVRFKTsKPiArCW10a2QtPmRkZXYuZHN0 X2FkZHJfd2lkdGhzID0gQklUKERNQV9TTEFWRV9CVVNXSURUSF8xX0JZVEUpOwo+ICsJbXRrZC0+ ZGRldi5kaXJlY3Rpb25zID0gQklUKERNQV9ERVZfVE9fTUVNKSB8IEJJVChETUFfTUVNX1RPX0RF Vik7Cj4gKwltdGtkLT5kZGV2LnJlc2lkdWVfZ3JhbnVsYXJpdHkgPSBETUFfUkVTSURVRV9HUkFO VUxBUklUWV9TRUdNRU5UOwo+ICsJbXRrZC0+ZGRldi5kZXYgPSAmcGRldi0+ZGV2Owo+ICsJSU5J VF9MSVNUX0hFQUQoJm10a2QtPmRkZXYuY2hhbm5lbHMpOwo+ICsKPiArCW10a2QtPmRtYV9yZXF1 ZXN0cyA9IE1US19VQVJUX0FQRE1BX05SX1ZDSEFOUzsKCkRvIHRoaXMgaWYgZG1hLXJlcXVlc3Rz IHByb3BlcnR5IGlzIG5vdCBwcmVzZW50LgoKPiArCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihu cCwgImRtYS1yZXF1ZXN0cyIsICZtdGtkLT5kbWFfcmVxdWVzdHMpKSB7CgpJdCdzIHF1aXRlIG9i dmlvdXMgd2hhdCB0aGlzIGRvZXMsIGJ1dCBJTUhPIGl0IHNob3VsZCBiZSByZWZsZWN0ZWQgaW4g dGhlIGJpbmRpbmcuCgpSZWdhcmRzLApNYXR0aGlhcwoKPiArCQlkZXZfaW5mbygmcGRldi0+ZGV2 LAo+ICsJCQkgIlVzaW5nICV1IGFzIG1pc3NpbmcgZG1hLXJlcXVlc3RzIHByb3BlcnR5XG4iLAo+ ICsJCQkgTVRLX1VBUlRfQVBETUFfTlJfVkNIQU5TKTsKPiArCX0KPiArCj4gKwltdGtkLT5kbWFf aXJxID0gZGV2bV9rY2FsbG9jKCZwZGV2LT5kZXYsIG10a2QtPmRtYV9yZXF1ZXN0cywKPiArCQkJ CSBzaXplb2YoKm10a2QtPmRtYV9pcnEpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghbXRrZC0+ZG1h X2lycSkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgbXRrZC0+ ZG1hX3JlcXVlc3RzOyBpKyspIHsKPiArCQljID0gZGV2bV9remFsbG9jKG10a2QtPmRkZXYuZGV2 LCBzaXplb2YoKmMpLCBHRlBfS0VSTkVMKTsKPiArCQlpZiAoIWMpIHsKPiArCQkJcmMgPSAtRU5P REVWOwo+ICsJCQlnb3RvIGVycl9ub19kbWE7Cj4gKwkJfQo+ICsKPiArCQlyZXMgPSBwbGF0Zm9y bV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIGkpOwo+ICsJCWlmICghcmVzKSB7 Cj4gKwkJCXJjID0gLUVOT0RFVjsKPiArCQkJZ290byBlcnJfbm9fZG1hOwo+ICsJCX0KPiArCj4g KwkJYy0+YmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZSgmcGRldi0+ZGV2LCByZXMpOwo+ICsJ CWlmIChJU19FUlIoYy0+YmFzZSkpIHsKPiArCQkJcmMgPSBQVFJfRVJSKGMtPmJhc2UpOwo+ICsJ CQlnb3RvIGVycl9ub19kbWE7Cj4gKwkJfQo+ICsJCWMtPnJlcXVlc3RlZCA9IGZhbHNlOwo+ICsJ CWMtPnZjLmRlc2NfZnJlZSA9IG10a191YXJ0X2FwZG1hX2Rlc2NfZnJlZTsKPiArCQl2Y2hhbl9p bml0KCZjLT52YywgJm10a2QtPmRkZXYpOwo+ICsKPiArCQltdGtkLT5kbWFfaXJxW2ldID0gcGxh dGZvcm1fZ2V0X2lycShwZGV2LCBpKTsKPiArCQlpZiAoKGludCltdGtkLT5kbWFfaXJxW2ldIDwg MCkgewo+ICsJCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IElSUVslZF1cbiIs IGkpOwo+ICsJCQlyYyA9IC1FSU5WQUw7Cj4gKwkJCWdvdG8gZXJyX25vX2RtYTsKPiArCQl9Cj4g Kwl9Cj4gKwo+ICsJcG1fcnVudGltZV9lbmFibGUoJnBkZXYtPmRldik7Cj4gKwlwbV9ydW50aW1l X3NldF9hY3RpdmUoJnBkZXYtPmRldik7Cj4gKwo+ICsJcmMgPSBkbWFfYXN5bmNfZGV2aWNlX3Jl Z2lzdGVyKCZtdGtkLT5kZGV2KTsKPiArCWlmIChyYykKPiArCQlnb3RvIHJwbV9kaXNhYmxlOwo+ ICsKPiArCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIG10a2QpOwo+ICsKPiArCS8qIERldmlj ZS10cmVlIERNQSBjb250cm9sbGVyIHJlZ2lzdHJhdGlvbiAqLwo+ICsJcmMgPSBvZl9kbWFfY29u dHJvbGxlcl9yZWdpc3RlcihucCwgb2ZfZG1hX3hsYXRlX2J5X2NoYW5faWQsIG10a2QpOwo+ICsJ aWYgKHJjKQo+ICsJCWdvdG8gZG1hX3JlbW92ZTsKPiArCj4gKwlyZXR1cm4gcmM7Cj4gKwo+ICtk bWFfcmVtb3ZlOgo+ICsJZG1hX2FzeW5jX2RldmljZV91bnJlZ2lzdGVyKCZtdGtkLT5kZGV2KTsK PiArcnBtX2Rpc2FibGU6Cj4gKwlwbV9ydW50aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7Cj4gK2Vy cl9ub19kbWE6Cj4gKwltdGtfdWFydF9hcGRtYV9mcmVlKG10a2QpOwo+ICsJcmV0dXJuIHJjOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG10a191YXJ0X2FwZG1hX3JlbW92ZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgbXRrX3VhcnRfYXBkbWFkZXYgKm10a2Qg PSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKPiArCj4gKwlpZiAocGRldi0+ZGV2Lm9mX25v ZGUpCj4gKwkJb2ZfZG1hX2NvbnRyb2xsZXJfZnJlZShwZGV2LT5kZXYub2Zfbm9kZSk7Cj4gKwo+ ICsJcG1fcnVudGltZV9kaXNhYmxlKCZwZGV2LT5kZXYpOwo+ICsJcG1fcnVudGltZV9wdXRfbm9p ZGxlKCZwZGV2LT5kZXYpOwo+ICsKPiArCWRtYV9hc3luY19kZXZpY2VfdW5yZWdpc3RlcigmbXRr ZC0+ZGRldik7Cj4gKwltdGtfdWFydF9hcGRtYV9mcmVlKG10a2QpOwo+ICsKPiArCXJldHVybiAw Owo+ICt9Cj4gKwo+ICsjaWZkZWYgQ09ORklHX1BNX1NMRUVQCj4gK3N0YXRpYyBpbnQgbXRrX3Vh cnRfYXBkbWFfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gK3sKPiArCXN0cnVjdCBtdGtf dWFydF9hcGRtYWRldiAqbXRrZCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArCWlmICgh cG1fcnVudGltZV9zdXNwZW5kZWQoZGV2KSkKPiArCQljbGtfZGlzYWJsZV91bnByZXBhcmUobXRr ZC0+Y2xrKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBtdGtfdWFy dF9hcGRtYV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsJ c3RydWN0IG10a191YXJ0X2FwZG1hZGV2ICptdGtkID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4g Kwo+ICsJaWYgKCFwbV9ydW50aW1lX3N1c3BlbmRlZChkZXYpKSB7Cj4gKwkJcmV0ID0gY2xrX3By ZXBhcmVfZW5hYmxlKG10a2QtPmNsayk7Cj4gKwkJaWYgKHJldCkKPiArCQkJcmV0dXJuIHJldDsK PiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsjZW5kaWYgLyogQ09ORklHX1BNX1NMRUVQ ICovCj4gKwo+ICsjaWZkZWYgQ09ORklHX1BNCj4gK3N0YXRpYyBpbnQgbXRrX3VhcnRfYXBkbWFf cnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsJc3RydWN0IG10a191 YXJ0X2FwZG1hZGV2ICptdGtkID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gKwo+ICsJY2xrX2Rp c2FibGVfdW5wcmVwYXJlKG10a2QtPmNsayk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4g K3N0YXRpYyBpbnQgbXRrX3VhcnRfYXBkbWFfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAq ZGV2KQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsJc3RydWN0IG10a191YXJ0X2FwZG1hZGV2ICptdGtk ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gKwo+ICsJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxl KG10a2QtPmNsayk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArI2VuZGlmIC8qIENPTkZJR19QTSAqLwo+ICsKPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBkZXZfcG1fb3BzIG10a191YXJ0X2FwZG1hX3BtX29wcyA9IHsKPiArCVNFVF9TWVNURU1f U0xFRVBfUE1fT1BTKG10a191YXJ0X2FwZG1hX3N1c3BlbmQsIG10a191YXJ0X2FwZG1hX3Jlc3Vt ZSkKPiArCVNFVF9SVU5USU1FX1BNX09QUyhtdGtfdWFydF9hcGRtYV9ydW50aW1lX3N1c3BlbmQs Cj4gKwkJCSAgIG10a191YXJ0X2FwZG1hX3J1bnRpbWVfcmVzdW1lLCBOVUxMKQo+ICt9Owo+ICsK PiArc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX3VhcnRfYXBkbWFfZHJpdmVyID0g ewo+ICsJLnByb2JlCT0gbXRrX3VhcnRfYXBkbWFfcHJvYmUsCj4gKwkucmVtb3ZlCT0gbXRrX3Vh cnRfYXBkbWFfcmVtb3ZlLAo+ICsJLmRyaXZlciA9IHsKPiArCQkubmFtZQkJPSBLQlVJTERfTU9E TkFNRSwKPiArCQkucG0JCT0gJm10a191YXJ0X2FwZG1hX3BtX29wcywKPiArCQkub2ZfbWF0Y2hf dGFibGUgPSBvZl9tYXRjaF9wdHIobXRrX3VhcnRfYXBkbWFfbWF0Y2gpLAo+ICsJfSwKPiArfTsK PiArCj4gK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobXRrX3VhcnRfYXBkbWFfZHJpdmVyKTsKPiAr Cj4gK01PRFVMRV9ERVNDUklQVElPTigiTWVkaWFUZWsgVUFSVCBBUERNQSBDb250cm9sbGVyIERy aXZlciIpOwo+ICtNT0RVTEVfQVVUSE9SKCJMb25nIENoZW5nIDxsb25nLmNoZW5nQG1lZGlhdGVr LmNvbT4iKTsKPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwo+ICsKPgo=