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: [v2,3/4] dma: Add Actions Semi Owl family S900 DMA driver From: Vinod Koul Message-Id: <20180724130943.GD3661@vkoul-mobl> Date: Tue, 24 Jul 2018 18:39:43 +0530 To: Manivannan Sadhasivam Cc: dan.j.williams@intel.com, afaerber@suse.de, robh+dt@kernel.org, dmaengine@vger.kernel.org, liuwei@actions-semi.com, 96boards@ucrobotics.com, devicetree@vger.kernel.org, daniel.thompson@linaro.org, amit.kucheria@linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, hzhang@ucrobotics.com, bdong@ucrobotics.com, manivannanece23@gmail.com, thomas.liau@actions-semi.com, jeff.chen@actions-semi.com, pn@denx.de, edgar.righi@lsitec.org.br List-ID: c29tZWhvdyB0aGlzIGdvdCBzdHVjayBzbyBzZW5kaW5nIGFnYWluLi4uCgpPbiAyNC0wNy0xOCwg MTg6MTYsIFZpbm9kIHdyb3RlOgo+IE9uIDIzLTA3LTE4LCAwOTo0NywgTWFuaXZhbm5hbiBTYWRo YXNpdmFtIHdyb3RlOgo+IAo+ID4gKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KPiA+ICsjaW5j bHVkZSA8bGludXgvY2xrLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Cj4gPiArI2lu Y2x1ZGUgPGxpbnV4L2RtYWVuZ2luZS5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGlu Zy5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9kbWFwb29sLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4 L2Vyci5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4 L2ludGVycnVwdC5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9pby5oPgo+ID4gKyNpbmNsdWRlIDxs aW51eC9tbS5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiA+ICsjaW5jbHVkZSA8 bGludXgvb2ZfZGV2aWNlLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L29mX2RtYS5oPgo+IAo+IGRv IHlvdSBuZWVkIHRoaXM/Cj4gCj4gPiArLyogT1dMX0RNQVhfTU9ERSBCaXRzICovCj4gPiArI2Rl ZmluZSBPV0xfRE1BX01PREVfVFMoeCkJCQkoKCh4KSAmIDB4M2YpIDw8IDApCj4gPiArI2RlZmlu ZSBPV0xfRE1BX01PREVfU1QoeCkJCQkoKCh4KSAmIDB4MykgPDwgOCkKPiA+ICsjZGVmaW5lCU9X TF9ETUFfTU9ERV9TVF9ERVYJCQlPV0xfRE1BX01PREVfU1QoMCkKPiA+ICsjZGVmaW5lCU9XTF9E TUFfTU9ERV9TVF9EQ1UJCQlPV0xfRE1BX01PREVfU1QoMikKPiA+ICsjZGVmaW5lCU9XTF9ETUFf TU9ERV9TVF9TUkFNCQkJT1dMX0RNQV9NT0RFX1NUKDMpCj4gCj4gd2hhdCBhcmUgeW91IHRyeWlu ZyB0byBkbyB3aXRoIHRoaXM/IEdlbmVyYWxseSB3ZSB3b3VsZCBkZWZpbmUgcmVnaXN0ZXIKPiBi aXRzIHVzaW5nIEJJVCBhbmQgR0VOTUFTSyBoZXJlLi4KPiAKPiA+ICsvKiBFeHRyYWN0IHRoZSBi aXQgZmllbGQgdG8gbmV3IHNoaWZ0ICovCj4gPiArI2RlZmluZSBCSVRfRklFTEQodmFsLCB3aWR0 aCwgc2hpZnQsIG5ld3NoaWZ0KQlcCj4gPiArCQkoKCgodmFsKSA+PiAoc2hpZnQpKSAmICgoQklU KHdpZHRoKSkgLSAxKSkgPDwgKG5ld3NoaWZ0KSkKPiAKPiB3aHkgbmV3IHNoaWZ0PyBJIGd1ZXNz IHlvdSB3YW50IHRvIGV4dHJhY3QgYml0cyBmcm9tIGEgcmVnaXN0ZXIgaGVyZSBhbmQKPiB1c2Ug dGhvc2UsIHJpZ2h0Pwo+IAo+ID4gK3N0cnVjdCBvd2xfZG1hX2xsaV9odyB7Cj4gPiArCXUzMglu ZXh0X2xsaTsJLyogcGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgbmV4dCBsaW5rIGxpc3QgKi8KPiA+ ICsJdTMyCXNhZGRyOwkJLyogc291cmNlIHBoeXNpY2FsIGFkZHJlc3MgKi8KPiA+ICsJdTMyCWRh ZGRyOwkJLyogZGVzdGluYXRpb24gcGh5c2ljYWwgYWRkcmVzcyAqLwo+ID4gKwl1MzIJZmxlbjoy MDsJLyogZnJhbWUgbGVuZ3RoICovCj4gPiArCXUzMglmY250OjEyOwkvKiBmcmFtZSBjb3VudCAq Lwo+ID4gKwl1MzIJc3JjX3N0cmlkZTsJLyogc291cmNlIHN0cmlkZSAqLwo+ID4gKwl1MzIJZHN0 X3N0cmlkZTsJLyogZGVzdGluYXRpb24gc3RyaWRlICovCj4gPiArCXUzMgljdHJsYTsJCS8qIGRt YV9tb2RlIGFuZCBsaW5rbGlzdCBjdHJsICovCj4gPiArCXUzMgljdHJsYjsJCS8qIGludGVycnVw dCBjb250cm9sICovCj4gPiArCXUzMgljb25zdF9udW07CS8qIGRhdGEgZm9yIGNvbnN0YW50IGZp bGwgKi8KPiAKPiBpIHRoaW5rIHlvdSBjYW4gc2tpcCBjb21tZW50IGhlcmUgb3Iga2VybmVsLWRv YyBzdHlsZSwgcGxlYXNlIHBpY2sgb25lCj4gYW5kIG5vdCBib3RoCj4gCj4gPiArc3RydWN0IG93 bF9kbWFfdHhkIHsKPiA+ICsJc3RydWN0IHZpcnRfZG1hX2Rlc2MJdmQ7Cj4gPiArCXN0cnVjdCBs aXN0X2hlYWQJbGxpX2xpc3Q7Cj4gCj4gd2h5IGRvIHlvdSBuZWVkIHRoaXMgbGlzdC4gdmQgaGFz IGl0cyBvd24gbGlzdCBhcyB3ZWxsIQo+IAo+ID4gK3N0YXRpYyB2b2lkIHBjaGFuX3VwZGF0ZSh2 b2lkIF9faW9tZW0gKnJlZywgdTMyIHZhbCwgYm9vbCBzdGF0ZSkKPiAKPiB3aHkgZG9lcyB0aGlz IG5vdCB1c2UgcGNoYW4gYXMgYXJnIGFzIHRoZSBuYW1lIG9mIEFQSSBpbXBsaWVzICh5b3UgZGlk Cj4gdGhhdCBvbiB0aGUgb3RoZXIgdHdvKQo+IAo+ID4gK3N0YXRpYyBpbmxpbmUgaW50IG93bF9k bWFfY2ZnX2xsaShzdHJ1Y3Qgb3dsX2RtYV92Y2hhbiAqdmNoYW4sCj4gPiArCQkJCSAgc3RydWN0 IG93bF9kbWFfbGxpICpsbGksCj4gPiArCQkJCSAgZG1hX2FkZHJfdCBzcmMsIGRtYV9hZGRyX3Qg ZHN0LAo+ID4gKwkJCQkgIHUzMiBsZW4sIGVudW0gZG1hX3RyYW5zZmVyX2RpcmVjdGlvbiBkaXIp Cj4gPiArewo+ID4gKwlzdHJ1Y3Qgb3dsX2RtYV9sbGlfaHcgKmh3ID0gJmxsaS0+aHc7Cj4gPiAr CXUzMiBtb2RlOwo+ID4gKwo+ID4gKwltb2RlID0gT1dMX0RNQV9NT0RFX1BXKDApOwo+ID4gKwo+ ID4gKwlzd2l0Y2ggKGRpcikgewo+ID4gKwljYXNlIERNQV9NRU1fVE9fTUVNOgo+ID4gKwkJbW9k ZSB8PSBPV0xfRE1BX01PREVfVFMoMCkgfCBPV0xfRE1BX01PREVfU1RfRENVIHwKPiA+ICsJCQlP V0xfRE1BX01PREVfRFRfRENVIHwgT1dMX0RNQV9NT0RFX1NBTV9JTkMgfAo+ID4gKwkJCU9XTF9E TUFfTU9ERV9EQU1fSU5DOwo+ID4gKwo+ID4gKwkJYnJlYWs7Cj4gPiArCWRlZmF1bHQ6Cj4gPiAr CQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlody0+bmV4dF9sbGkgPSAwOyAv KiBPbmUgbGluayBsaXN0IGJ5IGRlZmF1bHQgKi8KPiA+ICsJaHctPnNhZGRyID0gc3JjOwo+ID4g Kwlody0+ZGFkZHIgPSBkc3Q7Cj4gPiArCj4gPiArCWh3LT5mY250ID0gMTsgLyogRnJhbWUgY291 bnQgZml4ZWQgYXMgMSAqLwo+ID4gKwlody0+ZmxlbiA9IGxlbjsgLyogTWF4IGZyYW1lIGxlbmd0 aCBpcyAxTUIgKi8KPiAKPiBhcmUgeW91IGNoZWNraW5nIHRoYXQgc29tZXdoZXJlPwo+IAo+ID4g K3N0YXRpYyBzdHJ1Y3Qgb3dsX2RtYV9wY2hhbiAqb3dsX2RtYV9nZXRfcGNoYW4oc3RydWN0IG93 bF9kbWEgKm9kLAo+ID4gKwkJCQkJICAgICAgIHN0cnVjdCBvd2xfZG1hX3ZjaGFuICp2Y2hhbikK PiA+ICt7Cj4gPiArCXN0cnVjdCBvd2xfZG1hX3BjaGFuICpwY2hhbjsKPiA+ICsJdW5zaWduZWQg bG9uZyBmbGFnczsKPiA+ICsJaW50IGk7Cj4gPiArCj4gPiArCWZvciAoaSA9IDA7IGkgPCBvZC0+ bnJfcGNoYW5zOyBpKyspIHsKPiA+ICsJCXBjaGFuID0gJm9kLT5wY2hhbnNbaV07Cj4gPiArCj4g PiArCQlzcGluX2xvY2tfaXJxc2F2ZSgmcGNoYW4tPmxvY2ssIGZsYWdzKTsKPiA+ICsJCWlmICgh cGNoYW4tPnZjaGFuKSB7Cj4gPiArCQkJcGNoYW4tPnZjaGFuID0gdmNoYW47Cj4gPiArCQkJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmcGNoYW4tPmxvY2ssIGZsYWdzKTsKPiA+ICsJCQlicmVhazsK PiA+ICsJCX0KPiA+ICsKPiA+ICsJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBjaGFuLT5sb2Nr LCBmbGFncyk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJaWYgKGkgPT0gb2QtPm5yX3BjaGFucykgewo+ ID4gKwkJLyogTm8gcGh5c2ljYWwgY2hhbm5lbCBhdmFpbGFibGUsIGNvcGUgd2l0aCBpdCAqLwo+ ID4gKwkJZGV2X2RiZyhvZC0+ZG1hLmRldiwgIm5vIHBoeXNpY2FsIGNoYW5uZWwgYXZhaWxhYmxl XG4iKTsKPiAKPiBub3Qgc3VyZSBhYm91dCB0aGlzLiBUaGUgY29uY2VwdCBvZiB2aXJ0LWNoYW4g aXMgdGhhdCB5b3Ugd291bGQgc3VibWl0IGEKPiB0cmFuc2FjdGlvbiB0byBjb250cm9sbGVyIGZv ciBkaWZmZXJlbnQgY2hhbm5lbHMuIElmIGNoYW5uZWwgaXMgYnVzeSB0aGUKPiB0eG4gaXMgc2lt cGx5IHF1ZXVlZCB1cC4gWW91IGRvIG5vdCBuZWVkIGEgX2ZyZWVfIGNoYW5uZWwKPiAKPiA+ICtz dGF0aWMgdm9pZCBvd2xfZG1hX3BhdXNlX3BjaGFuKHN0cnVjdCBvd2xfZG1hX3BjaGFuICpwY2hh bikKPiA+ICt7Cj4gPiArCXBjaGFuX3dyaXRlbChwY2hhbiwgMSwgT1dMX0RNQVhfUEFVU0UpOwo+ ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBvd2xfZG1hX3Jlc3VtZV9wY2hhbihzdHJ1Y3Qg b3dsX2RtYV9wY2hhbiAqcGNoYW4pCj4gPiArewo+ID4gKwlwY2hhbl93cml0ZWwocGNoYW4sIDAs IE9XTF9ETUFYX1BBVVNFKTsKPiA+ICt9Cj4gCj4gbWVtcGN5IGFuZCBwYXVzZS9yZXN1bWUgZG9u dCBtYWtlIG11Y2ggc2Vuc2UsIGFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0aGF0Cj4gaGVyZSBhbmQg bm90IGxhdGVyIG9uIHNsYXZlIGNvcHkKPiAKPiA+ICtzdGF0aWMgdm9pZCBvd2xfZG1hX2ZyZWVf dHhkKHN0cnVjdCBvd2xfZG1hICpvZCwgc3RydWN0IG93bF9kbWFfdHhkICp0eGQpCj4gPiArewo+ ID4gKwlzdHJ1Y3Qgb3dsX2RtYV9sbGkgKmxsaSwgKl9sbGk7Cj4gPiArCj4gPiArCWlmICh1bmxp a2VseSghdHhkKSkKPiA+ICsJCXJldHVybjsKPiA+ICsKPiA+ICsJbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKGxsaSwgX2xsaSwgJnR4ZC0+bGxpX2xpc3QsIG5vZGUpIHsKPiA+ICsJCW93bF9kbWFf ZnJlZV9sbGkob2QsIGxsaSk7Cj4gPiArCX0KPiAKPiBicmFjZXMgbm90IHJlcXVpcmVkIGhlcmUK PiAKPiA+ICtzdGF0aWMgaW50IG93bF9kbWFfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCj4gPiArewo+ID4gKwlzdHJ1Y3Qgb3dsX2RtYSAqb2QgPSBwbGF0Zm9ybV9nZXRfZHJ2 ZGF0YShwZGV2KTsKPiA+ICsKPiA+ICsJb2ZfZG1hX2NvbnRyb2xsZXJfZnJlZShwZGV2LT5kZXYu b2Zfbm9kZSk7Cj4gPiArCWRtYV9hc3luY19kZXZpY2VfdW5yZWdpc3Rlcigmb2QtPmRtYSk7Cj4g PiArCj4gPiArCS8qIE1hc2sgYWxsIGludGVycnVwdHMgZm9yIHRoaXMgZXhlY3V0aW9uIGVudmly b25tZW50ICovCj4gPiArCWRtYV93cml0ZWwob2QsIDB4MCwgT1dMX0RNQV9JUlFfRU4wKTsKPiA+ ICsJb3dsX2RtYV9mcmVlKG9kKTsKPiAKPiB0aGUgdGFza2xldHMgYXJlIGtpbGxlZCBidXQgaXJx cyBjYW4gc3RpbGwgcnVuIGFuZCB0cmlnZ2VyIHRoZSBpcnFzIDopCj4gLS0gCj4gflZpbm9kCg==