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: [v5,4/7] dmaengine: xilinx_dma: program hardware supported buffer length From: Andrea Merello Message-Id: <20180907062502.8241-4-andrea.merello@gmail.com> Date: Fri, 7 Sep 2018 08:24:59 +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, robh+dt@kernel.org, mark.rutland@arm.com, devicetree@vger.kernel.org, radhey.shyam.pandey@xilinx.com, Andrea Merello List-ID: RnJvbTogUmFkaGV5IFNoeWFtIFBhbmRleSA8cmFkaGV5LnNoeWFtLnBhbmRleUB4aWxpbnguY29t PgoKQVhJLURNQSBJUCBzdXBwb3J0cyBjb25maWd1cmFibGUgKGNfc2dfbGVuZ3RoX3dpZHRoKSBi dWZmZXIgbGVuZ3RoCnJlZ2lzdGVyIHdpZHRoLCBoZW5jZSByZWFkIGJ1ZmZlciBsZW5ndGggKHhs bngsc2ctbGVuZ3RoLXdpZHRoKSBEVApwcm9wZXJ0eSBhbmQgZW5zdXJlIHRoYXQgZHJpdmVyIGRv ZXNuJ3QgcHJvZ3JhbSBidWZmZXIgbGVuZ3RoCmV4Y2VlZGluZyB0aGUgc3VwcG9ydGVkIGxpbWl0 LiBGb3IgVkRNQSBhbmQgQ0RNQSB0aGVyZSBpcyBubyBjaGFuZ2UuCgpDYzogUm9iIEhlcnJpbmcg PHJvYmgrZHRAa2VybmVsLm9yZz4KQ2M6IE1hcmsgUnV0bGFuZCA8bWFyay5ydXRsYW5kQGFybS5j b20+CkNjOiBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBSYWRoZXkg U2h5YW0gUGFuZGV5IDxyYWRoZXkuc2h5YW0ucGFuZGV5QHhpbGlueC5jb20+ClNpZ25lZC1vZmYt Ynk6IE1pY2hhbCBTaW1layA8bWljaGFsLnNpbWVrQHhpbGlueC5jb20+ClNpZ25lZC1vZmYtYnk6 IEFuZHJlYSBNZXJlbGxvIDxhbmRyZWEubWVyZWxsb0BnbWFpbC5jb20+IFtyZWJhc2UsIHJld29y ZF0KLS0tCkNoYW5nZXMgaW4gdjI6CiAgICAgICAgLSBkcm9wIG9yaWdpbmFsIHBhdGNoIGFuZCBy ZXBsYWNlIHdpdGggdGhlIG9uZSBpbiBYaWxpbnggdHJlZQpDaGFuZ2VzIGluIHYzOgoJLSBjYyBE VCBtYWludGFpbmVycy9NTApDaGFuZ2VzIGluIHY0OgoJLSB1cHBlciBib3VuZCBmb3IgdGhlIHBy b3BlcnR5IHNob3VsZCBiZSAyNiwgbm90IDIzCgktIGFkZCB3YXJuIGZvciB3aWR0aCA+IDIzIGFz IHBlciB4aWxpbnggb3JpZ2luYWwgcGF0Y2gKCS0gcmV3b3JrIGR1ZSB0byBjaGFuZ2VzIGludHJv ZHVjZWQgaW4gMS82CkNoYW5nZXMgaW4gdjU6CglOb25lCi0tLQogZHJpdmVycy9kbWEveGlsaW54 L3hpbGlueF9kbWEuYyB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9kbWEveGlsaW54L3hpbGlueF9kbWEuYyBiL2RyaXZlcnMvZG1hL3hpbGlueC94 aWxpbnhfZG1hLmMKaW5kZXggYWFhNmRlOGE3MGU0Li5iMTdmMjRlNGVjMzUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZG1hL3hpbGlueC94aWxpbnhfZG1hLmMKKysrIGIvZHJpdmVycy9kbWEveGlsaW54 L3hpbGlueF9kbWEuYwpAQCAtMTU4LDcgKzE1OCw5IEBACiAjZGVmaW5lIFhJTElOWF9ETUFfUkVH X0JUVAkJMHgyOAogCiAvKiBBWEkgRE1BIFNwZWNpZmljIE1hc2tzL0JpdCBmaWVsZHMgKi8KLSNk ZWZpbmUgWElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOCUdFTk1BU0soMjIsIDApCisjZGVmaW5lIFhJ TElOWF9ETUFfTUFYX1RSQU5TX0xFTl9NSU4JOAorI2RlZmluZSBYSUxJTlhfRE1BX01BWF9UUkFO U19MRU5fTUFYCTIzCisjZGVmaW5lIFhJTElOWF9ETUFfVjJfTUFYX1RSQU5TX0xFTl9NQVgJMjYK ICNkZWZpbmUgWElMSU5YX0RNQV9DUl9DT0FMRVNDRV9NQVgJR0VOTUFTSygyMywgMTYpCiAjZGVm aW5lIFhJTElOWF9ETUFfQ1JfQ1lDTElDX0JEX0VOX01BU0sJQklUKDQpCiAjZGVmaW5lIFhJTElO WF9ETUFfQ1JfQ09BTEVTQ0VfU0hJRlQJMTYKQEAgLTQxOCw2ICs0MjAsNyBAQCBzdHJ1Y3QgeGls aW54X2RtYV9jb25maWcgewogICogQHJ4c19jbGs6IERNQSBzMm1tIHN0cmVhbSBjbG9jawogICog QG5yX2NoYW5uZWxzOiBOdW1iZXIgb2YgY2hhbm5lbHMgRE1BIGRldmljZSBzdXBwb3J0cwogICog QGNoYW5faWQ6IERNQSBjaGFubmVsIGlkZW50aWZpZXIKKyAqIEBtYXhfYnVmZmVyX2xlbjogTWF4 IGJ1ZmZlciBsZW5ndGgKICAqLwogc3RydWN0IHhpbGlueF9kbWFfZGV2aWNlIHsKIAl2b2lkIF9f aW9tZW0gKnJlZ3M7CkBAIC00MzcsNiArNDQwLDcgQEAgc3RydWN0IHhpbGlueF9kbWFfZGV2aWNl IHsKIAlzdHJ1Y3QgY2xrICpyeHNfY2xrOwogCXUzMiBucl9jaGFubmVsczsKIAl1MzIgY2hhbl9p ZDsKKwl1MzIgbWF4X2J1ZmZlcl9sZW47CiB9OwogCiAvKiBNYWNyb3MgKi8KQEAgLTk2NCw3ICs5 NjgsNyBAQCBzdGF0aWMgaW50IHhpbGlueF9kbWFfY2FsY19jb3B5c2l6ZShzdHJ1Y3QgeGlsaW54 X2RtYV9jaGFuICpjaGFuLAogCQkJCSAgICBpbnQgc2l6ZSwgaW50IGRvbmUpCiB7CiAJc2l6ZV90 IGNvcHkgPSBtaW5fdChzaXplX3QsIHNpemUgLSBkb25lLAotCQkgICAgIFhJTElOWF9ETUFfTUFY X1RSQU5TX0xFTik7CisJCQkgICAgY2hhbi0+eGRldi0+bWF4X2J1ZmZlcl9sZW4pOwogCiAJaWYg KChjb3B5ICsgZG9uZSA8IHNpemUpICYmCiAJICAgIGNoYW4tPnhkZXYtPmNvbW1vbi5jb3B5X2Fs aWduKSB7CkBAIC0xMDExLDcgKzEwMTUsNyBAQCBzdGF0aWMgZW51bSBkbWFfc3RhdHVzIHhpbGlu eF9kbWFfdHhfc3RhdHVzKHN0cnVjdCBkbWFfY2hhbiAqZGNoYW4sCiAJCQlsaXN0X2Zvcl9lYWNo X2VudHJ5KHNlZ21lbnQsICZkZXNjLT5zZWdtZW50cywgbm9kZSkgewogCQkJCWh3ID0gJnNlZ21l bnQtPmh3OwogCQkJCXJlc2lkdWUgKz0gKGh3LT5jb250cm9sIC0gaHctPnN0YXR1cykgJgotCQkJ CQkgICBYSUxJTlhfRE1BX01BWF9UUkFOU19MRU47CisJCQkJCSAgIGNoYW4tPnhkZXYtPm1heF9i dWZmZXJfbGVuOwogCQkJfQogCQl9CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoYW4tPmxv Y2ssIGZsYWdzKTsKQEAgLTEyNjMsNyArMTI2Nyw3IEBAIHN0YXRpYyB2b2lkIHhpbGlueF9jZG1h X3N0YXJ0X3RyYW5zZmVyKHN0cnVjdCB4aWxpbnhfZG1hX2NoYW4gKmNoYW4pCiAKIAkJLyogU3Rh cnQgdGhlIHRyYW5zZmVyICovCiAJCWRtYV9jdHJsX3dyaXRlKGNoYW4sIFhJTElOWF9ETUFfUkVH X0JUVCwKLQkJCQlody0+Y29udHJvbCAmIFhJTElOWF9ETUFfTUFYX1RSQU5TX0xFTik7CisJCQkJ aHctPmNvbnRyb2wgJiBjaGFuLT54ZGV2LT5tYXhfYnVmZmVyX2xlbik7CiAJfQogCiAJbGlzdF9z cGxpY2VfdGFpbF9pbml0KCZjaGFuLT5wZW5kaW5nX2xpc3QsICZjaGFuLT5hY3RpdmVfbGlzdCk7 CkBAIC0xMzY2LDcgKzEzNzAsNyBAQCBzdGF0aWMgdm9pZCB4aWxpbnhfZG1hX3N0YXJ0X3RyYW5z ZmVyKHN0cnVjdCB4aWxpbnhfZG1hX2NoYW4gKmNoYW4pCiAKIAkJLyogU3RhcnQgdGhlIHRyYW5z ZmVyICovCiAJCWRtYV9jdHJsX3dyaXRlKGNoYW4sIFhJTElOWF9ETUFfUkVHX0JUVCwKLQkJCSAg ICAgICBody0+Y29udHJvbCAmIFhJTElOWF9ETUFfTUFYX1RSQU5TX0xFTik7CisJCQkgICAgICAg aHctPmNvbnRyb2wgJiBjaGFuLT54ZGV2LT5tYXhfYnVmZmVyX2xlbik7CiAJfQogCiAJbGlzdF9z cGxpY2VfdGFpbF9pbml0KCZjaGFuLT5wZW5kaW5nX2xpc3QsICZjaGFuLT5hY3RpdmVfbGlzdCk7 CkBAIC0xNzI3LDcgKzE3MzEsNyBAQCB4aWxpbnhfY2RtYV9wcmVwX21lbWNweShzdHJ1Y3QgZG1h X2NoYW4gKmRjaGFuLCBkbWFfYWRkcl90IGRtYV9kc3QsCiAJc3RydWN0IHhpbGlueF9jZG1hX3R4 X3NlZ21lbnQgKnNlZ21lbnQ7CiAJc3RydWN0IHhpbGlueF9jZG1hX2Rlc2NfaHcgKmh3OwogCi0J aWYgKCFsZW4gfHwgbGVuID4gWElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOKQorCWlmICghbGVuIHx8 IGxlbiA+IGNoYW4tPnhkZXYtPm1heF9idWZmZXJfbGVuKQogCQlyZXR1cm4gTlVMTDsKIAogCWRl c2MgPSB4aWxpbnhfZG1hX2FsbG9jX3R4X2Rlc2NyaXB0b3IoY2hhbik7CkBAIC0yNTk2LDcgKzI2 MDAsNyBAQCBzdGF0aWMgaW50IHhpbGlueF9kbWFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKIAlzdHJ1Y3QgeGlsaW54X2RtYV9kZXZpY2UgKnhkZXY7CiAJc3RydWN0IGRldmlj ZV9ub2RlICpjaGlsZCwgKm5wID0gcGRldi0+ZGV2Lm9mX25vZGU7CiAJc3RydWN0IHJlc291cmNl ICppbzsKLQl1MzIgbnVtX2ZyYW1lcywgYWRkcl93aWR0aDsKKwl1MzIgbnVtX2ZyYW1lcywgYWRk cl93aWR0aCwgbGVuX3dpZHRoOwogCWludCBpLCBlcnI7CiAKIAkvKiBBbGxvY2F0ZSBhbmQgaW5p dGlhbGl6ZSB0aGUgRE1BIGVuZ2luZSBzdHJ1Y3R1cmUgKi8KQEAgLTI2MjgsOCArMjYzMiwyNCBA QCBzdGF0aWMgaW50IHhpbGlueF9kbWFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKIAogCS8qIFJldHJpZXZlIHRoZSBETUEgZW5naW5lIHByb3BlcnRpZXMgZnJvbSB0aGUgZGV2 aWNlIHRyZWUgKi8KIAl4ZGV2LT5oYXNfc2cgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobm9kZSwg InhsbngsaW5jbHVkZS1zZyIpOwotCWlmICh4ZGV2LT5kbWFfY29uZmlnLT5kbWF0eXBlID09IFhE TUFfVFlQRV9BWElETUEpCisJeGRldi0+bWF4X2J1ZmZlcl9sZW4gPSBHRU5NQVNLKFhJTElOWF9E TUFfTUFYX1RSQU5TX0xFTl9NQVggLSAxLCAwKTsKKworCWlmICh4ZGV2LT5kbWFfY29uZmlnLT5k bWF0eXBlID09IFhETUFfVFlQRV9BWElETUEpIHsKIAkJeGRldi0+bWNkbWEgPSBvZl9wcm9wZXJ0 eV9yZWFkX2Jvb2wobm9kZSwgInhsbngsbWNkbWEiKTsKKwkJaWYgKCFvZl9wcm9wZXJ0eV9yZWFk X3UzMihub2RlLCAieGxueCxzZy1sZW5ndGgtd2lkdGgiLAorCQkJCQkgICZsZW5fd2lkdGgpKSB7 CisJCQlpZiAobGVuX3dpZHRoIDwgWElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOX01JTiB8fAorCQkJ ICAgIGxlbl93aWR0aCA+IFhJTElOWF9ETUFfVjJfTUFYX1RSQU5TX0xFTl9NQVgpIHsKKwkJCQlk ZXZfd2Fybih4ZGV2LT5kZXYsCisJCQkJCSAiaW52YWxpZCB4bG54LHNnLWxlbmd0aC13aWR0aCBw cm9wZXJ0eSB2YWx1ZS4gVXNpbmcgZGVmYXVsdCB3aWR0aFxuIik7CisJCQl9IGVsc2UgeworCQkJ CWlmIChsZW5fd2lkdGggPiBYSUxJTlhfRE1BX01BWF9UUkFOU19MRU5fTUFYKQorCQkJCQlkZXZf d2Fybih4ZGV2LT5kZXYsICJQbGVhc2UgZW5zdXJlIHRoYXQgSVAgc3VwcG9ydHMgYnVmZmVyIGxl bmd0aCA+IDIzIGJpdHNcbiIpOworCQkJCXhkZXYtPm1heF9idWZmZXJfbGVuID0KKwkJCQkJR0VO TUFTSyhsZW5fd2lkdGggLSAxLCAwKTsKKwkJCX0KKwkJfQorCX0KIAogCWlmICh4ZGV2LT5kbWFf Y29uZmlnLT5kbWF0eXBlID09IFhETUFfVFlQRV9WRE1BKSB7CiAJCWVyciA9IG9mX3Byb3BlcnR5 X3JlYWRfdTMyKG5vZGUsICJ4bG54LG51bS1mc3RvcmVzIiwK