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,4/7] dmaengine: stm32-dma: Add DMA/MDMA chaining support From: Vinod Koul Message-Id: <20181007160030.GB2372@vkoul-mobl> Date: Sun, 7 Oct 2018 21:30:30 +0530 To: Pierre-Yves MORDRET Cc: Rob Herring , Mark Rutland , Alexandre Torgue , Maxime Coquelin , Dan Williams , devicetree@vger.kernel.org, dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org List-ID: T24gMjgtMDktMTgsIDE1OjAxLCBQaWVycmUtWXZlcyBNT1JEUkVUIHdyb3RlOgo+IFRoaXMgcGF0 Y2ggYWRkcyBzdXBwb3J0IG9mIERNQS9NRE1BIGNoYWluaW5nIHN1cHBvcnQuCj4gSXQgaW50cm9k dWNlcyBhbiBpbnRlcm1lZGlhdGUgdHJhbnNmZXIgYmV0d2VlbiBwZXJpcGhlcmFscyBhbmQgU1RN MzIgRE1BLgo+IFRoaXMgaW50ZXJtZWRpYXRlIHRyYW5zZmVyIGlzIHRyaWdnZXJlZCBieSBTVyBm b3Igc2luZ2xlIE0yRCB0cmFuc2ZlciBhbmQKPiBieSBTVE0zMiBETUEgSVAgZm9yIGFsbCBvdGhl ciBtb2RlcyAoc2csIGN5Y2xpYykgYW5kIGRpcmVjdGlvbiAoRDJNKS4KPiAKPiBBIGdlbmVyaWMg U1JBTSBhbGxvY2F0b3IgaXMgdXNlZCBmb3IgdGhpcyBpbnRlcm1lZGlhdGUgYnVmZmVyCj4gRWFj aCBETUEgY2hhbm5lbCB3aWxsIGJlIGFibGUgdG8gZGVmaW5lIGl0cyBTUkFNIG5lZWRzIHRvIGFj aGlldmUgY2hhaW5pbmcKPiBmZWF0dXJlIDogKDIgXiBvcmRlcikgKiBQQUdFX1NJWkUuCj4gRm9y IGN5Y2xpYywgU1JBTSBidWZmZXIgaXMgZGVyaXZlZCBmcm9tIHBlcmlvZCBsZW5ndGggKHJvdW5k ZWQgb24KPiBQQUdFX1NJWkUpLgoKU28gSUlVQywgeW91IGNoYWluIHR3byBkbWEgdHhucyB0b2dl dGhlciBhbmQgdHJhbnNmZXIgZGF0YSB2aWEgYW4gU1JBTT8KCj4gCj4gU2lnbmVkLW9mZi1ieTog UGllcnJlLVl2ZXMgTU9SRFJFVCA8cGllcnJlLXl2ZXMubW9yZHJldEBzdC5jb20+Cj4gLS0tCj4g ICBWZXJzaW9uIGhpc3Rvcnk6Cj4gICAgIHYzOgo+ICAgICAgICAqIFNvbHZlIEtCdWlsZCB3YXJu aW5nCj4gICAgIHYyOgo+ICAgICB2MToKPiAgICAgICAgKiBJbml0aWFsCj4gLS0tCj4gLS0tCj4g IGRyaXZlcnMvZG1hL3N0bTMyLWRtYS5jIHwgODc5ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLQoKdGhhdCBpcyBhIGxvdCBvZiBjaGFuZ2UgZm9yIGEgZHJp dmVyLCBjb25zaWRlciBzcGxpdHRpbmcgaXQgdXAKbG9naWNhbGx5IGluIHNtYWxsZXIgY2hhbmdl cy4uLgoKPiAgMSBmaWxlIGNoYW5nZWQsIDc3MiBpbnNlcnRpb25zKCspLCAxMDcgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL3N0bTMyLWRtYS5jIGIvZHJpdmVycy9k bWEvc3RtMzItZG1hLmMKPiBpbmRleCAzNzllOGQ1Li44NWU4MWM0IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZG1hL3N0bTMyLWRtYS5jCj4gKysrIGIvZHJpdmVycy9kbWEvc3RtMzItZG1hLmMKPiBA QCAtMTUsMTEgKzE1LDE0IEBACj4gICNpbmNsdWRlIDxsaW51eC9kbWFlbmdpbmUuaD4KPiAgI2lu Y2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KPiAr I2luY2x1ZGUgPGxpbnV4L2dlbmFsbG9jLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Cj4g KyNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4K PiAgI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ ICAjaW5jbHVkZSA8bGludXgvb2YuaD4KPiArI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJlc3MuaD4K PiAgI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgo+ICAjaW5jbHVkZSA8bGludXgvb2ZfZG1h Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiBAQCAtMTE4LDYgKzEy MSw3IEBACj4gICNkZWZpbmUgU1RNMzJfRE1BX0ZJRk9fVEhSRVNIT0xEX0ZVTEwJCQkweDAzCj4g IAo+ICAjZGVmaW5lIFNUTTMyX0RNQV9NQVhfREFUQV9JVEVNUwkweGZmZmYKPiArI2RlZmluZSBT VE0zMl9ETUFfU1JBTV9HUkFOVUxBUklUWQlQQUdFX1NJWkUKPiAgLyoKPiAgICogVmFsaWQgdHJh bnNmZXIgc3RhcnRzIGZyb20gQDAgdG8gQDB4RkZGRSBsZWFkaW5nIHRvIHVuYWxpZ25lZCBzY2F0 dGVyCj4gICAqIGdhdGhlciBhdCBib3VuZGFyeS4gVGh1cyBpdCdzIHNhZmVyIHRvIHJvdW5kIGRv d24gdGhpcyB2YWx1ZSBvbiBGSUZPCj4gQEAgLTEzNSw2ICsxMzksMTIgQEAKPiAgLyogRE1BIEZl YXR1cmVzICovCj4gICNkZWZpbmUgU1RNMzJfRE1BX1RIUkVTSE9MRF9GVFJfTUFTSwlHRU5NQVNL KDEsIDApCj4gICNkZWZpbmUgU1RNMzJfRE1BX1RIUkVTSE9MRF9GVFJfR0VUKG4pCSgobikgJiBT VE0zMl9ETUFfVEhSRVNIT0xEX0ZUUl9NQVNLKQo+ICsjZGVmaW5lIFNUTTMyX0RNQV9NRE1BX0NI QUlOX0ZUUl9NQVNLCUJJVCgyKQo+ICsjZGVmaW5lIFNUTTMyX0RNQV9NRE1BX0NIQUlOX0ZUUl9H RVQobikJKCgobikgJiBTVE0zMl9ETUFfTURNQV9DSEFJTl9GVFJfTUFTSykgXAo+ICsJCQkJCSA+ PiAyKQo+ICsjZGVmaW5lIFNUTTMyX0RNQV9NRE1BX1NSQU1fU0laRV9NQVNLCUdFTk1BU0soNCwg MykKPiArI2RlZmluZSBTVE0zMl9ETUFfTURNQV9TUkFNX1NJWkVfR0VUKG4pCSgoKG4pICYgU1RN MzJfRE1BX01ETUFfU1JBTV9TSVpFX01BU0spIFwKPiArCQkJCQkgPj4gMykKPiAgCj4gIGVudW0g c3RtMzJfZG1hX3dpZHRoIHsKPiAgCVNUTTMyX0RNQV9CWVRFLAo+IEBAIC0xNzYsMTUgKzE4Niwz MSBAQCBzdHJ1Y3Qgc3RtMzJfZG1hX2NoYW5fcmVnIHsKPiAgCXUzMiBkbWFfc2ZjcjsKPiAgfTsK PiAgCj4gK3N0cnVjdCBzdG0zMl9kbWFfbWRtYV9kZXNjIHsKPiArCXN0cnVjdCBzZ190YWJsZSBz Z3Q7Cj4gKwlzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKmRlc2M7Cj4gK307Cj4gKwo+ ICtzdHJ1Y3Qgc3RtMzJfZG1hX21kbWEgewo+ICsJc3RydWN0IGRtYV9jaGFuICpjaGFuOwo+ICsJ ZW51bSBkbWFfdHJhbnNmZXJfZGlyZWN0aW9uIGRpcjsKPiArCWRtYV9hZGRyX3Qgc3JhbV9idWY7 Cj4gKwl1MzIgc3JhbV9wZXJpb2Q7Cj4gKwl1MzIgbnVtX3NnczsKPiArfTsKPiArCj4gIHN0cnVj dCBzdG0zMl9kbWFfc2dfcmVxIHsKPiAtCXUzMiBsZW47Cj4gKwlzdHJ1Y3Qgc2NhdHRlcmxpc3Qg c3RtMzJfc2dsX3JlcTsKPiAgCXN0cnVjdCBzdG0zMl9kbWFfY2hhbl9yZWcgY2hhbl9yZWc7Cj4g KwlzdHJ1Y3Qgc3RtMzJfZG1hX21kbWFfZGVzYyBtX2Rlc2M7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3Qg c3RtMzJfZG1hX2Rlc2Mgewo+ICAJc3RydWN0IHZpcnRfZG1hX2Rlc2MgdmRlc2M7Cj4gIAlib29s IGN5Y2xpYzsKPiAgCXUzMiBudW1fc2dzOwo+ICsJZG1hX2FkZHJfdCBkbWFfYnVmOwo+ICsJdm9p ZCAqZG1hX2J1Zl9jcHU7Cj4gIAlzdHJ1Y3Qgc3RtMzJfZG1hX3NnX3JlcSBzZ19yZXFbXTsKPiAg fTsKPiAgCj4gQEAgLTIwMSw2ICsyMjcsMTAgQEAgc3RydWN0IHN0bTMyX2RtYV9jaGFuIHsKPiAg CXUzMiB0aHJlc2hvbGQ7Cj4gIAl1MzIgbWVtX2J1cnN0Owo+ICAJdTMyIG1lbV93aWR0aDsKPiAr CXN0cnVjdCBzdG0zMl9kbWFfbWRtYSBtY2hhbjsKPiArCXUzMiB1c2VfbWRtYTsKPiArCXUzMiBz cmFtX3NpemU7Cj4gKwl1MzIgcmVzaWR1ZV9hZnRlcl9kcmFpbjsKPiAgfTsKPiAgCj4gIHN0cnVj dCBzdG0zMl9kbWFfZGV2aWNlIHsKPiBAQCAtMjEwLDYgKzI0MCw3IEBAIHN0cnVjdCBzdG0zMl9k bWFfZGV2aWNlIHsKPiAgCXN0cnVjdCByZXNldF9jb250cm9sICpyc3Q7Cj4gIAlib29sIG1lbTJt ZW07Cj4gIAlzdHJ1Y3Qgc3RtMzJfZG1hX2NoYW4gY2hhbltTVE0zMl9ETUFfTUFYX0NIQU5ORUxT XTsKPiArCXN0cnVjdCBnZW5fcG9vbCAqc3JhbV9wb29sOwo+ICB9Owo+ICAKPiAgc3RhdGljIHN0 cnVjdCBzdG0zMl9kbWFfZGV2aWNlICpzdG0zMl9kbWFfZ2V0X2RldihzdHJ1Y3Qgc3RtMzJfZG1h X2NoYW4gKmNoYW4pCj4gQEAgLTQ5NywxMSArNTI4LDE1IEBAIHN0YXRpYyB2b2lkIHN0bTMyX2Rt YV9zdG9wKHN0cnVjdCBzdG0zMl9kbWFfY2hhbiAqY2hhbikKPiAgc3RhdGljIGludCBzdG0zMl9k bWFfdGVybWluYXRlX2FsbChzdHJ1Y3QgZG1hX2NoYW4gKmMpCj4gIHsKPiAgCXN0cnVjdCBzdG0z Ml9kbWFfY2hhbiAqY2hhbiA9IHRvX3N0bTMyX2RtYV9jaGFuKGMpOwo+ICsJc3RydWN0IHN0bTMy X2RtYV9tZG1hICptY2hhbiA9ICZjaGFuLT5tY2hhbjsKPiAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 Cj4gIAlMSVNUX0hFQUQoaGVhZCk7Cj4gIAo+ICAJc3Bpbl9sb2NrX2lycXNhdmUoJmNoYW4tPnZj aGFuLmxvY2ssIGZsYWdzKTsKPiAgCj4gKwlpZiAoY2hhbi0+dXNlX21kbWEpCj4gKwkJZG1hZW5n aW5lX3Rlcm1pbmF0ZV9hc3luYyhtY2hhbi0+Y2hhbik7Cj4gKwo+ICAJaWYgKGNoYW4tPmJ1c3kp IHsKPiAgCQlzdG0zMl9kbWFfc3RvcChjaGFuKTsKPiAgCQljaGFuLT5kZXNjID0gTlVMTDsKPiBA QCAtNTE0LDkgKzU0OSw5NiBAQCBzdGF0aWMgaW50IHN0bTMyX2RtYV90ZXJtaW5hdGVfYWxsKHN0 cnVjdCBkbWFfY2hhbiAqYykKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdTMyIHN0 bTMyX2RtYV9nZXRfcmVtYWluaW5nX2J5dGVzKHN0cnVjdCBzdG0zMl9kbWFfY2hhbiAqY2hhbikK PiArewo+ICsJdTMyIGRtYV9zY3IsIHdpZHRoLCBuZHRyOwo+ICsJc3RydWN0IHN0bTMyX2RtYV9k ZXZpY2UgKmRtYWRldiA9IHN0bTMyX2RtYV9nZXRfZGV2KGNoYW4pOwo+ICsKPiArCWRtYV9zY3Ig PSBzdG0zMl9kbWFfcmVhZChkbWFkZXYsIFNUTTMyX0RNQV9TQ1IoY2hhbi0+aWQpKTsKPiArCXdp ZHRoID0gU1RNMzJfRE1BX1NDUl9QU0laRV9HRVQoZG1hX3Njcik7Cj4gKwluZHRyID0gc3RtMzJf ZG1hX3JlYWQoZG1hZGV2LCBTVE0zMl9ETUFfU05EVFIoY2hhbi0+aWQpKTsKPiArCj4gKwlyZXR1 cm4gbmR0ciA8PCB3aWR0aDsKPiArfQo+ICsKPiArc3RhdGljIGludCBzdG0zMl9kbWFfbWRtYV9k cmFpbihzdHJ1Y3Qgc3RtMzJfZG1hX2NoYW4gKmNoYW4pCj4gK3sKPiArCXN0cnVjdCBzdG0zMl9k bWFfbWRtYSAqbWNoYW4gPSAmY2hhbi0+bWNoYW47Cj4gKwlzdHJ1Y3Qgc3RtMzJfZG1hX3NnX3Jl cSAqc2dfcmVxOwo+ICsJc3RydWN0IGRtYV9kZXZpY2UgKmRkZXYgPSBtY2hhbi0+Y2hhbi0+ZGV2 aWNlOwo+ICsJc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpkZXNjID0gTlVMTDsKPiAr CWVudW0gZG1hX3N0YXR1cyBzdGF0dXM7Cj4gKwlkbWFfYWRkcl90IHNyY19idWYsIGRzdF9idWY7 Cj4gKwl1MzIgbWRtYV9yZXNpZHVlLCBtZG1hX3dyb3RlLCBkbWFfdG9fd3JpdGUsIGxlbjsKPiAr CXN0cnVjdCBkbWFfdHhfc3RhdGUgc3RhdGU7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCS8qIERNQS9N RE1BIGNoYWluOiBkcmFpbiByZW1haW5pbmcgZGF0YSBpbiBTUkFNICovCj4gKwo+ICsJLyogR2V0 IHRoZSByZXNpZHVlIG9uIE1ETUEgc2lkZSAqLwo+ICsJc3RhdHVzID0gZG1hZW5naW5lX3R4X3N0 YXR1cyhtY2hhbi0+Y2hhbiwgbWNoYW4tPmNoYW4tPmNvb2tpZSwgJnN0YXRlKTsKPiArCWlmIChz dGF0dXMgPT0gRE1BX0NPTVBMRVRFKQo+ICsJCXJldHVybiBzdGF0dXM7Cj4gKwo+ICsJbWRtYV9y ZXNpZHVlID0gc3RhdGUucmVzaWR1ZTsKPiArCXNnX3JlcSA9ICZjaGFuLT5kZXNjLT5zZ19yZXFb Y2hhbi0+bmV4dF9zZyAtIDFdOwo+ICsJbGVuID0gc2dfZG1hX2xlbigmc2dfcmVxLT5zdG0zMl9z Z2xfcmVxKTsKPiArCj4gKwkvKgo+ICsJICogVG90YWwgPSBtZG1hIGJsb2NrcyAqIHNyYW1fcGVy aW9kICsgcmVzdCAoPCBzcmFtX3BlcmlvZCkKPiArCSAqIHNvIG1kbWEgYmxvY2tzICogc3JhbV9w ZXJpb2QgPSBsZW4gLSBtZG1hIHJlc2lkdWUgLSByZXN0Cj4gKwkgKi8KPiArCW1kbWFfd3JvdGUg PSBsZW4gLSBtZG1hX3Jlc2lkdWUgLSAobGVuICUgbWNoYW4tPnNyYW1fcGVyaW9kKTsKPiArCj4g KwkvKiBSZW1haW5pbmcgZGF0YSBzdHVjayBpbiBTUkFNICovCj4gKwlkbWFfdG9fd3JpdGUgPSBt Y2hhbi0+c3JhbV9wZXJpb2QgLSBzdG0zMl9kbWFfZ2V0X3JlbWFpbmluZ19ieXRlcyhjaGFuKTsK PiArCWlmIChkbWFfdG9fd3JpdGUgPiAwKSB7Cj4gKwkJLyogU3RvcCBETUEgY3VycmVudCBvcGVy YXRpb24gKi8KPiArCQlzdG0zMl9kbWFfZGlzYWJsZV9jaGFuKGNoYW4pOwo+ICsKPiArCQkvKiBU ZXJtaW5hdGUgY3VycmVudCBNRE1BIHRvIGluaXRpYXRlIGEgbmV3IG9uZSAqLwo+ICsJCWRtYWVu Z2luZV90ZXJtaW5hdGVfYWxsKG1jaGFuLT5jaGFuKTsKPiArCj4gKwkJLyogRG91YmxlIGJ1ZmZl ciBtYW5hZ2VtZW50ICovCj4gKwkJc3JjX2J1ZiA9IG1jaGFuLT5zcmFtX2J1ZiArCj4gKwkJCSAg KChtZG1hX3dyb3RlIC8gbWNoYW4tPnNyYW1fcGVyaW9kKSAmIDB4MSkgKgo+ICsJCQkgIG1jaGFu LT5zcmFtX3BlcmlvZDsKPiArCQlkc3RfYnVmID0gc2dfZG1hX2FkZHJlc3MoJnNnX3JlcS0+c3Rt MzJfc2dsX3JlcSkgKyBtZG1hX3dyb3RlOwo+ICsKPiArCQlkZXNjID0gZGRldi0+ZGV2aWNlX3By ZXBfZG1hX21lbWNweShtY2hhbi0+Y2hhbiwKPiArCQkJCQkJICAgIGRzdF9idWYsIHNyY19idWYs Cj4gKwkJCQkJCSAgICBkbWFfdG9fd3JpdGUsCj4gKwkJCQkJCSAgICBETUFfUFJFUF9JTlRFUlJV UFQpOwoKd2h5IHdvdWxkIHlvdSBkbyB0aGF0PwoKSWYgYXQgYWxsIHlvdSBuZWVkIHRvIGNyZWF0 ZSBhbm90aGUgdHhuLCBJIHRoaW5rIGl0IHdvdWxkIGJlIGdvb2QgdG8KcHJlcGFyZSBhIG5ldyBk ZXNjcmlwdG9yIGFuZCBjaGFpbiBpdCwgbm90IGNhbGwgdGhlIGRtYWVuZ2luZSBBUElzLi4K