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: [v3,2/2] dmaengine: uniphier-mdmac: add UniPhier MIO DMAC driver From: Vinod Koul Message-Id: <20181006162246.GO2372@vkoul-mobl> Date: Sat, 6 Oct 2018 21:52:46 +0530 To: Masahiro Yamada Cc: "open list:DMA GENERIC OFFLOAD ENGINE SUBSYSTEM" , Masami Hiramatsu , Jassi Brar , Linux Kernel Mailing List , Dan Williams , linux-arm-kernel List-ID: T24gMDYtMTAtMTgsIDA0OjExLCBNYXNhaGlybyBZYW1hZGEgd3JvdGU6Cj4gT24gRnJpLCBPY3Qg NSwgMjAxOCBhdCAxMTo1NyBQTSBWaW5vZCA8dmtvdWxAa2VybmVsLm9yZz4gd3JvdGU6Cj4gPgo+ ID4gT24gMTMtMDktMTgsIDA5OjUxLCBNYXNhaGlybyBZYW1hZGEgd3JvdGU6Cj4gPgo+ID4gPiAr I2RlZmluZSBVTklQSElFUl9NRE1BQ19DSF9JUlFfU1RBVCAgIDB4MDEwICAgLy8gY3VycmVudCBo dyBzdGF0dXMgKFJPKQo+ID4gPiArI2RlZmluZSBVTklQSElFUl9NRE1BQ19DSF9JUlFfUkVRICAg IDB4MDE0ICAgLy8gbGF0Y2hlZCBTVEFUIChXT0MpCj4gPiA+ICsjZGVmaW5lIFVOSVBISUVSX01E TUFDX0NIX0lSUV9FTiAgICAgMHgwMTggICAvLyBJUlEgZW5hYmxlIG1hc2sKPiA+ID4gKyNkZWZp bmUgVU5JUEhJRVJfTURNQUNfQ0hfSVJRX0RFVCAgICAweDAxYyAgIC8vIFJFUSAmIEVOIChSTykK PiA+ID4gKyNkZWZpbmUgICBVTklQSElFUl9NRE1BQ19DSF9JUlFfX0FCT1JUICAgICAgICAgICAg ICAgQklUKDEzKQo+ID4gPiArI2RlZmluZSAgIFVOSVBISUVSX01ETUFDX0NIX0lSUV9fRE9ORSAg ICAgICAgICAgICAgICBCSVQoMSkKPiA+Cj4gPiB3aHkgbm90YXRpb24gaWYgVU5JUEhJRVJfTURN QUNfQ0hfSVJRX19GT08gPwo+IAo+IAo+IE1hY3JvcyB3aXRob3V0IGRvdWJsZS11bmRlcnNjb3Jl IGFyZSBqdXN0IHJlZ2lzdGVyIG9mZnNldHMuCj4gCj4gTWFjcm9zIHdpdGggZG91YmxlLXVuZGVy c2NvcmUgYXJlIGJpdCBmbGFncyBpbgo+IHRoZSBjb3JyZXNwb25kaW5nIHJlZ2lzdGVyLgo+IAo+ IAo+IEkgb2Z0ZW4gdXNlIHRoaXMgbm90YXRpb24sCj4gYW5kIEkgYWxzbyBzZWUgc29tZWJvZHkg ZWxzZSBkaWQgc28uCj4gCj4gRm9yIGV4YW1wbGUsIHNlZQo+IGRyaXZlcnMvbXRkL25hbmQvcmF3 L2RlbmFsaS5oCj4gCj4gUGxlYXNlIGxldCBtZSBrbm93IGlmIHlvdSBkbyBub3QgbGlrZSBpdC4K PiBJIGNhbiBhZGp1c3QgbXlzZWxmIHRvIHlvdXIgcHJlZmVyZW5jZS4KCkhtbSBJIGRvbnQgaGF2 ZSBhIHN0cm9uZyBwcmVmZXJlbmNlIGVpdGhlciB3YXksIHRob3VnaCBtaWdodCBiZQp3b3J0aHdo aWxlIHRvIGRvY3VtZW50IHRoaXMgc3R5bGUgc28gdGhhdCBmdXR1cmUgdXBkYXRlcyBjYW4gYmUK Y29uc2lzdGVudAoKPiAKPiAKPiAKPiA+ID4gKyNkZWZpbmUgVU5JUEhJRVJfTURNQUNfQ0hfU1JD X01PREUgICAweDAyMCAgIC8vIG1vZGUgb2Ygc291cmNlCj4gPiA+ICsjZGVmaW5lIFVOSVBISUVS X01ETUFDX0NIX0RFU1RfTU9ERSAgMHgwMjQgICAvLyBtb2RlIG9mIGRlc3RpbmF0aW9uCj4gPiA+ ICsjZGVmaW5lICAgVU5JUEhJRVJfTURNQUNfQ0hfTU9ERV9fQUREUl9JTkMgICAoMCA8PCA0KQo+ ID4gPiArI2RlZmluZSAgIFVOSVBISUVSX01ETUFDX0NIX01PREVfX0FERFJfREVDICAgKDEgPDwg NCkKPiA+ID4gKyNkZWZpbmUgICBVTklQSElFUl9NRE1BQ19DSF9NT0RFX19BRERSX0ZJWEVEICgy IDw8IDQpCj4gPiA+ICsjZGVmaW5lIFVOSVBISUVSX01ETUFDX0NIX1NSQ19BRERSICAgMHgwMjgg ICAvLyBzb3VyY2UgYWRkcmVzcwo+ID4gPiArI2RlZmluZSBVTklQSElFUl9NRE1BQ19DSF9ERVNU X0FERFIgIDB4MDJjICAgLy8gZGVzdGluYXRpb24gYWRkcmVzcwo+ID4gPiArI2RlZmluZSBVTklQ SElFUl9NRE1BQ19DSF9TSVpFICAgICAgICAgICAgICAgMHgwMzAgICAvLyB0cmFuc2ZlciBieXRl cwo+ID4KPiA+IFBsZWFzZSB1c2UgLyogY29tbWVudCAqLyBzdHlsZSBmb3IgdGhlc2UKPiAKPiBJ IGp1c3QgdGhvdWdodCBwZW9wbGUgYXJlIGdldHRpbmcgdG9sZXJhbnQgb2YgQysrIGNvbW1lbnRz Lgo+IAo+IExpbnVzIGlzIHNvOgo+IGh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDE3LzExLzI1LzEz Mwo+IAo+IEhvd2V2ZXIsIEMrKyBpcyBub3Qgb2ZmaWNpYWxseSBhbGxvd2VkIGluIHRoZQo+IExp bnV4IGNvZGluZyBzdHlsZS4KPiAKPiBXaWxsIGZpeCAod2l0aG91dCBvZGQgY2xvc2luZyAqLyBh bGlnbm1lbnQpCgpMZXRzIGJlIGNvbmlzdGVudCB3aXRoIHRoZSBzdWJzeXN0ZW0gYW5kIHVzZSBv bmUgc3R5bGUgdW5sZXNzIHdlIGRlY2lkZQp0byBtb3ZlLi4KCj4gPiA+ICsvKiBtYy0+dmMubG9j ayBtdXN0IGJlIGhlbGQgYnkgY2FsbGVyICovCj4gPiA+ICtzdGF0aWMgc3RydWN0IHVuaXBoaWVy X21kbWFjX2Rlc2MgKl9fdW5pcGhpZXJfbWRtYWNfbmV4dF9kZXNjKAo+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHVuaXBoaWVyX21kbWFj X2NoYW4gKm1jKQo+ID4KPiA+IHRoaXMgY2FuIGJlIG1hZGUgdG8gbG9vayBiZXR0ZXIgYnk6Cj4g Pgo+ID4gc3RhdGljIHN0cnVjdCB1bmlwaGllcl9tZG1hY19kZXNjICoKPiA+IF9fdW5pcGhpZXJf bWRtYWNfbmV4dF9kZXNjKHN0cnVjdCB1bmlwaGllcl9tZG1hY19jaGFuICptYykKPiAKPiBPSy4K PiBUaGlzIGlzIG5vdCBtZW50aW9uZWQgaW4gdGhlIGNvZGluZyBzdHlsZSBkb2MgYXQgbGVhc3Qs Cj4gYnV0IGNvbW1vbiBlbm91Z2guCj4gV2lsbCBmaXguCgpDb2Rpbmcgc3R5bGUgdGVsbHMgeW91 IGd1aWRlbGluZSwgaXQgaXMgdXB0byB5b3UgdG8gbWFrZSBjb2RlIGxvb2sgYW5kCnJlYWQgYmV0 dGVyIDopCgo+ID4gQnR3IHdoeSBsZWFkaW5nIF9fIGZvciBmdW5jdGlvbiBuYW1lIGhlcmUgYW5k IG90aGVyIHBsYWNlcz8KPiAKPiBKdXN0IGEgcmVtaW5kZXIgb2YgIm1jLT52Yy5sb2NrIG11c3Qg YmUgaGVsZCBieSBjYWxsZXIiLgoKQSBjb21tZW50IGlzIGp1c3QgZmluZS4uCgo+IEl0IGlzIGNv bW1vbiB0byB1c2UgZG91YmxlLXVuZGVyc2NvcmUgcHJlZml4aW5nCj4gZm9yIGZ1bmN0aW9ucyB0 aGF0IHNob3VsZCBiZSB1c2VkIHdpdGggY2FyZS4KPiAKPiBIb3dldmVyLCBJIGFtIGhhcHB5IHRv IGFkanVzdCBteXNlbGYgdG8gdGhlIG1haW50YWluZXIuCj4gUGxlYXNlIGxldCBtZSBrbm93IGlm IHlvdSBkbyBub3QgbGlrZSBpdCwgdGhlbiBJIHdpbGwgcmVtb3ZlIHRoZW0gb3V0LgoKSSB3b3Vs ZCBsaWtlIHRoZXNlIHRvIGJlIHJlbW92ZWQKCj4gPiA+ICt7Cj4gPiA+ICsgICAgIHN0cnVjdCB2 aXJ0X2RtYV9kZXNjICp2ZDsKPiA+ID4gKwo+ID4gPiArICAgICB2ZCA9IHZjaGFuX25leHRfZGVz YygmbWMtPnZjKTsKPiA+ID4gKyAgICAgaWYgKCF2ZCkgewo+ID4gPiArICAgICAgICAgICAgIG1j LT5tZCA9IE5VTEw7Cj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Cj4gPiA+ICsgICAg IH0KPiA+ID4gKwo+ID4gPiArICAgICBsaXN0X2RlbCgmdmQtPm5vZGUpOwo+ID4gPiArCj4gPiA+ ICsgICAgIG1jLT5tZCA9IHRvX3VuaXBoaWVyX21kbWFjX2Rlc2ModmQpOwo+ID4gPiArCj4gPiA+ ICsgICAgIHJldHVybiBtYy0+bWQ7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gKy8qIG1jLT52Yy5s b2NrIG11c3QgYmUgaGVsZCBieSBjYWxsZXIgKi8KPiA+ID4gK3N0YXRpYyB2b2lkIF9fdW5pcGhp ZXJfbWRtYWNfaGFuZGxlKHN0cnVjdCB1bmlwaGllcl9tZG1hY19jaGFuICptYywKPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB1bmlwaGllcl9tZG1hY19kZXNj ICptZCkKPiA+Cj4gPiBwbGVhc2UgYWxpZ24gdGhpcyB0byBwcmV2aW91cyBsaW5lIG9wZW5pbmcg YnJhY2UgKGhpbnQgY2hlY2twYXRjaCB3aXRoCj4gPiAtLXN0cmljdCBvcHRpb24gd2lsbCBnaXZl IHlvdSB0aGUgd2FybmluZykKPiAKPiBUaGlzIGlzIGFscmVhZHkgYWxpZ25lZC4KPiBQZXJoYXBz LCBkdWUgdG8geW91ciBtYWlsZXIuCgpBcyBJIHNhaWQgcGxlYXNlIGNoZWNrIGNoZWNrcGF0Y2gg LS1zdHJpY3QKCj4gPiA+ICtzdGF0aWMgaW50IHVuaXBoaWVyX21kbWFjX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiA+ICt7Cj4gPiA+ICsgICAgIHN0cnVjdCBkZXZpY2Ug KmRldiA9ICZwZGV2LT5kZXY7Cj4gPiA+ICsgICAgIHN0cnVjdCB1bmlwaGllcl9tZG1hY19kZXZp Y2UgKm1kZXY7Cj4gPiA+ICsgICAgIHN0cnVjdCBkbWFfZGV2aWNlICpkZGV2Owo+ID4gPiArICAg ICBzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKPiA+ID4gKyAgICAgaW50IG5yX2NoYW5zLCByZXQsIGk7 Cj4gPiA+ICsKPiA+ID4gKyAgICAgbnJfY2hhbnMgPSBwbGF0Zm9ybV9pcnFfY291bnQocGRldik7 Cj4gPiA+ICsgICAgIGlmIChucl9jaGFucyA8IDApCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJu IG5yX2NoYW5zOwo+ID4gPiArCj4gPiA+ICsgICAgIHJldCA9IGRtYV9zZXRfbWFzayhkZXYsIERN QV9CSVRfTUFTSygzMikpOwo+ID4gPiArICAgICBpZiAocmV0KQo+ID4gPiArICAgICAgICAgICAg IHJldHVybiByZXQ7Cj4gPiA+ICsKPiA+ID4gKyAgICAgbWRldiA9IGRldm1fa3phbGxvYyhkZXYs IHN0cnVjdF9zaXplKG1kZXYsIGNoYW5uZWxzLCBucl9jaGFucyksCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgR0ZQX0tFUk5FTCk7Cj4gPiA+ICsgICAgIGlmICghbWRldikKPiA+ID4g KyAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPiA+ID4gKwo+ID4gPiArICAgICByZXMgPSBw bGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+ID4gPiArICAg ICBtZGV2LT5yZWdfYmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7Cj4gPiA+ ICsgICAgIGlmIChJU19FUlIobWRldi0+cmVnX2Jhc2UpKQo+ID4gPiArICAgICAgICAgICAgIHJl dHVybiBQVFJfRVJSKG1kZXYtPnJlZ19iYXNlKTsKPiA+ID4gKwo+ID4gPiArICAgICBtZGV2LT5j bGsgPSBkZXZtX2Nsa19nZXQoZGV2LCBOVUxMKTsKPiA+ID4gKyAgICAgaWYgKElTX0VSUihtZGV2 LT5jbGspKSB7Cj4gPiA+ICsgICAgICAgICAgICAgZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0 IGNsb2NrXG4iKTsKPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihtZGV2LT5jbGsp Owo+ID4gPiArICAgICB9Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmV0ID0gY2xrX3ByZXBhcmVfZW5h YmxlKG1kZXYtPmNsayk7Cj4gPiA+ICsgICAgIGlmIChyZXQpCj4gPiA+ICsgICAgICAgICAgICAg cmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArICAgICBkZGV2ID0gJm1kZXYtPmRkZXY7Cj4gPiA+ ICsgICAgIGRkZXYtPmRldiA9IGRldjsKPiA+ID4gKyAgICAgZG1hX2NhcF9zZXQoRE1BX1BSSVZB VEUsIGRkZXYtPmNhcF9tYXNrKTsKPiA+ID4gKyAgICAgZGRldi0+c3JjX2FkZHJfd2lkdGhzID0g QklUKERNQV9TTEFWRV9CVVNXSURUSF9VTkRFRklORUQpOwo+ID4gPiArICAgICBkZGV2LT5kc3Rf YWRkcl93aWR0aHMgPSBCSVQoRE1BX1NMQVZFX0JVU1dJRFRIX1VOREVGSU5FRCk7Cj4gPgo+ID4g dW5kZWZpbmVkPwo+IAo+IFByZWNpc2VseSwgSSBkbyBub3Qga25vdyB0aGUgKl9hZGRyX3dpZHRo cy4KClRoaXMgaXMgInlvdXIiIGNvbnRyb2xsZXIsIHlvdSBrbm93IHRoZSBjYXBhYmlsaXR5IQo+ IAo+IEFzIGZhciBhcyBJIHJlYWQgZG1hZW5naW5lL3Byb3ZpZGVyLnJzdAo+IHRoaXMgcmVwcmVz ZW50cyB0aGUgZGF0YSBieXRlcyB0aGF0IGFyZSByZWFkL3dyaXR0ZW4gYXQgYSB0aW1lLgo+IAo+ IFJlYWxseSBJIGRvIG5vdCBrbm93IChjYXJlIGFib3V0KSB0aGUgdHJhbnNmZXIgd2lkdGguCj4g Cj4gQXMgSSBjb21tZW50ZWQgaW4gdjIsIHRoZSBjb25uZWN0aW9uIG9mIHRoZSBkZXZpY2Ugc2lk ZSBpcyBoYXJkLXdpcmVkLgo+IFRoZSB0cmFuc2ZlciB3aWR0aCBjYW5ub3QgYmUgb2JzZXJ2ZWQg ZnJvbSBTVyB2aWV3Lgo+IAo+IFdoYXQgc2hvdWxkIEkgZG8/CgpBZGQgdGhlIHdpZHRocyB0aGF0 IGFyZSBzdXBwb3J0ZWQgYnkgdGhlIGNvbnRyb2xsZXIKCj4gPiA+ICtzdGF0aWMgaW50IHVuaXBo aWVyX21kbWFjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gPiArewo+ ID4gPiArICAgICBzdHJ1Y3QgdW5pcGhpZXJfbWRtYWNfZGV2aWNlICptZGV2ID0gcGxhdGZvcm1f Z2V0X2RydmRhdGEocGRldik7Cj4gPiA+ICsKPiA+ID4gKyAgICAgb2ZfZG1hX2NvbnRyb2xsZXJf ZnJlZShwZGV2LT5kZXYub2Zfbm9kZSk7Cj4gPiA+ICsgICAgIGRtYV9hc3luY19kZXZpY2VfdW5y ZWdpc3RlcigmbWRldi0+ZGRldik7Cj4gPiA+ICsgICAgIGNsa19kaXNhYmxlX3VucHJlcGFyZSht ZGV2LT5jbGspOwo+ID4KPiA+IGF0IHRoaXMgcG9pbnQgeW91ciBpcnEgaXMgcmVnaXN0ZXJlZCBh bmQgY2FuIGJlIGZpcmVkLCB0aGUgdGFza2xldHMgYXJlCj4gPiBub3Qga2lsbGVkIDooCj4gCj4g Cj4gUGxlYXNlIGxldCBtZSBjbGFyaWZ5IHRoZSBjb25jZXJucyBoZXJlLgo+IAo+IEJlZm9yZSB0 aGUgLnJlbW92ZSBob29rIGlzIGNhbGxlZCwgYWxsIHRoZSBjb25zdW1lcnMgc2hvdWxkCj4gaGF2 ZSBhbHJlYWR5IHB1dCB0aGUgZG1hIGNoYW5uZWxzLgo+IFNvLCBubyBuZXcgZGVzY3JpcHRvciBp cyBjb21pbmcgaW4uCj4gCj4gSG93ZXZlciwKPiAKPiBTb21lIGFscmVhZHktaXNzdWVkIGRlc2Ny aXB0b3JzIG1pZ2h0IGJlIHJlbWFpbmluZywgYW5kIGJlaW5nIHByb2Nlc3NlZC4KPiAKPiBbMV0g VGhpcyBETUEgZW5naW5lIG1pZ2h0IGJlIHN0aWxsIHJ1bm5pbmcKPiAgICAgd2hlbiBjbGtfZGlz YWJsZV91bnByZXBhcmUoKSBpcyBiZWluZyBjYWxsZWQuCj4gICAgIFRoZSByZWdpc3RlciBhY2Nl c3Mgd2l0aCBpdHMgY2xvY2sgZGlzYWJsZWQKPiAgICAgd291bGQgY2F1c2UgdGhlIHN5c3RlbSBj cmFzaC4KClllcyBhbmQgZG1hZW5naW5lIG1heSBmaXJlIGEgc3B1cmlvdXMgaXJxLi4KPiAKPiBb Ml0gdmNoYW5fY29va2llX2NvbXBsZXRlKCkgbWlnaHQgYmVpbmcgY2FsbGVkIGF0IHRoaXMgcG9p bnQKPiAgICAgYW5kIHNjaGVkdWxlIHRoZSB0YXNrbGV0Lgo+ICAgICBJdCBtaWdodCBjYWxsIHVu aXBoaWVyX21kbWFjX2Rlc2NfZnJlZSgpIGFmdGVyCj4gICAgIHRoZSByZWZlcmVuY2UgZGlzYXBw ZXJycy4KPiAKPiBJcyB0aGlzIGNvcnJlY3Q/CgpDb3JyZWN0IDopCgo+IERvIHlvdSBoYXZlIHJl Y29tbWVuZGF0aW9uCj4gZm9yIG1vZHVsZSByZW1vdmFsIGd1aWRlbGluZT8KClllcyBwbGVhc2Ug ZnJlZSB1cCBvciBkaXNhYmxlIGlycSBleHBsaWN0bHksIGVuc3VyZSBwZW5kaW5nIGlycXMgaGF2 ZQpjb21wbGV0ZWQgYW5kIHRoZW4gZW5zdXJlIGFsbCB0aGUgdGFza2xldHMgYXJlIGtpbGxlZCBh bmQgaW4gdGhpcyBvcmRlcgpmb3Igb2J2aW91cyByZWFzb25zCg==