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/2] usb: dwc2: Fix DMA alignment to start at allocated boundary From: =?utf-8?b?QW50dGkgU2VwcMOkbMOk?= Message-Id: <20180705143154.8734-2-a.seppala@gmail.com> Date: Thu, 5 Jul 2018 17:31:53 +0300 To: Minas Harutyunyan , John Youn , Felipe Balbi Cc: Grigor Tovmasyan , Vardan Mikayelyan , Douglas Anderson , William Wu , Greg Kroah-Hartman , linux-usb@vger.kernel.org, =?UTF-8?q?Antti=20Sepp=C3=A4l=C3=A4?= List-ID: VGhlIGNvbW1pdCAzYmMwNGUyOGEwMzAgKCJ1c2I6IGR3YzI6IGhvc3Q6IEdldCBhbGlnbmVkIERN QSBpbiBhIG1vcmUKc3VwcG9ydGVkIHdheSIpIGludHJvZHVjZWQgYSBjb21tb24gd2F5IHRvIGFs aWduIERNQSBhbGxvY2F0aW9ucy4KVGhlIGNvZGUgaW4gdGhlIGNvbW1pdCBhbGlnbnMgdGhlIHN0 cnVjdCBkbWFfYWxpZ25lZF9idWZmZXIgYnV0IHRoZQphY3R1YWwgRE1BIGFkZHJlc3MgcG9pbnRl ZCBieSBkYXRhWzBdIGdldHMgYWxpZ25lZCB0byBhbiBvZmZzZXQgZnJvbQp0aGUgYWxsb2NhdGVk IGJvdW5kYXJ5IGJ5IHRoZSBrbWFsbG9jX3B0ciBhbmQgdGhlIG9sZF94ZmVyX2J1ZmZlcgpwb2lu dGVycy4KClRoaXMgaXMgYWdhaW5zdCB0aGUgcmVjb21tZW5kYXRpb24gaW4gRG9jdW1lbnRhdGlv bi9ETUEtQVBJLnR4dCB3aGljaApzdGF0ZXM6CgogIFRoZXJlZm9yZSwgaXQgaXMgcmVjb21tZW5k ZWQgdGhhdCBkcml2ZXIgd3JpdGVycyB3aG8gZG9uJ3QgdGFrZQogIHNwZWNpYWwgY2FyZSB0byBk ZXRlcm1pbmUgdGhlIGNhY2hlIGxpbmUgc2l6ZSBhdCBydW4gdGltZSBvbmx5IG1hcAogIHZpcnR1 YWwgcmVnaW9ucyB0aGF0IGJlZ2luIGFuZCBlbmQgb24gcGFnZSBib3VuZGFyaWVzICh3aGljaCBh cmUKICBndWFyYW50ZWVkIGFsc28gdG8gYmUgY2FjaGUgbGluZSBib3VuZGFyaWVzKS4KClRoZSBl ZmZlY3Qgb2YgdGhpcyBpcyB0aGF0IGFyY2hpdGVjdHVyZXMgd2l0aCBub24tY29oZXJlbnQgRE1B IGNhY2hlcwptYXkgcnVuIGludG8gbWVtb3J5IGNvcnJ1cHRpb24gb3Iga2VybmVsIGNyYXNoZXMg d2l0aCBVbmhhbmRsZWQKa2VybmVsIHVuYWxpZ25lZCBhY2Nlc3NlcyBleGNlcHRpb25zLgoKRml4 IHRoZSBhbGlnbm1lbnQgYnkgcG9zaXRpb25pbmcgdGhlIERNQSBhcmVhIGluIGZyb250IG9mIHRo ZSBhbGxvY2F0aW9uCmFuZCB1c2UgbWVtb3J5IGF0IHRoZSBlbmQgb2YgdGhlIGFyZWEgZm9yIHN0 b3JpbmcgdGhlIG9yZ2luYWwKdHJhbnNmZXJfYnVmZmVyIHBvaW50ZXIuIFRoaXMgbWF5IGhhdmUg dGhlIGFkZGVkIGJlbmVmaXQgb2YgaW5jcmVhc2VkCnBlcmZvcm1hbmNlIGFzIHRoZSBETUEgYXJl YSBpcyBub3cgZnVsbHkgYWxpZ25lZCBvbiBhbGwgYXJjaGl0ZWN0dXJlcy4KClRlc3RlZCB3aXRo IExhbnRpcSB4UlgyMDAgKE1JUFMpIGFuZCBSUGkgTW9kZWwgQiBSZXYgMiAoQVJNKS4KCkZpeGVz OiAzYmMwNGUyOGEwMzAgKCJ1c2I6IGR3YzI6IGhvc3Q6IEdldCBhbGlnbmVkIERNQSBpbiBhIG1v cmUKc3VwcG9ydGVkIHdheSIpCgpTaWduZWQtb2ZmLWJ5OiBBbnR0aSBTZXBww6Rsw6QgPGEuc2Vw cGFsYUBnbWFpbC5jb20+Ci0tLQogZHJpdmVycy91c2IvZHdjMi9oY2QuYyB8IDQ0ICsrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjMg aW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Iv ZHdjMi9oY2QuYyBiL2RyaXZlcnMvdXNiL2R3YzIvaGNkLmMKaW5kZXggYjExMDRiZTM0MjljLi4y ZWQwYWMxOGUwNTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2R3YzIvaGNkLmMKKysrIGIvZHJp dmVycy91c2IvZHdjMi9oY2QuYwpAQCAtMjY2NSwzNCArMjY2NSwyOSBAQCBzdGF0aWMgaW50IGR3 YzJfYWxsb2Nfc3BsaXRfZG1hX2FsaWduZWRfYnVmKHN0cnVjdCBkd2MyX2hzb3RnICpoc290ZywK IAogI2RlZmluZSBEV0MyX1VTQl9ETUFfQUxJR04gNAogCi1zdHJ1Y3QgZG1hX2FsaWduZWRfYnVm ZmVyIHsKLQl2b2lkICprbWFsbG9jX3B0cjsKLQl2b2lkICpvbGRfeGZlcl9idWZmZXI7Ci0JdTgg ZGF0YVswXTsKLX07Ci0KIHN0YXRpYyB2b2lkIGR3YzJfZnJlZV9kbWFfYWxpZ25lZF9idWZmZXIo c3RydWN0IHVyYiAqdXJiKQogewotCXN0cnVjdCBkbWFfYWxpZ25lZF9idWZmZXIgKnRlbXA7CisJ dm9pZCAqc3RvcmVkX3hmZXJfYnVmZmVyOwogCiAJaWYgKCEodXJiLT50cmFuc2Zlcl9mbGFncyAm IFVSQl9BTElHTkVEX1RFTVBfQlVGRkVSKSkKIAkJcmV0dXJuOwogCi0JdGVtcCA9IGNvbnRhaW5l cl9vZih1cmItPnRyYW5zZmVyX2J1ZmZlciwKLQkJCSAgICBzdHJ1Y3QgZG1hX2FsaWduZWRfYnVm ZmVyLCBkYXRhKTsKKwkvKiBSZXN0b3JlIHVyYi0+dHJhbnNmZXJfYnVmZmVyIGZyb20gdGhlIGVu ZCBvZiB0aGUgYWxsb2NhdGVkIGFyZWEgKi8KKwltZW1jcHkoJnN0b3JlZF94ZmVyX2J1ZmZlciwg dXJiLT50cmFuc2Zlcl9idWZmZXIgKworCSAgICAgICB1cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5n dGgsIHNpemVvZih1cmItPnRyYW5zZmVyX2J1ZmZlcikpOwogCiAJaWYgKHVzYl91cmJfZGlyX2lu KHVyYikpCi0JCW1lbWNweSh0ZW1wLT5vbGRfeGZlcl9idWZmZXIsIHRlbXAtPmRhdGEsCisJCW1l bWNweShzdG9yZWRfeGZlcl9idWZmZXIsIHVyYi0+dHJhbnNmZXJfYnVmZmVyLAogCQkgICAgICAg dXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoKTsKLQl1cmItPnRyYW5zZmVyX2J1ZmZlciA9IHRl bXAtPm9sZF94ZmVyX2J1ZmZlcjsKLQlrZnJlZSh0ZW1wLT5rbWFsbG9jX3B0cik7CisJa2ZyZWUo dXJiLT50cmFuc2Zlcl9idWZmZXIpOworCXVyYi0+dHJhbnNmZXJfYnVmZmVyID0gc3RvcmVkX3hm ZXJfYnVmZmVyOwogCiAJdXJiLT50cmFuc2Zlcl9mbGFncyAmPSB+VVJCX0FMSUdORURfVEVNUF9C VUZGRVI7CiB9CiAKIHN0YXRpYyBpbnQgZHdjMl9hbGxvY19kbWFfYWxpZ25lZF9idWZmZXIoc3Ry dWN0IHVyYiAqdXJiLCBnZnBfdCBtZW1fZmxhZ3MpCiB7Ci0Jc3RydWN0IGRtYV9hbGlnbmVkX2J1 ZmZlciAqdGVtcCwgKmttYWxsb2NfcHRyOworCXZvaWQgKmttYWxsb2NfcHRyOwogCXNpemVfdCBr bWFsbG9jX3NpemU7CiAKIAlpZiAodXJiLT5udW1fc2dzIHx8IHVyYi0+c2cgfHwKQEAgLTI3MDAs MjIgKzI2OTUsMjkgQEAgc3RhdGljIGludCBkd2MyX2FsbG9jX2RtYV9hbGlnbmVkX2J1ZmZlcihz dHJ1Y3QgdXJiICp1cmIsIGdmcF90IG1lbV9mbGFncykKIAkgICAgISgodWludHB0cl90KXVyYi0+ dHJhbnNmZXJfYnVmZmVyICYgKERXQzJfVVNCX0RNQV9BTElHTiAtIDEpKSkKIAkJcmV0dXJuIDA7 CiAKLQkvKiBBbGxvY2F0ZSBhIGJ1ZmZlciB3aXRoIGVub3VnaCBwYWRkaW5nIGZvciBhbGlnbm1l bnQgKi8KKwkvKgorCSAqIEFsbG9jYXRlIGEgYnVmZmVyIHdpdGggZW5vdWdoIHBhZGRpbmcgZm9y IG9yaWdpbmFsIHRyYW5zZmVyX2J1ZmZlcgorCSAqIHBvaW50ZXIuIFRoaXMgYWxsb2NhdGlvbiBp cyBndWFyYW50ZWVkIHRvIGJlIGFsaWduZWQgcHJvcGVybHkgZm9yCisJICogRE1BCisJICovCiAJ a21hbGxvY19zaXplID0gdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoICsKLQkJc2l6ZW9mKHN0 cnVjdCBkbWFfYWxpZ25lZF9idWZmZXIpICsgRFdDMl9VU0JfRE1BX0FMSUdOIC0gMTsKKwkJc2l6 ZW9mKHVyYi0+dHJhbnNmZXJfYnVmZmVyKTsKIAogCWttYWxsb2NfcHRyID0ga21hbGxvYyhrbWFs bG9jX3NpemUsIG1lbV9mbGFncyk7CiAJaWYgKCFrbWFsbG9jX3B0cikKIAkJcmV0dXJuIC1FTk9N RU07CiAKLQkvKiBQb3NpdGlvbiBvdXIgc3RydWN0IGRtYV9hbGlnbmVkX2J1ZmZlciBzdWNoIHRo YXQgZGF0YSBpcyBhbGlnbmVkICovCi0JdGVtcCA9IFBUUl9BTElHTihrbWFsbG9jX3B0ciArIDEs IERXQzJfVVNCX0RNQV9BTElHTikgLSAxOwotCXRlbXAtPmttYWxsb2NfcHRyID0ga21hbGxvY19w dHI7Ci0JdGVtcC0+b2xkX3hmZXJfYnVmZmVyID0gdXJiLT50cmFuc2Zlcl9idWZmZXI7CisJLyoK KwkgKiBQb3NpdGlvbiB2YWx1ZSBvZiBvcmlnaW5hbCB1cmItPnRyYW5zZmVyX2J1ZmZlciBwb2lu dGVyIHRvIHRoZSBlbmQKKwkgKiBvZiBhbGxvY2F0aW9uIGZvciBsYXRlciByZWZlcmVuY2luZwor CSAqLworCW1lbWNweShrbWFsbG9jX3B0ciArIHVyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwK KwkgICAgICAgJnVyYi0+dHJhbnNmZXJfYnVmZmVyLCBzaXplb2YodXJiLT50cmFuc2Zlcl9idWZm ZXIpKTsKKwogCWlmICh1c2JfdXJiX2Rpcl9vdXQodXJiKSkKLQkJbWVtY3B5KHRlbXAtPmRhdGEs IHVyYi0+dHJhbnNmZXJfYnVmZmVyLAorCQltZW1jcHkoa21hbGxvY19wdHIsIHVyYi0+dHJhbnNm ZXJfYnVmZmVyLAogCQkgICAgICAgdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoKTsKLQl1cmIt PnRyYW5zZmVyX2J1ZmZlciA9IHRlbXAtPmRhdGE7CisJdXJiLT50cmFuc2Zlcl9idWZmZXIgPSBr bWFsbG9jX3B0cjsKIAogCXVyYi0+dHJhbnNmZXJfZmxhZ3MgfD0gVVJCX0FMSUdORURfVEVNUF9C VUZGRVI7CiAK