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: [RFC,v3,5/7] dmaengine: Add Synopsys eDMA IP PCIe glue-logic From: Gustavo Pimentel Message-Id: <916f319b-9e45-6d78-4ecc-850feda84bb3@synopsys.com> Date: Mon, 14 Jan 2019 11:38:02 +0000 To: Andy Shevchenko , Gustavo Pimentel Cc: "linux-pci@vger.kernel.org" , "dmaengine@vger.kernel.org" , Vinod Koul , Dan Williams , Eugeniy Paltsev , Russell King , Niklas Cassel , Lorenzo Pieralisi , Joao Pinto , Jose Abreu , Luis Oliveira , Vitor Soares , Nelson Costa , Pedro Sousa List-ID: T24gMTEvMDEvMjAxOSAxOTo0NywgQW5keSBTaGV2Y2hlbmtvIHdyb3RlOgo+IE9uIEZyaSwgSmFu IDExLCAyMDE5IGF0IDA3OjMzOjQxUE0gKzAxMDAsIEd1c3Rhdm8gUGltZW50ZWwgd3JvdGU6Cj4+ IFN5bm9wc3lzIGVETUEgSVAgaXMgbm9ybWFsbHkgZGlzdHJpYnV0ZWQgYWxvbmcgd2l0aCBTeW5v cHN5cyBQQ0llCj4+IEVuZFBvaW50IElQIChkZXBlbmRzIG9mIHRoZSB1c2UgYW5kIGxpY2Vuc2lu ZyBhZ3JlZW1lbnQpLgo+Pgo+PiBUaGlzIElQIHJlcXVpcmVzIHNvbWUgYmFzaWMgY29uZmlndXJh dGlvbnMsIHN1Y2ggYXM6Cj4+ICAtIGVETUEgcmVnaXN0ZXJzIEJBUgo+PiAgLSBlRE1BIHJlZ2lz dGVycyBvZmZzZXQKPj4gIC0gZURNQSByZWdpc3RlcnMgc2l6ZQo+PiAgLSBlRE1BIGxpbmtlZCBs aXN0IG1lbW9yeSBCQVIKPj4gIC0gZURNQSBsaW5rZWQgbGlzdCBtZW1vcnkgb2Zmc2V0Cj4+ICAt IGVETUEgbGlua2VkIGxpc3QgbWVtb3J5IHN6ZQo+PiAgLSBlRE1BIGRhdGEgbWVtb3J5IEJBUgo+ PiAgLSBlRE1BIGRhdGEgbWVtb3J5IG9mZnNldAo+PiAgLSBlRE1BIGRhdGEgbWVtb3J5IHNpemUK Pj4gIC0gZURNQSB2ZXJzaW9uCj4+ICAtIGVETUEgbW9kZQo+PiAgLSBJUlFzIGF2YWlsYWJsZSBm b3IgZURNQQo+Pgo+PiBBcyBhIHdvcmtpbmcgZXhhbXBsZSwgUENJZSBnbHVlLWxvZ2ljIHdpbGwg YXR0YWNoIHRvIGEgU3lub3BzeXMgUENJZQo+PiBFbmRQb2ludCBJUCBwcm90b3R5cGUga2l0IChW ZW5kb3IgSUQgPSAweDE2YzMsIERldmljZSBJRCA9IDB4ZWRkYSksCj4+IHdoaWNoIGhhcyBidWls dC1pbiBhbiBlRE1BIElQIHdpdGggdGhpcyBkZWZhdWx0IGNvbmZpZ3VyYXRpb246Cj4+ICAtIGVE TUEgcmVnaXN0ZXJzIEJBUiA9IDAKPj4gIC0gZURNQSByZWdpc3RlcnMgb2Zmc2V0ID0gMHgwMDAw MTAwMCAoNCBLYnl0ZXMpCj4+ICAtIGVETUEgcmVnaXN0ZXJzIHNpemUgPSAweDAwMDAyMDAwICg4 IEtieXRlcykKPj4gIC0gZURNQSBsaW5rZWQgbGlzdCBtZW1vcnkgQkFSID0gMgo+PiAgLSBlRE1B IGxpbmtlZCBsaXN0IG1lbW9yeSBvZmZzZXQgPSAweDAwMDAwMDAwICgwIEtieXRlcykKPj4gIC0g ZURNQSBsaW5rZWQgbGlzdCBtZW1vcnkgc2l6ZSA9IDB4MDA4MDAwMDAgKDggTWJ5dGVzKQo+PiAg LSBlRE1BIGRhdGEgbWVtb3J5IEJBUiA9IDIKPj4gIC0gZURNQSBkYXRhIG1lbW9yeSBvZmZzZXQg PSAweDAwODAwMDAwICg4IE1ieXRlcykKPj4gIC0gZURNQSBkYXRhIG1lbW9yeSBzaXplID0gMHgw MzgwMDAwMCAoNTYgTWJ5dGVzKQo+PiAgLSBlRE1BIHZlcnNpb24gPSAwCj4+ICAtIGVETUEgbW9k ZSA9IEVETUFfTU9ERV9VTlJPTEwKPj4gIC0gSVJRcyA9IDEKPj4KPj4gVGhpcyBkcml2ZXIgY2Fu IGJlIGNvbXBpbGUgYXMgYnVpbHQtaW4gb3IgZXh0ZXJuYWwgbW9kdWxlIGluIGtlcm5lbC4KPj4K Pj4gVG8gZW5hYmxlIHRoaXMgZHJpdmVyIGp1c3Qgc2VsZWN0IERXX0VETUFfUENJRSBvcHRpb24g aW4ga2VybmVsCj4+IGNvbmZpZ3VyYXRpb24sIGhvd2V2ZXIgaXQgcmVxdWlyZXMgYW5kIHNlbGVj dHMgYXV0b21hdGljYWxseSBEV19FRE1BCj4+IG9wdGlvbiB0b28uCj4+Cj4gCj4+IENoYW5nZXM6 Cj4+IFJGQyB2MS0+UkZDIHYyOgo+IAo+IENoYW5nZXMgZ28gYWZ0ZXIgJy0tLSAnIGxpbmUuCgpB dCB0aGUgbGFzdCBMaW51eCBQbHVtYmVycyBDb25mZXJlbmNlIHRoZXJlIHdlcmUgc29tZSBzdWJz eXN0ZW0gbWFpbnRhaW5lcnMgd2hvCmFza2VkIHRoYXQgdGhlIHRyYWNrIGNoYW5nZXMgYmUgaW5j bHVkZWQgaW4gdGhlIGRlc2NyaXB0aW9uIGFzIGEgd2F5IHRvIG5vdCBsb3NlCnRoZSBwcmV2aW91 cyB3b3JrIGRvbmUuIFRoYXQgd2h5IEkgcHV0IGl0IGJlZm9yZSB0aGUgJy0tLScgbGluZSwgYnV0 IGl0J3MKaW5kaWZmZXJlbnQgdG8gbWUsIEkgY2FuIHB1dCBpdCBhZnRlciB0aGUgJy0tLScgbGlu ZS4KCj4gCj4+ICAtIFJlcGxhY2UgY29tbWVudHMgLy8gKEM5OSBzdHlsZSkgYnkgLyoqLwo+PiAg LSBNZXJnZSB0d28gcGNpbV9pb21hcF9yZWdpb25zKCkgY2FsbHMgaW50byBqdXN0IG9uZSBjYWxs Cj4+ICAtIFJlbW92ZSBwY2lfdHJ5X3NldF9td2koKSBjYWxsCj4+ICAtIFJlcGxhY2Ugc29tZSBk ZXZfaW5mbygpIGJ5IGRldl9kYmcoKSB0byByZWR1Y2UgKm5vaXNlKgo+PiAgLSBSZW1vdmUgcGNp X25hbWUocGRldikgY2FsbCBhZnRlciBiZWluZyBjYWxsIGR3X2VkbWFfcmVtb3ZlKCkKPj4gIC0g UmVtb3ZlIGFsbCBwb3dlciBtYW5hZ2VtZW50IHN1cHBvcnQKPj4gIC0gRml4IHRoZSBoZWFkZXJz IG9mIHRoZSAuYyBhbmQgLmggZmlsZXMgYWNjb3JkaW5nIHRvIHRoZSBtb3N0IHJlY2VudAo+PiAg ICBjb252ZW50aW9uCj4+ICAtIEZpeCBlcnJvcnMgYW5kIGNoZWNrcyBwb2ludGVkIG91dCBieSBj aGVja3BhdGNoIHdpdGggLS1zdHJpY3Qgb3B0aW9uCj4+ICAtIFJlcGxhY2UgcGF0Y2ggc21hbGwg ZGVzY3JpcHRpb24gdGFnIGZyb20gZG1hIGJ5IGRtYWVuZ2luZQo+PiBSRkMgdjItPlJGQyB2MzoK Pj4gIC0gRml4IHByaW50ayB2YXJpYWJsZSBvZiBwaHlzX2FkZHJfdCB0eXBlCj4+ICAtIEZpeCBt aXNzaW5nIHZhcmlhYmxlIGluaXRpYWxpemF0aW9uIChjaGFuLT5jb25maWd1cmVkKQo+PiAgLSBD aGFuZ2UgbGlua2VkIGxpc3Qgc2l6ZSB0byA1MTIgS2J5dGVzCj4+ICAtIEFkZCBkYXRhIG1lbW9y eSBpbmZvcm1hdGlvbgo+PiAgLSBBZGQgcmVnaXN0ZXIgc2l6ZSBpbmZvcm1hdGlvbgo+PiAgLSBB ZGQgY29tbWVudHMgb3IgaW1wcm92ZSBleGlzdGluZyBvbmVzCj4+ICAtIEFkZCBwb3NzaWJpbGl0 eSB0byB3b3JrIHdpdGggbXVsdGlwbGUgSVJRcyBmZWF0dXJlCj4+ICAtIFJlcGxhY2UgTVNJIGFu ZCBNU0ktWCBlbmFibGUgY29uZGl0aW9uIGJ5IHBjaV9kZXZfbXNpX2VuYWJsZWQoKQo+PiAgLSBS ZXBsYWNlIGNvZGUgdG8gYWNxdWlyZSBNU0koLVgpIGFkZHJlc3MgYW5kIGRhdGEgYnkKPj4gICAg Z2V0X2NhY2hlZF9tc2lfbXNnKCkKPiAKPj4gK2VudW0gZHdfZWRtYV9wY2llX2JhciB7Cj4+ICsJ QkFSXzAsCj4+ICsJQkFSXzEsCj4+ICsJQkFSXzIsCj4+ICsJQkFSXzMsCj4+ICsJQkFSXzQsCj4+ ICsJQkFSXzUKPj4gK307Cj4gCj4gcGNpLWVwZi5oIGhhcyB0aGlzLgo+IFdoeSBkdXBsaWNhdGU/ CgpJIGNhbiB1c2UgdGhhdCBoZWFkZXIgc3VyZS4gVGhhbmtzLgoKPiAKPiAKPiBXaGF0IGVsc2Ug aXMgYmVpbmcgZHVwbGljYXRlZCBmcm9tIFBDSSBjb3JlPwo+IAo+PiArc3RhdGljIGJvb2wgZGlz YWJsZV9tc2l4Owo+PiArbW9kdWxlX3BhcmFtKGRpc2FibGVfbXNpeCwgYm9vbCwgMDY0NCk7Cj4+ ICtNT0RVTEVfUEFSTV9ERVNDKGRpc2FibGVfbXNpeCwgIkRpc2FibGUgTVNJLVggaW50ZXJydXB0 cyIpOwo+IAo+IFdoeT8hCj4gV2UgYXJlIG5vIGFsbG93IG5ldyBtb2R1bGUgcGFyYW1ldGVycyB3 aXRob3V0IHZlcnkgc3Ryb25nIGFyZ3VtZW50cy4KClNpbmNlIHRoaXMgaXMgYSByZWZlcmVuY2Ug ZHJpdmVyIGFuZCBtaWdodCBiZSB1c2VkIHRvIHRlc3QgY3VzdG9taXplZCBIVwpzb2x1dGlvbnMs IEkgYWRkZWQgdGhpcyBwYXJhbWV0ZXIgdG8gYWxsb3cgdGhlIHBvc3NpYmlsaXR5IHRvIHRlc3Qg dGhlIHNvbHV0aW9uCmZvcmNpbmcgdGhlIE1TSSBmZWF0dXJlIGJpbmRpbmcuIFRoaXMgaXMgcmVx dWlyZWQgc3BlY2lhbGx5IGlmIHdobyB3aWxsIHRlc3QKdGhpcyBzb2x1dGlvbiBoYXMgYSBSb290 IENvbXBsZXggd2l0aCBib3RoIGZlYXR1cmVzIGF2YWlsYWJsZSAoTVNJIGFuZCBNU0ktWCksCmJl Y2F1c2UgdGhlIEtlcm5lbCB3aWxsIGdpdmUgYWx3YXlzIHByZWZlcmVuY2UgdG8gTVNJLVggYmlu ZGluZyAoYXNzdW1pbmcgdGhhdAp0aGUgRVAgaGFzIGFsc28gYm90aCBmZWF0dXJlcyBhdmFpbGFi bGUpLgoKPiAKPj4gKwo+PiArc3RhdGljIGludCBkd19lZG1hX3BjaWVfcHJvYmUoc3RydWN0IHBj aV9kZXYgKnBkZXYsCj4+ICsJCQkgICAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqcGlk KQo+PiArewo+PiArCWNvbnN0IHN0cnVjdCBkd19lZG1hX3BjaWVfZGF0YSAqcGRhdGEgPSAodm9p ZCAqKXBpZC0+ZHJpdmVyX2RhdGE7Cj4+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRl djsKPj4gKwlzdHJ1Y3QgZHdfZWRtYV9jaGlwICpjaGlwOwo+PiArCXN0cnVjdCBkd19lZG1hICpk dzsKPj4gKwl1bnNpZ25lZCBpbnQgaXJxX2ZsYWdzID0gUENJX0lSUV9NU0k7Cj4+ICsJaW50IGVy ciwgbnJfaXJxcywgaTsKPj4gKwo+IAo+PiArCWlmICghcGRhdGEpIHsKPj4gKwkJZGV2X2Vycihk ZXYsICIlcyBtaXNzaW5nIGRhdGEgc3RydWN0dXJlXG4iLCBwY2lfbmFtZShwZGV2KSk7Cj4+ICsJ CXJldHVybiAtRUZBVUxUOwo+PiArCX0KPiAKPiBVc2VsZXNzIGNoZWNrLgoKV2h5PyBJdCdzIGp1 c3QgYSBwcmVjYXV0aW9uLCBpc24ndCBpdCBhIGdvb2QgcHJhY3RpY2UgYWx3YXlzIHRvIHRoaW5r IG9mIHRoZQp3b3JzdCBjYXNlPwoKPiAKPj4gKwo+PiArCS8qIEVuYWJsZSBQQ0kgZGV2aWNlICov Cj4+ICsJZXJyID0gcGNpbV9lbmFibGVfZGV2aWNlKHBkZXYpOwo+PiArCWlmIChlcnIpIHsKPj4g KwkJZGV2X2VycihkZXYsICIlcyBlbmFibGluZyBkZXZpY2UgZmFpbGVkXG4iLCBwY2lfbmFtZShw ZGV2KSk7Cj4+ICsJCXJldHVybiBlcnI7Cj4+ICsJfQo+PiArCj4+ICsJLyogTWFwcGluZyBQQ0kg QkFSIHJlZ2lvbnMgKi8KPj4gKwllcnIgPSBwY2ltX2lvbWFwX3JlZ2lvbnMocGRldiwgQklUKHBk YXRhLT5yZ19iYXIpIHwKPj4gKwkJCQkgICAgICAgQklUKHBkYXRhLT5sbF9iYXIpIHwKPj4gKwkJ CQkgICAgICAgQklUKHBkYXRhLT5kdF9iYXIpLAo+PiArCQkJCSBwY2lfbmFtZShwZGV2KSk7Cj4+ ICsJaWYgKGVycikgewo+IAo+PiArCQlkZXZfZXJyKGRldiwgIiVzIGVETUEgQkFSIEkvTyByZW1h cHBpbmcgZmFpbGVkXG4iLAo+PiArCQkJcGNpX25hbWUocGRldikpOwo+IAo+IElzbid0IGl0IHBj aV9lcnIoKSA/Cj4gU2FtZSBjb21tZW50IGZvciB0aGUgcmVzdCBzaW1pbGFyIGNhc2VzIGFib3Zl IGFuZCBiZWxvdy4KCk9rLCBJJ2xsIHJlcGxhY2UgYWxsIGRldl8qIGZ1bmN0aW9uIGluIHRoaXMg ZmlsZS4KVGhhbmtzLgoKPiAKPj4gKwkJcmV0dXJuIGVycjsKPj4gKwl9Cj4+ICsKPj4gKwlwY2lf c2V0X21hc3RlcihwZGV2KTsKPj4gKwo+PiArCW5yX2lycXMgPSBwY2lfYWxsb2NfaXJxX3ZlY3Rv cnMocGRldiwgMSwgcGRhdGEtPmlycXNfY250LCBpcnFfZmxhZ3MpOwo+PiArCWlmIChucl9pcnFz IDwgMSkgewo+PiArCQlkZXZfZXJyKGRldiwgIiVzIGZhaWxlZCB0byBhbGxvYyBJUlEgdmVjdG9y IChOdW1iZXIgb2YgSVJRcz0ldSlcbiIsCj4+ICsJCQlwY2lfbmFtZShwZGV2KSwgbnJfaXJxcyk7 Cj4+ICsJCXJldHVybiAtRVBFUk07Cj4+ICsJfQo+PiArCj4+ICsJLyogRGF0YSBzdHJ1Y3R1cmUg aW5pdGlhbGl6YXRpb24gKi8KPj4gKwljaGlwLT5kdyA9IGR3Owo+PiArCWNoaXAtPmRldiA9IGRl djsKPj4gKwljaGlwLT5pZCA9IHBkZXYtPmRldmZuOwo+PiArCWNoaXAtPmlycSA9IHBkZXYtPmly cTsKPj4gKwo+IAo+PiArCWlmICghcGNpbV9pb21hcF90YWJsZShwZGV2KSkKPj4gKwkJcmV0dXJu IC1FQUNDRVM7Cj4gCj4gTmV2ZXIgaGFwcGVuIGNvbmRpdGlvbi4gVGh1cyB1c2VsZXNzLgoKcGNp bV9pb21hcF90YWJsZSgpIGNhbiByZXR1cm4gTlVMTCBpbiBjYXNlIG9mIGFsbG9jYXRpb24gZmFp bHVyZS4gQmVzaWRlcyB0aGF0LAppc24ndCBpdCBhIGdvb2QgcHJhY3RpY2UgYWx3YXlzIHRvIHRo aW5rIG9mIHRoZSB3b3JzdCBjYXNlPwoKPiAKPj4gKwlkZXZfaW5mbyhkZXYsICJEZXNpZ25XYXJl IGVETUEgUENJZSBkcml2ZXIgbG9hZGVkIGNvbXBsZXRlbHlcbiIpOwo+IAo+IFVzZWxlc3MuCgpJ dCdzIGhlbHBmdWwgZm9yIGJyaW5nIHVwLCBJIGNhbiBwYXNzIGl0IHRvIGRiZy4KCj4gCj4+ICt9 Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGR3X2VkbWFfcGNpZV9yZW1vdmUoc3RydWN0IHBjaV9kZXYg KnBkZXYpCj4+ICt7Cj4+ICsJc3RydWN0IGR3X2VkbWFfY2hpcCAqY2hpcCA9IHBjaV9nZXRfZHJ2 ZGF0YShwZGV2KTsKPj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+PiArCWlu dCBlcnI7Cj4+ICsKPj4gKwkvKiBTdG9wcGluZyBlRE1BIGRyaXZlciAqLwo+PiArCWVyciA9IGR3 X2VkbWFfcmVtb3ZlKGNoaXApOwo+PiArCWlmIChlcnIpCj4+ICsJCWRldl93YXJuKGRldiwgImNh bid0IHJlbW92ZSBkZXZpY2UgcHJvcGVybHk6ICVkXG4iLCBlcnIpOwo+PiArCj4+ICsJLyogRnJl ZWluZyBJUlFzICovCj4+ICsJcGNpX2ZyZWVfaXJxX3ZlY3RvcnMocGRldik7Cj4+ICsKPj4gKwlk ZXZfaW5mbyhkZXYsICJEZXNpZ25XYXJlIGVETUEgUENJZSBkcml2ZXIgdW5sb2FkZWQgY29tcGxl dGVseVxuIik7Cj4gCj4gRGl0dG8uCgpJdCdzIGhlbHBmdWwgZm9yIGJyaW5nIHVwLCBJIGNhbiBw YXNzIGl0IHRvIGRiZy4KCj4gCj4+ICt9Cj4gCj4+ICtNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwg ZHdfZWRtYV9wY2llX2lkX3RhYmxlKTsKPj4gKwo+PiArc3RhdGljIHN0cnVjdCBwY2lfZHJpdmVy IGR3X2VkbWFfcGNpZV9kcml2ZXIgPSB7Cj4+ICsJLm5hbWUJCT0gImR3LWVkbWEtcGNpZSIsCj4+ ICsJLmlkX3RhYmxlCT0gZHdfZWRtYV9wY2llX2lkX3RhYmxlLAo+PiArCS5wcm9iZQkJPSBkd19l ZG1hX3BjaWVfcHJvYmUsCj4+ICsJLnJlbW92ZQkJPSBkd19lZG1hX3BjaWVfcmVtb3ZlLAo+IAo+ IFBvd2VyIG1hbmFnZW1lbnQ/CgpJJ3ZlIHJlbW92ZWQgdGhlIHBvd2VyIG1hbmFnZW1lbnQgZm9y IG5vdywgc2luY2Ugd2l0aCBteSBjdXJyZW50IHNldHVwIEkgZG9uJ3QKaGF2ZSB0aGUgbmVjZXNz YXJ5IGNvbmRpdGlvbnMgdG8gdGVzdCBpdC4gSSBwcmVmZXIgbm90IHN1Ym1pdHRpbmcgdGhhdCBj b2RlIGZvciBub3cuCgo+IAo+PiArfTsKPiAKClRoYW5rcyBmb3IgdGhlIGlucHV0cyBBbmR5ISBU aGV5IGhhdmUgYmVlbiBwcmV0dHkgZ29vZCEKClJlZ2FyZHMsCkd1c3Rhdm8K