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] dmaengine: pl330: flush before wait, and add dev burst support. From: Vinod Koul Message-Id: <20180311150151.GB15443@localhost> Date: Sun, 11 Mar 2018 20:31:51 +0530 To: fmhess@users.sourceforge.net Cc: dmaengine@vger.kernel.org, Dan Williams , linux-kernel@vger.kernel.org List-ID: T24gVHVlLCBNYXIgMDYsIDIwMTggYXQgMTE6MDM6MjJBTSAtMDUwMCwgRnJhbmsgTW9yaSBIZXNz IHdyb3RlOgo+IERvIERNQUZMVVNIUCBfYmVmb3JlXyB0aGUgZmlyc3QgRE1BV0ZQIHRvIGVuc3Vy ZSBjb250cm9sbGVyCj4gYW5kIHBlcmlwaGVyYWwgYXJlIGluIGFncmVlbWVudCBhYm91dCBkbWEg cmVxdWVzdCBzdGF0ZSBiZWZvcmUgZmlyc3QKPiB0cmFuc2Zlci4gIEFkZCBzdXBwb3J0IGZvciBi dXJzdCB0cmFuc2ZlcnMgdG8vZnJvbSBwZXJpcGhlcmFscy4gSW4gdGhlIG5ldwo+IHNjaGVtZSwg dGhlIGNvbnRyb2xsZXIgZG9lcyBhcyBtYW55IGJ1cnN0IHRyYW5zZmVycyBhcyBpdCBjYW4gdGhl bgo+IHRyYW5zZmVycyB0aGUgcmVtYWluaW5nIGRyZWdzIHdpdGggZWl0aGVyIHNpbmdsZSB0cmFu c2ZlcnMgZm9yCj4gcGVyaXBoZXJhbHMsIG9yIHdpdGggYSByZWR1Y2VkIHNpemUgYnVyc3QgZm9y IG1lbW9yeS10by1tZW1vcnkgdHJhbnNmZXJzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEZyYW5rIE1v cmkgSGVzcyA8Zm1oNmpqQGdtYWlsLmNvbT4KPiBUZXN0ZWQtYnk6IEZyYW5rIE1vcmkgSGVzcyA8 Zm1oNmpqQGdtYWlsLmNvbT4KCnNvcnJ5IGlmIGl0IHdhc250IGNsZWFyIGVhcmxpZXIsIHRoZSBs aW5lcyBiZWxvdyBzaG91bGQgY29tZSBhZnRlciB0aGUgLS0tCmxpbmUuIGdpdC1hbSBza2lwcyB0 aGF0IHBhcnQgd2hpbGUgYXBwbHlpbmcuLgoKPiAKPiBJIHRlc3RlZCBkbWEgdHJhbnNmZXJzIHRv IHBlcmlwaGVyYWxzIHdpdGggZGVzaWdud2FyZSBzZXJpYWwgcG9ydAo+IChkcml2ZXJzL3R0eS9z ZXJpYWwvODI1MC84MjUwX2R3LmMpIGFuZCBhIEdQSUIgaW50ZXJmYWNlCj4gKGh0dHBzOi8vZ2l0 aHViLmNvbS9mbWhlc3MvZm1oX2dwaWJfY29yZSkuICBJIHRlc3RlZCBtZW1vcnktdG8tbWVtb3J5 Cj4gdHJhbnNmZXJzIHVzaW5nIHRoZSBkbWF0ZXN0IG1vZHVsZS4KPiAKPiB2MyBvZiB0aGlzIHBh dGNoIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB2MiBleGNlcHQgd2l0aCBjaGVja3BhdGNoLnBsCj4g d2FybmluZ3MgYW5kIGVycm9ycyBjbGVhbmVkIHVwLgo+IAo+IC0tLQo+ICBkcml2ZXJzL2RtYS9w bDMzMC5jIHwgMTQ2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlv bnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvcGwzMzAuYyBiL2RyaXZlcnMvZG1h L3BsMzMwLmMKPiBpbmRleCBkNzMyN2ZkNWY0NDUuLmNjMmU0NDU2YmVjMSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2RtYS9wbDMzMC5jCj4gKysrIGIvZHJpdmVycy9kbWEvcGwzMzAuYwo+IEBAIC0x MDk0LDI2ICsxMDk0LDMzIEBAIHN0YXRpYyBpbmxpbmUgaW50IF9sZHN0X21lbXRvbWVtKHVuc2ln bmVkIGRyeV9ydW4sIHU4IGJ1ZltdLAo+ICAJcmV0dXJuIG9mZjsKPiAgfQo+ICAKPiAtc3RhdGlj IGlubGluZSBpbnQgX2xkc3RfZGV2dG9tZW0oc3RydWN0IHBsMzMwX2RtYWMgKnBsMzMwLCB1bnNp Z25lZCBkcnlfcnVuLAo+IC0JCQkJIHU4IGJ1ZltdLCBjb25zdCBzdHJ1Y3QgX3hmZXJfc3BlYyAq cHhzLAo+IC0JCQkJIGludCBjeWMpCj4gK3N0YXRpYyBpbmxpbmUgaW50IF9sZHN0X2RldnRvbWVt KHN0cnVjdCBwbDMzMF9kbWFjICpwbDMzMCwKPiArCQkJCXVuc2lnbmVkIGludCBkcnlfcnVuLCB1 OCBidWZbXSwKPiArCQkJCWNvbnN0IHN0cnVjdCBfeGZlcl9zcGVjICpweHMsCj4gKwkJCQlpbnQg Y3ljLCBlbnVtIHBsMzMwX2NvbmQgY29uZCkKPiAgewo+ICAJaW50IG9mZiA9IDA7Cj4gLQllbnVt IHBsMzMwX2NvbmQgY29uZDsKPiAgCj4gIAlpZiAocGwzMzAtPnF1aXJrcyAmIFBMMzMwX1FVSVJL X0JST0tFTl9OT19GTFVTSFApCj4gIAkJY29uZCA9IEJVUlNUOwo+IC0JZWxzZQo+IC0JCWNvbmQg PSBTSU5HTEU7Cj4gIAo+ICsJLyogZG8gRkxVU0hQIGF0IGJlZ2lubmluZyB0byBjbGVhciBhbnkg c3RhbGUgZG1hIHJlcXVlc3RzIGJlZm9yZSB0aGUKPiArCSAqIGZpcnN0IFdGUC4KPiArCSAqLwoK bXVsdGlsaW5lIGNvbW1lbnRzIHNob3VsZCBiZToKCi8qCiAqIHRoaXMgaXMgYW4gZXhhbXBsZSBv ZiBtdWx0aS1saW5lCiAqIGNvbW1lbnQKICovCgpQbHMgZml4IGF0IHRoaXMgYW5kIG90aGVyIHBs YWNlcy4uLgoKPiAgc3RhdGljIGlubGluZSBpbnQgX2xkc3RfbWVtdG9kZXYoc3RydWN0IHBsMzMw X2RtYWMgKnBsMzMwLAo+ICAJCQkJIHVuc2lnbmVkIGRyeV9ydW4sIHU4IGJ1ZltdLAo+IC0JCQkJ IGNvbnN0IHN0cnVjdCBfeGZlcl9zcGVjICpweHMsIGludCBjeWMpCj4gKwkJCQkgY29uc3Qgc3Ry dWN0IF94ZmVyX3NwZWMgKnB4cywgaW50IGN5YywKPiArCQkJCSBlbnVtIHBsMzMwX2NvbmQgY29u ZCkKPiAgewo+ICAJaW50IG9mZiA9IDA7Cj4gLQllbnVtIHBsMzMwX2NvbmQgY29uZDsKPiAgCj4g IAlpZiAocGwzMzAtPnF1aXJrcyAmIFBMMzMwX1FVSVJLX0JST0tFTl9OT19GTFVTSFApCj4gIAkJ Y29uZCA9IEJVUlNUOwo+IC0JZWxzZQo+IC0JCWNvbmQgPSBTSU5HTEU7Cj4gIAo+ICsJLyogZG8g RkxVU0hQIGF0IGJlZ2lubmluZyB0byBjbGVhciBhbnkgc3RhbGUgZG1hIHJlcXVlc3RzIGJlZm9y ZSB0aGUKPiArCSAqIGZpcnN0IFdGUC4KPiArCSAqLwo+ICsJaWYgKCEocGwzMzAtPnF1aXJrcyAm IFBMMzMwX1FVSVJLX0JST0tFTl9OT19GTFVTSFApKQo+ICsJCW9mZiArPSBfZW1pdF9GTFVTSFAo ZHJ5X3J1biwgJmJ1ZltvZmZdLCBweHMtPmRlc2MtPnBlcmkpOwo+ICAJd2hpbGUgKGN5Yy0tKSB7 Cj4gIAkJb2ZmICs9IF9lbWl0X1dGUChkcnlfcnVuLCAmYnVmW29mZl0sIGNvbmQsIHB4cy0+ZGVz Yy0+cGVyaSk7Cj4gIAkJb2ZmICs9IF9lbWl0X0xEKGRyeV9ydW4sICZidWZbb2ZmXSwgQUxXQVlT KTsKPiAtCQlvZmYgKz0gX2VtaXRfU1RQKGRyeV9ydW4sICZidWZbb2ZmXSwgY29uZCwgcHhzLT5k ZXNjLT5wZXJpKTsKPiAtCj4gLQkJaWYgKCEocGwzMzAtPnF1aXJrcyAmIFBMMzMwX1FVSVJLX0JS T0tFTl9OT19GTFVTSFApKQo+IC0JCQlvZmYgKz0gX2VtaXRfRkxVU0hQKGRyeV9ydW4sICZidWZb b2ZmXSwKPiAtCQkJCQkgICAgcHhzLT5kZXNjLT5wZXJpKTsKPiArCQlpZiAoY29uZCA9PSBBTFdB WVMpIHsKPiArCQkJb2ZmICs9IF9lbWl0X1NUUChkcnlfcnVuLCAmYnVmW29mZl0sIFNJTkdMRSwK PiArCQkJCXB4cy0+ZGVzYy0+cGVyaSk7Cj4gKwkJCW9mZiArPSBfZW1pdF9TVFAoZHJ5X3J1biwg JmJ1ZltvZmZdLCBCVVJTVCwKPiArCQkJCXB4cy0+ZGVzYy0+cGVyaSk7Cj4gKwkJfSBlbHNlIHsK PiArCQkJb2ZmICs9IF9lbWl0X1NUUChkcnlfcnVuLCAmYnVmW29mZl0sIGNvbmQsCj4gKwkJCQlw eHMtPmRlc2MtPnBlcmkpOwo+ICsJCX0KCnRoaXMgbG9va3MgcXVpdGUgc2ltaWxhciB0byBwcmV2 aW91cyByb3V0aW5lIGFib3ZlLCBpZiBzbyBjYW4gd2UgcGxlYXNlIG1ha2UKaXQgY29tbW9uIGZ1 bmN0aW9uIGFuZCBpbnZva2UgZnJvbSBib3RoIG9mIHRoZXNlLi4uCgo+ICtzdGF0aWMgaW50IF9k cmVncyhzdHJ1Y3QgcGwzMzBfZG1hYyAqcGwzMzAsIHVuc2lnbmVkIGludCBkcnlfcnVuLCB1OCBi dWZbXSwKPiArCQljb25zdCBzdHJ1Y3QgX3hmZXJfc3BlYyAqcHhzLCBpbnQgdHJhbnNmZXJfbGVu Z3RoKQo+ICt7Cj4gKwlpbnQgb2ZmID0gMDsKPiArCWludCBkcmVnc19jY3I7Cj4gKwo+ICsJaWYg KHRyYW5zZmVyX2xlbmd0aCA9PSAwKQo+ICsJCXJldHVybiBvZmY7Cj4gKwo+ICsJc3dpdGNoIChw eHMtPmRlc2MtPnJxdHlwZSkgewo+ICsJY2FzZSBETUFfTUVNX1RPX0RFVjoKPiArCQlvZmYgKz0g X2xkc3RfbWVtdG9kZXYocGwzMzAsIGRyeV9ydW4sICZidWZbb2ZmXSwgcHhzLAo+ICsJCQl0cmFu c2Zlcl9sZW5ndGgsIFNJTkdMRSk7Cj4gKwkJYnJlYWs7CgplbXB0eSBsaW5lIGFmdGVyIGVhY2gg Y2FzZSBwbHMKCj4gKwljYXNlIERNQV9ERVZfVE9fTUVNOgo+ICsJCW9mZiArPSBfbGRzdF9kZXZ0 b21lbShwbDMzMCwgZHJ5X3J1biwgJmJ1ZltvZmZdLCBweHMsCj4gKwkJCXRyYW5zZmVyX2xlbmd0 aCwgU0lOR0xFKTsKPiArCQlicmVhazsKPiArCWNhc2UgRE1BX01FTV9UT19NRU06Cj4gKwkJZHJl Z3NfY2NyID0gcHhzLT5jY3I7Cj4gKwkJZHJlZ3NfY2NyICY9IH4oKDB4ZiA8PCBDQ19TUkNCUlNU TEVOX1NIRlQpIHwKPiArCQkJKDB4ZiA8PCBDQ19EU1RCUlNUTEVOX1NIRlQpKTsKPiArCQlkcmVn c19jY3IgfD0gKCgodHJhbnNmZXJfbGVuZ3RoIC0gMSkgJiAweGYpIDw8Cj4gKwkJCUNDX1NSQ0JS U1RMRU5fU0hGVCk7Cj4gKwkJZHJlZ3NfY2NyIHw9ICgoKHRyYW5zZmVyX2xlbmd0aCAtIDEpICYg MHhmKSA8PAo+ICsJCQlDQ19EU1RCUlNUTEVOX1NIRlQpOwo+ICsJCW9mZiArPSBfZW1pdF9NT1Yo ZHJ5X3J1biwgJmJ1ZltvZmZdLCBDQ1IsIGRyZWdzX2Njcik7Cj4gKwkJb2ZmICs9IF9sZHN0X21l bXRvbWVtKGRyeV9ydW4sICZidWZbb2ZmXSwgcHhzLCAxKTsKPiArCQlicmVhazsKPiArCWRlZmF1 bHQ6Cj4gKwkJb2ZmICs9IDB4NDAwMDAwMDA7IC8qIFNjYXJlIG9mZiB0aGUgQ2xpZW50ICovCgpD YW4geW91IGV4cGxhaW4gdGhpcyBiaXQsIHNob3VsZG50IHRoaXMgYmUgZXJyPwoKPiBAQCAtMTMw MywxMSArMTM2Miw2IEBAIHN0YXRpYyBpbnQgX3NldHVwX3JlcShzdHJ1Y3QgcGwzMzBfZG1hYyAq cGwzMzAsIHVuc2lnbmVkIGRyeV9ydW4sCj4gIAkvKiBETUFNT1YgQ0NSLCBjY3IgKi8KPiAgCW9m ZiArPSBfZW1pdF9NT1YoZHJ5X3J1biwgJmJ1ZltvZmZdLCBDQ1IsIHB4cy0+Y2NyKTsKPiAgCj4g LQl4ID0gJnB4cy0+ZGVzYy0+cHg7Cj4gLQkvKiBFcnJvciBpZiB4ZmVyIGxlbmd0aCBpcyBub3Qg YWxpZ25lZCBhdCBidXJzdCBzaXplICovCj4gLQlpZiAoeC0+Ynl0ZXMgJSAoQlJTVF9TSVpFKHB4 cy0+Y2NyKSAqIEJSU1RfTEVOKHB4cy0+Y2NyKSkpCj4gLQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQo+ ICAJb2ZmICs9IF9zZXR1cF94ZmVyKHBsMzMwLCBkcnlfcnVuLCAmYnVmW29mZl0sIHB4cyk7Cj4g IAo+ICAJLyogRE1BU0VWIHBlcmlwaGVyYWwvZXZlbnQgKi8KPiBAQCAtMjExNSwxNSArMjE2OSwy OSBAQCBzdGF0aWMgaW50IHBsMzMwX2NvbmZpZyhzdHJ1Y3QgZG1hX2NoYW4gKmNoYW4sCj4gIAkJ CXBjaC0+Zmlmb19hZGRyID0gc2xhdmVfY29uZmlnLT5kc3RfYWRkcjsKPiAgCQlpZiAoc2xhdmVf Y29uZmlnLT5kc3RfYWRkcl93aWR0aCkKPiAgCQkJcGNoLT5idXJzdF9zeiA9IF9fZmZzKHNsYXZl X2NvbmZpZy0+ZHN0X2FkZHJfd2lkdGgpOwo+IC0JCWlmIChzbGF2ZV9jb25maWctPmRzdF9tYXhi dXJzdCkKPiAtCQkJcGNoLT5idXJzdF9sZW4gPSBzbGF2ZV9jb25maWctPmRzdF9tYXhidXJzdDsK PiArCQlpZiAocGNoLT5kbWFjLT5xdWlya3MgJiBQTDMzMF9RVUlSS19CUk9LRU5fTk9fRkxVU0hQ KQo+ICsJCQlwY2gtPmJ1cnN0X2xlbiA9IDE7CgpzbyBpbiB0aGlzIGNhc2Ugd2UgZG9uJ3QgaG9u b3VyIHRoZSByZXF1ZXN0ZWQgYnVyc3QgbGVuZ3RoPwoKPiArCQllbHNlIGlmIChzbGF2ZV9jb25m aWctPmRzdF9tYXhidXJzdCkgewo+ICsJCQlpZiAoc2xhdmVfY29uZmlnLT5kc3RfbWF4YnVyc3Qg PiBQTDMzMF9NQVhfQlVSU1QpCj4gKwkJCQlwY2gtPmJ1cnN0X2xlbiA9IFBMMzMwX01BWF9CVVJT VDsKPiArCQkJZWxzZQo+ICsJCQkJcGNoLT5idXJzdF9sZW4gPSBzbGF2ZV9jb25maWctPmRzdF9t YXhidXJzdDsKPiArCQl9IGVsc2UKPiArCQkJcGNoLT5idXJzdF9sZW4gPSAxOwo+ICAJfSBlbHNl IGlmIChzbGF2ZV9jb25maWctPmRpcmVjdGlvbiA9PSBETUFfREVWX1RPX01FTSkgewo+ICAJCWlm IChzbGF2ZV9jb25maWctPnNyY19hZGRyKQo+ICAJCQlwY2gtPmZpZm9fYWRkciA9IHNsYXZlX2Nv bmZpZy0+c3JjX2FkZHI7Cj4gIAkJaWYgKHNsYXZlX2NvbmZpZy0+c3JjX2FkZHJfd2lkdGgpCj4g IAkJCXBjaC0+YnVyc3Rfc3ogPSBfX2ZmcyhzbGF2ZV9jb25maWctPnNyY19hZGRyX3dpZHRoKTsK PiAtCQlpZiAoc2xhdmVfY29uZmlnLT5zcmNfbWF4YnVyc3QpCj4gLQkJCXBjaC0+YnVyc3RfbGVu ID0gc2xhdmVfY29uZmlnLT5zcmNfbWF4YnVyc3Q7Cj4gKwkJaWYgKHBjaC0+ZG1hYy0+cXVpcmtz ICYgUEwzMzBfUVVJUktfQlJPS0VOX05PX0ZMVVNIUCkKPiArCQkJcGNoLT5idXJzdF9sZW4gPSAx Owo+ICsJCWVsc2UgaWYgKHNsYXZlX2NvbmZpZy0+c3JjX21heGJ1cnN0KSB7Cj4gKwkJCWlmIChz bGF2ZV9jb25maWctPnNyY19tYXhidXJzdCA+IFBMMzMwX01BWF9CVVJTVCkKPiArCQkJCXBjaC0+ YnVyc3RfbGVuID0gUEwzMzBfTUFYX0JVUlNUOwo+ICsJCQllbHNlCj4gKwkJCQlwY2gtPmJ1cnN0 X2xlbiA9IHNsYXZlX2NvbmZpZy0+c3JjX21heGJ1cnN0Owo+ICsJCX0gZWxzZQo+ICsJCQlwY2gt PmJ1cnN0X2xlbiA9IDE7CgphZ2FpbiB0aGlzIGxvb2tzIGR1cGxpY2F0ZS4uCg==