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: [2/2] dmaengine: mediatek: Add MediaTek Command-Queue DMA controller for MT6765 SoC From: Vinod Koul Message-Id: <20190104123836.GB13372@vkoul-mobl.Dlink> Date: Fri, 4 Jan 2019 18:08:36 +0530 To: shun-chih.yu@mediatek.com Cc: Sean Wang , Rob Herring , Matthias Brugger , Dan Williams , dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, srv_wsdupstream@mediatek.com List-ID: T24gMjctMTItMTgsIDIxOjEwLCBzaHVuLWNoaWgueXVAbWVkaWF0ZWsuY29tIHdyb3RlOgo+IEZy b206IFNodW4tQ2hpaCBZdSA8c2h1bi1jaGloLnl1QG1lZGlhdGVrLmNvbT4KPiAKClRoaXMgc2hv dWxkIGJlIHY0IG9mIHRoZSBwYXRjaCBzZXJpZXMsIHdoeSBpcyBpdCBub3QgdGFnZ2VkIHNvPwoK PiBNZWRpYVRlayBDb21tYW5kLVF1ZXVlIERNQSBjb250cm9sbGVyIChDUURNQSkgb24gTVQ2NzY1 IFNvQyBpcyBkZWRpY2F0ZWQKPiB0byBtZW1vcnktdG8tbWVtb3J5IHRyYW5zZmVyIHRocm91Z2gg cXVldWUgYmFzZWQgZGVzY3JpcHRvciBtYW5hZ2VtZW50LgoKSGF2ZSB5b3UgdGVzdGVkIHRoaXMg d2l0aCBkbWF0ZXN0LCBpZiBzbyBjYW4geW91IHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUKdGVzdCBh cyB3ZWxsLgoKPiBUaGVyZSBhcmUgb25seSAzIHBoeXNpY2FsIGNoYW5uZWxzIGluc2lkZSBDUURN QSwgd2hpbGUgdGhlIGRyaXZlciBpcwo+IGV4dGVuZGVkIHRvIHN1cHBvcnQgMzIgdmlydHVhbCBj aGFubmVscyBmb3IgbXVsdGlwbGUgZG1hIHVzZXJzIHRvIGlzc3VlCj4gZG1hIHJlcXVlc3RzIG9u dG8gdGhlIENRRE1BIHNpbXVsdGFuZW91c2x5Lgo+IAo+IENoYW5nZS1JZDogSTFlOGQxMTZjNWVj YmJjNDkxOTBmZmM5MjVjYjU5YTBkMDM1ZDg4NmIKClBsZWFzZSByZW1vdmUgdGhpcyBmcm9tIHVw c3RyZWFtLCBjaGVja3BhdGNoIHdvdWxkIGhhdmUgd2FybmVkIHRoYXQhCgo+IFNpZ25lZC1vZmYt Ynk6IFNodW4tQ2hpaCBZdSA8c2h1bi1jaGloLnl1QG1lZGlhdGVrLmNvbT4KPiBSZXZpZXdlZC1i eTogVmlub2QgS291bCA8dmtvdWxAa2VybmVsLm9yZz4KClRoaXMgaXMgX1dST05HXyBJIGhhdmUg bmV2ZXIgcHJvdmlkZWQgc3VjaCB0YWcsIGNhbiB5b3UgZXhwbGFpbiB3aHkgdGhpcwp3YXMgYWRk ZWQgd2l0aG91dCBteSBhcHByb3ZhbD8KCj4gIAkgIFRoaXMgY29udHJvbGxlciBwcm92aWRlcyB0 aGUgY2hhbm5lbHMgd2hpY2ggaXMgZGVkaWNhdGVkIHRvCj4gIAkgIG1lbW9yeS10by1tZW1vcnkg dHJhbnNmZXIgdG8gb2ZmbG9hZCBmcm9tIENQVSB0aHJvdWdoIHJpbmctCj4gIAkgIGJhc2VkIGRl c2NyaXB0b3IgbWFuYWdlbWVudC4KPiArCj4gK2NvbmZpZyBNVEtfQ1FETUEKPiArCXRyaXN0YXRl ICJNZWRpYVRlayBDb21tYW5kLVF1ZXVlIERNQSBjb250cm9sbGVyIHN1cHBvcnQiCgpBbSBub3Qg c3VyZSBpZiBJIGFza2VkIHRoaXMgZWFybGllciBidXQsIHdoYXQgaXMgZGlmZmVyZW5jZSB3aXRo IEhTRE1BPwoKPiArLyoqCj4gKyAqIHN0cnVjdCBtdGtfY3FkbWFfcGNoYW4gLSBUaGUgc3RydWN0 IGhvbGRpbmcgaW5mbyBkZXNjcmliaW5nIHBoeXNpY2FsCj4gKyAqICAgICAgICAgICAgICAgICAg ICAgICAgIGNoYW5uZWwgKFBDKQo+ICsgKiBAcXVldWU6ICAgICAgICAgICAgICAgICBRdWV1ZSBm b3IgdGhlIENWRHMgaXNzdWVkIHRvIHRoaXMgUEMKPiArICogQGJhc2U6ICAgICAgICAgICAgICAg ICAgVGhlIG1hcHBlZCByZWdpc3RlciBJL08gYmFzZSBvZiB0aGlzIFBDCj4gKyAqIEBpcnE6ICAg ICAgICAgICAgICAgICAgIFRoZSBJUlEgdGhhdCB0aGlzIFBDIGFyZSB1c2luZwo+ICsgKiBAcmVm Y250OiAgICAgICAgICAgICAgICBUcmFjayBob3cgbWFueSBWQ3MgYXJlIHVzaW5nIHRoaXMgUEMK PiArICogQGxvY2s6ICAgICAgICAgICAgICAgICBMb2NrIHByb3RlY3QgYWdhaXN0aW5nIG11bHRp cGxlIFZDcyBhY2Nlc3MgUEMKClBsZWFzZSBtYWludGFpbiBhbGlnbm1lbnQhCgo+ICsgKi8KPiAr c3RydWN0IG10a19jcWRtYV9wY2hhbiB7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIHF1ZXVlOwo+ICsJ dm9pZCBfX2lvbWVtICpiYXNlOwo+ICsJdTMyIGlycTsKPiArCXJlZmNvdW50X3QgcmVmY250Owo+ ICsKPiArCS8qIGxvY2sgdG8gcHJvdGVjdCBQQyAqLwoKVGhpcyBpcyBub3QgcmVxdWlyZWQsIHlv dSBhbHJlYWR5IGhhdmUgYWJvdmUgIQoKPiArCXNwaW5sb2NrX3QgbG9jazsKPiArfTsKPiArCj4g Ky8qKgo+ICsgKiBzdHJ1Y3QgbXRrX2NxZG1hX3ZjaGFuIC0gVGhlIHN0cnVjdCBob2xkaW5nIGlu Zm8gZGVzY3JpYmluZyB2aXJ0dWFsCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5u ZWwgKFZDKQo+ICsgKiBAdmM6ICAgICAgICAgICAgICAgICAgICBBbiBpbnN0YW5jZSBmb3Igc3Ry dWN0IHZpcnRfZG1hX2NoYW4KPiArICogQHBjOiAgICAgICAgICAgICAgICAgICAgVGhlIHBvaW50 ZXIgdG8gdGhlIHVuZGVybHlpbmcgUEMKPiArICogQGlzc3VlX2NvbXBsZXRpb246CSAgIFRoZSB3 YWl0IGZvciBhbGwgaXNzdWVkIGRlc2NyaXB0b3JzIGNvbXBsZXRpdGVkCgp0eXBvIGNvbXBsZXRp dGVkICwgYW0gbm90IHN1cmUgd2h5IHlvdSBuZWVkIHRoaXMKCj4gK3N0YXRpYyB2b2lkIG10a19k bWFfd3JpdGUoc3RydWN0IG10a19jcWRtYV9wY2hhbiAqcGMsIHUzMiByZWcsIHUzMiB2YWwpCj4g K3sKPiArCXdyaXRlbF9yZWxheGVkKHZhbCwgcGMtPmJhc2UgKyByZWcpOwoKV2h5IGlzIGl0IHJl bGF4ZWQgb25lPwoKPiArc3RhdGljIHZvaWQgbXRrX2NxZG1hX2NvbnN1bWVfd29ya19xdWV1ZShz dHJ1Y3QgbXRrX2NxZG1hX3BjaGFuICpwYykKPiArewo+ICsJc3RydWN0IG10a19jcWRtYV92Y2hh biAqY3ZjOwo+ICsJc3RydWN0IG10a19jcWRtYV92ZGVzYyAqY3ZkOwo+ICsJc2l6ZV90IHRsZW47 Cj4gKwo+ICsJLyogY29uc3VtZSBhIENWRCBmcm9tIFBDJ3MgcXVldWUgKi8KPiArCWN2ZCA9IGxp c3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmcGMtPnF1ZXVlLAo+ICsJCQkJICAgICAgIHN0cnVjdCBt dGtfY3FkbWFfdmRlc2MsIG5vZGUpOwoKeW91IGNhbiB1c2UgdmNoYW5fbmV4dF9kZXNjKCkgYW5k IGFsc28gcmVtb3ZlIHlvdXIgb3duIHF1ZXVlIGFzCnZpcnQtZGVzYyBhbHJlYWR5IGltcGxlbWVu dHMgdGhhdCBsb2dpYyEKCj4gKwlpZiAodW5saWtlbHkoIWN2ZCkpCj4gKwkJcmV0dXJuOwo+ICsK PiArCWN2YyA9IHRvX2NxZG1hX3ZjaGFuKGN2ZC0+Y2gpOwo+ICsKPiArCXRsZW4gPSAoY3ZkLT5s ZW4gPCBNVEtfQ1FETUFfTUFYX0xFTikgPyBjdmQtPmxlbiA6IE1US19DUURNQV9NQVhfTEVOOwo+ ICsJY3ZkLT5sZW4gLT0gdGxlbjsKPiArCWN2ZC0+c3JjICs9IHRsZW47Cj4gKwljdmQtPmRlc3Qg Kz0gdGxlbjsKPiArCj4gKwkvKiBjaGVjayB3aGV0aGVyIHRoZSBDVkQgY29tcGxldGVkICovCj4g KwlpZiAoIWN2ZC0+bGVuKSB7Cj4gKwkJLyogZGVsZXRlIENWRCBmcm9tIFBDJ3MgcXVldWUgKi8K PiArCQlsaXN0X2RlbCgmY3ZkLT5ub2RlKTsKPiArCj4gKwkJc3Bpbl9sb2NrKCZjdmMtPnZjLmxv Y2spOwo+ICsKPiArCQkvKiBhZGQgdGhlIFZEIGludG8gbGlzdCBkZXNjX2NvbXBsZXRlZCAqLwo+ ICsJCXZjaGFuX2Nvb2tpZV9jb21wbGV0ZSgmY3ZkLT52ZCk7Cj4gKwo+ICsJCS8qIHNldHVwIGNv bXBsZXRpb24gaWYgdGhpcyBWQyBpcyB1bmRlciBzeW5jaHJvbml6YXRpb24gKi8KPiArCQlpZiAo Y3ZjLT5pc3N1ZV9zeW5jaHJvbml6ZSAmJiAhbXRrX2NxZG1hX2lzX3ZjaGFuX2FjdGl2ZShjdmMp KSB7Cj4gKwkJCWNvbXBsZXRlKCZjdmMtPmlzc3VlX2NvbXBsZXRpb24pOwo+ICsJCQljdmMtPmlz c3VlX3N5bmNocm9uaXplID0gZmFsc2U7Cj4gKwkJfQoKd2h5IGRvIHlvdSBuZWVkIHlvdXIgb3du IGNvbXBsZXRpb24/Cgo+ICsKPiArCQlzcGluX3VubG9jaygmY3ZjLT52Yy5sb2NrKTsKPiArCX0K PiArCj4gKwkvKiBpdGVyYXRlIG9uIHRoZSBuZXh0IENWRCBpZiB0aGUgY3VycmVudCBDVkQgY29t cGxldGVkICovCj4gKwlpZiAoIWN2ZC0+bGVuKQo+ICsJCWN2ZCA9IGxpc3RfZmlyc3RfZW50cnlf b3JfbnVsbCgmcGMtPnF1ZXVlLAo+ICsJCQkJCSAgICAgICBzdHJ1Y3QgbXRrX2NxZG1hX3ZkZXNj LCBub2RlKTsKPiArCj4gKwkvKiBzdGFydCB0aGUgbmV4dCB0cmFuc2FjdGlvbiAqLwo+ICsJaWYg KGN2ZCkKPiArCQltdGtfY3FkbWFfc3RhcnQocGMsIGN2ZCk7Cgptb3N0IG9mIHRoaXMgbG9naWMg bG9va3MgcmVkdWFuZGFudCB0byBtZS4gVmlydC1kbWEgd2FzIGRlc2lnbmVkIHRvIGRvCmV4YWN0 bHkgdGhpcywgaGF2ZSBOIHBoeXNpY2FsIGNoYW5uZWxzIGFuZCBzaGFyZSB3aXRoIE0gdmlydCBj aGFubmVscy4KUGxlYXNlIHJldXNlIGFuZCByZW1vdmUgY29kZSBmcm9tIHRoaXMgZHJpdmVyLgoK PiArc3RhdGljIHN0cnVjdCB2aXJ0X2RtYV9kZXNjICptdGtfY3FkbWFfZmluZF9hY3RpdmVfZGVz YyhzdHJ1Y3QgZG1hX2NoYW4gKmMsCj4gKwkJCQkJCQlkbWFfY29va2llX3QgY29va2llKQo+ICt7 Cj4gKwlzdHJ1Y3QgbXRrX2NxZG1hX3ZjaGFuICpjdmMgPSB0b19jcWRtYV92Y2hhbihjKTsKPiAr CXN0cnVjdCB2aXJ0X2RtYV9kZXNjICp2ZDsKPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gKwo+ ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmN2Yy0+cGMtPmxvY2ssIGZsYWdzKTsKPiArCWxpc3RfZm9y X2VhY2hfZW50cnkodmQsICZjdmMtPnBjLT5xdWV1ZSwgbm9kZSkKPiArCQlpZiAodmQtPnR4LmNv b2tpZSA9PSBjb29raWUpIHsKPiArCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3ZjLT5wYy0+ bG9jaywgZmxhZ3MpOwo+ICsJCQlyZXR1cm4gdmQ7Cj4gKwkJfQo+ICsJc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmY3ZjLT5wYy0+bG9jaywgZmxhZ3MpOwo+ICsKPiArCWxpc3RfZm9yX2VhY2hfZW50 cnkodmQsICZjdmMtPnZjLmRlc2NfaXNzdWVkLCBub2RlKQo+ICsJCWlmICh2ZC0+dHguY29va2ll ID09IGNvb2tpZSkKPiArCQkJcmV0dXJuIHZkOwoKdmNoYW5fZmluZF9kZXNjKCkgPz8KCj4gK3N0 YXRpYyBlbnVtIGRtYV9zdGF0dXMgbXRrX2NxZG1hX3R4X3N0YXR1cyhzdHJ1Y3QgZG1hX2NoYW4g KmMsCj4gKwkJCQkJICAgZG1hX2Nvb2tpZV90IGNvb2tpZSwKPiArCQkJCQkgICBzdHJ1Y3QgZG1h X3R4X3N0YXRlICp0eHN0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgbXRrX2NxZG1hX3ZjaGFuICpjdmMg PSB0b19jcWRtYV92Y2hhbihjKTsKPiArCXN0cnVjdCBtdGtfY3FkbWFfdmRlc2MgKmN2ZDsKPiAr CXN0cnVjdCB2aXJ0X2RtYV9kZXNjICp2ZDsKPiArCWVudW0gZG1hX3N0YXR1cyByZXQ7Cj4gKwl1 bnNpZ25lZCBsb25nIGZsYWdzOwo+ICsJc2l6ZV90IGJ5dGVzID0gMDsKPiArCj4gKwlyZXQgPSBk bWFfY29va2llX3N0YXR1cyhjLCBjb29raWUsIHR4c3RhdGUpOwo+ICsJaWYgKHJldCA9PSBETUFf Q09NUExFVEUgfHwgIXR4c3RhdGUpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlzcGluX2xvY2tf aXJxc2F2ZSgmY3ZjLT52Yy5sb2NrLCBmbGFncyk7Cj4gKwl2ZCA9IG10a19jcWRtYV9maW5kX2Fj dGl2ZV9kZXNjKGMsIGNvb2tpZSk7Cj4gKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjdmMtPnZj LmxvY2ssIGZsYWdzKTsKPiArCj4gKwlpZiAodmQpIHsKPiArCQljdmQgPSB0b19jcWRtYV92ZGVz Yyh2ZCk7Cj4gKwkJYnl0ZXMgPSBjdmQtPmxlbjsKPiArCX0KPiArCj4gKwlkbWFfc2V0X3Jlc2lk dWUodHhzdGF0ZSwgYnl0ZXMpOwoKSGF2ZSB5b3UgdGVzdGVkIHRoaXMgYW5kIGFyZSBhYmxlIHRv IHJlcG9ydCByZXNpZHVlIHByb3Blcmx5PwoKPiArc3RhdGljIHZvaWQgbXRrX2NxZG1hX2ZyZWVf aW5hY3RpdmVfZGVzYyhzdHJ1Y3QgZG1hX2NoYW4gKmMpCj4gK3sKPiArCXN0cnVjdCB2aXJ0X2Rt YV9jaGFuICp2YyA9IHRvX3ZpcnRfY2hhbihjKTsKPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4g KwlMSVNUX0hFQUQoaGVhZCk7Cj4gKwo+ICsJLyoKPiArCSAqIHNldCBkZXNjX2FsbG9jYXRlZCwg ZGVzY19zdWJtaXR0ZWQsCj4gKwkgKiBhbmQgZGVzY19pc3N1ZWQgYXMgdGhlIGNhbmRpY2F0ZXMg dG8gYmUgZnJlZWQKPiArCSAqLwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJnZjLT5sb2NrLCBmbGFn cyk7Cj4gKwlsaXN0X3NwbGljZV90YWlsX2luaXQoJnZjLT5kZXNjX2FsbG9jYXRlZCwgJmhlYWQp Owo+ICsJbGlzdF9zcGxpY2VfdGFpbF9pbml0KCZ2Yy0+ZGVzY19zdWJtaXR0ZWQsICZoZWFkKTsK PiArCWxpc3Rfc3BsaWNlX3RhaWxfaW5pdCgmdmMtPmRlc2NfaXNzdWVkLCAmaGVhZCk7CgpZb3Ug bWlzc2VkIGNvbXBsZXRlZCBhbmQgZGlkbnQgdXNlIHZjaGFuX2dldF9hbGxfZGVzY3JpcHRvcnMo KSA/PwoKCkxvb2tpbmcgYXQgdGhlIGRyaXZlciwgSSBmZWVsIHRoaW5ncyBoYXZlIGJlZW4gY29t cGxpY2F0ZWQgYSBiaXQsIHlvdQpjYW4gcmV1c2UgbW9yZSBjb2RlIGFuZCByb3V0aW5lcyBpbiB2 Y2hhbiBsYXllciBhbmQgcmVtb3ZlIGRyaXZlcgpoYW5kbGluZyBhbmQgbWFrZSB0aGluZ3Mgd2l0 aCBsZXNzIGJ1Z3MgKHVzZWQgbW9yZSB0ZXN0ZWQgZ2VuZXJpYyBjb2RlKQphbmQgc2ltcGxlciB0 byByZXZpZXcgLi4KClBsZWFzZSBkbyBzbyBpbiBuZXh0IHJldiBhbmQgdGFnIHZlcnNpb24gcHJv cGVybHkhCg==