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: [v2,3/5] dmaengine: xilinx_dma: program hardware supported buffer length From: Andrea Merello Message-Id: <20180621115822.20058-3-andrea.merello@gmail.com> Date: Thu, 21 Jun 2018 13:58:20 +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 , Radhey Shyam Pandey , Andrea Merello List-ID: RnJvbTogUmFkaGV5IFNoeWFtIFBhbmRleSA8cmFkaGV5LnNoeWFtLnBhbmRleUB4aWxpbnguY29t PgoKQVhJLURNQSBJUCBzdXBwb3J0cyBjb25maWd1cmFibGUgKGNfc2dfbGVuZ3RoX3dpZHRoKSBi dWZmZXIgbGVuZ3RoCnJlZ2lzdGVyIHdpZHRoLCBoZW5jZSByZWFkIGJ1ZmZlciBsZW5ndGggKHhs bngsc2ctbGVuZ3RoLXdpZHRoKSBEVApwcm9wZXJ0eSBhbmQgZW5zdXJlIHRoYXQgZHJpdmVyIGRv ZXNuJ3QgcHJvZ3JhbSBidWZmZXIgbGVuZ3RoCmV4Y2VlZGluZyB0aGUgc3VwcG9ydGVkIGxpbWl0 LiBGb3IgVkRNQSBhbmQgQ0RNQSB0aGVyZSBpcyBubyBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBS YWRoZXkgU2h5YW0gUGFuZGV5IDxyYWRoZXlzQHhpbGlueC5jb20+ClNpZ25lZC1vZmYtYnk6IE1p Y2hhbCBTaW1layA8bWljaGFsLnNpbWVrQHhpbGlueC5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJl YSBNZXJlbGxvIDxhbmRyZWEubWVyZWxsb0BnbWFpbC5jb20+IFtyZWJhc2UsIHJld29yZF0KLS0t CkNoYW5nZXMgaW4gdjI6CgktIGRyb3Agb3JpZ2luYWwgcGF0Y2ggYW5kIHJlcGxhY2Ugd2l0aCB0 aGUgb25lIGluIFhpbGlueCB0cmVlCi0tLQogZHJpdmVycy9kbWEveGlsaW54L3hpbGlueF9kbWEu YyB8IDM5ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDI4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv ZG1hL3hpbGlueC94aWxpbnhfZG1hLmMgYi9kcml2ZXJzL2RtYS94aWxpbngveGlsaW54X2RtYS5j CmluZGV4IDIyZDdhNmI4NWU2NS4uZTEwNzc1ZDMwNTE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Rt YS94aWxpbngveGlsaW54X2RtYS5jCisrKyBiL2RyaXZlcnMvZG1hL3hpbGlueC94aWxpbnhfZG1h LmMKQEAgLTE1OCw3ICsxNTgsOCBAQAogI2RlZmluZSBYSUxJTlhfRE1BX1JFR19CVFQJCTB4MjgK IAogLyogQVhJIERNQSBTcGVjaWZpYyBNYXNrcy9CaXQgZmllbGRzICovCi0jZGVmaW5lIFhJTElO WF9ETUFfTUFYX1RSQU5TX0xFTglHRU5NQVNLKDIyLCAwKQorI2RlZmluZSBYSUxJTlhfRE1BX01B WF9UUkFOU19MRU5fTUlOCTgKKyNkZWZpbmUgWElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOX01BWAky MwogI2RlZmluZSBYSUxJTlhfRE1BX0NSX0NPQUxFU0NFX01BWAlHRU5NQVNLKDIzLCAxNikKICNk ZWZpbmUgWElMSU5YX0RNQV9DUl9DWUNMSUNfQkRfRU5fTUFTSwlCSVQoNCkKICNkZWZpbmUgWElM SU5YX0RNQV9DUl9DT0FMRVNDRV9TSElGVAkxNgpAQCAtNDE4LDYgKzQxOSw3IEBAIHN0cnVjdCB4 aWxpbnhfZG1hX2NvbmZpZyB7CiAgKiBAcnhzX2NsazogRE1BIHMybW0gc3RyZWFtIGNsb2NrCiAg KiBAbnJfY2hhbm5lbHM6IE51bWJlciBvZiBjaGFubmVscyBETUEgZGV2aWNlIHN1cHBvcnRzCiAg KiBAY2hhbl9pZDogRE1BIGNoYW5uZWwgaWRlbnRpZmllcgorICogQG1heF9idWZmZXJfbGVuOiBN YXggYnVmZmVyIGxlbmd0aAogICovCiBzdHJ1Y3QgeGlsaW54X2RtYV9kZXZpY2UgewogCXZvaWQg X19pb21lbSAqcmVnczsKQEAgLTQzNyw2ICs0MzksNyBAQCBzdHJ1Y3QgeGlsaW54X2RtYV9kZXZp Y2UgewogCXN0cnVjdCBjbGsgKnJ4c19jbGs7CiAJdTMyIG5yX2NoYW5uZWxzOwogCXUzMiBjaGFu X2lkOworCXUzMiBtYXhfYnVmZmVyX2xlbjsKIH07CiAKIC8qIE1hY3JvcyAqLwpAQCAtOTg1LDcg Kzk4OCw3IEBAIHN0YXRpYyBlbnVtIGRtYV9zdGF0dXMgeGlsaW54X2RtYV90eF9zdGF0dXMoc3Ry dWN0IGRtYV9jaGFuICpkY2hhbiwKIAkJCWxpc3RfZm9yX2VhY2hfZW50cnkoc2VnbWVudCwgJmRl c2MtPnNlZ21lbnRzLCBub2RlKSB7CiAJCQkJaHcgPSAmc2VnbWVudC0+aHc7CiAJCQkJcmVzaWR1 ZSArPSAoaHctPmNvbnRyb2wgLSBody0+c3RhdHVzKSAmCi0JCQkJCSAgIFhJTElOWF9ETUFfTUFY X1RSQU5TX0xFTjsKKwkJCQkJICAgY2hhbi0+eGRldi0+bWF4X2J1ZmZlcl9sZW47CiAJCQl9CiAJ CX0KIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hhbi0+bG9jaywgZmxhZ3MpOwpAQCAtMTIz Nyw3ICsxMjQwLDcgQEAgc3RhdGljIHZvaWQgeGlsaW54X2NkbWFfc3RhcnRfdHJhbnNmZXIoc3Ry dWN0IHhpbGlueF9kbWFfY2hhbiAqY2hhbikKIAogCQkvKiBTdGFydCB0aGUgdHJhbnNmZXIgKi8K IAkJZG1hX2N0cmxfd3JpdGUoY2hhbiwgWElMSU5YX0RNQV9SRUdfQlRULAotCQkJCWh3LT5jb250 cm9sICYgWElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOKTsKKwkJCQlody0+Y29udHJvbCAmIGNoYW4t PnhkZXYtPm1heF9idWZmZXJfbGVuKTsKIAl9CiAKIAlsaXN0X3NwbGljZV90YWlsX2luaXQoJmNo YW4tPnBlbmRpbmdfbGlzdCwgJmNoYW4tPmFjdGl2ZV9saXN0KTsKQEAgLTEzNDAsNyArMTM0Myw3 IEBAIHN0YXRpYyB2b2lkIHhpbGlueF9kbWFfc3RhcnRfdHJhbnNmZXIoc3RydWN0IHhpbGlueF9k bWFfY2hhbiAqY2hhbikKIAogCQkvKiBTdGFydCB0aGUgdHJhbnNmZXIgKi8KIAkJZG1hX2N0cmxf d3JpdGUoY2hhbiwgWElMSU5YX0RNQV9SRUdfQlRULAotCQkJICAgICAgIGh3LT5jb250cm9sICYg WElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOKTsKKwkJCSAgICAgICBody0+Y29udHJvbCAmIGNoYW4t PnhkZXYtPm1heF9idWZmZXJfbGVuKTsKIAl9CiAKIAlsaXN0X3NwbGljZV90YWlsX2luaXQoJmNo YW4tPnBlbmRpbmdfbGlzdCwgJmNoYW4tPmFjdGl2ZV9saXN0KTsKQEAgLTE3MDEsNyArMTcwNCw3 IEBAIHhpbGlueF9jZG1hX3ByZXBfbWVtY3B5KHN0cnVjdCBkbWFfY2hhbiAqZGNoYW4sIGRtYV9h ZGRyX3QgZG1hX2RzdCwKIAlzdHJ1Y3QgeGlsaW54X2NkbWFfdHhfc2VnbWVudCAqc2VnbWVudDsK IAlzdHJ1Y3QgeGlsaW54X2NkbWFfZGVzY19odyAqaHc7CiAKLQlpZiAoIWxlbiB8fCBsZW4gPiBY SUxJTlhfRE1BX01BWF9UUkFOU19MRU4pCisJaWYgKCFsZW4gfHwgbGVuID4gY2hhbi0+eGRldi0+ bWF4X2J1ZmZlcl9sZW4pCiAJCXJldHVybiBOVUxMOwogCiAJZGVzYyA9IHhpbGlueF9kbWFfYWxs b2NfdHhfZGVzY3JpcHRvcihjaGFuKTsKQEAgLTE3OTMsOSArMTc5Niw5IEBAIHN0YXRpYyBzdHJ1 Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKnhpbGlueF9kbWFfcHJlcF9zbGF2ZV9zZygKIAkJ CSAqIHRoZSBuZXh0IGNodW5jayBzdGFydCBhZGRyZXNzIGlzIGFsaWduZWQKIAkJCSAqLwogCQkJ Y29weSA9IHNnX2RtYV9sZW4oc2cpIC0gc2dfdXNlZDsKLQkJCWlmIChjb3B5ID4gWElMSU5YX0RN QV9NQVhfVFJBTlNfTEVOICYmCisJCQlpZiAoY29weSA+IGNoYW4tPnhkZXYtPm1heF9idWZmZXJf bGVuICYmCiAJCQkgICAgY2hhbi0+eGRldi0+Y29tbW9uLmNvcHlfYWxpZ24pCi0JCQkJY29weSA9 IHJvdW5kZG93bihYSUxJTlhfRE1BX01BWF9UUkFOU19MRU4sCisJCQkJY29weSA9IHJvdW5kZG93 bihjaGFuLT54ZGV2LT5tYXhfYnVmZmVyX2xlbiwKIAkJCQkJICgxIDw8IGNoYW4tPnhkZXYtPmNv bW1vbi5jb3B5X2FsaWduKSk7CiAKIAkJCWh3ID0gJnNlZ21lbnQtPmh3OwpAQCAtMTkwMyw5ICsx OTA2LDkgQEAgc3RhdGljIHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAqeGlsaW54X2Rt YV9wcmVwX2RtYV9jeWNsaWMoCiAJCQkgKiB0aGUgbmV4dCBjaHVuY2sgc3RhcnQgYWRkcmVzcyBp cyBhbGlnbmVkCiAJCQkgKi8KIAkJCWNvcHkgPSBwZXJpb2RfbGVuIC0gc2dfdXNlZDsKLQkJCWlm IChjb3B5ID4gWElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOICYmCisJCQlpZiAoY29weSA+IGNoYW4t PnhkZXYtPm1heF9idWZmZXJfbGVuICYmCiAJCQkgICAgY2hhbi0+eGRldi0+Y29tbW9uLmNvcHlf YWxpZ24pCi0JCQkJY29weSA9IHJvdW5kZG93bihYSUxJTlhfRE1BX01BWF9UUkFOU19MRU4sCisJ CQkJY29weSA9IHJvdW5kZG93bihjaGFuLT54ZGV2LT5tYXhfYnVmZmVyX2xlbiwKIAkJCQkJICgx IDw8IGNoYW4tPnhkZXYtPmNvbW1vbi5jb3B5X2FsaWduKSk7CiAKIAkJCWh3ID0gJnNlZ21lbnQt Pmh3OwpAQCAtMjU4MCw3ICsyNTgzLDcgQEAgc3RhdGljIGludCB4aWxpbnhfZG1hX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJc3RydWN0IHhpbGlueF9kbWFfZGV2aWNlICp4 ZGV2OwogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqY2hpbGQsICpucCA9IHBkZXYtPmRldi5vZl9ub2Rl OwogCXN0cnVjdCByZXNvdXJjZSAqaW87Ci0JdTMyIG51bV9mcmFtZXMsIGFkZHJfd2lkdGg7CisJ dTMyIG51bV9mcmFtZXMsIGFkZHJfd2lkdGgsIGxlbl93aWR0aDsKIAlpbnQgaSwgZXJyOwogCiAJ LyogQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgdGhlIERNQSBlbmdpbmUgc3RydWN0dXJlICovCkBA IC0yNjEyLDggKzI2MTUsMjIgQEAgc3RhdGljIGludCB4aWxpbnhfZG1hX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAkvKiBSZXRyaWV2ZSB0aGUgRE1BIGVuZ2luZSBwcm9w ZXJ0aWVzIGZyb20gdGhlIGRldmljZSB0cmVlICovCiAJeGRldi0+aGFzX3NnID0gb2ZfcHJvcGVy dHlfcmVhZF9ib29sKG5vZGUsICJ4bG54LGluY2x1ZGUtc2ciKTsKLQlpZiAoeGRldi0+ZG1hX2Nv bmZpZy0+ZG1hdHlwZSA9PSBYRE1BX1RZUEVfQVhJRE1BKQorCXhkZXYtPm1heF9idWZmZXJfbGVu ID0gR0VOTUFTSyhYSUxJTlhfRE1BX01BWF9UUkFOU19MRU5fTUFYIC0gMSwgMCk7CisKKwlpZiAo eGRldi0+ZG1hX2NvbmZpZy0+ZG1hdHlwZSA9PSBYRE1BX1RZUEVfQVhJRE1BKSB7CiAJCXhkZXYt Pm1jZG1hID0gb2ZfcHJvcGVydHlfcmVhZF9ib29sKG5vZGUsICJ4bG54LG1jZG1hIik7CisJCWlm ICghb2ZfcHJvcGVydHlfcmVhZF91MzIobm9kZSwgInhsbngsc2ctbGVuZ3RoLXdpZHRoIiwKKwkJ CQkJICAmbGVuX3dpZHRoKSkgeworCQkJaWYgKGxlbl93aWR0aCA8IFhJTElOWF9ETUFfTUFYX1RS QU5TX0xFTl9NSU4gfHwKKwkJCSAgICBsZW5fd2lkdGggPiBYSUxJTlhfRE1BX01BWF9UUkFOU19M RU5fTUFYKSB7CisJCQkJZGV2X3dhcm4oeGRldi0+ZGV2LAorCQkJCQkgImludmFsaWQgeGxueCxz Zy1sZW5ndGgtd2lkdGggcHJvcGVydHkgdmFsdWUgdXNpbmcgZGVmYXVsdCB3aWR0aFxuIik7CisJ CQl9IGVsc2UgeworCQkJCXhkZXYtPm1heF9idWZmZXJfbGVuID0gR0VOTUFTSyhsZW5fd2lkdGgg LSAxLAorCQkJCQkJCSAgICAgICAwKTsKKwkJCX0KKwkJfQorCX0KIAogCWlmICh4ZGV2LT5kbWFf Y29uZmlnLT5kbWF0eXBlID09IFhETUFfVFlQRV9WRE1BKSB7CiAJCWVyciA9IG9mX3Byb3BlcnR5 X3JlYWRfdTMyKG5vZGUsICJ4bG54LG51bS1mc3RvcmVzIiwK