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: [v7,2/6] dmaeninge: xilinx_dma: Fix bug in multiple frame stores scenario in vdma From: Kedareswara rao Appana Message-Id: <1512624067-13554-3-git-send-email-appanad@xilinx.com> Date: Thu, 7 Dec 2017 10:51:03 +0530 To: dan.j.williams@intel.com, vinod.koul@intel.com, michal.simek@xilinx.com, appanad@xilinx.com, lars@metafoo.de, akinobu.mita@gmail.com, joabreu@synopsys.com, mike.looijmans@topic.nl, kedare06@gmail.com Cc: dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org List-ID: VkRNQSBlbmdpbmUgZGVmYXVsdCBmcmFtZSBidWZmZXIgY29uZmlndXJhdGlvbiBpcyBjaXJ1bGFy IG1vZGUuCmluIHRoaXMgbW9kZSBkbWFlbmdpbmUgY29udGludW91c2x5IGNpcmNsZXMgdGhyb3Vn aCBoL3cgY29uZmlndXJlZCBmc3RvcmUKZnJhbWUgYnVmZmVycy4KCldoZW4gdmRtYSBoL3cgaXMg Y29uZmlndXJlZCBmb3IgbW9yZSB0aGFuIG9uZSBmcmFtZS4KZm9yIGV4YW1wbGUgaC93IGlzIGNv bmZpZ3VyZWQgZm9yIG4gbnVtYmVyIG9mIGZyYW1lcywgdXNlcgpzdWJtaXRzIGxlc3MgdGhhbiBu IG51bWJlciBvZiBmcmFtZXMgYW5kIHRyaWdnZXJlZCB0aGUgZG1hZW5naW5lCnVzaW5nIGlzc3Vl X3BlbmRpbmcgQVBJLgoKc2luY2UgdGhlIGgvdyAob3IpIGRyaXZlciBkZWZhdWx0IGNvbmZpZ3Vy YWl0b24gaXMgY2lyY3VsYXIgbW9kZQpoL3cgdHJpZXMgdG8gd3JpdGUvcmVhZCBmcm9tIGFuIGlu dmFsaWQgZnJhbWUgYnVmZmVyIHJlc3VsdGluZwplcnJvcnMgZnJvbSB0aGUgdmRtYSBkbWFlbmdp bmUuCgpUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUgYnkgZW5hYmxpbmcgdGhlIHBhcmsgbW9k ZSBhcwpkZWZhdWx0IG1vZGUgY29uZmlndXJhdGlvbiBmb3IgZnJhbWUgYnVmZmVycyBpbiBzL3cs CnNvIHRoYXQgZHJpdmVyIGNhbiBoYW5kbGUgYWxsIGNhc2VzIGZvciAiayIgZnJhbWVzIHdoZXJl IG4laz09MAoobiBpcyBhIG11bHRpcGxlIG9mIGspIGJ5IHNpbXBseSByZXBsaWNhdGluZyB0aGUg ZnJhbWUgcG9pbnRlcnMuCgpTaWduZWQtb2ZmLWJ5OiBLZWRhcmVzd2FyYSByYW8gQXBwYW5hIDxh cHBhbmFkQHhpbGlueC5jb20+Ci0tLQpDaGFuZ2VzIGZvciB2NzoKLS0tPiBVc2VkIHBhcmsgbW9k ZSBhcyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gYXMgc3VnZ2VzdGVkCmJ5IE1pa2UgTG9vaWptYW5z LgotLS0+IFVwZGF0ZWQgY29tbWl0IG1lc3NhZ2UgYXMgc3VnZ2VzdGVkIGJ5IFZpbm9kKE5vIG5l ZWQgdG8Kc3RhcnQgZWFjaCBsaW5lIHdpdGggVGl0bGUgY2FzZXMpLgpDaGFuZ2VzIGZvciB2NjoK LS0tPiBBZGRlZCBSb2IgQWNrZWQtYnkKLS0tPiBVcGRhdGVkIGNvbW1pdCBtZXNzYWdlIGFzIHN1 Z2dlc3RlZCBieSBWaW5vZC4KQ2hhbmdlcyBmb3IgdjU6Ci0tLT4gVXBkYXRlZCB4bG54LGZzdG9y ZS1jb25maWcgcHJvcGVydHkgdG8geGxueCxmc3RvcmUtZW5hYmxlCiAgICAgYW5kIHVwZGF0ZWQg ZGVzY3JpcHRpb24gYXMgc3VnZ2VzdGVkIGJ5IFJvYi4KQ2hhbmdlcyBmb3IgdjQ6Ci0tLT4gQWRk IENoZWNrIGZvciBmcmFtZXN0b3JlIGNvbmZpZ3VyYXRpb24gb24gVHJhbnNtaXQgY2FzZSBhcyB3 ZWxsCiAgICAgYXMgc3VnZ2VzdGVkIGJ5IEpvc2UgQWJyZXUuCi0tLT4gTW9kaWZpZWQgdGhlIGRl dl9kYmcgY2hlY2tzIHRvIGRldl93YXJuIGNoZWNrcyBhcyBzdWdnZXN0ZWQKICAgICBieSBKb3Nl IEFicmV1LgpDaGFuZ2VzIGZvciB2MzoKLS0tPiBBZGRlZCBDaGVja3MgZm9yIGZyYW1lIHN0b3Jl IGNvbmZpZ3VyYXRpb24uIElmIGZyYW1lIHN0b3JlCiAgICAgQ29uZmlndXJhdGlvbiBpcyBub3Qg cHJlc2VudCBhdCB0aGUgaC93IGxldmVsIGFuZCB1c2VyCiAgICAgU3VibWl0cyBsZXNzIGZyYW1l cyBhZGRlZCBkZWJ1ZyBwcmludHMgaW4gdGhlIGRyaXZlciBhcyByZWxldmFudC4KQ2hhbmdlcyBm b3IgdjI6Ci0tLT4gRml4ZWQgcmFjZSBjb25kaXRpb25zIGluIHRoZSBkcml2ZXIgYXMgc3VnZ2Vz dGVkIGJ5IEpvc2UgQWJyZXUKLS0tPiBGaXhlZCB1bm5lY2Vzc3JheSBpZiBlbHNlIGNoZWNrcyBp biB0aGUgdmRtYV9zdGFydF90cmFuc2ZlcgogICAgIGFzIHN1Z2dlc3RlZCBieSBMYXVyZW50IFBp bmNoYXJ0LgoKIGRyaXZlcnMvZG1hL3hpbGlueC94aWxpbnhfZG1hLmMgfCA0MSArKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2Vy dGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL3hpbGlu eC94aWxpbnhfZG1hLmMgYi9kcml2ZXJzL2RtYS94aWxpbngveGlsaW54X2RtYS5jCmluZGV4IGMy NDY1NjMuLjkwNjNjYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hL3hpbGlueC94aWxpbnhfZG1h LmMKKysrIGIvZHJpdmVycy9kbWEveGlsaW54L3hpbGlueF9kbWEuYwpAQCAtOTksNyArOTksOSBA QAogI2RlZmluZSBYSUxJTlhfRE1BX1JFR19GUk1QVFJfU1RTCQkweDAwMjQKICNkZWZpbmUgWElM SU5YX0RNQV9SRUdfUEFSS19QVFIJCTB4MDAyOAogI2RlZmluZSBYSUxJTlhfRE1BX1BBUktfUFRS X1dSX1JFRl9TSElGVAk4CisjZGVmaW5lIFhJTElOWF9ETUFfUEFSS19QVFJfV1JfUkVGX01BU0sJ CUdFTk1BU0soMTIsIDgpCiAjZGVmaW5lIFhJTElOWF9ETUFfUEFSS19QVFJfUkRfUkVGX1NISUZU CTAKKyNkZWZpbmUgWElMSU5YX0RNQV9QQVJLX1BUUl9SRF9SRUZfTUFTSwkJR0VOTUFTSyg0LCAw KQogI2RlZmluZSBYSUxJTlhfRE1BX1JFR19WRE1BX1ZFUlNJT04JCTB4MDAyYwogCiAvKiBSZWdp c3RlciBEaXJlY3QgTW9kZSBSZWdpc3RlcnMgKi8KQEAgLTk5OCw3ICsxMDAwLDcgQEAgc3RhdGlj IHZvaWQgeGlsaW54X3ZkbWFfc3RhcnRfdHJhbnNmZXIoc3RydWN0IHhpbGlueF9kbWFfY2hhbiAq Y2hhbikKIHsKIAlzdHJ1Y3QgeGlsaW54X3ZkbWFfY29uZmlnICpjb25maWcgPSAmY2hhbi0+Y29u ZmlnOwogCXN0cnVjdCB4aWxpbnhfZG1hX3R4X2Rlc2NyaXB0b3IgKmRlc2MsICp0YWlsX2Rlc2M7 Ci0JdTMyIHJlZzsKKwl1MzIgcmVnLCBqOwogCXN0cnVjdCB4aWxpbnhfdmRtYV90eF9zZWdtZW50 ICp0YWlsX3NlZ21lbnQ7CiAKIAkvKiBUaGlzIGZ1bmN0aW9uIHdhcyBpbnZva2VkIHdpdGggbG9j ayBoZWxkICovCkBAIC0xMDM1LDEwICsxMDM3LDYgQEAgc3RhdGljIHZvaWQgeGlsaW54X3ZkbWFf c3RhcnRfdHJhbnNmZXIoc3RydWN0IHhpbGlueF9kbWFfY2hhbiAqY2hhbikKIAllbHNlCiAJCXJl ZyAmPSB+WElMSU5YX0RNQV9ETUFDUl9GUkFNRUNOVF9FTjsKIAotCS8qIENvbmZpZ3VyZSBjaGFu bmVsIHRvIGFsbG93IG51bWJlciBmcmFtZSBidWZmZXJzICovCi0JZG1hX2N0cmxfd3JpdGUoY2hh biwgWElMSU5YX0RNQV9SRUdfRlJNU1RPUkUsCi0JCQljaGFuLT5kZXNjX3BlbmRpbmdjb3VudCk7 Ci0KIAkvKgogCSAqIFdpdGggU0csIHN0YXJ0IHdpdGggY2lyY3VsYXIgbW9kZSwgc28gdGhhdCBC RHMgY2FuIGJlIGZldGNoZWQuCiAJICogSW4gZGlyZWN0IHJlZ2lzdGVyIG1vZGUsIGlmIG5vdCBw YXJraW5nLCBlbmFibGUgY2lyY3VsYXIgbW9kZQpAQCAtMTA1MSwxNyArMTA0OSwxNiBAQCBzdGF0 aWMgdm9pZCB4aWxpbnhfdmRtYV9zdGFydF90cmFuc2ZlcihzdHJ1Y3QgeGlsaW54X2RtYV9jaGFu ICpjaGFuKQogCiAJZG1hX2N0cmxfd3JpdGUoY2hhbiwgWElMSU5YX0RNQV9SRUdfRE1BQ1IsIHJl Zyk7CiAKLQlpZiAoY29uZmlnLT5wYXJrICYmIChjb25maWctPnBhcmtfZnJtID49IDApICYmCi0J CQkoY29uZmlnLT5wYXJrX2ZybSA8IGNoYW4tPm51bV9mcm1zKSkgewotCQlpZiAoY2hhbi0+ZGly ZWN0aW9uID09IERNQV9NRU1fVE9fREVWKQotCQkJZG1hX3dyaXRlKGNoYW4sIFhJTElOWF9ETUFf UkVHX1BBUktfUFRSLAotCQkJCWNvbmZpZy0+cGFya19mcm0gPDwKLQkJCQkJWElMSU5YX0RNQV9Q QVJLX1BUUl9SRF9SRUZfU0hJRlQpOwotCQllbHNlCi0JCQlkbWFfd3JpdGUoY2hhbiwgWElMSU5Y X0RNQV9SRUdfUEFSS19QVFIsCi0JCQkJY29uZmlnLT5wYXJrX2ZybSA8PAotCQkJCQlYSUxJTlhf RE1BX1BBUktfUFRSX1dSX1JFRl9TSElGVCk7CisJaiA9IGNoYW4tPmRlc2Nfc3VibWl0Y291bnQ7 CisJcmVnID0gZG1hX3JlYWQoY2hhbiwgWElMSU5YX0RNQV9SRUdfUEFSS19QVFIpOworCWlmIChj aGFuLT5kaXJlY3Rpb24gPT0gRE1BX01FTV9UT19ERVYpIHsKKwkJcmVnICY9IH5YSUxJTlhfRE1B X1BBUktfUFRSX1JEX1JFRl9NQVNLOworCQlyZWcgfD0gaiA8PCBYSUxJTlhfRE1BX1BBUktfUFRS X1JEX1JFRl9TSElGVDsKKwl9IGVsc2UgeworCQlyZWcgJj0gflhJTElOWF9ETUFfUEFSS19QVFJf V1JfUkVGX01BU0s7CisJCXJlZyB8PSBqIDw8IFhJTElOWF9ETUFfUEFSS19QVFJfV1JfUkVGX1NI SUZUOwogCX0KKwlkbWFfd3JpdGUoY2hhbiwgWElMSU5YX0RNQV9SRUdfUEFSS19QVFIsIHJlZyk7 CiAKIAkvKiBTdGFydCB0aGUgaGFyZHdhcmUgKi8KIAl4aWxpbnhfZG1hX3N0YXJ0KGNoYW4pOwpA QCAtMTA3Myw2ICsxMDcwLDggQEAgc3RhdGljIHZvaWQgeGlsaW54X3ZkbWFfc3RhcnRfdHJhbnNm ZXIoc3RydWN0IHhpbGlueF9kbWFfY2hhbiAqY2hhbikKIAlpZiAoY2hhbi0+aGFzX3NnKSB7CiAJ CWRtYV9jdHJsX3dyaXRlKGNoYW4sIFhJTElOWF9ETUFfUkVHX1RBSUxERVNDLAogCQkJCXRhaWxf c2VnbWVudC0+cGh5cyk7CisJCWxpc3Rfc3BsaWNlX3RhaWxfaW5pdCgmY2hhbi0+cGVuZGluZ19s aXN0LCAmY2hhbi0+YWN0aXZlX2xpc3QpOworCQljaGFuLT5kZXNjX3BlbmRpbmdjb3VudCA9IDA7 CiAJfSBlbHNlIHsKIAkJc3RydWN0IHhpbGlueF92ZG1hX3R4X3NlZ21lbnQgKnNlZ21lbnQsICps YXN0ID0gTlVMTDsKIAkJaW50IGkgPSAwOwpAQCAtMTEwMiwxOCArMTEwMSwxMyBAQCBzdGF0aWMg dm9pZCB4aWxpbnhfdmRtYV9zdGFydF90cmFuc2ZlcihzdHJ1Y3QgeGlsaW54X2RtYV9jaGFuICpj aGFuKQogCQl2ZG1hX2Rlc2Nfd3JpdGUoY2hhbiwgWElMSU5YX0RNQV9SRUdfRlJNRExZX1NUUklE RSwKIAkJCQlsYXN0LT5ody5zdHJpZGUpOwogCQl2ZG1hX2Rlc2Nfd3JpdGUoY2hhbiwgWElMSU5Y X0RNQV9SRUdfVlNJWkUsIGxhc3QtPmh3LnZzaXplKTsKLQl9CiAKLQlpZiAoIWNoYW4tPmhhc19z ZykgewotCQlsaXN0X2RlbCgmZGVzYy0+bm9kZSk7Ci0JCWxpc3RfYWRkX3RhaWwoJmRlc2MtPm5v ZGUsICZjaGFuLT5hY3RpdmVfbGlzdCk7CiAJCWNoYW4tPmRlc2Nfc3VibWl0Y291bnQrKzsKIAkJ Y2hhbi0+ZGVzY19wZW5kaW5nY291bnQtLTsKKwkJbGlzdF9kZWwoJmRlc2MtPm5vZGUpOworCQls aXN0X2FkZF90YWlsKCZkZXNjLT5ub2RlLCAmY2hhbi0+YWN0aXZlX2xpc3QpOwogCQlpZiAoY2hh bi0+ZGVzY19zdWJtaXRjb3VudCA9PSBjaGFuLT5udW1fZnJtcykKIAkJCWNoYW4tPmRlc2Nfc3Vi bWl0Y291bnQgPSAwOwotCX0gZWxzZSB7Ci0JCWxpc3Rfc3BsaWNlX3RhaWxfaW5pdCgmY2hhbi0+ cGVuZGluZ19saXN0LCAmY2hhbi0+YWN0aXZlX2xpc3QpOwotCQljaGFuLT5kZXNjX3BlbmRpbmdj b3VudCA9IDA7CiAJfQogCiAJY2hhbi0+aWRsZSA9IGZhbHNlOwpAQCAtMTM2NCw2ICsxMzU4LDcg QEAgc3RhdGljIGludCB4aWxpbnhfZG1hX3Jlc2V0KHN0cnVjdCB4aWxpbnhfZG1hX2NoYW4gKmNo YW4pCiAKIAljaGFuLT5lcnIgPSBmYWxzZTsKIAljaGFuLT5pZGxlID0gdHJ1ZTsKKwljaGFuLT5k ZXNjX3N1Ym1pdGNvdW50ID0gMDsKIAogCXJldHVybiBlcnI7CiB9CkBAIC0yMzYzLDYgKzIzNTgs NyBAQCBzdGF0aWMgaW50IHhpbGlueF9kbWFfY2hhbl9wcm9iZShzdHJ1Y3QgeGlsaW54X2RtYV9k ZXZpY2UgKnhkZXYsCiAJCWNoYW4tPmN0cmxfb2Zmc2V0ID0gWElMSU5YX0RNQV9NTTJTX0NUUkxf T0ZGU0VUOwogCQlpZiAoeGRldi0+ZG1hX2NvbmZpZy0+ZG1hdHlwZSA9PSBYRE1BX1RZUEVfVkRN QSkgewogCQkJY2hhbi0+ZGVzY19vZmZzZXQgPSBYSUxJTlhfVkRNQV9NTTJTX0RFU0NfT0ZGU0VU OworCQkJY2hhbi0+Y29uZmlnLnBhcmsgPSAxOwogCiAJCQlpZiAoeGRldi0+Zmx1c2hfb25fZnN5 bmMgPT0gWElMSU5YX0RNQV9GTFVTSF9CT1RIIHx8CiAJCQkgICAgeGRldi0+Zmx1c2hfb25fZnN5 bmMgPT0gWElMSU5YX0RNQV9GTFVTSF9NTTJTKQpAQCAtMjM3OSw2ICsyMzc1LDcgQEAgc3RhdGlj IGludCB4aWxpbnhfZG1hX2NoYW5fcHJvYmUoc3RydWN0IHhpbGlueF9kbWFfZGV2aWNlICp4ZGV2 LAogCQljaGFuLT5jdHJsX29mZnNldCA9IFhJTElOWF9ETUFfUzJNTV9DVFJMX09GRlNFVDsKIAkJ aWYgKHhkZXYtPmRtYV9jb25maWctPmRtYXR5cGUgPT0gWERNQV9UWVBFX1ZETUEpIHsKIAkJCWNo YW4tPmRlc2Nfb2Zmc2V0ID0gWElMSU5YX1ZETUFfUzJNTV9ERVNDX09GRlNFVDsKKwkJCWNoYW4t PmNvbmZpZy5wYXJrID0gMTsKIAogCQkJaWYgKHhkZXYtPmZsdXNoX29uX2ZzeW5jID09IFhJTElO WF9ETUFfRkxVU0hfQk9USCB8fAogCQkJICAgIHhkZXYtPmZsdXNoX29uX2ZzeW5jID09IFhJTElO WF9ETUFfRkxVU0hfUzJNTSkK