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: [v6,1/7] dmaengine: xilinx_dma: commonize DMA copy size calculation From: Andrea Merello Message-Id: <20181120153151.18024-1-andrea.merello@gmail.com> Date: Tue, 20 Nov 2018 16:31:45 +0100 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: VGhpcyBwYXRjaCByZW1vdmVzIGEgYml0IG9mIGR1cGxpY2F0ZWQgY29kZSBieSBpbnRyb2R1Y2lu ZyBhIG5ldwpmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgY2FsY3VsYXRpb25zIGZvciBETUEgY29w eSBzaXplLCBhbmQKcHJlcGFyZXMgZm9yIGNoYW5nZXMgdG8gdGhlIGNvcHkgc2l6ZSBjYWxjdWxh dGlvbiB0aGF0IHdpbGwKaGFwcGVuIGluIGZvbGxvd2luZyBwYXRjaGVzLgoKU3VnZ2VzdGVkLWJ5 OiBWaW5vZCBLb3VsIDx2a291bEBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWEgTWVy ZWxsbyA8YW5kcmVhLm1lcmVsbG9AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogUmFkaGV5IFNoeWFt IFBhbmRleSA8cmFkaGV5LnNoeWFtLnBhbmRleUB4aWxpbnguY29tPgotLS0KQ2hhbmdlcyBpbiB2 NDoKCS0gaW50cm9kdWNlIHRoaXMgcGF0Y2ggaW4gdGhlIHBhdGNoIHNlcmllcwpDaGFuZ2VzIGlu IHY1OgoJTm9uZQpDaGFuZ2VzIGluIHY2OgoJLSAyLzcgd2FzIGJhc2ljYWxseSByZWRvaW5nIHdo YXQgZG9uZSBoZXJlLiBBbnRpY2lwYXRlCgkgIGhlcmUgdGhlIGludHJvZHVjdGlvbiBvZiBhIGxv Y2FsIHRlbXBvcmFyeSB2YXJpYWJsZQoJICBzbyB0aGF0IDIvNyBqdXN0IGFkZCBzdHVmZgoJLSBh ZGQgZG1hIGNoYW4gcHRyIGFyZ3VtZW50IHRvIHhpbGlueF9jYWxjX2NtYV9jb3B5c2l6ZSgpCgkg IHRvIHByZXBhcmUgZm9yIDIvNwoJLSBpbnRyb2R1Y2UgbWF4X2J1ZmZlcl9sZW4gdmFyaWFibGUg aW4gYWR2YW5jZSwgdG8gcHJlcGFyZQoJICBmb3IgNC83CgktIHJld29yZCBmb3IgYWJvdmUgY2hh bmdlcwotLS0KIGRyaXZlcnMvZG1hL3hpbGlueC94aWxpbnhfZG1hLmMgfCAzOSArKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCsp LCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL3hpbGlueC94aWxpbnhf ZG1hLmMgYi9kcml2ZXJzL2RtYS94aWxpbngveGlsaW54X2RtYS5jCmluZGV4IGMxMjQ0MjMxMjU5 NS4uMmMxZGI1MDAyODRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS94aWxpbngveGlsaW54X2Rt YS5jCisrKyBiL2RyaXZlcnMvZG1hL3hpbGlueC94aWxpbnhfZG1hLmMKQEAgLTQyMyw2ICs0MjMs NyBAQCBzdHJ1Y3QgeGlsaW54X2RtYV9jb25maWcgewogICogQHJ4c19jbGs6IERNQSBzMm1tIHN0 cmVhbSBjbG9jawogICogQG5yX2NoYW5uZWxzOiBOdW1iZXIgb2YgY2hhbm5lbHMgRE1BIGRldmlj ZSBzdXBwb3J0cwogICogQGNoYW5faWQ6IERNQSBjaGFubmVsIGlkZW50aWZpZXIKKyAqIEBtYXhf YnVmZmVyX2xlbjogTWF4IGJ1ZmZlciBsZW5ndGgKICAqLwogc3RydWN0IHhpbGlueF9kbWFfZGV2 aWNlIHsKIAl2b2lkIF9faW9tZW0gKnJlZ3M7CkBAIC00NDIsNiArNDQzLDcgQEAgc3RydWN0IHhp bGlueF9kbWFfZGV2aWNlIHsKIAlzdHJ1Y3QgY2xrICpyeHNfY2xrOwogCXUzMiBucl9jaGFubmVs czsKIAl1MzIgY2hhbl9pZDsKKwl1MzIgbWF4X2J1ZmZlcl9sZW47CiB9OwogCiAvKiBNYWNyb3Mg Ki8KQEAgLTk1Nyw2ICs5NTksMjUgQEAgc3RhdGljIGludCB4aWxpbnhfZG1hX2FsbG9jX2NoYW5f cmVzb3VyY2VzKHN0cnVjdCBkbWFfY2hhbiAqZGNoYW4pCiAJcmV0dXJuIDA7CiB9CiAKKy8qKgor ICogeGlsaW54X2RtYV9jYWxjX2NvcHlzaXplIC0gQ2FsY3VsYXRlIHRoZSBhbW91bnQgb2YgZGF0 YSB0byBjb3B5CisgKiBAY2hhbjogRHJpdmVyIHNwZWNpZmljIERNQSBjaGFubmVsCisgKiBAc2l6 ZTogVG90YWwgZGF0YSB0aGF0IG5lZWRzIHRvIGJlIGNvcGllZAorICogQGRvbmU6IEFtb3VudCBv ZiBkYXRhIHRoYXQgaGFzIGJlZW4gYWxyZWFkeSBjb3BpZWQKKyAqCisgKiBSZXR1cm46IEFtb3Vu dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIGNvcGllZAorICovCitzdGF0aWMgaW50IHhpbGlueF9k bWFfY2FsY19jb3B5c2l6ZShzdHJ1Y3QgeGlsaW54X2RtYV9jaGFuICpjaGFuLAorCQkJCSAgICBp bnQgc2l6ZSwgaW50IGRvbmUpCit7CisJc2l6ZV90IGNvcHk7CisKKwljb3B5ID0gbWluX3Qoc2l6 ZV90LCBzaXplIC0gZG9uZSwKKwkJICAgICBjaGFuLT54ZGV2LT5tYXhfYnVmZmVyX2xlbik7CisK KwlyZXR1cm4gY29weTsKK30KKwogLyoqCiAgKiB4aWxpbnhfZG1hX3R4X3N0YXR1cyAtIEdldCBE TUEgdHJhbnNhY3Rpb24gc3RhdHVzCiAgKiBAZGNoYW46IERNQSBjaGFubmVsCkBAIC05OTAsNyAr MTAxMSw3IEBAIHN0YXRpYyBlbnVtIGRtYV9zdGF0dXMgeGlsaW54X2RtYV90eF9zdGF0dXMoc3Ry dWN0IGRtYV9jaGFuICpkY2hhbiwKIAkJCWxpc3RfZm9yX2VhY2hfZW50cnkoc2VnbWVudCwgJmRl c2MtPnNlZ21lbnRzLCBub2RlKSB7CiAJCQkJaHcgPSAmc2VnbWVudC0+aHc7CiAJCQkJcmVzaWR1 ZSArPSAoaHctPmNvbnRyb2wgLSBody0+c3RhdHVzKSAmCi0JCQkJCSAgIFhJTElOWF9ETUFfTUFY X1RSQU5TX0xFTjsKKwkJCQkJICAgY2hhbi0+eGRldi0+bWF4X2J1ZmZlcl9sZW47CiAJCQl9CiAJ CX0KIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hhbi0+bG9jaywgZmxhZ3MpOwpAQCAtMTI1 MCw3ICsxMjcxLDcgQEAgc3RhdGljIHZvaWQgeGlsaW54X2NkbWFfc3RhcnRfdHJhbnNmZXIoc3Ry dWN0IHhpbGlueF9kbWFfY2hhbiAqY2hhbikKIAogCQkvKiBTdGFydCB0aGUgdHJhbnNmZXIgKi8K IAkJZG1hX2N0cmxfd3JpdGUoY2hhbiwgWElMSU5YX0RNQV9SRUdfQlRULAotCQkJCWh3LT5jb250 cm9sICYgWElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOKTsKKwkJCQlody0+Y29udHJvbCAmIGNoYW4t PnhkZXYtPm1heF9idWZmZXJfbGVuKTsKIAl9CiAKIAlsaXN0X3NwbGljZV90YWlsX2luaXQoJmNo YW4tPnBlbmRpbmdfbGlzdCwgJmNoYW4tPmFjdGl2ZV9saXN0KTsKQEAgLTEzNTMsNyArMTM3NCw3 IEBAIHN0YXRpYyB2b2lkIHhpbGlueF9kbWFfc3RhcnRfdHJhbnNmZXIoc3RydWN0IHhpbGlueF9k bWFfY2hhbiAqY2hhbikKIAogCQkvKiBTdGFydCB0aGUgdHJhbnNmZXIgKi8KIAkJZG1hX2N0cmxf d3JpdGUoY2hhbiwgWElMSU5YX0RNQV9SRUdfQlRULAotCQkJICAgICAgIGh3LT5jb250cm9sICYg WElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOKTsKKwkJCSAgICAgICBody0+Y29udHJvbCAmIGNoYW4t PnhkZXYtPm1heF9idWZmZXJfbGVuKTsKIAl9CiAKIAlsaXN0X3NwbGljZV90YWlsX2luaXQoJmNo YW4tPnBlbmRpbmdfbGlzdCwgJmNoYW4tPmFjdGl2ZV9saXN0KTsKQEAgLTE3MTQsNyArMTczNSw3 IEBAIHhpbGlueF9jZG1hX3ByZXBfbWVtY3B5KHN0cnVjdCBkbWFfY2hhbiAqZGNoYW4sIGRtYV9h ZGRyX3QgZG1hX2RzdCwKIAlzdHJ1Y3QgeGlsaW54X2NkbWFfdHhfc2VnbWVudCAqc2VnbWVudDsK IAlzdHJ1Y3QgeGlsaW54X2NkbWFfZGVzY19odyAqaHc7CiAKLQlpZiAoIWxlbiB8fCBsZW4gPiBY SUxJTlhfRE1BX01BWF9UUkFOU19MRU4pCisJaWYgKCFsZW4gfHwgbGVuID4gY2hhbi0+eGRldi0+ bWF4X2J1ZmZlcl9sZW4pCiAJCXJldHVybiBOVUxMOwogCiAJZGVzYyA9IHhpbGlueF9kbWFfYWxs b2NfdHhfZGVzY3JpcHRvcihjaGFuKTsKQEAgLTE4MDQsOCArMTgyNSw4IEBAIHN0YXRpYyBzdHJ1 Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKnhpbGlueF9kbWFfcHJlcF9zbGF2ZV9zZygKIAkJ CSAqIENhbGN1bGF0ZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMgdG8gdHJhbnNmZXIsCiAJ CQkgKiBtYWtpbmcgc3VyZSBpdCBpcyBsZXNzIHRoYW4gdGhlIGh3IGxpbWl0CiAJCQkgKi8KLQkJ CWNvcHkgPSBtaW5fdChzaXplX3QsIHNnX2RtYV9sZW4oc2cpIC0gc2dfdXNlZCwKLQkJCQkgICAg IFhJTElOWF9ETUFfTUFYX1RSQU5TX0xFTik7CisJCQljb3B5ID0geGlsaW54X2RtYV9jYWxjX2Nv cHlzaXplKGNoYW4sIHNnX2RtYV9sZW4oc2cpLAorCQkJCQkJCXNnX3VzZWQpOwogCQkJaHcgPSAm c2VnbWVudC0+aHc7CiAKIAkJCS8qIEZpbGwgaW4gdGhlIGRlc2NyaXB0b3IgKi8KQEAgLTE5MDks OCArMTkzMCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKnhpbGlu eF9kbWFfcHJlcF9kbWFfY3ljbGljKAogCQkJICogQ2FsY3VsYXRlIHRoZSBtYXhpbXVtIG51bWJl ciBvZiBieXRlcyB0byB0cmFuc2ZlciwKIAkJCSAqIG1ha2luZyBzdXJlIGl0IGlzIGxlc3MgdGhh biB0aGUgaHcgbGltaXQKIAkJCSAqLwotCQkJY29weSA9IG1pbl90KHNpemVfdCwgcGVyaW9kX2xl biAtIHNnX3VzZWQsCi0JCQkJICAgICBYSUxJTlhfRE1BX01BWF9UUkFOU19MRU4pOworCQkJY29w eSA9IHhpbGlueF9kbWFfY2FsY19jb3B5c2l6ZShjaGFuLCBwZXJpb2RfbGVuLAorCQkJCQkJCXNn X3VzZWQpOwogCQkJaHcgPSAmc2VnbWVudC0+aHc7CiAJCQl4aWxpbnhfYXhpZG1hX2J1ZihjaGFu LCBodywgYnVmX2FkZHIsIHNnX3VzZWQsCiAJCQkJCSAgcGVyaW9kX2xlbiAqIGkpOwpAQCAtMjYy NCw2ICsyNjQ1LDggQEAgc3RhdGljIGludCB4aWxpbnhfZG1hX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCiAKIAkvKiBSZXRyaWV2ZSB0aGUgRE1BIGVuZ2luZSBwcm9wZXJ0aWVz IGZyb20gdGhlIGRldmljZSB0cmVlICovCiAJeGRldi0+aGFzX3NnID0gb2ZfcHJvcGVydHlfcmVh ZF9ib29sKG5vZGUsICJ4bG54LGluY2x1ZGUtc2ciKTsKKwl4ZGV2LT5tYXhfYnVmZmVyX2xlbiA9 IFhJTElOWF9ETUFfTUFYX1RSQU5TX0xFTjsKKwogCWlmICh4ZGV2LT5kbWFfY29uZmlnLT5kbWF0 eXBlID09IFhETUFfVFlQRV9BWElETUEpCiAJCXhkZXYtPm1jZG1hID0gb2ZfcHJvcGVydHlfcmVh ZF9ib29sKG5vZGUsICJ4bG54LG1jZG1hIik7CiAK