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: [v4,2/6] dmaengine: fsl-qdma: Add qDMA controller driver for Layerscape SoCs From: Vinod Koul Message-Id: <20180518042125.GE2932@vkoul-mobl> Date: Fri, 18 May 2018 09:51:25 +0530 To: Wen He Cc: "dmaengine@vger.kernel.org" , "robh+dt@kernel.org" , "devicetree@vger.kernel.org" , Leo Li , Jiafei Pan , Jiaheng Fan List-ID: T24gMTctMDUtMTgsIDExOjI3LCBXZW4gSGUgd3JvdGU6Cj4gPiA+ICsKPiA+ID4gKy8qIFJlZ2lz dGVycyBmb3IgYml0IGFuZCBnZW5tYXNrICovCj4gPiA+ICsjZGVmaW5lIEZTTF9RRE1BX0NRSURS X1NRVAkJMHg4MDAwCj4gPiAKPiA+IEJJVCgpID8KPiAKPiBTb3JyeSwgTWF5YmUgSSBzaG91bGQg cmVwbGFjZSAweDgwMDAgdG8gQklUKDE1KS4KCnllcyBwbGVhc2UKCj4gPiA+ICt1NjQgcHJlX2Fk ZHIsIHByZV9xdWV1ZTsKPiA+IAo+ID4gd2h5IGRvIHdlIGhhdmUgYSBnbG9iYWw/Cj4gCj4gTGV0 J3MgdXMgc2VlIHFETUEgdGhhdCBob3cgaXMgd29ya3M/Cj4gCj4gRmlyc3QsIHRoZSBzdGF0dXMg bm90aWZpY2F0aW9uIGZvciBETUEgam9icyBhcmUgcmVwb3J0ZWQgYmFjayB0byB0aGUgc3RhdHVz IHF1ZXVlLgo+IFN0YXR1cyBpbmZvcm1hdGlvbiBpcyBjYXJyaWVkIHdpdGhpbiB0aGUgY29tbWFu ZCBkZXNjcmlwdG9yIHN0YXR1cy9jb21tYW5kIGZpZWxkLAo+IGJpdHMgMTIwLTEyNy4gVGhlIGNv bW1hbmQgZGVzY3JpcHRvciBkZXF1ZXVlIHBvaW50ZXIgYWR2YW5jZXMgb25seSBhZnRlciB0aGUK PiB0cmFuc2FjdGlvbiBoYXMgY29tcGxldGVkIGFuZCB0aGUgc3RhdHVzIGluZm9ybWF0aW9uIGZp ZWxkIGhhcyBiZWVuIHVwZGF0ZWQuCj4gCj4gVGhlbiwgdGhlIGNvbW1hbmQgZGVzY3JpcHRvciBh ZGRyZXNzIGZpZWxkIHdpaWwgcG9pbnRlciB0byB0aGUgY29tbWFuZCBkZXNjcmlwdG9yIGluCj4g aXRzIG9yaWdpbmFsIGZvcm1hdC4gSXQgaXMgdGhlIHJlc3BvbnNpYml0eSBvZiB0aGUgYWRkcmVz cyBvZiB0aGUgc3RhdHVzIHF1ZXVlIGNvbnN1bWVyCj4gdG8gZGVhbGxvY2F0ZSBidWZmZXJzIGFz IG5lZWRlZCB3aGVuIHRoZSBjb21tYW5kIGRlc2NyaXB0b3IgYWRkcmVzcyBwb2ludGVyIGlzIG5v bi16ZXJvLgo+IAo+IE1vcmUgZGV0YWlscyBvZiB0aGUgU3RhdHVzIFF1ZXVlIGNhbiBiZSBmb3Vu ZCBpbiBRb3JJUSBMYXllcnNjYXBlIFNvYyBkYXRhc2hlZXQuCj4gCj4gU28sIHRoZXNlIHZhcmlh YmxlIGlzIHVzZWQgdG8gcmVjb3JkIGxhdGVzdCB2YWx1ZSB0aGF0IGNvbW1hbmQgZGVzY3JpcHRv ciBxdWV1ZQo+IGFuZCBzdGF0dXMgZmllbGQuCj4gCj4gRXZlcnkgdGltZSB2YXJpYWJsZXMgdmFs dWUgaXMgemVybyB3aGVuIHNldCB0aGVzZSB2YXJpYWJsZSB0byBsb2NhbCwgdGhhdCdzIG5vdCB3 aGF0IEkgd2FudC4KCldoeSBub3Qgc3RvcmUgdGhlbSBpbiBkcml2ZXIgY29udGV4dD8KCj4gPiA+ ICtzdGF0aWMgdm9pZCBmc2xfcWRtYV9jb21wX2ZpbGxfbWVtY3B5KHN0cnVjdCBmc2xfcWRtYV9j b21wICpmc2xfY29tcCwKPiA+ID4gKwkJCQkJZG1hX2FkZHJfdCBkc3QsIGRtYV9hZGRyX3Qgc3Jj LCB1MzIgbGVuKSB7Cj4gPiA+ICsJc3RydWN0IGZzbF9xZG1hX2Zvcm1hdCAqY2NkZiwgKmNzZ2Zf ZGVzYywgKmNzZ2Zfc3JjLCAqY3NnZl9kZXN0Owo+ID4gPiArCXN0cnVjdCBmc2xfcWRtYV9zZGYg KnNkZjsKPiA+ID4gKwlzdHJ1Y3QgZnNsX3FkbWFfZGRmICpkZGY7Cj4gPiA+ICsKPiA+ID4gKwlj Y2RmID0gKHN0cnVjdCBmc2xfcWRtYV9mb3JtYXQgKilmc2xfY29tcC0+dmlydF9hZGRyOwo+ID4g Cj4gPiBDYXN0IGFyZSBub3QgcmVxdWlyZWQgdG8vYXdheSBmcm9tIHZvaWQKPiA+IAo+IAo+IERv ZXMgbWVhbnM6IHJlbW92ZSBmb3JjZSBjb252ZXI/Cgp5ZXMgYW5kIGl0IHdvdWxkIHdvcmsKCj4g PiA+ICtzdGF0aWMgc3RydWN0IGZzbF9xZG1hX2NvbXAgKmZzbF9xZG1hX3JlcXVlc3RfZW5xdWV1 ZV9kZXNjKAo+ID4gPiArCQkJCQlzdHJ1Y3QgZnNsX3FkbWFfY2hhbiAqZnNsX2NoYW4sCj4gPiA+ ICsJCQkJCXVuc2lnbmVkIGludCBkc3RfbmVudHMsCj4gPiA+ICsJCQkJCXVuc2lnbmVkIGludCBz cmNfbmVudHMpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGZzbF9xZG1hX2NvbXAgKmNvbXBfdGVt cDsKPiA+ID4gKwlzdHJ1Y3QgZnNsX3FkbWFfc2cgKnNnX2Jsb2NrOwo+ID4gPiArCXN0cnVjdCBm c2xfcWRtYV9xdWV1ZSAqcXVldWUgPSBmc2xfY2hhbi0+cXVldWU7Cj4gPiA+ICsJdW5zaWduZWQg bG9uZyBmbGFnczsKPiA+ID4gKwl1bnNpZ25lZCBpbnQgZHN0X3NnX2VudHJ5X2Jsb2NrLCBzcmNf c2dfZW50cnlfYmxvY2ssIHNnX2VudHJ5X3RvdGFsLAo+ID4gPiAraTsKPiA+ID4gKwo+ID4gPiAr CXNwaW5fbG9ja19pcnFzYXZlKCZxdWV1ZS0+cXVldWVfbG9jaywgZmxhZ3MpOwo+ID4gPiArCWlm IChsaXN0X2VtcHR5KCZxdWV1ZS0+Y29tcF9mcmVlKSkgewo+ID4gPiArCQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZxdWV1ZS0+cXVldWVfbG9jaywgZmxhZ3MpOwo+ID4gPiArCQljb21wX3RlbXAg PSBremFsbG9jKHNpemVvZigqY29tcF90ZW1wKSwgR0ZQX0tFUk5FTCk7Cj4gPiA+ICsJCWlmICgh Y29tcF90ZW1wKQo+ID4gPiArCQkJcmV0dXJuIE5VTEw7Cj4gPiA+ICsJCWNvbXBfdGVtcC0+dmly dF9hZGRyID0gZG1hX3Bvb2xfYWxsb2MocXVldWUtPmNvbXBfcG9vbCwKPiA+ID4gKwkJCQkJCSAg ICAgIEdGUF9LRVJORUwsCj4gPiA+ICsJCQkJCQkgICAgICAmY29tcF90ZW1wLT5idXNfYWRkcik7 Cj4gPiA+ICsJCWlmICghY29tcF90ZW1wLT52aXJ0X2FkZHIpIHsKPiA+ID4gKwkJCWtmcmVlKGNv bXBfdGVtcCk7Cj4gPiA+ICsJCQlyZXR1cm4gTlVMTDsKPiA+ID4gKwkJfQo+ID4gPiArCj4gPiA+ ICsJfSBlbHNlIHsKPiA+ID4gKwkJY29tcF90ZW1wID0gbGlzdF9maXJzdF9lbnRyeSgmcXVldWUt PmNvbXBfZnJlZSwKPiA+ID4gKwkJCQkJICAgICBzdHJ1Y3QgZnNsX3FkbWFfY29tcCwKPiA+ID4g KwkJCQkJICAgICBsaXN0KTsKPiA+ID4gKwkJbGlzdF9kZWwoJmNvbXBfdGVtcC0+bGlzdCk7Cj4g PiA+ICsJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnF1ZXVlLT5xdWV1ZV9sb2NrLCBmbGFncyk7 Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJaWYgKGRzdF9uZW50cyAhPSAwKQo+ID4gPiArCQlk c3Rfc2dfZW50cnlfYmxvY2sgPSBkc3RfbmVudHMgLwo+ID4gPiArCQkJCQkoRlNMX1FETUFfRVhQ RUNUX1NHX0VOVFJZX05VTSAtIDEpICsgMTsKPiA+IAo+ID4gRElWX1JPVU5EX1VQKCk/Cj4gPiAK PiAKPiBUaGUgRElWX1JPVU5EX1VQKCkgZGVmaW5pdGlvbiBzZWUgYmVsb3c6Cj4gCj4gI2RlZmlu ZSBESVZfUk9VTkRfVVAgX19LRVJORUxfRElWX1JPVU5EX1VQCj4gI2RlZmluZSBfX0tFUk5FTF9E SVZfUk9VTkRfVVAobiAsZCkgKCgobikgKyAoZCkgLSAxKSAvIChkKSkKPiAKPiBCdXQgaGVyZSBp cyAnZCAvIChuIC0gMSkgKyAxJyA/CgpZZWFoIHRoaXMgZG9lc24ndCBsb29rIGFwdCBoZXJlLCBj aGVjayBpZiBhbnkgb3RoZXIgbWFjcm9zIHN1aXRzLi4uCgo+ID4gPiArCQkJbWVtc2V0KHNnX2Js b2NrLT52aXJ0X2FkZHIsIDAsCj4gPiA+ICsJCQkJCUZTTF9RRE1BX0VYUEVDVF9TR19FTlRSWV9O VU0gKiAxNik7Cj4gPiAKPiA+IHdoeSBGU0xfUURNQV9FWFBFQ1RfU0dfRU5UUllfTlVNICogMTY/ IGFuZCBub3Qgd2hhdCB5b3UKPiA+IGFsbG9jYXRlZD8KPiA+IAo+IAo+IHNlZSBsaW5lIDQ5Ny4K PiBUaGUgc2dfcG9vbCBidWZmZXIgc2l6ZSBjcmVhdGVkIGlzIEZTTF9RRE1BX0VYUEVDVF9TR19F TlRSWV9OVU0gKiAxNi4KClBsZWFzZSBkb2N1bWVudCB0aGlzCgo+ID4gPiArc3RhdGljIGludCBm c2xfcWRtYV9xdWV1ZV90cmFuc2Zlcl9jb21wbGV0ZShzdHJ1Y3QgZnNsX3FkbWFfZW5naW5lCj4g PiA+ICsqZnNsX3FkbWEpIHsKPiA+ID4gKwlzdHJ1Y3QgZnNsX3FkbWFfcXVldWUgKmZzbF9xdWV1 ZSA9IGZzbF9xZG1hLT5xdWV1ZTsKPiA+ID4gKwlzdHJ1Y3QgZnNsX3FkbWFfcXVldWUgKmZzbF9z dGF0dXMgPSBmc2xfcWRtYS0+c3RhdHVzOwo+ID4gPiArCXN0cnVjdCBmc2xfcWRtYV9xdWV1ZSAq dGVtcF9xdWV1ZTsKPiA+ID4gKwlzdHJ1Y3QgZnNsX3FkbWFfY29tcCAqZnNsX2NvbXA7Cj4gPiA+ ICsJc3RydWN0IGZzbF9xZG1hX2Zvcm1hdCAqc3RhdHVzX2FkZHI7Cj4gPiA+ICsJc3RydWN0IGZz bF9xZG1hX2Zvcm1hdCAqY3NnZl9zcmM7Cj4gPiA+ICsJdm9pZCBfX2lvbWVtICpibG9jayA9IGZz bF9xZG1hLT5ibG9ja19iYXNlOwo+ID4gPiArCXUzMiByZWcsIGk7Cj4gPiA+ICsJYm9vbCBkdXBs aWNhdGUsIGR1cGxpY2F0ZV9oYW5kbGU7Cj4gPiA+ICsKPiA+ID4gKwl3aGlsZSAoMSkgewo+ID4g PiArCQlkdXBsaWNhdGUgPSAwOwo+ID4gPiArCQlkdXBsaWNhdGVfaGFuZGxlID0gMDsKPiA+ID4g KwkJcmVnID0gcWRtYV9yZWFkbChmc2xfcWRtYSwgYmxvY2sgKyBGU0xfUURNQV9CU1FTUik7Cj4g PiA+ICsJCWlmIChyZWcgJiBGU0xfUURNQV9CU1FTUl9RRSkKPiA+ID4gKwkJCXJldHVybiAwOwo+ ID4gPiArCQlzdGF0dXNfYWRkciA9IGZzbF9zdGF0dXMtPnZpcnRfaGVhZDsKPiA+ID4gKwkJaWYg KHFkbWFfY2NkZl9nZXRfcXVldWUoc3RhdHVzX2FkZHIpID09IHByZV9xdWV1ZSAmJgo+ID4gPiAr CQkJcWRtYV9jY2RmX2FkZHJfZ2V0NjQoc3RhdHVzX2FkZHIpID09IHByZV9hZGRyKQo+ID4gPiAr CQkJZHVwbGljYXRlID0gMTsKPiA+ID4gKwkJaSA9IHFkbWFfY2NkZl9nZXRfcXVldWUoc3RhdHVz X2FkZHIpOwo+ID4gPiArCQlwcmVfcXVldWUgPSBxZG1hX2NjZGZfZ2V0X3F1ZXVlKHN0YXR1c19h ZGRyKTsKPiA+ID4gKwkJcHJlX2FkZHIgPSBxZG1hX2NjZGZfYWRkcl9nZXQ2NChzdGF0dXNfYWRk cik7Cj4gPiA+ICsJCXRlbXBfcXVldWUgPSBmc2xfcXVldWUgKyBpOwo+ID4gPiArCQlzcGluX2xv Y2soJnRlbXBfcXVldWUtPnF1ZXVlX2xvY2spOwo+ID4gPiArCQlpZiAobGlzdF9lbXB0eSgmdGVt cF9xdWV1ZS0+Y29tcF91c2VkKSkgewo+ID4gPiArCQkJaWYgKGR1cGxpY2F0ZSkKPiA+ID4gKwkJ CQlkdXBsaWNhdGVfaGFuZGxlID0gMTsKPiA+ID4gKwkJCWVsc2Ugewo+ID4gPiArCQkJCXNwaW5f dW5sb2NrKCZ0ZW1wX3F1ZXVlLT5xdWV1ZV9sb2NrKTsKPiA+ID4gKwkJCQlyZXR1cm4gLTE7Cj4g PiAKPiA+IC0xPyByZWFsbHkuIFlvdSBhcmUgaW4gd2hpbGUoMSkgd291bGRuJ3QgYnJlYWsgbWFr ZSBzZW5zZSBoZXJlPwo+ID4gCj4gCj4gRG9lcyBtZWFuczogdXNpbmcgYnJlYWs/CgppdCBtZWFu cyB0d28gdGhpbmdzLCB3ZSBkb24ndCB1c2UgcmV0dXJuIC0xLCBpZiBpdCBpcyB2YWxpZCBlcnJv ciB0aGVuIHJldHVybgphIHByb3BlciBrZXJuZWwgZXJyb3IgY29kZQpzZWNvbmQsIHNpbmNlIGl0 IGlzIGEgd2hpbGUgbG9vcCwgZG8geW91IHdhbnQgdG8gdXNlIGEgYnJlYWs/Cg==