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: [V4] dmaengine: axi-dmac: Split too large segments From: "Ardelean, Alexandru" Message-Id: <20190308130235.5314-1-alex.ardelean@analog.com> Date: Fri, 8 Mar 2019 15:02:35 +0200 To: dmaengine@vger.kernel.org, vkoul@kernel.org Cc: andy.shevchenko@gmail.com, Lars-Peter Clausen , Bogdan Togorean , Alexandru Ardelean List-ID: RnJvbTogTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+CgpUaGUgYXhpLWRtYWMg ZHJpdmVyIGN1cnJlbnRseSByZWplY3RzIHRyYW5zZmVycyB3aXRoIHNlZ21lbnRzIHRoYXQgYXJl CmxhcmdlciB0aGFuIHdoYXQgdGhlIGhhcmR3YXJlIGNhbiBoYW5kbGUuCgpSZS13b3JrIHRoZSBk cml2ZXIgc28gdGhhdCB0aGVzZSBsYXJnZSBzZWdtZW50cyBhcmUgc3BsaXQgaW50byBtdWx0aXBs ZQpzZWdtZW50cyBpbnN0ZWFkIHdoZXJlIGVhY2ggc2VnbWVudCBpcyBzbWFsbGVyIG9yIGVxdWFs IHRvIHRoZSBtYXhpbXVtCnNlZ21lbnQgc2l6ZS4KClRoaXMgYWxsb3dzIHRoZSBkcml2ZXIgdG8g aGFuZGxlIHRyYW5zZmVycyB3aXRoIHNlZ21lbnRzIG9mIGFyYml0cmFyeSBzaXplLgoKU2lnbmVk LW9mZi1ieTogTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+ClNpZ25lZC1vZmYt Ynk6IEJvZ2RhbiBUb2dvcmVhbiA8Ym9nZGFuLnRvZ29yZWFuQGFuYWxvZy5jb20+ClNpZ25lZC1v ZmYtYnk6IEFsZXhhbmRydSBBcmRlbGVhbiA8YWxleC5hcmRlbGVhbkBhbmFsb2cuY29tPgotLS0K CkNoYW5nZWxvZyBWMS0+VjI6CiogcmV3b3JrZWQgdGhpcyBwYXRjaCB0byBub3QgdXNlIHRoZSBg c2dfbmVudHNfZm9yX2RtYSgpYCBoZWxwZXIgZnJvbQogIGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5l bC5vcmcvcGF0Y2gvOTM4OTgyMS8KICBBZnRlciBzb21lIGRpc2N1c3Npb24gd2l0aCBBbmR5IFNo ZXZjaGVua28gYW5kIHNvbWUgdGhvdWdodCBhYm91dCBpdCwgaXQKICBwcm9iYWJseSBkb2VzIG5v dCBtYWtlIHNlbnNlIHRvIGhhdmUgdGhpcyBoZWxwZXIgZm9yIHRoaXMgZHJpdmVyIG9ubHksCiAg c2luY2UgYSBtb3JlIGdlbmVyaWMgc29sdXRpb24gY291bGQgYmUgaW1wbGVtZW50ZWQgdmlhIERN QUVuZ2luZSBBUEkuCiAgVGhpcyBnZW5lcmljIHNvbHV0aW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50 ZWQgKGFzIEkgdW5kZXJzdG9vZCBpdCBmcm9tIHRoZQogIGRpc2N1c3Npb24pLgoKQ2hhbmdlbG9n IFYyLT5WMzoKKiByZW1vdmVkIGFkZGluZyBgbGFzdGAgZmllbGQgOyBwYXRjaCBWMiB3YXMgYWRk aW5nIGEgYGxhc3RgIGZpZWxkIHRvIHRoZQogIGBzdHJ1Y3QgYXhpX2RtYWNfc2dgLCB3aGljaCB3 YXNuJ3QgYmVpbmcgdXNlZCAobmVpdGhlciBpbiBsYXRlciBwYXRjaCk7CiAgYWxzbyBpdCB3YXNu J3QgcHJvcGVybHkgc2V0CgpDaGFuZ2Vsb2cgVjMtPlY0OgoqIEJvZ2RhbiBmb3VuZCB0aGF0IHRo ZSBgYXhpX2RtYWNfZmlsbF9saW5lYXJfc2coKWAgZnVuY3Rpb24gd2FzIGNhbGxlZAogIGluY29y cmVjdGx5IGluIGBheGlfZG1hY19wcmVwX2RtYV9jeWNsaWMoKWAgOyBpdCB3YXMgcGFzc2luZyB0 aGUKICBgYnVmX2xlbmAgaW5zdGVhZCBvZiB0aGUgYHBlcmlvZF9sZW5gIHdoaWNoIHdvdWxkIHRo ZW4gYmUgaXRlcmF0ZWQKICBgbnVtX3BlcmlvZHNgOyBWNCBjYWxscyB0aGUgYGF4aV9kbWFjX2Zp bGxfbGluZWFyX3NnKClgIHdpdGggYHBlcmlvZF9sZW5gCgogZHJpdmVycy9kbWEvZG1hLWF4aS1k bWFjLmMgfCA4MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZG1hL2RtYS1heGktZG1hYy5jIGIvZHJpdmVycy9kbWEvZG1hLWF4aS1kbWFjLmMK aW5kZXggZmZjMGFkYzJmNmNlLi4wZmUzYTkzMWQ4ZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1h L2RtYS1heGktZG1hYy5jCisrKyBiL2RyaXZlcnMvZG1hL2RtYS1heGktZG1hYy5jCkBAIC0xNjYs NyArMTY2LDcgQEAgc3RhdGljIGludCBheGlfZG1hY19kZXN0X2lzX21lbShzdHJ1Y3QgYXhpX2Rt YWNfY2hhbiAqY2hhbikKIAogc3RhdGljIGJvb2wgYXhpX2RtYWNfY2hlY2tfbGVuKHN0cnVjdCBh eGlfZG1hY19jaGFuICpjaGFuLCB1bnNpZ25lZCBpbnQgbGVuKQogewotCWlmIChsZW4gPT0gMCB8 fCBsZW4gPiBjaGFuLT5tYXhfbGVuZ3RoKQorCWlmIChsZW4gPT0gMCkKIAkJcmV0dXJuIGZhbHNl OwogCWlmICgobGVuICYgY2hhbi0+YWxpZ25fbWFzaykgIT0gMCkgLyogTm90IGFsaWduZWQgKi8K IAkJcmV0dXJuIGZhbHNlOwpAQCAtMzc5LDYgKzM3OSw0OSBAQCBzdGF0aWMgc3RydWN0IGF4aV9k bWFjX2Rlc2MgKmF4aV9kbWFjX2FsbG9jX2Rlc2ModW5zaWduZWQgaW50IG51bV9zZ3MpCiAJcmV0 dXJuIGRlc2M7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgYXhpX2RtYWNfc2cgKmF4aV9kbWFjX2ZpbGxf bGluZWFyX3NnKHN0cnVjdCBheGlfZG1hY19jaGFuICpjaGFuLAorCWVudW0gZG1hX3RyYW5zZmVy X2RpcmVjdGlvbiBkaXJlY3Rpb24sIGRtYV9hZGRyX3QgYWRkciwKKwl1bnNpZ25lZCBpbnQgbnVt X3BlcmlvZHMsIHVuc2lnbmVkIGludCBwZXJpb2RfbGVuLAorCXN0cnVjdCBheGlfZG1hY19zZyAq c2cpCit7CisJdW5zaWduZWQgaW50IG51bV9zZWdtZW50cywgaTsKKwl1bnNpZ25lZCBpbnQgc2Vn bWVudF9zaXplOworCXVuc2lnbmVkIGludCBsZW47CisKKwkvKiBTcGxpdCBpbnRvIG11bHRpcGxl IGVxdWFsbHkgc2l6ZWQgc2VnbWVudHMgaWYgbmVjZXNzYXJ5ICovCisJbnVtX3NlZ21lbnRzID0g RElWX1JPVU5EX1VQKHBlcmlvZF9sZW4sIGNoYW4tPm1heF9sZW5ndGgpOworCXNlZ21lbnRfc2l6 ZSA9IERJVl9ST1VORF9VUChwZXJpb2RfbGVuLCBudW1fc2VnbWVudHMpOworCS8qIFRha2UgY2Fy ZSBvZiBhbGlnbm1lbnQgKi8KKwlzZWdtZW50X3NpemUgPSAoKHNlZ21lbnRfc2l6ZSAtIDEpIHwg Y2hhbi0+YWxpZ25fbWFzaykgKyAxOworCisJZm9yIChpID0gMDsgaSA8IG51bV9wZXJpb2RzOyBp KyspIHsKKwkJbGVuID0gcGVyaW9kX2xlbjsKKworCQl3aGlsZSAobGVuID4gc2VnbWVudF9zaXpl KSB7CisJCQlpZiAoZGlyZWN0aW9uID09IERNQV9ERVZfVE9fTUVNKQorCQkJCXNnLT5kZXN0X2Fk ZHIgPSBhZGRyOworCQkJZWxzZQorCQkJCXNnLT5zcmNfYWRkciA9IGFkZHI7CisJCQlzZy0+eF9s ZW4gPSBzZWdtZW50X3NpemU7CisJCQlzZy0+eV9sZW4gPSAxOworCQkJc2crKzsKKwkJCWFkZHIg Kz0gc2VnbWVudF9zaXplOworCQkJbGVuIC09IHNlZ21lbnRfc2l6ZTsKKwkJfQorCisJCWlmIChk aXJlY3Rpb24gPT0gRE1BX0RFVl9UT19NRU0pCisJCQlzZy0+ZGVzdF9hZGRyID0gYWRkcjsKKwkJ ZWxzZQorCQkJc2ctPnNyY19hZGRyID0gYWRkcjsKKwkJc2ctPnhfbGVuID0gbGVuOworCQlzZy0+ eV9sZW4gPSAxOworCQlzZysrOworCQlhZGRyICs9IGxlbjsKKwl9CisKKwlyZXR1cm4gc2c7Cit9 CisKIHN0YXRpYyBzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKmF4aV9kbWFjX3ByZXBf c2xhdmVfc2coCiAJc3RydWN0IGRtYV9jaGFuICpjLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbCwK IAl1bnNpZ25lZCBpbnQgc2dfbGVuLCBlbnVtIGRtYV90cmFuc2Zlcl9kaXJlY3Rpb24gZGlyZWN0 aW9uLApAQCAtMzg2LDE2ICs0MjksMjQgQEAgc3RhdGljIHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVz Y3JpcHRvciAqYXhpX2RtYWNfcHJlcF9zbGF2ZV9zZygKIHsKIAlzdHJ1Y3QgYXhpX2RtYWNfY2hh biAqY2hhbiA9IHRvX2F4aV9kbWFjX2NoYW4oYyk7CiAJc3RydWN0IGF4aV9kbWFjX2Rlc2MgKmRl c2M7CisJc3RydWN0IGF4aV9kbWFjX3NnICpkc2c7CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsK Kwl1bnNpZ25lZCBpbnQgbnVtX3NnczsKIAl1bnNpZ25lZCBpbnQgaTsKIAogCWlmIChkaXJlY3Rp b24gIT0gY2hhbi0+ZGlyZWN0aW9uKQogCQlyZXR1cm4gTlVMTDsKIAotCWRlc2MgPSBheGlfZG1h Y19hbGxvY19kZXNjKHNnX2xlbik7CisJbnVtX3NncyA9IDA7CisJZm9yX2VhY2hfc2coc2dsLCBz Zywgc2dfbGVuLCBpKQorCQludW1fc2dzICs9IERJVl9ST1VORF9VUChzZ19kbWFfbGVuKHNnKSwg Y2hhbi0+bWF4X2xlbmd0aCk7CisKKwlkZXNjID0gYXhpX2RtYWNfYWxsb2NfZGVzYyhudW1fc2dz KTsKIAlpZiAoIWRlc2MpCiAJCXJldHVybiBOVUxMOwogCisJZHNnID0gZGVzYy0+c2c7CisKIAlm b3JfZWFjaF9zZyhzZ2wsIHNnLCBzZ19sZW4sIGkpIHsKIAkJaWYgKCFheGlfZG1hY19jaGVja19h ZGRyKGNoYW4sIHNnX2RtYV9hZGRyZXNzKHNnKSkgfHwKIAkJICAgICFheGlfZG1hY19jaGVja19s ZW4oY2hhbiwgc2dfZG1hX2xlbihzZykpKSB7CkBAIC00MDMsMTIgKzQ1NCw4IEBAIHN0YXRpYyBz dHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKmF4aV9kbWFjX3ByZXBfc2xhdmVfc2coCiAJ CQlyZXR1cm4gTlVMTDsKIAkJfQogCi0JCWlmIChkaXJlY3Rpb24gPT0gRE1BX0RFVl9UT19NRU0p Ci0JCQlkZXNjLT5zZ1tpXS5kZXN0X2FkZHIgPSBzZ19kbWFfYWRkcmVzcyhzZyk7Ci0JCWVsc2UK LQkJCWRlc2MtPnNnW2ldLnNyY19hZGRyID0gc2dfZG1hX2FkZHJlc3Moc2cpOwotCQlkZXNjLT5z Z1tpXS54X2xlbiA9IHNnX2RtYV9sZW4oc2cpOwotCQlkZXNjLT5zZ1tpXS55X2xlbiA9IDE7CisJ CWRzZyA9IGF4aV9kbWFjX2ZpbGxfbGluZWFyX3NnKGNoYW4sIGRpcmVjdGlvbiwgc2dfZG1hX2Fk ZHJlc3Moc2cpLCAxLAorCQkJc2dfZG1hX2xlbihzZyksIGRzZyk7CiAJfQogCiAJZGVzYy0+Y3lj bGljID0gZmFsc2U7CkBAIC00MjMsNyArNDcwLDcgQEAgc3RhdGljIHN0cnVjdCBkbWFfYXN5bmNf dHhfZGVzY3JpcHRvciAqYXhpX2RtYWNfcHJlcF9kbWFfY3ljbGljKAogewogCXN0cnVjdCBheGlf ZG1hY19jaGFuICpjaGFuID0gdG9fYXhpX2RtYWNfY2hhbihjKTsKIAlzdHJ1Y3QgYXhpX2RtYWNf ZGVzYyAqZGVzYzsKLQl1bnNpZ25lZCBpbnQgbnVtX3BlcmlvZHMsIGk7CisJdW5zaWduZWQgaW50 IG51bV9wZXJpb2RzLCBudW1fc2VnbWVudHM7CiAKIAlpZiAoZGlyZWN0aW9uICE9IGNoYW4tPmRp cmVjdGlvbikKIAkJcmV0dXJuIE5VTEw7CkBAIC00MzYsMjAgKzQ4MywxNCBAQCBzdGF0aWMgc3Ry dWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpheGlfZG1hY19wcmVwX2RtYV9jeWNsaWMoCiAJ CXJldHVybiBOVUxMOwogCiAJbnVtX3BlcmlvZHMgPSBidWZfbGVuIC8gcGVyaW9kX2xlbjsKKwlu dW1fc2VnbWVudHMgPSBESVZfUk9VTkRfVVAocGVyaW9kX2xlbiwgY2hhbi0+bWF4X2xlbmd0aCk7 CiAKLQlkZXNjID0gYXhpX2RtYWNfYWxsb2NfZGVzYyhudW1fcGVyaW9kcyk7CisJZGVzYyA9IGF4 aV9kbWFjX2FsbG9jX2Rlc2MobnVtX3BlcmlvZHMgKiBudW1fc2VnbWVudHMpOwogCWlmICghZGVz YykKIAkJcmV0dXJuIE5VTEw7CiAKLQlmb3IgKGkgPSAwOyBpIDwgbnVtX3BlcmlvZHM7IGkrKykg ewotCQlpZiAoZGlyZWN0aW9uID09IERNQV9ERVZfVE9fTUVNKQotCQkJZGVzYy0+c2dbaV0uZGVz dF9hZGRyID0gYnVmX2FkZHI7Ci0JCWVsc2UKLQkJCWRlc2MtPnNnW2ldLnNyY19hZGRyID0gYnVm X2FkZHI7Ci0JCWRlc2MtPnNnW2ldLnhfbGVuID0gcGVyaW9kX2xlbjsKLQkJZGVzYy0+c2dbaV0u eV9sZW4gPSAxOwotCQlidWZfYWRkciArPSBwZXJpb2RfbGVuOwotCX0KKwlheGlfZG1hY19maWxs X2xpbmVhcl9zZyhjaGFuLCBkaXJlY3Rpb24sIGJ1Zl9hZGRyLCBudW1fcGVyaW9kcywKKwkJcGVy aW9kX2xlbiwgZGVzYy0+c2cpOwogCiAJZGVzYy0+Y3ljbGljID0gdHJ1ZTsKIApAQCAtNjQ3LDcg KzY4OCw3IEBAIHN0YXRpYyBpbnQgYXhpX2RtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKIAlvZl9ub2RlX3B1dChvZl9jaGFubmVscyk7CiAKIAlwZGV2LT5kZXYuZG1hX3Bh cm1zID0gJmRtYWMtPmRtYV9wYXJtczsKLQlkbWFfc2V0X21heF9zZWdfc2l6ZSgmcGRldi0+ZGV2 LCBkbWFjLT5jaGFuLm1heF9sZW5ndGgpOworCWRtYV9zZXRfbWF4X3NlZ19zaXplKCZwZGV2LT5k ZXYsIFVJTlRfTUFYKTsKIAogCWRtYV9kZXYgPSAmZG1hYy0+ZG1hX2RldjsKIAlkbWFfY2FwX3Nl dChETUFfU0xBVkUsIGRtYV9kZXYtPmNhcF9tYXNrKTsK