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,3/5] dmaengine: xilinx_dma: program hardware supported buffer length From: Andrea Merello Message-Id: <20180625092724.22164-3-andrea.merello@gmail.com> Date: Mon, 25 Jun 2018 11:27:22 +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, Radhey Shyam Pandey , Rob Herring , Mark Rutland , devicetree@vger.kernel.org, Andrea Merello List-ID: RnJvbTogUmFkaGV5IFNoeWFtIFBhbmRleSA8cmFkaGV5LnNoeWFtLnBhbmRleUB4aWxpbnguY29t PgoKQVhJLURNQSBJUCBzdXBwb3J0cyBjb25maWd1cmFibGUgKGNfc2dfbGVuZ3RoX3dpZHRoKSBi dWZmZXIgbGVuZ3RoCnJlZ2lzdGVyIHdpZHRoLCBoZW5jZSByZWFkIGJ1ZmZlciBsZW5ndGggKHhs bngsc2ctbGVuZ3RoLXdpZHRoKSBEVApwcm9wZXJ0eSBhbmQgZW5zdXJlIHRoYXQgZHJpdmVyIGRv ZXNuJ3QgcHJvZ3JhbSBidWZmZXIgbGVuZ3RoCmV4Y2VlZGluZyB0aGUgc3VwcG9ydGVkIGxpbWl0 LiBGb3IgVkRNQSBhbmQgQ0RNQSB0aGVyZSBpcyBubyBjaGFuZ2UuCgpDYzogUm9iIEhlcnJpbmcg PHJvYmgrZHRAa2VybmVsLm9yZz4KQ2M6IE1hcmsgUnV0bGFuZCA8bWFyay5ydXRsYW5kQGFybS5j b20+CkNjOiBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBSYWRoZXkg U2h5YW0gUGFuZGV5IDxyYWRoZXkuc2h5YW0ucGFuZGV5QHhpbGlueC5jb20+ClNpZ25lZC1vZmYt Ynk6IE1pY2hhbCBTaW1layA8bWljaGFsLnNpbWVrQHhpbGlueC5jb20+ClNpZ25lZC1vZmYtYnk6 IEFuZHJlYSBNZXJlbGxvIDxhbmRyZWEubWVyZWxsb0BnbWFpbC5jb20+IFtyZWJhc2UsIHJld29y ZF0KLS0tCkNoYW5nZXMgaW4gdjI6CiAgICAgICAgLSBkcm9wIG9yaWdpbmFsIHBhdGNoIGFuZCBy ZXBsYWNlIHdpdGggdGhlIG9uZSBpbiBYaWxpbnggdHJlZQpDaGFuZ2VzIGluIHYzOgoJLSBjYyBE VCBtYWludGFpbmVycy9NTAotLS0KIGRyaXZlcnMvZG1hL3hpbGlueC94aWxpbnhfZG1hLmMgfCAz NSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyNiBp bnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL3hp bGlueC94aWxpbnhfZG1hLmMgYi9kcml2ZXJzL2RtYS94aWxpbngveGlsaW54X2RtYS5jCmluZGV4 IDExM2Q5YmYxYjZhMS4uN2YwYWI5MDRiNzQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS94aWxp bngveGlsaW54X2RtYS5jCisrKyBiL2RyaXZlcnMvZG1hL3hpbGlueC94aWxpbnhfZG1hLmMKQEAg LTE1OCw3ICsxNTgsOCBAQAogI2RlZmluZSBYSUxJTlhfRE1BX1JFR19CVFQJCTB4MjgKIAogLyog QVhJIERNQSBTcGVjaWZpYyBNYXNrcy9CaXQgZmllbGRzICovCi0jZGVmaW5lIFhJTElOWF9ETUFf TUFYX1RSQU5TX0xFTglHRU5NQVNLKDIyLCAwKQorI2RlZmluZSBYSUxJTlhfRE1BX01BWF9UUkFO U19MRU5fTUlOCTgKKyNkZWZpbmUgWElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOX01BWAkyMwogI2Rl ZmluZSBYSUxJTlhfRE1BX0NSX0NPQUxFU0NFX01BWAlHRU5NQVNLKDIzLCAxNikKICNkZWZpbmUg WElMSU5YX0RNQV9DUl9DWUNMSUNfQkRfRU5fTUFTSwlCSVQoNCkKICNkZWZpbmUgWElMSU5YX0RN QV9DUl9DT0FMRVNDRV9TSElGVAkxNgpAQCAtNDE4LDYgKzQxOSw3IEBAIHN0cnVjdCB4aWxpbnhf ZG1hX2NvbmZpZyB7CiAgKiBAcnhzX2NsazogRE1BIHMybW0gc3RyZWFtIGNsb2NrCiAgKiBAbnJf Y2hhbm5lbHM6IE51bWJlciBvZiBjaGFubmVscyBETUEgZGV2aWNlIHN1cHBvcnRzCiAgKiBAY2hh bl9pZDogRE1BIGNoYW5uZWwgaWRlbnRpZmllcgorICogQG1heF9idWZmZXJfbGVuOiBNYXggYnVm ZmVyIGxlbmd0aAogICovCiBzdHJ1Y3QgeGlsaW54X2RtYV9kZXZpY2UgewogCXZvaWQgX19pb21l bSAqcmVnczsKQEAgLTQzNyw2ICs0MzksNyBAQCBzdHJ1Y3QgeGlsaW54X2RtYV9kZXZpY2Ugewog CXN0cnVjdCBjbGsgKnJ4c19jbGs7CiAJdTMyIG5yX2NoYW5uZWxzOwogCXUzMiBjaGFuX2lkOwor CXUzMiBtYXhfYnVmZmVyX2xlbjsKIH07CiAKIC8qIE1hY3JvcyAqLwpAQCAtOTg1LDcgKzk4OCw3 IEBAIHN0YXRpYyBlbnVtIGRtYV9zdGF0dXMgeGlsaW54X2RtYV90eF9zdGF0dXMoc3RydWN0IGRt YV9jaGFuICpkY2hhbiwKIAkJCWxpc3RfZm9yX2VhY2hfZW50cnkoc2VnbWVudCwgJmRlc2MtPnNl Z21lbnRzLCBub2RlKSB7CiAJCQkJaHcgPSAmc2VnbWVudC0+aHc7CiAJCQkJcmVzaWR1ZSArPSAo aHctPmNvbnRyb2wgLSBody0+c3RhdHVzKSAmCi0JCQkJCSAgIFhJTElOWF9ETUFfTUFYX1RSQU5T X0xFTjsKKwkJCQkJICAgY2hhbi0+eGRldi0+bWF4X2J1ZmZlcl9sZW47CiAJCQl9CiAJCX0KIAkJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hhbi0+bG9jaywgZmxhZ3MpOwpAQCAtMTIzNyw3ICsx MjQwLDcgQEAgc3RhdGljIHZvaWQgeGlsaW54X2NkbWFfc3RhcnRfdHJhbnNmZXIoc3RydWN0IHhp bGlueF9kbWFfY2hhbiAqY2hhbikKIAogCQkvKiBTdGFydCB0aGUgdHJhbnNmZXIgKi8KIAkJZG1h X2N0cmxfd3JpdGUoY2hhbiwgWElMSU5YX0RNQV9SRUdfQlRULAotCQkJCWh3LT5jb250cm9sICYg WElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOKTsKKwkJCQlody0+Y29udHJvbCAmIGNoYW4tPnhkZXYt Pm1heF9idWZmZXJfbGVuKTsKIAl9CiAKIAlsaXN0X3NwbGljZV90YWlsX2luaXQoJmNoYW4tPnBl bmRpbmdfbGlzdCwgJmNoYW4tPmFjdGl2ZV9saXN0KTsKQEAgLTEzNDAsNyArMTM0Myw3IEBAIHN0 YXRpYyB2b2lkIHhpbGlueF9kbWFfc3RhcnRfdHJhbnNmZXIoc3RydWN0IHhpbGlueF9kbWFfY2hh biAqY2hhbikKIAogCQkvKiBTdGFydCB0aGUgdHJhbnNmZXIgKi8KIAkJZG1hX2N0cmxfd3JpdGUo Y2hhbiwgWElMSU5YX0RNQV9SRUdfQlRULAotCQkJICAgICAgIGh3LT5jb250cm9sICYgWElMSU5Y X0RNQV9NQVhfVFJBTlNfTEVOKTsKKwkJCSAgICAgICBody0+Y29udHJvbCAmIGNoYW4tPnhkZXYt Pm1heF9idWZmZXJfbGVuKTsKIAl9CiAKIAlsaXN0X3NwbGljZV90YWlsX2luaXQoJmNoYW4tPnBl bmRpbmdfbGlzdCwgJmNoYW4tPmFjdGl2ZV9saXN0KTsKQEAgLTE3MDEsNyArMTcwNCw3IEBAIHhp bGlueF9jZG1hX3ByZXBfbWVtY3B5KHN0cnVjdCBkbWFfY2hhbiAqZGNoYW4sIGRtYV9hZGRyX3Qg ZG1hX2RzdCwKIAlzdHJ1Y3QgeGlsaW54X2NkbWFfdHhfc2VnbWVudCAqc2VnbWVudDsKIAlzdHJ1 Y3QgeGlsaW54X2NkbWFfZGVzY19odyAqaHc7CiAKLQlpZiAoIWxlbiB8fCBsZW4gPiBYSUxJTlhf RE1BX01BWF9UUkFOU19MRU4pCisJaWYgKCFsZW4gfHwgbGVuID4gY2hhbi0+eGRldi0+bWF4X2J1 ZmZlcl9sZW4pCiAJCXJldHVybiBOVUxMOwogCiAJZGVzYyA9IHhpbGlueF9kbWFfYWxsb2NfdHhf ZGVzY3JpcHRvcihjaGFuKTsKQEAgLTE3OTIsNyArMTc5NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZG1h X2FzeW5jX3R4X2Rlc2NyaXB0b3IgKnhpbGlueF9kbWFfcHJlcF9zbGF2ZV9zZygKIAkJCSAqIG1h a2luZyBzdXJlIGl0IGlzIGxlc3MgdGhhbiB0aGUgaHcgbGltaXQKIAkJCSAqLwogCQkJY29weSA9 IG1pbl90KHNpemVfdCwgc2dfZG1hX2xlbihzZykgLSBzZ191c2VkLAotCQkJCSAgICAgWElMSU5Y X0RNQV9NQVhfVFJBTlNfTEVOKTsKKwkJCQkgICAgIGNoYW4tPnhkZXYtPm1heF9idWZmZXJfbGVu KTsKIAogCQkJaWYgKChjb3B5ICsgc2dfdXNlZCA8IHNnX2RtYV9sZW4oc2cpKSAmJgogCQkJICAg IGNoYW4tPnhkZXYtPmNvbW1vbi5jb3B5X2FsaWduKSB7CkBAIC0xOTA3LDcgKzE5MTAsNyBAQCBz dGF0aWMgc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICp4aWxpbnhfZG1hX3ByZXBfZG1h X2N5Y2xpYygKIAkJCSAqIG1ha2luZyBzdXJlIGl0IGlzIGxlc3MgdGhhbiB0aGUgaHcgbGltaXQK IAkJCSAqLwogCQkJY29weSA9IG1pbl90KHNpemVfdCwgcGVyaW9kX2xlbiAtIHNnX3VzZWQsCi0J CQkJICAgICBYSUxJTlhfRE1BX01BWF9UUkFOU19MRU4pOworCQkJCSAgICAgY2hhbi0+eGRldi0+ bWF4X2J1ZmZlcl9sZW4pOwogCiAJCQlpZiAoKGNvcHkgKyBzZ191c2VkIDwgcGVyaW9kX2xlbikg JiYKIAkJCSAgICBjaGFuLT54ZGV2LT5jb21tb24uY29weV9hbGlnbikgewpAQCAtMjU5MCw3ICsy NTkzLDcgQEAgc3RhdGljIGludCB4aWxpbnhfZG1hX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCiAJc3RydWN0IHhpbGlueF9kbWFfZGV2aWNlICp4ZGV2OwogCXN0cnVjdCBkZXZp Y2Vfbm9kZSAqY2hpbGQsICpucCA9IHBkZXYtPmRldi5vZl9ub2RlOwogCXN0cnVjdCByZXNvdXJj ZSAqaW87Ci0JdTMyIG51bV9mcmFtZXMsIGFkZHJfd2lkdGg7CisJdTMyIG51bV9mcmFtZXMsIGFk ZHJfd2lkdGgsIGxlbl93aWR0aDsKIAlpbnQgaSwgZXJyOwogCiAJLyogQWxsb2NhdGUgYW5kIGlu aXRpYWxpemUgdGhlIERNQSBlbmdpbmUgc3RydWN0dXJlICovCkBAIC0yNjIyLDggKzI2MjUsMjIg QEAgc3RhdGljIGludCB4aWxpbnhfZG1hX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCiAKIAkvKiBSZXRyaWV2ZSB0aGUgRE1BIGVuZ2luZSBwcm9wZXJ0aWVzIGZyb20gdGhlIGRl dmljZSB0cmVlICovCiAJeGRldi0+aGFzX3NnID0gb2ZfcHJvcGVydHlfcmVhZF9ib29sKG5vZGUs ICJ4bG54LGluY2x1ZGUtc2ciKTsKLQlpZiAoeGRldi0+ZG1hX2NvbmZpZy0+ZG1hdHlwZSA9PSBY RE1BX1RZUEVfQVhJRE1BKQorCXhkZXYtPm1heF9idWZmZXJfbGVuID0gR0VOTUFTSyhYSUxJTlhf RE1BX01BWF9UUkFOU19MRU5fTUFYIC0gMSwgMCk7CisKKwlpZiAoeGRldi0+ZG1hX2NvbmZpZy0+ ZG1hdHlwZSA9PSBYRE1BX1RZUEVfQVhJRE1BKSB7CiAJCXhkZXYtPm1jZG1hID0gb2ZfcHJvcGVy dHlfcmVhZF9ib29sKG5vZGUsICJ4bG54LG1jZG1hIik7CisJCWlmICghb2ZfcHJvcGVydHlfcmVh ZF91MzIobm9kZSwgInhsbngsc2ctbGVuZ3RoLXdpZHRoIiwKKwkJCQkJICAmbGVuX3dpZHRoKSkg eworCQkJaWYgKGxlbl93aWR0aCA8IFhJTElOWF9ETUFfTUFYX1RSQU5TX0xFTl9NSU4gfHwKKwkJ CSAgICBsZW5fd2lkdGggPiBYSUxJTlhfRE1BX01BWF9UUkFOU19MRU5fTUFYKSB7CisJCQkJZGV2 X3dhcm4oeGRldi0+ZGV2LAorCQkJCQkgImludmFsaWQgeGxueCxzZy1sZW5ndGgtd2lkdGggcHJv cGVydHkgdmFsdWUgdXNpbmcgZGVmYXVsdCB3aWR0aFxuIik7CisJCQl9IGVsc2UgeworCQkJCXhk ZXYtPm1heF9idWZmZXJfbGVuID0gR0VOTUFTSyhsZW5fd2lkdGggLSAxLAorCQkJCQkJCSAgICAg ICAwKTsKKwkJCX0KKwkJfQorCX0KIAogCWlmICh4ZGV2LT5kbWFfY29uZmlnLT5kbWF0eXBlID09 IFhETUFfVFlQRV9WRE1BKSB7CiAJCWVyciA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5vZGUsICJ4 bG54LG51bS1mc3RvcmVzIiwK