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/6] dmaengine: xilinx_dma: fix completion callback is not invoked for each DMA operation From: Andrea Merello Message-Id: <20180620083653.17010-2-andrea.merello@gmail.com> Date: Wed, 20 Jun 2018 10:36:49 +0200 To: vkoul@kernel.org, dan.j.williams@intel.com, michal.simek@xilinx.com, appana.durga.rao@xilinx.com, dmaengine@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Andrea Merello List-ID: QVBJIHNwZWNpZmljYXRpb24gc2F5czogIk9uIGNvbXBsZXRpb24gb2YgZWFjaCBETUEgb3BlcmF0 aW9uLCB0aGUgbmV4dCBpbgpxdWV1ZSBpcyBzdGFydGVkIGFuZCBhIHRhc2tsZXQgdHJpZ2dlcmVk LiBUaGUgdGFza2xldCB3aWxsIHRoZW4gY2FsbCB0aGUKY2xpZW50IGRyaXZlciBjb21wbGV0aW9u IGNhbGxiYWNrIHJvdXRpbmUgZm9yIG5vdGlmaWNhdGlvbiwgaWYgc2V0LiIKCkN1cnJlbnRseSB0 aGUgZHJpdmVyIGtlZXBzIGEgImRlc2NfcGVuZGluZ2NvdW50IiBjb3VudGVyIG9mIHRoZSB0b3Rh bApkZXNjcmlwdG9yIHBlbmRpbmcsIGFuZCBpdCB1c2VzIGFzIElSUSBjb2FsZXNjZSB0aHJlc2hv bGQsIGFzIHJlc3VsdCBpdApvbmx5IGNhbGxzIHRoZSBDQnMgYWZ0ZXIgQUxMIHBlbmRpbmcgb3Bl cmF0aW9ucyBhcmUgY29tcGxldGVkLCB3aGljaCBpcwp3cm9uZy4KClRoaXMgcGF0Y2ggdXNlcyBk aXNhYmxlIElSUSBjb2FsZXNjZSBhbmQgY2hlY2tzIGZvciB0aGUgY29tcGxldGlvbiBmbGFnCmZv ciB0aGUgZGVzY3JpcHRvcnMgKHdoaWNoIGlzIGZ1cnRoZXIgZGl2aWRlZCBpbiBzZWdtZW50cyku CgpQb3NzaWJseSBhIGJldHRlciBvcHRpbWl6YXRpb24gY291bGQgYmUgdXNpbmcgcHJvcGVyIElS USBjb2FsZXNjZQp0aHJlc2hvbGQgdG8gZ2V0IGFuIElSUSBhZnRlciBhbGwgc2VnbWVudHMgb2Yg dGhlIGRlc2NyaXB0b3JzIGFyZSBkb25lLgpCdXQgd2UgZG9uJ3QgZG8gdGhhdCB5ZXQuLgoKTk9U RTogZm9yIG5vdyB3ZSBkbyB0aGlzIG9ubHkgZm9yIEFYSSBETUEsIG90aGVyIERNQSBmbGF2b3Jz IGFyZQp1bnRlc3RlZC91bnRvdWNoZWQuClRoaXMgaXMgbG9vc2VseSBiYXNlZCBvbgpjb21taXQg NjVkZjgxYTZkYzc0ICgieGlsaW54X2RtYTogSXJxVGhyZXNob2xkIHNldCBpbmNvcnJlY3RseSwg dW5yZWxpYWJsZS4iKQppbiBteSBsaW51eC00LjYtenlucSB0cmVlCgpGcm9tOiBKZXJlbXkgVHJp bWJsZSBbb3JpZ2luYWwgcGF0Y2hdClNpZ25lZC1vZmYtYnk6IEFuZHJlYSBNZXJlbGxvIDxhbmRy ZWEubWVyZWxsb0BnbWFpbC5jb20+Ci0tLQogZHJpdmVycy9kbWEveGlsaW54L3hpbGlueF9kbWEu YyB8IDM5ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDI1IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv ZG1hL3hpbGlueC94aWxpbnhfZG1hLmMgYi9kcml2ZXJzL2RtYS94aWxpbngveGlsaW54X2RtYS5j CmluZGV4IGE1MTZlN2ZmZWYyMS4uY2YxMmY3MTQ3ZjA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Rt YS94aWxpbngveGlsaW54X2RtYS5jCisrKyBiL2RyaXZlcnMvZG1hL3hpbGlueC94aWxpbnhfZG1h LmMKQEAgLTE2NCw2ICsxNjQsNyBAQAogI2RlZmluZSBYSUxJTlhfRE1BX0NSX0NPQUxFU0NFX1NI SUZUCTE2CiAjZGVmaW5lIFhJTElOWF9ETUFfQkRfU09QCQlCSVQoMjcpCiAjZGVmaW5lIFhJTElO WF9ETUFfQkRfRU9QCQlCSVQoMjYpCisjZGVmaW5lIFhJTElOWF9ETUFfQkRfQ01QTFQJCUJJVCgz MSkKICNkZWZpbmUgWElMSU5YX0RNQV9DT0FMRVNDRV9NQVgJCTI1NQogI2RlZmluZSBYSUxJTlhf RE1BX05VTV9ERVNDUwkJMjU1CiAjZGVmaW5lIFhJTElOWF9ETUFfTlVNX0FQUF9XT1JEUwk1CkBA IC0xMjc0LDEyICsxMjc1LDkgQEAgc3RhdGljIHZvaWQgeGlsaW54X2RtYV9zdGFydF90cmFuc2Zl cihzdHJ1Y3QgeGlsaW54X2RtYV9jaGFuICpjaGFuKQogCiAJcmVnID0gZG1hX2N0cmxfcmVhZChj aGFuLCBYSUxJTlhfRE1BX1JFR19ETUFDUik7CiAKLQlpZiAoY2hhbi0+ZGVzY19wZW5kaW5nY291 bnQgPD0gWElMSU5YX0RNQV9DT0FMRVNDRV9NQVgpIHsKLQkJcmVnICY9IH5YSUxJTlhfRE1BX0NS X0NPQUxFU0NFX01BWDsKLQkJcmVnIHw9IGNoYW4tPmRlc2NfcGVuZGluZ2NvdW50IDw8Ci0JCQkJ ICBYSUxJTlhfRE1BX0NSX0NPQUxFU0NFX1NISUZUOwotCQlkbWFfY3RybF93cml0ZShjaGFuLCBY SUxJTlhfRE1BX1JFR19ETUFDUiwgcmVnKTsKLQl9CisJcmVnICY9IH5YSUxJTlhfRE1BX0NSX0NP QUxFU0NFX01BWDsKKwlyZWcgfD0gMSA8PCBYSUxJTlhfRE1BX0NSX0NPQUxFU0NFX1NISUZUOwor CWRtYV9jdHJsX3dyaXRlKGNoYW4sIFhJTElOWF9ETUFfUkVHX0RNQUNSLCByZWcpOwogCiAJaWYg KGNoYW4tPmhhc19zZyAmJiAhY2hhbi0+eGRldi0+bWNkbWEpCiAJCXhpbGlueF93cml0ZShjaGFu LCBYSUxJTlhfRE1BX1JFR19DVVJERVNDLApAQCAtMTM3OCw2ICsxMzc2LDIwIEBAIHN0YXRpYyB2 b2lkIHhpbGlueF9kbWFfY29tcGxldGVfZGVzY3JpcHRvcihzdHJ1Y3QgeGlsaW54X2RtYV9jaGFu ICpjaGFuKQogCQlyZXR1cm47CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZGVzYywgbmV4 dCwgJmNoYW4tPmFjdGl2ZV9saXN0LCBub2RlKSB7CisJCWlmIChjaGFuLT54ZGV2LT5kbWFfY29u ZmlnLT5kbWF0eXBlID09IFhETUFfVFlQRV9BWElETUEpIHsKKwkJCS8qCisJCQkgKiBDaGVjayB3 aGV0aGVyIHRoZSBsYXN0IHNlZ21lbnQgaW4gdGhpcyBkZXNjcmlwdG9yCisJCQkgKiBoYXMgYmVl biBjb21wbGV0ZWQuCisJCQkgKi8KKwkJCWNvbnN0IHN0cnVjdCB4aWxpbnhfYXhpZG1hX3R4X3Nl Z21lbnQgKmNvbnN0IHRhaWxfc2VnID0KKwkJCQlsaXN0X2xhc3RfZW50cnkoJmRlc2MtPnNlZ21l bnRzLAorCQkJCQkJc3RydWN0IHhpbGlueF9heGlkbWFfdHhfc2VnbWVudCwKKwkJCQkJCW5vZGUp OworCisJCQkvKiB3ZSd2ZSBwcm9jZXNzZWQgYWxsIHRoZSBjb21wbGV0ZWQgZGVzY3JpcHRvcnMg Ki8KKwkJCWlmICghKHRhaWxfc2VnLT5ody5zdGF0dXMgJiBYSUxJTlhfRE1BX0JEX0NNUExUKSkK KwkJCQlicmVhazsKKwkJfQogCQlsaXN0X2RlbCgmZGVzYy0+bm9kZSk7CiAJCWlmICghZGVzYy0+ Y3ljbGljKQogCQkJZG1hX2Nvb2tpZV9jb21wbGV0ZSgmZGVzYy0+YXN5bmNfdHgpOwpAQCAtMTgy NiwxNCArMTgzOCwxMyBAQCBzdGF0aWMgc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICp4 aWxpbnhfZG1hX3ByZXBfc2xhdmVfc2coCiAJCQkJICAgc3RydWN0IHhpbGlueF9heGlkbWFfdHhf c2VnbWVudCwgbm9kZSk7CiAJZGVzYy0+YXN5bmNfdHgucGh5cyA9IHNlZ21lbnQtPnBoeXM7CiAK LQkvKiBGb3IgdGhlIGxhc3QgRE1BX01FTV9UT19ERVYgdHJhbnNmZXIsIHNldCBFT1AgKi8KLQlp ZiAoY2hhbi0+ZGlyZWN0aW9uID09IERNQV9NRU1fVE9fREVWKSB7Ci0JCXNlZ21lbnQtPmh3LmNv bnRyb2wgfD0gWElMSU5YX0RNQV9CRF9TT1A7Ci0JCXNlZ21lbnQgPSBsaXN0X2xhc3RfZW50cnko JmRlc2MtPnNlZ21lbnRzLAotCQkJCQkgIHN0cnVjdCB4aWxpbnhfYXhpZG1hX3R4X3NlZ21lbnQs Ci0JCQkJCSAgbm9kZSk7Ci0JCXNlZ21lbnQtPmh3LmNvbnRyb2wgfD0gWElMSU5YX0RNQV9CRF9F T1A7Ci0JfQorCS8qIEZvciB0aGUgZmlyc3QgdHJhbnNmZXIsIHNldCBTT1AgKi8KKwlzZWdtZW50 LT5ody5jb250cm9sIHw9IFhJTElOWF9ETUFfQkRfU09QOworCS8qIEZvciB0aGUgbGFzdCB0cmFu c2Zlciwgc2V0IEVPUCAqLworCXNlZ21lbnQgPSBsaXN0X2xhc3RfZW50cnkoJmRlc2MtPnNlZ21l bnRzLAorCQkJCSAgc3RydWN0IHhpbGlueF9heGlkbWFfdHhfc2VnbWVudCwKKwkJCQkgIG5vZGUp OworCXNlZ21lbnQtPmh3LmNvbnRyb2wgfD0gWElMSU5YX0RNQV9CRF9FT1A7CiAKIAlyZXR1cm4g JmRlc2MtPmFzeW5jX3R4OwogCg==