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: [1/6] dmaengine: xilinx_dma: fix splitting transfer causes misalignments From: Andrea Merello Message-Id: <20180620083653.17010-1-andrea.merello@gmail.com> Date: Wed, 20 Jun 2018 10:36:48 +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, Andrea Merello List-ID: V2hlbmV2ZXIgYSBzaW5nbGUgb3IgY3ljbGljIHRyYW5zYWN0aW9uIGlzIHByZXBhcmVkLCB0aGUg ZHJpdmVyCmNvdWxkIGV2ZW50dWFsbHkgc3BsaXQgaXQgb3ZlciBzZXZlcmFsIFNHIGRlc2NyaXB0 b3JzIGluIG9yZGVyCnRvIGRlYWwgd2l0aCB0aGUgSFcgbWF4aW11bSB0cmFuc2ZlciBsZW5ndGgu CgpUaGlzIGNvdWxkIGVuZCB1cCBpbiBETUEgb3BlcmF0aW9ucyBzdGFydGluZyBmcm9tIGEgbWlz YWxpZ25lZAphZGRyZXNzLiBUaGlzIHNlZW1zIGZhdGFsIGZvciB0aGUgSFcuCgpUaGlzIHBhdGNo IGV2ZW50dWFsbHkgYWRqdXN0cyB0aGUgdHJhbnNmZXIgc2l6ZSBpbiBvcmRlciB0byBtYWtlIHN1 cmUKYWxsIG9wZXJhdGlvbnMgc3RhcnQgZnJvbSBhbiBhbGlnbmVkIGFkZHJlc3MuCgpTaWduZWQt b2ZmLWJ5OiBBbmRyZWEgTWVyZWxsbyA8YW5kcmVhLm1lcmVsbG9AZ21haWwuY29tPgotLS0KIGRy aXZlcnMvZG1hL3hpbGlueC94aWxpbnhfZG1hLmMgfCAyNyArKysrKysrKysrKysrKysrKysrKy0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL3hpbGlueC94aWxpbnhfZG1hLmMgYi9kcml2ZXJzL2Rt YS94aWxpbngveGlsaW54X2RtYS5jCmluZGV4IDI3YjUyMzUzMGM0YS4uYTUxNmU3ZmZlZjIxIDEw MDY0NAotLS0gYS9kcml2ZXJzL2RtYS94aWxpbngveGlsaW54X2RtYS5jCisrKyBiL2RyaXZlcnMv ZG1hL3hpbGlueC94aWxpbnhfZG1hLmMKQEAgLTM3Niw2ICszNzYsNyBAQCBzdHJ1Y3QgeGlsaW54 X2RtYV9jaGFuIHsKIAl2b2lkICgqc3RhcnRfdHJhbnNmZXIpKHN0cnVjdCB4aWxpbnhfZG1hX2No YW4gKmNoYW4pOwogCWludCAoKnN0b3BfdHJhbnNmZXIpKHN0cnVjdCB4aWxpbnhfZG1hX2NoYW4g KmNoYW4pOwogCXUxNiB0ZGVzdDsKKwl1MzIgY29weV9tYXNrOwogfTsKIAogLyoqCkBAIC0xNzg5 LDEwICsxNzkwLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKnhp bGlueF9kbWFfcHJlcF9zbGF2ZV9zZygKIAogCQkJLyoKIAkJCSAqIENhbGN1bGF0ZSB0aGUgbWF4 aW11bSBudW1iZXIgb2YgYnl0ZXMgdG8gdHJhbnNmZXIsCi0JCQkgKiBtYWtpbmcgc3VyZSBpdCBp cyBsZXNzIHRoYW4gdGhlIGh3IGxpbWl0CisJCQkgKiBtYWtpbmcgc3VyZSBpdCBpcyBsZXNzIHRo YW4gdGhlIGh3IGxpbWl0IGFuZCB0aGF0CisJCQkgKiB0aGUgbmV4dCBjaHVjayBzdGFydCBhZGRy ZXNzIGlzIGFsaWduZWQKIAkJCSAqLwotCQkJY29weSA9IG1pbl90KHNpemVfdCwgc2dfZG1hX2xl bihzZykgLSBzZ191c2VkLAotCQkJCSAgICAgWElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOKTsKKwkJ CWNvcHkgPSBzZ19kbWFfbGVuKHNnKSAtIHNnX3VzZWQ7CisJCQlpZiAoY29weSA+IFhJTElOWF9E TUFfTUFYX1RSQU5TX0xFTikKKwkJCQljb3B5ID0gWElMSU5YX0RNQV9NQVhfVFJBTlNfTEVOICYK KwkJCQkJY2hhbi0+Y29weV9tYXNrOworCiAJCQlodyA9ICZzZWdtZW50LT5odzsKIAogCQkJLyog RmlsbCBpbiB0aGUgZGVzY3JpcHRvciAqLwpAQCAtMTg5NCwxMCArMTg5OSwxNCBAQCBzdGF0aWMg c3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICp4aWxpbnhfZG1hX3ByZXBfZG1hX2N5Y2xp YygKIAogCQkJLyoKIAkJCSAqIENhbGN1bGF0ZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMg dG8gdHJhbnNmZXIsCi0JCQkgKiBtYWtpbmcgc3VyZSBpdCBpcyBsZXNzIHRoYW4gdGhlIGh3IGxp bWl0CisJCQkgKiBtYWtpbmcgc3VyZSBpdCBpcyBsZXNzIHRoYW4gdGhlIGh3IGxpbWl0IGFuZCB0 aGF0CisJCQkgKiB0aGUgbmV4dCBjaHVjayBzdGFydCBhZGRyZXNzIGlzIGFsaWduZWQKIAkJCSAq LwotCQkJY29weSA9IG1pbl90KHNpemVfdCwgcGVyaW9kX2xlbiAtIHNnX3VzZWQsCi0JCQkJICAg ICBYSUxJTlhfRE1BX01BWF9UUkFOU19MRU4pOworCQkJY29weSA9IHBlcmlvZF9sZW4gLSBzZ191 c2VkOworCQkJaWYgKGNvcHkgPiBYSUxJTlhfRE1BX01BWF9UUkFOU19MRU4pCisJCQkJY29weSA9 IFhJTElOWF9ETUFfTUFYX1RSQU5TX0xFTiAmCisJCQkJCWNoYW4tPmNvcHlfbWFzazsKKwogCQkJ aHcgPSAmc2VnbWVudC0+aHc7CiAJCQl4aWxpbnhfYXhpZG1hX2J1ZihjaGFuLCBodywgYnVmX2Fk ZHIsIHNnX3VzZWQsCiAJCQkJCSAgcGVyaW9kX2xlbiAqIGkpOwpAQCAtMjQwMiw4ICsyNDExLDEy IEBAIHN0YXRpYyBpbnQgeGlsaW54X2RtYV9jaGFuX3Byb2JlKHN0cnVjdCB4aWxpbnhfZG1hX2Rl dmljZSAqeGRldiwKIAlpZiAod2lkdGggPiA4KQogCQloYXNfZHJlID0gZmFsc2U7CiAKLQlpZiAo IWhhc19kcmUpCisJaWYgKGhhc19kcmUpIHsKKwkJY2hhbi0+Y29weV9tYXNrID0gfjA7CisJfSBl bHNlIHsKIAkJeGRldi0+Y29tbW9uLmNvcHlfYWxpZ24gPSBmbHMod2lkdGggLSAxKTsKKwkJY2hh bi0+Y29weV9tYXNrID0gfih3aWR0aCAtIDEpOworCX0KIAogCWlmIChvZl9kZXZpY2VfaXNfY29t cGF0aWJsZShub2RlLCAieGxueCxheGktdmRtYS1tbTJzLWNoYW5uZWwiKSB8fAogCSAgICBvZl9k ZXZpY2VfaXNfY29tcGF0aWJsZShub2RlLCAieGxueCxheGktZG1hLW1tMnMtY2hhbm5lbCIpIHx8 Cg==