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] usb: gadget: musb: fix short isoc packets with inventra dma From: Paul Elder Message-Id: <20190109071009.27625-1-paul.elder@ideasonboard.com> Date: Wed, 9 Jan 2019 02:10:09 -0500 To: laurent.pinchart@ideasonboard.com, kieran.bingham@ideasonboard.com Cc: Paul Elder , drinkcat@chromium.org, b-liu@ti.com, balbi@kernel.org, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: SGFuZGxpbmcgc2hvcnQgcGFja2V0cyAobGVuZ3RoIDwgbWF4IHBhY2tldCBzaXplKSBpbiB0aGUg SW52ZW50cmEgRE1BCmVuZ2luZSBpbiB0aGUgTVVTQiBkcml2ZXIgY2F1c2VzIHRoZSBNVVNCIERN QSBjb250cm9sbGVyIHRvIGhhbmcuIEFuCmV4YW1wbGUgb2YgYSBwcm9ibGVtIHRoYXQgaXMgY2F1 c2VkIGJ5IHRoaXMgcHJvYmxlbSBpcyB3aGVuIHN0cmVhbWluZwp2aWRlbyBvdXQgb2YgYSBVVkMg Z2FkZ2V0LCBvbmx5IHRoZSBmaXJzdCB2aWRlbyBmcmFtZSBpcyB0cmFuc2ZlcnJlZC4KCkZvciBz aG9ydCBwYWNrZXRzIChtb2RlLTAgb3IgbW9kZS0xIERNQSksIE1VU0JfVFhDU1JfVFhQS1RSRFkg bXVzdCBiZQpzZXQgbWFudWFsbHkgYnkgdGhlIGRyaXZlci4gVGhpcyB3YXMgcHJldmlvdXNseSBk b25lIGluIG11c2JfZ190eAoobXVzYl9nYWRnZXQuYyksIGJ1dCBpbmNvcnJlY3RseSAoYWxsIGNz ciBmbGFncyB3ZXJlIGNsZWFyZWQsIGFuZCBvbmx5Ck1VU0JfVFhDU1JfTU9ERSBhbmQgTVVTQl9U WENTUl9UWFBLVFJEWSB3ZXJlIHNldCkuIEZpeGluZyB0aGF0IHByb2JsZW0KYWxsb3dzIHNvbWUg cmVxdWVzdHMgdG8gYmUgdHJhbnNmZXJyZWQgY29ycmVjdGx5LCBidXQgbXVsdGlwbGUgcmVxdWVz dHMKd2VyZSBvZnRlbiBwdXQgdG9nZXRoZXIgaW4gb25lIFVTQiBwYWNrZXQsIGFuZCBjYXVzZWQg cHJvYmxlbXMgaWYgdGhlCnBhY2tldCBzaXplIHdhcyBub3QgYSBtdWx0aXBsZSBvZiA0LiBJbnN0 ZWFkLCBzZXQgTVVTQl9UWENTUl9UWFBLVFJEWQppbiBkbWFfY29udHJvbGxlcl9pcnEgKG11c2Jo c2RtYS5jKSwganVzdCBsaWtlIGhvc3QgbW9kZSB0cmFuc2ZlcnMuCgpUaGlzIHRvcGljIHdhcyBv cmlnaW5hbGx5IHRhY2tsZWQgYnkgTmljb2xhcyBCb2ljaGF0IFswXSBbMV0gYW5kIGlzCmRpc2N1 c3NlZCBmdXJ0aGVyIGF0IFsyXSBhcyBwYXJ0IG9mIGhpcyBHU29DIHByb2plY3QgWzNdLgoKWzBd IGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZm9ydW0vP2hsPWVuIyF0b3BpYy9iZWFnbGVib2Fy ZC1nc29jL2s4QXp3ZnA3NUNVClsxXSBodHRwczovL2dpdG9yaW91cy5vcmcvYmVhZ2xlYm9hcmQt dXNic25pZmZlci9iZWFnbGVib2FyZC11c2JzbmlmZmVyLWtlcm5lbC9jb21taXQvYjBiZTNiNmNj MTk1YmE3MzIxODliMDRmMWQ0M2VjODQzYzNlNTRjOT9wPWJlYWdsZWJvYXJkLXVzYnNuaWZmZXI6 YmVhZ2xlYm9hcmQtdXNic25pZmZlci1rZXJuZWwuZ2l0O2E9cGF0Y2g7aD1iMGJlM2I2Y2MxOTVi YTczMjE4OWIwNGYxZDQzZWM4NDNjM2U1NGM5ClsyXSBodHRwOi8vYmVhZ2xlYm9hcmQtdXNic25p ZmZlci5ibG9nc3BvdC5jb20vMjAxMC8wNy9tdXNiLWlzb2Nocm9ub3VzLXRyYW5zZmVycy1maXhl ZC5odG1sClszXSBodHRwOi8vZWxpbnV4Lm9yZy9CZWFnbGVCb2FyZC9HU29DL1VTQlNuaWZmZXIK ClNpZ25lZC1vZmYtYnk6IFBhdWwgRWxkZXIgPHBhdWwuZWxkZXJAaWRlYXNvbmJvYXJkLmNvbT4K LS0tCkNoYW5nZXMgaW4gdjI6CgotIG5vIG1vcmUgZmx1c2hpbmcgRklGTwotIGdyZWF0bHkgc2lt cGxpZmllZCBzaG9ydCBwYWNrZXQgaWYgZ3VhcmQgaW4gbXVzYl9nX3R4LCBhbmQgcmVtb3ZlZAog IHVubmVjZXNzYXJ5IHZhcmlhYmxlcwotIG1pbm9yIGluZGVudGF0aW9uIGFuZCB3b3JkaW5nIGNo YW5nZXMKCiBkcml2ZXJzL3VzYi9tdXNiL211c2JfZ2FkZ2V0LmMgfCAxOSArKysrKy0tLS0tLS0t LS0tLS0tCiBkcml2ZXJzL3VzYi9tdXNiL211c2Joc2RtYS5jICAgfCAyMSArKysrKysrKysrKy0t LS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbXVzYi9tdXNiX2dhZGdldC5jIGIvZHJpdmVy cy91c2IvbXVzYi9tdXNiX2dhZGdldC5jCmluZGV4IGVhZThiMWIxYjQ1Yi4uNDk2NjQzZjU0ZmFh IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9tdXNiL211c2JfZ2FkZ2V0LmMKKysrIGIvZHJpdmVy cy91c2IvbXVzYi9tdXNiX2dhZGdldC5jCkBAIC00NTIsMTMgKzQ1MiwxMCBAQCB2b2lkIG11c2Jf Z190eChzdHJ1Y3QgbXVzYiAqbXVzYiwgdTggZXBudW0pCiAJfQogCiAJaWYgKHJlcXVlc3QpIHsK LQkJdTgJaXNfZG1hID0gMDsKLQkJYm9vbAlzaG9ydF9wYWNrZXQgPSBmYWxzZTsKIAogCQl0cmFj ZV9tdXNiX3JlcV90eChyZXEpOwogCiAJCWlmIChkbWEgJiYgKGNzciAmIE1VU0JfVFhDU1JfRE1B RU5BQikpIHsKLQkJCWlzX2RtYSA9IDE7CiAJCQljc3IgfD0gTVVTQl9UWENTUl9QX1daQ19CSVRT OwogCQkJY3NyICY9IH4oTVVTQl9UWENTUl9ETUFFTkFCIHwgTVVTQl9UWENTUl9QX1VOREVSUlVO IHwKIAkJCQkgTVVTQl9UWENTUl9UWFBLVFJEWSB8IE1VU0JfVFhDU1JfQVVUT1NFVCk7CkBAIC00 NzYsMTYgKzQ3Myw4IEBAIHZvaWQgbXVzYl9nX3R4KHN0cnVjdCBtdXNiICptdXNiLCB1OCBlcG51 bSkKIAkJICovCiAJCWlmICgocmVxdWVzdC0+emVybyAmJiByZXF1ZXN0LT5sZW5ndGgpCiAJCQkm JiAocmVxdWVzdC0+bGVuZ3RoICUgbXVzYl9lcC0+cGFja2V0X3N6ID09IDApCi0JCQkmJiAocmVx dWVzdC0+YWN0dWFsID09IHJlcXVlc3QtPmxlbmd0aCkpCi0JCQkJc2hvcnRfcGFja2V0ID0gdHJ1 ZTsKKwkJCSYmIChyZXF1ZXN0LT5hY3R1YWwgPT0gcmVxdWVzdC0+bGVuZ3RoKSkgewogCi0JCWlm ICgobXVzYl9kbWFfaW52ZW50cmEobXVzYikgfHwgbXVzYl9kbWFfdXg1MDAobXVzYikpICYmCi0J CQkoaXNfZG1hICYmICghZG1hLT5kZXNpcmVkX21vZGUgfHwKLQkJCQkocmVxdWVzdC0+YWN0dWFs ICYKLQkJCQkJKG11c2JfZXAtPnBhY2tldF9zeiAtIDEpKSkpKQotCQkJCXNob3J0X3BhY2tldCA9 IHRydWU7Ci0KLQkJaWYgKHNob3J0X3BhY2tldCkgewogCQkJLyoKIAkJCSAqIE9uIERNQSBjb21w bGV0aW9uLCBGSUZPIG1heSBub3QgYmUKIAkJCSAqIGF2YWlsYWJsZSB5ZXQuLi4KQEAgLTQ5Myw4 ICs0ODIsMTAgQEAgdm9pZCBtdXNiX2dfdHgoc3RydWN0IG11c2IgKm11c2IsIHU4IGVwbnVtKQog CQkJaWYgKGNzciAmIE1VU0JfVFhDU1JfVFhQS1RSRFkpCiAJCQkJcmV0dXJuOwogCi0JCQltdXNi X3dyaXRldyhlcGlvLCBNVVNCX1RYQ1NSLCBNVVNCX1RYQ1NSX01PREUKLQkJCQkJfCBNVVNCX1RY Q1NSX1RYUEtUUkRZKTsKKwkJCW11c2JfZGJnKG11c2IsICJzZW5kaW5nIHNob3J0IHBrdCAoemVy bz0lZCwgbGVuZ3RoPSVkLCBhY3R1YWw9JWQsIGRtYS0+ZGVzaXJlZF9tb2RlPSVkKVxuIiwKKwkJ CQkgcmVxdWVzdC0+emVybywgcmVxdWVzdC0+bGVuZ3RoLCByZXF1ZXN0LT5hY3R1YWwsCisJCQkJ IGRtYS0+ZGVzaXJlZF9tb2RlKTsKKwkJCW11c2Jfd3JpdGV3KGVwaW8sIE1VU0JfVFhDU1IsIGNz ciB8IE1VU0JfVFhDU1JfVFhQS1RSRFkpOwogCQkJcmVxdWVzdC0+emVybyA9IDA7CiAJCX0KIApk aWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbXVzYi9tdXNiaHNkbWEuYyBiL2RyaXZlcnMvdXNiL211 c2IvbXVzYmhzZG1hLmMKaW5kZXggYTY4OGY3Zjg3ODI5Li41ZmM2ODI1NzQ1ZjIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvdXNiL211c2IvbXVzYmhzZG1hLmMKKysrIGIvZHJpdmVycy91c2IvbXVzYi9t dXNiaHNkbWEuYwpAQCAtMzQ2LDEyICszNDYsMTAgQEAgc3RhdGljIGlycXJldHVybl90IGRtYV9j b250cm9sbGVyX2lycShpbnQgaXJxLCB2b2lkICpwcml2YXRlX2RhdGEpCiAJCQkJY2hhbm5lbC0+ c3RhdHVzID0gTVVTQl9ETUFfU1RBVFVTX0ZSRUU7CiAKIAkJCQkvKiBjb21wbGV0ZWQgKi8KLQkJ CQlpZiAoKGRldmN0bCAmIE1VU0JfREVWQ1RMX0hNKQotCQkJCQkmJiAobXVzYl9jaGFubmVsLT50 cmFuc21pdCkKLQkJCQkJJiYgKChjaGFubmVsLT5kZXNpcmVkX21vZGUgPT0gMCkKLQkJCQkJICAg IHx8IChjaGFubmVsLT5hY3R1YWxfbGVuICYKLQkJCQkJICAgIChtdXNiX2NoYW5uZWwtPm1heF9w YWNrZXRfc3ogLSAxKSkpCi0JCQkJICAgICkgeworCQkJCWlmIChtdXNiX2NoYW5uZWwtPnRyYW5z bWl0ICYmCisJCQkJCSghY2hhbm5lbC0+ZGVzaXJlZF9tb2RlIHx8CisJCQkJCShjaGFubmVsLT5h Y3R1YWxfbGVuICUKKwkJCQkJICAgIG11c2JfY2hhbm5lbC0+bWF4X3BhY2tldF9zeikpKSB7CiAJ CQkJCXU4ICBlcG51bSAgPSBtdXNiX2NoYW5uZWwtPmVwbnVtOwogCQkJCQlpbnQgb2Zmc2V0ID0g bXVzYi0+aW8uZXBfb2Zmc2V0KGVwbnVtLAogCQkJCQkJCQkgICAgTVVTQl9UWENTUik7CkBAIC0z NjMsMTEgKzM2MSwxNCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZG1hX2NvbnRyb2xsZXJfaXJxKGlu dCBpcnEsIHZvaWQgKnByaXZhdGVfZGF0YSkKIAkJCQkJICovCiAJCQkJCW11c2JfZXBfc2VsZWN0 KG1iYXNlLCBlcG51bSk7CiAJCQkJCXR4Y3NyID0gbXVzYl9yZWFkdyhtYmFzZSwgb2Zmc2V0KTsK LQkJCQkJdHhjc3IgJj0gfihNVVNCX1RYQ1NSX0RNQUVOQUIKKwkJCQkJaWYgKGNoYW5uZWwtPmRl c2lyZWRfbW9kZSA9PSAxKSB7CisJCQkJCQl0eGNzciAmPSB+KE1VU0JfVFhDU1JfRE1BRU5BQgog CQkJCQkJCXwgTVVTQl9UWENTUl9BVVRPU0VUKTsKLQkJCQkJbXVzYl93cml0ZXcobWJhc2UsIG9m ZnNldCwgdHhjc3IpOwotCQkJCQkvKiBTZW5kIG91dCB0aGUgcGFja2V0ICovCi0JCQkJCXR4Y3Ny ICY9IH5NVVNCX1RYQ1NSX0RNQU1PREU7CisJCQkJCQltdXNiX3dyaXRldyhtYmFzZSwgb2Zmc2V0 LCB0eGNzcik7CisJCQkJCQkvKiBTZW5kIG91dCB0aGUgcGFja2V0ICovCisJCQkJCQl0eGNzciAm PSB+TVVTQl9UWENTUl9ETUFNT0RFOworCQkJCQkJdHhjc3IgfD0gTVVTQl9UWENTUl9ETUFFTkFC OworCQkJCQl9CiAJCQkJCXR4Y3NyIHw9ICBNVVNCX1RYQ1NSX1RYUEtUUkRZOwogCQkJCQltdXNi X3dyaXRldyhtYmFzZSwgb2Zmc2V0LCB0eGNzcik7CiAJCQkJfQo=