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,4/7] dmaengine: xilinx_dma: program hardware supported buffer length From: Andrea Merello Message-Id: <20180802141012.19970-4-andrea.merello@gmail.com> Date: Thu, 2 Aug 2018 16:10:09 +0200 To: vkoul@kernel.org, dan.j.williams@intel.com, michal.simek@xilinx.com, appana.durga.rao@xilinx.com, dmaengine@vger.kernel.org Cc: v4-000linux-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 ZHVjZWQgaW4gMS82Ci0tLQogZHJpdmVycy9kbWEveGlsaW54L3hpbGlueF9kbWEuYyB8IDM2ICsr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI4IGluc2Vy dGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEveGlsaW54 L3hpbGlueF9kbWEuYyBiL2RyaXZlcnMvZG1hL3hpbGlueC94aWxpbnhfZG1hLmMKaW5kZXggYWFh NmRlOGE3MGU0Li5iMTdmMjRlNGVjMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hL3hpbGlueC94 aWxpbnhfZG1hLmMKKysrIGIvZHJpdmVycy9kbWEveGlsaW54L3hpbGlueF9kbWEuYwpAQCAtMTU4 LDcgKzE1OCw5IEBACiAjZGVmaW5lIFhJTElOWF9ETUFfUkVHX0JUVAkJMHgyOAogCiAvKiBBWEkg RE1BIFNwZWNpZmljIE1hc2tzL0JpdCBmaWVsZHMgKi8KLSNkZWZpbmUgWElMSU5YX0RNQV9NQVhf VFJBTlNfTEVOCUdFTk1BU0soMjIsIDApCisjZGVmaW5lIFhJTElOWF9ETUFfTUFYX1RSQU5TX0xF Tl9NSU4JOAorI2RlZmluZSBYSUxJTlhfRE1BX01BWF9UUkFOU19MRU5fTUFYCTIzCisjZGVmaW5l IFhJTElOWF9ETUFfVjJfTUFYX1RSQU5TX0xFTl9NQVgJMjYKICNkZWZpbmUgWElMSU5YX0RNQV9D Ul9DT0FMRVNDRV9NQVgJR0VOTUFTSygyMywgMTYpCiAjZGVmaW5lIFhJTElOWF9ETUFfQ1JfQ1lD TElDX0JEX0VOX01BU0sJQklUKDQpCiAjZGVmaW5lIFhJTElOWF9ETUFfQ1JfQ09BTEVTQ0VfU0hJ RlQJMTYKQEAgLTQxOCw2ICs0MjAsNyBAQCBzdHJ1Y3QgeGlsaW54X2RtYV9jb25maWcgewogICog QHJ4c19jbGs6IERNQSBzMm1tIHN0cmVhbSBjbG9jawogICogQG5yX2NoYW5uZWxzOiBOdW1iZXIg b2YgY2hhbm5lbHMgRE1BIGRldmljZSBzdXBwb3J0cwogICogQGNoYW5faWQ6IERNQSBjaGFubmVs IGlkZW50aWZpZXIKKyAqIEBtYXhfYnVmZmVyX2xlbjogTWF4IGJ1ZmZlciBsZW5ndGgKICAqLwog c3RydWN0IHhpbGlueF9kbWFfZGV2aWNlIHsKIAl2b2lkIF9faW9tZW0gKnJlZ3M7CkBAIC00Mzcs NiArNDQwLDcgQEAgc3RydWN0IHhpbGlueF9kbWFfZGV2aWNlIHsKIAlzdHJ1Y3QgY2xrICpyeHNf Y2xrOwogCXUzMiBucl9jaGFubmVsczsKIAl1MzIgY2hhbl9pZDsKKwl1MzIgbWF4X2J1ZmZlcl9s ZW47CiB9OwogCiAvKiBNYWNyb3MgKi8KQEAgLTk2NCw3ICs5NjgsNyBAQCBzdGF0aWMgaW50IHhp bGlueF9kbWFfY2FsY19jb3B5c2l6ZShzdHJ1Y3QgeGlsaW54X2RtYV9jaGFuICpjaGFuLAogCQkJ CSAgICBpbnQgc2l6ZSwgaW50IGRvbmUpCiB7CiAJc2l6ZV90IGNvcHkgPSBtaW5fdChzaXplX3Qs IHNpemUgLSBkb25lLAotCQkgICAgIFhJTElOWF9ETUFfTUFYX1RSQU5TX0xFTik7CisJCQkgICAg Y2hhbi0+eGRldi0+bWF4X2J1ZmZlcl9sZW4pOwogCiAJaWYgKChjb3B5ICsgZG9uZSA8IHNpemUp ICYmCiAJICAgIGNoYW4tPnhkZXYtPmNvbW1vbi5jb3B5X2FsaWduKSB7CkBAIC0xMDExLDcgKzEw MTUsNyBAQCBzdGF0aWMgZW51bSBkbWFfc3RhdHVzIHhpbGlueF9kbWFfdHhfc3RhdHVzKHN0cnVj dCBkbWFfY2hhbiAqZGNoYW4sCiAJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHNlZ21lbnQsICZkZXNj LT5zZWdtZW50cywgbm9kZSkgewogCQkJCWh3ID0gJnNlZ21lbnQtPmh3OwogCQkJCXJlc2lkdWUg Kz0gKGh3LT5jb250cm9sIC0gaHctPnN0YXR1cykgJgotCQkJCQkgICBYSUxJTlhfRE1BX01BWF9U UkFOU19MRU47CisJCQkJCSAgIGNoYW4tPnhkZXYtPm1heF9idWZmZXJfbGVuOwogCQkJfQogCQl9 CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoYW4tPmxvY2ssIGZsYWdzKTsKQEAgLTEyNjMs NyArMTI2Nyw3IEBAIHN0YXRpYyB2b2lkIHhpbGlueF9jZG1hX3N0YXJ0X3RyYW5zZmVyKHN0cnVj dCB4aWxpbnhfZG1hX2NoYW4gKmNoYW4pCiAKIAkJLyogU3RhcnQgdGhlIHRyYW5zZmVyICovCiAJ CWRtYV9jdHJsX3dyaXRlKGNoYW4sIFhJTElOWF9ETUFfUkVHX0JUVCwKLQkJCQlody0+Y29udHJv bCAmIFhJTElOWF9ETUFfTUFYX1RSQU5TX0xFTik7CisJCQkJaHctPmNvbnRyb2wgJiBjaGFuLT54 ZGV2LT5tYXhfYnVmZmVyX2xlbik7CiAJfQogCiAJbGlzdF9zcGxpY2VfdGFpbF9pbml0KCZjaGFu LT5wZW5kaW5nX2xpc3QsICZjaGFuLT5hY3RpdmVfbGlzdCk7CkBAIC0xMzY2LDcgKzEzNzAsNyBA QCBzdGF0aWMgdm9pZCB4aWxpbnhfZG1hX3N0YXJ0X3RyYW5zZmVyKHN0cnVjdCB4aWxpbnhfZG1h X2NoYW4gKmNoYW4pCiAKIAkJLyogU3RhcnQgdGhlIHRyYW5zZmVyICovCiAJCWRtYV9jdHJsX3dy aXRlKGNoYW4sIFhJTElOWF9ETUFfUkVHX0JUVCwKLQkJCSAgICAgICBody0+Y29udHJvbCAmIFhJ TElOWF9ETUFfTUFYX1RSQU5TX0xFTik7CisJCQkgICAgICAgaHctPmNvbnRyb2wgJiBjaGFuLT54 ZGV2LT5tYXhfYnVmZmVyX2xlbik7CiAJfQogCiAJbGlzdF9zcGxpY2VfdGFpbF9pbml0KCZjaGFu LT5wZW5kaW5nX2xpc3QsICZjaGFuLT5hY3RpdmVfbGlzdCk7CkBAIC0xNzI3LDcgKzE3MzEsNyBA QCB4aWxpbnhfY2RtYV9wcmVwX21lbWNweShzdHJ1Y3QgZG1hX2NoYW4gKmRjaGFuLCBkbWFfYWRk cl90IGRtYV9kc3QsCiAJc3RydWN0IHhpbGlueF9jZG1hX3R4X3NlZ21lbnQgKnNlZ21lbnQ7CiAJ c3RydWN0IHhpbGlueF9jZG1hX2Rlc2NfaHcgKmh3OwogCi0JaWYgKCFsZW4gfHwgbGVuID4gWElM SU5YX0RNQV9NQVhfVFJBTlNfTEVOKQorCWlmICghbGVuIHx8IGxlbiA+IGNoYW4tPnhkZXYtPm1h eF9idWZmZXJfbGVuKQogCQlyZXR1cm4gTlVMTDsKIAogCWRlc2MgPSB4aWxpbnhfZG1hX2FsbG9j X3R4X2Rlc2NyaXB0b3IoY2hhbik7CkBAIC0yNTk2LDcgKzI2MDAsNyBAQCBzdGF0aWMgaW50IHhp bGlueF9kbWFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlzdHJ1Y3QgeGls aW54X2RtYV9kZXZpY2UgKnhkZXY7CiAJc3RydWN0IGRldmljZV9ub2RlICpjaGlsZCwgKm5wID0g cGRldi0+ZGV2Lm9mX25vZGU7CiAJc3RydWN0IHJlc291cmNlICppbzsKLQl1MzIgbnVtX2ZyYW1l cywgYWRkcl93aWR0aDsKKwl1MzIgbnVtX2ZyYW1lcywgYWRkcl93aWR0aCwgbGVuX3dpZHRoOwog CWludCBpLCBlcnI7CiAKIAkvKiBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZSB0aGUgRE1BIGVuZ2lu ZSBzdHJ1Y3R1cmUgKi8KQEAgLTI2MjgsOCArMjYzMiwyNCBAQCBzdGF0aWMgaW50IHhpbGlueF9k bWFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCS8qIFJldHJpZXZlIHRo ZSBETUEgZW5naW5lIHByb3BlcnRpZXMgZnJvbSB0aGUgZGV2aWNlIHRyZWUgKi8KIAl4ZGV2LT5o YXNfc2cgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobm9kZSwgInhsbngsaW5jbHVkZS1zZyIpOwot CWlmICh4ZGV2LT5kbWFfY29uZmlnLT5kbWF0eXBlID09IFhETUFfVFlQRV9BWElETUEpCisJeGRl di0+bWF4X2J1ZmZlcl9sZW4gPSBHRU5NQVNLKFhJTElOWF9ETUFfTUFYX1RSQU5TX0xFTl9NQVgg LSAxLCAwKTsKKworCWlmICh4ZGV2LT5kbWFfY29uZmlnLT5kbWF0eXBlID09IFhETUFfVFlQRV9B WElETUEpIHsKIAkJeGRldi0+bWNkbWEgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobm9kZSwgInhs bngsbWNkbWEiKTsKKwkJaWYgKCFvZl9wcm9wZXJ0eV9yZWFkX3UzMihub2RlLCAieGxueCxzZy1s ZW5ndGgtd2lkdGgiLAorCQkJCQkgICZsZW5fd2lkdGgpKSB7CisJCQlpZiAobGVuX3dpZHRoIDwg WElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOX01JTiB8fAorCQkJICAgIGxlbl93aWR0aCA+IFhJTElO WF9ETUFfVjJfTUFYX1RSQU5TX0xFTl9NQVgpIHsKKwkJCQlkZXZfd2Fybih4ZGV2LT5kZXYsCisJ CQkJCSAiaW52YWxpZCB4bG54LHNnLWxlbmd0aC13aWR0aCBwcm9wZXJ0eSB2YWx1ZS4gVXNpbmcg ZGVmYXVsdCB3aWR0aFxuIik7CisJCQl9IGVsc2UgeworCQkJCWlmIChsZW5fd2lkdGggPiBYSUxJ TlhfRE1BX01BWF9UUkFOU19MRU5fTUFYKQorCQkJCQlkZXZfd2Fybih4ZGV2LT5kZXYsICJQbGVh c2UgZW5zdXJlIHRoYXQgSVAgc3VwcG9ydHMgYnVmZmVyIGxlbmd0aCA+IDIzIGJpdHNcbiIpOwor CQkJCXhkZXYtPm1heF9idWZmZXJfbGVuID0KKwkJCQkJR0VOTUFTSyhsZW5fd2lkdGggLSAxLCAw KTsKKwkJCX0KKwkJfQorCX0KIAogCWlmICh4ZGV2LT5kbWFfY29uZmlnLT5kbWF0eXBlID09IFhE TUFfVFlQRV9WRE1BKSB7CiAJCWVyciA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5vZGUsICJ4bG54 LG51bS1mc3RvcmVzIiwK