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: usb: gadget: musb: fix short isoc packets with inventra dma for pandaboard es From: Bin Liu Message-Id: <20190107191137.GA25910@uda0271908> Date: Mon, 7 Jan 2019 13:11:57 -0600 To: Paul Elder Cc: laurent.pinchart@ideasonboard.com, kieran.bingham@ideasonboard.com, Nicolas Boichat , gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, balbi@kernel.org List-ID: SGkgUGF1bCwKClNvcnJ5IGZvciB0aGUgZGVsYXkgb24gcmV2aWV3aW5nIGl0LgpGb3IgdGhlIHN1 YmplY3QsIGNhbiB5b3UgcGxlYXNlIHVzZQoKCXVzYjogbXVzYjogZ2FkZ2V0OiBmaXggc2hvcnQg aXNvYyBwYWNrZXRzIHdpdGggaW52ZW50cmEgZG1hCgpPbiBUdWUsIE9jdCAwOSwgMjAxOCBhdCAw MjozMjoyMEFNIC0wNDAwLCBQYXVsIEVsZGVyIHdyb3RlOgo+IEhhbmRsaW5nIHNob3J0IHBhY2tl dHMgKGxlbmd0aCA8IG1heCBwYWNrZXQgc2l6ZSkgaW4gdGhlIEludmVudHJhIERNQQo+IGVuZ2lu ZSBpbiB0aGUgTVVTQiBkcml2ZXIgY2F1c2VzIHRoZSBNVVNCIERNQSBjb250cm9sbGVyIHRvIGhh bmcuIEFuCj4gZXhhbXBsZSBvZiBhIHByb2JsZW0gdGhhdCBpcyBjYXVzZWQgYnkgdGhpcyBwcm9i bGVtIGlzIHdoZW4gc3RyZWFtaW5nCj4gdmlkZW8gb3V0IG9mIGEgVVZDIGdhZGdldCwgb25seSB0 aGUgZmlyc3QgdmlkZW8gZnJhbWUgaXMgdHJhbnNmZXJyZWQuCj4gCj4gRm9yIHNob3J0IHBhY2tl dHMgKG1vZGUtMCBvciBtb2RlLTEgRE1BKSwgTVVTQl9UWENTUl9UWFBLVFJEWSBtdXN0IGJlCj4g c2V0IG1hbnVhbGx5IGJ5IHRoZSBkcml2ZXIuIFRoaXMgd2FzIHByZXZpb3VzbHkgZG9uZSBpbiBt dXNiX2dfdHgKPiAobXVzYl9nYWRnZXQuYyksIGJ1dCBpbmNvcnJlY3RseSAoYWxsIGNzciBmbGFn cyB3ZXJlIGNsZWFyZWQsIGFuZCBvbmx5Cj4gTVVTQl9UWENTUl9NT0RFIGFuZCBNVVNCX1RYQ1NS X1RYUEtUUkRZKS4gRml4aW5nIHRoYXQgcHJvYmxlbSBhbGxvd3MKPiBzb21lIHJlcXVlc3RzIHRv IGJlIHRyYW5zZmVycmVkIGNvcnJlY3RseSwgYnV0IG11bHRpcGxlIHJlcXVlc3RzIHdlcmUKPiBv ZnRlbiBwdXQgdG9nZXRoZXIgaW4gb25lIFVTQiBwYWNrZXQsIGFuZCBjYXVzZWQgcHJvYmxlbXMg aWYgdGhlIHBhY2tldAo+IHNpemUgd2FzIG5vdCBhIG11bHRpcGxlIG9mIDQuCj4gCj4gSW5zdGVh ZCwgTVVTQl9UWENTUl9UWFBLVFJEWSBpcyBzZXQgaW4gZG1hX2NvbnRyb2xsZXJfaXJxIChtdXNi aHNkbWEuYyksCj4ganVzdCBsaWtlIGhvc3QgbW9kZSB0cmFuc2ZlcnMsIHRoZW4gbXVzYl9nX3R4 IGZvcmNlcyB0aGUgcGFja2V0IHRvIGJlCj4gZmx1c2hlZCwgYnkgc2V0dGluZyBNVVNCX1RYQ1NS X0ZMVVNIRklGTy4KPiAKPiBUaGlzIHRvcGljIHdhcyBvcmlnaW5hbGx5IHRhY2tsZWQgYnkgTmlj b2xhcyBCb2ljaGF0IFswXSBbMV0gYW5kIGlzIGRpc2N1c3NlZAoKdGhpcyBsaW5lIGlzIGxvbmdl ciB0aGFuIDc1IGNoYXJzLgoKPiBmdXJ0aGVyIGF0IFsyXSBhcyBwYXJ0IG9mIGhpcyBHU29DIHBy b2plY3QgWzNdLgo+IAo+IFswXSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2ZvcnVtLz9obD1l biMhdG9waWMvYmVhZ2xlYm9hcmQtZ3NvYy9rOEF6d2ZwNzVDVQo+IFsxXSBodHRwczovL2dpdG9y aW91cy5vcmcvYmVhZ2xlYm9hcmQtdXNic25pZmZlci9iZWFnbGVib2FyZC11c2JzbmlmZmVyLWtl cm5lbC9jb21taXQvYjBiZTNiNmNjMTk1YmE3MzIxODliMDRmMWQ0M2VjODQzYzNlNTRjOT9wPWJl YWdsZWJvYXJkLXVzYnNuaWZmZXI6YmVhZ2xlYm9hcmQtdXNic25pZmZlci1rZXJuZWwuZ2l0O2E9 cGF0Y2g7aD1iMGJlM2I2Y2MxOTViYTczMjE4OWIwNGYxZDQzZWM4NDNjM2U1NGM5Cj4gWzJdIGh0 dHA6Ly9iZWFnbGVib2FyZC11c2JzbmlmZmVyLmJsb2dzcG90LmNvbS8yMDEwLzA3L211c2ItaXNv Y2hyb25vdXMtdHJhbnNmZXJzLWZpeGVkLmh0bWwKPiBbM10gaHR0cDovL2VsaW51eC5vcmcvQmVh Z2xlQm9hcmQvR1NvQy9VU0JTbmlmZmVyCj4gCj4gSSBoYXZlIGZvcndhcmQtcG9ydGVkIHRoaXMg cGF0Y2ggZnJvbSAyLjYuMzQgdG8gNC4xOS1yYzEuCgp0aGlzIGxpbmUgaXMgaXJyZWxldmFudCB0 byB0aGUgY29tbWl0IG1lc3NhZ2UsIHBsZWFzZSBtb3ZlIGl0IGRvd24gdG8KdW5kZXIgJy0tLScu Cgo+IAo+IFNpZ25lZC1vZmYtYnk6IFBhdWwgRWxkZXIgPHBhdWwuZWxkZXJAaWRlYXNvbmJvYXJk LmNvbT4KPiAtLS0KPiAgZHJpdmVycy91c2IvbXVzYi9tdXNiX2dhZGdldC5jIHwgMjEgKysrKysr KysrKysrKystLS0tLS0tCj4gIGRyaXZlcnMvdXNiL211c2IvbXVzYmhzZG1hLmMgICB8IDIxICsr KysrKysrKysrLS0tLS0tLS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyks IDE3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tdXNiL211c2Jf Z2FkZ2V0LmMgYi9kcml2ZXJzL3VzYi9tdXNiL211c2JfZ2FkZ2V0LmMKPiBpbmRleCBlYWU4YjFi MWI0NWIuLmQzZjMzZjQ0OTQ0NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3VzYi9tdXNiL211c2Jf Z2FkZ2V0LmMKPiArKysgYi9kcml2ZXJzL3VzYi9tdXNiL211c2JfZ2FkZ2V0LmMKPiBAQCAtNDc5 LDExICs0NzksMTYgQEAgdm9pZCBtdXNiX2dfdHgoc3RydWN0IG11c2IgKm11c2IsIHU4IGVwbnVt KQo+ICAJCQkmJiAocmVxdWVzdC0+YWN0dWFsID09IHJlcXVlc3QtPmxlbmd0aCkpCj4gIAkJCQlz aG9ydF9wYWNrZXQgPSB0cnVlOwo+ICAKPiAtCQlpZiAoKG11c2JfZG1hX2ludmVudHJhKG11c2Ip IHx8IG11c2JfZG1hX3V4NTAwKG11c2IpKSAmJgo+IC0JCQkoaXNfZG1hICYmICghZG1hLT5kZXNp cmVkX21vZGUgfHwKPiAtCQkJCShyZXF1ZXN0LT5hY3R1YWwgJgo+IC0JCQkJCShtdXNiX2VwLT5w YWNrZXRfc3ogLSAxKSkpKSkKPiAtCQkJCXNob3J0X3BhY2tldCA9IHRydWU7Cj4gKwkJaWYgKGlz X2RtYSAmJiAobXVzYl9kbWFfaW52ZW50cmEobXVzYikgfHwgbXVzYl9kbWFfdXg1MDAobXVzYikp KSB7Cgptb3JlIHRoYW4gODAgY2hhcnMuCgo+ICsJCQlpZiAoIWRtYS0+ZGVzaXJlZF9tb2RlIHx8 CgpJIHVuZGVyc3RhbmQgeW91IGZvcndhcmQtcG9ydCBOaWNvbGFzJyBwYXRjaCwgYnV0IGRvIHlv dSBoYXZlIGEgc3BlY2lmaWMKcmVhZG9uIHRvIHJlLXdyaXRlIHRoaXMgJ2lmJyBjb25kaXRpb24/ IEknZCBsaWtlIHRvIHNlZSBtaW5pbXVtIGNvZGUKY2hhbmdlIGluIGJ1ZyBmaXhlcywKCj4gKwkJ CQkJcmVxdWVzdC0+YWN0dWFsICUgbXVzYl9lcC0+cGFja2V0X3N6KSB7CgpidXQgSSBsaWtlIHRo aXMgdmVyc2lvbiB0aG91Z2gsIGVhc2llciB0byByZWFkLgoKPiArCQkJCW11c2JfZGJnKG11c2Is ICIlcyBGbHVzaGluZyAoRklGTykgRVAgOiBLUEJcbiIsCgp3aGF0IGlzICdLUEInPyB0aGUgbWVz c2FnZSBjb3VsZCBiZSBtb3JlIG1lYW5pbmdmdWw/Cgo+ICsJCQkJCQltdXNiX2VwLT5lbmRfcG9p bnQubmFtZSk7Cj4gKwkJCQltdXNiX3dyaXRldyhlcGlvLCBNVVNCX1RYQ1NSLAo+ICsJCQkJCQlj c3IgfCBNVVNCX1RYQ1NSX0ZMVVNIRklGTyk7CgpXaGF0IGlmIHdpdGhvdXQgdGhpcyBsaW5lPyBU aGUgc2hvcnQgcGFja2V0IGRvZXNuJ3Qgc2VuZCBvdXQ/ICBzZXR0aW5nClRYU0NSX1RYUEtUUkRZ IGluIHRoZSBkbWEgZHJpdmVyIGlzIG5vdCBzdWZmaWNpZW50PyAgVFhTQ1JfRkxVU0hGSUZPIGlz Cm9ubHkgdXNlZCBmb3IgYWJvcnRpbmcgY2FzZXMuCgo+ICsJCQkJcmV0dXJuOwo+ICsJCQl9Cj4g KwkJfQo+ICAKPiAgCQlpZiAoc2hvcnRfcGFja2V0KSB7Cj4gIAkJCS8qCj4gQEAgLTQ5Myw4ICs0 OTgsMTAgQEAgdm9pZCBtdXNiX2dfdHgoc3RydWN0IG11c2IgKm11c2IsIHU4IGVwbnVtKQo+ICAJ CQlpZiAoY3NyICYgTVVTQl9UWENTUl9UWFBLVFJEWSkKPiAgCQkJCXJldHVybjsKPiAgCj4gLQkJ CW11c2Jfd3JpdGV3KGVwaW8sIE1VU0JfVFhDU1IsIE1VU0JfVFhDU1JfTU9ERQo+IC0JCQkJCXwg TVVTQl9UWENTUl9UWFBLVFJEWSk7Cj4gKwkJCW11c2JfZGJnKG11c2IsICJzZW5kaW5nIHplcm8g cGt0ICh6ZXJvPSVkLCBsZW5ndGg9JWQsIGFjdHVhbD0lZCwgZG1hLT5kZXNpcmVkX21vZGU9JWQp XG4iLAo+ICsJCQkJIHJlcXVlc3QtPnplcm8sIHJlcXVlc3QtPmxlbmd0aCwgcmVxdWVzdC0+YWN0 dWFsLAoKbW9yZSB0aGFuIDgwIGNoYXJzLgoKPiArCQkJCSBkbWEtPmRlc2lyZWRfbW9kZSk7Cj4g KwkJCW11c2Jfd3JpdGV3KGVwaW8sIE1VU0JfVFhDU1IsIGNzciB8IE1VU0JfVFhDU1JfVFhQS1RS RFkpOwoKbW9yZSB0aGFuIDgwIGNoYXJzLgoKPiAgCQkJcmVxdWVzdC0+emVybyA9IDA7Cj4gIAkJ fQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbXVzYi9tdXNiaHNkbWEuYyBiL2RyaXZl cnMvdXNiL211c2IvbXVzYmhzZG1hLmMKPiBpbmRleCBhNjg4ZjdmODc4MjkuLmU1MTRkNDcwMGE2 YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3VzYi9tdXNiL211c2Joc2RtYS5jCj4gKysrIGIvZHJp dmVycy91c2IvbXVzYi9tdXNiaHNkbWEuYwo+IEBAIC0zNDYsMTIgKzM0NiwxMCBAQCBzdGF0aWMg aXJxcmV0dXJuX3QgZG1hX2NvbnRyb2xsZXJfaXJxKGludCBpcnEsIHZvaWQgKnByaXZhdGVfZGF0 YSkKPiAgCQkJCWNoYW5uZWwtPnN0YXR1cyA9IE1VU0JfRE1BX1NUQVRVU19GUkVFOwo+ICAKPiAg CQkJCS8qIGNvbXBsZXRlZCAqLwo+IC0JCQkJaWYgKChkZXZjdGwgJiBNVVNCX0RFVkNUTF9ITSkK PiAtCQkJCQkmJiAobXVzYl9jaGFubmVsLT50cmFuc21pdCkKPiAtCQkJCQkmJiAoKGNoYW5uZWwt PmRlc2lyZWRfbW9kZSA9PSAwKQo+IC0JCQkJCSAgICB8fCAoY2hhbm5lbC0+YWN0dWFsX2xlbiAm Cj4gLQkJCQkJICAgIChtdXNiX2NoYW5uZWwtPm1heF9wYWNrZXRfc3ogLSAxKSkpCj4gLQkJCQkg ICAgKSB7Cj4gKwkJCQlpZiAobXVzYl9jaGFubmVsLT50cmFuc21pdCAmJgo+ICsJCQkJICAgICgh Y2hhbm5lbC0+ZGVzaXJlZF9tb2RlIHx8Cj4gKwkJCQkgICAgIChjaGFubmVsLT5hY3R1YWxfbGVu ICUKPiArCQkJCSAgICAgIG11c2JfY2hhbm5lbC0+bWF4X3BhY2tldF9zeikpKSB7CgppbXByb3Bl ciBpbmRlbnRhdGlvbi4KCj4gIAkJCQkJdTggIGVwbnVtICA9IG11c2JfY2hhbm5lbC0+ZXBudW07 Cj4gIAkJCQkJaW50IG9mZnNldCA9IG11c2ItPmlvLmVwX29mZnNldChlcG51bSwKPiAgCQkJCQkJ CQkgICAgTVVTQl9UWENTUik7Cj4gQEAgLTM2MywxMSArMzYxLDE0IEBAIHN0YXRpYyBpcnFyZXR1 cm5fdCBkbWFfY29udHJvbGxlcl9pcnEoaW50IGlycSwgdm9pZCAqcHJpdmF0ZV9kYXRhKQo+ICAJ CQkJCSAqLwo+ICAJCQkJCW11c2JfZXBfc2VsZWN0KG1iYXNlLCBlcG51bSk7Cj4gIAkJCQkJdHhj c3IgPSBtdXNiX3JlYWR3KG1iYXNlLCBvZmZzZXQpOwo+IC0JCQkJCXR4Y3NyICY9IH4oTVVTQl9U WENTUl9ETUFFTkFCCj4gKwkJCQkJaWYgKGNoYW5uZWwtPmRlc2lyZWRfbW9kZSA9PSAxKSB7Cj4g KwkJCQkJCXR4Y3NyICY9IH4oTVVTQl9UWENTUl9ETUFFTkFCCj4gIAkJCQkJCQl8IE1VU0JfVFhD U1JfQVVUT1NFVCk7Cj4gLQkJCQkJbXVzYl93cml0ZXcobWJhc2UsIG9mZnNldCwgdHhjc3IpOwo+ IC0JCQkJCS8qIFNlbmQgb3V0IHRoZSBwYWNrZXQgKi8KPiAtCQkJCQl0eGNzciAmPSB+TVVTQl9U WENTUl9ETUFNT0RFOwo+ICsJCQkJCQltdXNiX3dyaXRldyhtYmFzZSwgb2Zmc2V0LCB0eGNzcik7 Cgptb3JlIHRoYW4gODAgY2hhcnMuCgo+ICsJCQkJCQkvKiBTZW5kIG91dCB0aGUgcGFja2V0ICov Cj4gKwkJCQkJCXR4Y3NyICY9IH5NVVNCX1RYQ1NSX0RNQU1PREU7Cj4gKwkJCQkJCXR4Y3NyIHw9 IE1VU0JfVFhDU1JfRE1BRU5BQjsKPiArCQkJCQl9Cj4gIAkJCQkJdHhjc3IgfD0gIE1VU0JfVFhD U1JfVFhQS1RSRFk7Cj4gIAkJCQkJbXVzYl93cml0ZXcobWJhc2UsIG9mZnNldCwgdHhjc3IpOwo+ ICAJCQkJfQoKUmVnYXJkcywKLUJpbi4K