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: <20190108161158.GH25910@uda0271908> Date: Tue, 8 Jan 2019 10:11:58 -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: T24gTW9uLCBKYW4gMDcsIDIwMTkgYXQgMTE6NDU6MjRQTSAtMDUwMCwgUGF1bCBFbGRlciB3cm90 ZToKPiBIaSBCaW4sCj4gCj4gT24gTW9uLCBKYW4gMDcsIDIwMTkgYXQgMDE6MTE6NTdQTSAtMDYw MCwgQmluIExpdSB3cm90ZToKPiA+IEhpIFBhdWwsCj4gPiAKPiA+IFNvcnJ5IGZvciB0aGUgZGVs YXkgb24gcmV2aWV3aW5nIGl0Lgo+IAo+IFRoYW5rcyBmb3IgdGhlIHJldmlldy4KPiAKPiA+IEZv ciB0aGUgc3ViamVjdCwgY2FuIHlvdSBwbGVhc2UgdXNlCj4gPiAKPiA+IAl1c2I6IG11c2I6IGdh ZGdldDogZml4IHNob3J0IGlzb2MgcGFja2V0cyB3aXRoIGludmVudHJhIGRtYQo+IAo+IGFjawo+ IAo+ID4gT24gVHVlLCBPY3QgMDksIDIwMTggYXQgMDI6MzI6MjBBTSAtMDQwMCwgUGF1bCBFbGRl ciB3cm90ZToKPiA+ID4gSGFuZGxpbmcgc2hvcnQgcGFja2V0cyAobGVuZ3RoIDwgbWF4IHBhY2tl dCBzaXplKSBpbiB0aGUgSW52ZW50cmEgRE1BCj4gPiA+IGVuZ2luZSBpbiB0aGUgTVVTQiBkcml2 ZXIgY2F1c2VzIHRoZSBNVVNCIERNQSBjb250cm9sbGVyIHRvIGhhbmcuIEFuCj4gPiA+IGV4YW1w bGUgb2YgYSBwcm9ibGVtIHRoYXQgaXMgY2F1c2VkIGJ5IHRoaXMgcHJvYmxlbSBpcyB3aGVuIHN0 cmVhbWluZwo+ID4gPiB2aWRlbyBvdXQgb2YgYSBVVkMgZ2FkZ2V0LCBvbmx5IHRoZSBmaXJzdCB2 aWRlbyBmcmFtZSBpcyB0cmFuc2ZlcnJlZC4KPiA+ID4gCj4gPiA+IEZvciBzaG9ydCBwYWNrZXRz IChtb2RlLTAgb3IgbW9kZS0xIERNQSksIE1VU0JfVFhDU1JfVFhQS1RSRFkgbXVzdCBiZQo+ID4g PiBzZXQgbWFudWFsbHkgYnkgdGhlIGRyaXZlci4gVGhpcyB3YXMgcHJldmlvdXNseSBkb25lIGlu IG11c2JfZ190eAo+ID4gPiAobXVzYl9nYWRnZXQuYyksIGJ1dCBpbmNvcnJlY3RseSAoYWxsIGNz ciBmbGFncyB3ZXJlIGNsZWFyZWQsIGFuZCBvbmx5Cj4gPiA+IE1VU0JfVFhDU1JfTU9ERSBhbmQg TVVTQl9UWENTUl9UWFBLVFJEWSkuIEZpeGluZyB0aGF0IHByb2JsZW0gYWxsb3dzCj4gPiA+IHNv bWUgcmVxdWVzdHMgdG8gYmUgdHJhbnNmZXJyZWQgY29ycmVjdGx5LCBidXQgbXVsdGlwbGUgcmVx dWVzdHMgd2VyZQo+ID4gPiBvZnRlbiBwdXQgdG9nZXRoZXIgaW4gb25lIFVTQiBwYWNrZXQsIGFu ZCBjYXVzZWQgcHJvYmxlbXMgaWYgdGhlIHBhY2tldAo+ID4gPiBzaXplIHdhcyBub3QgYSBtdWx0 aXBsZSBvZiA0Lgo+ID4gPiAKPiA+ID4gSW5zdGVhZCwgTVVTQl9UWENTUl9UWFBLVFJEWSBpcyBz ZXQgaW4gZG1hX2NvbnRyb2xsZXJfaXJxIChtdXNiaHNkbWEuYyksCj4gPiA+IGp1c3QgbGlrZSBo b3N0IG1vZGUgdHJhbnNmZXJzLCB0aGVuIG11c2JfZ190eCBmb3JjZXMgdGhlIHBhY2tldCB0byBi ZQo+ID4gPiBmbHVzaGVkLCBieSBzZXR0aW5nIE1VU0JfVFhDU1JfRkxVU0hGSUZPLgoKVGhpcyBz aG91bGQgYmUgcmV3b3JkZWQsIHNpbmNlIHdlIGRvbid0IHNldCBNVVNCX1RYQ1NSX0ZMVVNIRklG TyBpbiB0aGUKY29kZS4KCj4gPiA+IAo+ID4gPiBUaGlzIHRvcGljIHdhcyBvcmlnaW5hbGx5IHRh Y2tsZWQgYnkgTmljb2xhcyBCb2ljaGF0IFswXSBbMV0gYW5kIGlzIGRpc2N1c3NlZAo+ID4gCj4g PiB0aGlzIGxpbmUgaXMgbG9uZ2VyIHRoYW4gNzUgY2hhcnMuCj4gCj4gYWNrCj4gCj4gPiA+IGZ1 cnRoZXIgYXQgWzJdIGFzIHBhcnQgb2YgaGlzIEdTb0MgcHJvamVjdCBbM10uCj4gPiA+IAo+ID4g PiBbMF0gaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9mb3J1bS8/aGw9ZW4jIXRvcGljL2JlYWds ZWJvYXJkLWdzb2MvazhBendmcDc1Q1UKPiA+ID4gWzFdIGh0dHBzOi8vZ2l0b3Jpb3VzLm9yZy9i ZWFnbGVib2FyZC11c2JzbmlmZmVyL2JlYWdsZWJvYXJkLXVzYnNuaWZmZXIta2VybmVsL2NvbW1p dC9iMGJlM2I2Y2MxOTViYTczMjE4OWIwNGYxZDQzZWM4NDNjM2U1NGM5P3A9YmVhZ2xlYm9hcmQt dXNic25pZmZlcjpiZWFnbGVib2FyZC11c2JzbmlmZmVyLWtlcm5lbC5naXQ7YT1wYXRjaDtoPWIw YmUzYjZjYzE5NWJhNzMyMTg5YjA0ZjFkNDNlYzg0M2MzZTU0YzkKPiA+ID4gWzJdIGh0dHA6Ly9i ZWFnbGVib2FyZC11c2JzbmlmZmVyLmJsb2dzcG90LmNvbS8yMDEwLzA3L211c2ItaXNvY2hyb25v dXMtdHJhbnNmZXJzLWZpeGVkLmh0bWwKPiA+ID4gWzNdIGh0dHA6Ly9lbGludXgub3JnL0JlYWds ZUJvYXJkL0dTb0MvVVNCU25pZmZlcgo+ID4gPiAKPiA+ID4gSSBoYXZlIGZvcndhcmQtcG9ydGVk IHRoaXMgcGF0Y2ggZnJvbSAyLjYuMzQgdG8gNC4xOS1yYzEuCj4gPiAKPiA+IHRoaXMgbGluZSBp cyBpcnJlbGV2YW50IHRvIHRoZSBjb21taXQgbWVzc2FnZSwgcGxlYXNlIG1vdmUgaXQgZG93biB0 bwo+ID4gdW5kZXIgJy0tLScuCj4gCj4gYWNrCj4gCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBQYXVsIEVsZGVyIDxwYXVsLmVsZGVyQGlkZWFzb25ib2FyZC5jb20+Cj4gPiA+IC0tLQo+ID4g PiAgZHJpdmVycy91c2IvbXVzYi9tdXNiX2dhZGdldC5jIHwgMjEgKysrKysrKysrKysrKystLS0t LS0tCj4gPiA+ICBkcml2ZXJzL3VzYi9tdXNiL211c2Joc2RtYS5jICAgfCAyMSArKysrKysrKysr Ky0tLS0tLS0tLS0KPiA+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMTcg ZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbXVzYi9t dXNiX2dhZGdldC5jIGIvZHJpdmVycy91c2IvbXVzYi9tdXNiX2dhZGdldC5jCj4gPiA+IGluZGV4 IGVhZThiMWIxYjQ1Yi4uZDNmMzNmNDQ5NDQ1IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL3Vz Yi9tdXNiL211c2JfZ2FkZ2V0LmMKPiA+ID4gKysrIGIvZHJpdmVycy91c2IvbXVzYi9tdXNiX2dh ZGdldC5jCj4gPiA+IEBAIC00NzksMTEgKzQ3OSwxNiBAQCB2b2lkIG11c2JfZ190eChzdHJ1Y3Qg bXVzYiAqbXVzYiwgdTggZXBudW0pCj4gPiA+ICAJCQkmJiAocmVxdWVzdC0+YWN0dWFsID09IHJl cXVlc3QtPmxlbmd0aCkpCj4gPiA+ICAJCQkJc2hvcnRfcGFja2V0ID0gdHJ1ZTsKPiA+ID4gIAo+ ID4gPiAtCQlpZiAoKG11c2JfZG1hX2ludmVudHJhKG11c2IpIHx8IG11c2JfZG1hX3V4NTAwKG11 c2IpKSAmJgo+ID4gPiAtCQkJKGlzX2RtYSAmJiAoIWRtYS0+ZGVzaXJlZF9tb2RlIHx8Cj4gPiA+ IC0JCQkJKHJlcXVlc3QtPmFjdHVhbCAmCj4gPiA+IC0JCQkJCShtdXNiX2VwLT5wYWNrZXRfc3og LSAxKSkpKSkKPiA+ID4gLQkJCQlzaG9ydF9wYWNrZXQgPSB0cnVlOwo+ID4gPiArCQlpZiAoaXNf ZG1hICYmIChtdXNiX2RtYV9pbnZlbnRyYShtdXNiKSB8fCBtdXNiX2RtYV91eDUwMChtdXNiKSkp IHsKPiA+IAo+ID4gbW9yZSB0aGFuIDgwIGNoYXJzLgo+ID4KPiA+ID4gKwkJCWlmICghZG1hLT5k ZXNpcmVkX21vZGUgfHwKPiA+IAo+ID4gSSB1bmRlcnN0YW5kIHlvdSBmb3J3YXJkLXBvcnQgTmlj b2xhcycgcGF0Y2gsIGJ1dCBkbyB5b3UgaGF2ZSBhIHNwZWNpZmljCj4gPiByZWFkb24gdG8gcmUt d3JpdGUgdGhpcyAnaWYnIGNvbmRpdGlvbj8gSSdkIGxpa2UgdG8gc2VlIG1pbmltdW0gY29kZQo+ ID4gY2hhbmdlIGluIGJ1ZyBmaXhlcywKPiA+Cj4gPiA+ICsJCQkJCXJlcXVlc3QtPmFjdHVhbCAl IG11c2JfZXAtPnBhY2tldF9zeikgewo+ID4gCj4gPiBidXQgSSBsaWtlIHRoaXMgdmVyc2lvbiB0 aG91Z2gsIGVhc2llciB0byByZWFkLgo+ID4gCj4gPiA+ICsJCQkJbXVzYl9kYmcobXVzYiwgIiVz IEZsdXNoaW5nIChGSUZPKSBFUCA6IEtQQlxuIiwKPiA+IAo+ID4gd2hhdCBpcyAnS1BCJz8gdGhl IG1lc3NhZ2UgY291bGQgYmUgbW9yZSBtZWFuaW5nZnVsPwo+ID4gCj4gPiA+ICsJCQkJCQltdXNi X2VwLT5lbmRfcG9pbnQubmFtZSk7Cj4gPiA+ICsJCQkJbXVzYl93cml0ZXcoZXBpbywgTVVTQl9U WENTUiwKPiA+ID4gKwkJCQkJCWNzciB8IE1VU0JfVFhDU1JfRkxVU0hGSUZPKTsKPiA+IAo+ID4g V2hhdCBpZiB3aXRob3V0IHRoaXMgbGluZT8gVGhlIHNob3J0IHBhY2tldCBkb2Vzbid0IHNlbmQg b3V0PyAgc2V0dGluZwo+ID4gVFhTQ1JfVFhQS1RSRFkgaW4gdGhlIGRtYSBkcml2ZXIgaXMgbm90 IHN1ZmZpY2llbnQ/ICBUWFNDUl9GTFVTSEZJRk8gaXMKPiA+IG9ubHkgdXNlZCBmb3IgYWJvcnRp bmcgY2FzZXMuCj4gCj4gSSBqdXN0IHRlc3RlZCB0aGlzIGFuZCB5b3UgYXJlIHJpZ2h0LCBpdCBk b2VzIHdvcmsgd2l0aG91dCB0aGlzIGxpbmUuCj4gU2luY2UgdGhpcyBpcyB0aGUgb25seSBzaWdu aWZpY2FudCBsaW5lIGluIHRoaXMgdmVyeSBjb21wbGV4IGlmIGJsb2NrLAo+IEknbGwganVzdCBy ZW1vdmUgdGhpcyBlbnRpcmUgYmxvY2sgdG9vLgo+IAo+ID4gPiArCQkJCXJldHVybjsKPiA+ID4g KwkJCX0KPiA+ID4gKwkJfQo+ID4gPiAgCj4gPiA+ICAJCWlmIChzaG9ydF9wYWNrZXQpIHsKPiA+ ID4gIAkJCS8qCj4gPiA+IEBAIC00OTMsOCArNDk4LDEwIEBAIHZvaWQgbXVzYl9nX3R4KHN0cnVj dCBtdXNiICptdXNiLCB1OCBlcG51bSkKPiA+ID4gIAkJCWlmIChjc3IgJiBNVVNCX1RYQ1NSX1RY UEtUUkRZKQo+ID4gPiAgCQkJCXJldHVybjsKPiA+ID4gIAo+ID4gPiAtCQkJbXVzYl93cml0ZXco ZXBpbywgTVVTQl9UWENTUiwgTVVTQl9UWENTUl9NT0RFCj4gPiA+IC0JCQkJCXwgTVVTQl9UWENT Ul9UWFBLVFJEWSk7Cj4gPiA+ICsJCQltdXNiX2RiZyhtdXNiLCAic2VuZGluZyB6ZXJvIHBrdCAo emVybz0lZCwgbGVuZ3RoPSVkLCBhY3R1YWw9JWQsIGRtYS0+ZGVzaXJlZF9tb2RlPSVkKVxuIiwK CmFjdHVhbGx5IHRoaXMgaXMgbm90IGEgJ3plcm8nIHBhY2tldCwgaXQgaXMgYSBzaG9ydCBwYWNr ZXQuCgo+ID4gPiArCQkJCSByZXF1ZXN0LT56ZXJvLCByZXF1ZXN0LT5sZW5ndGgsIHJlcXVlc3Qt PmFjdHVhbCwKPiA+IAo+ID4gbW9yZSB0aGFuIDgwIGNoYXJzLgo+IAo+IFRoZSBmb3JtYXQgc3Ry aW5nIG9yIHRoZSBwYXJhbWV0ZXJzPwoKTmV2ZXIgbWluZC4gSSBtZWFudCB0aGUgcGFyYW1ldGVy cywgYnV0IGl0IGlzIG9ubHkgMSBjaGFyIGxvbmdlciwganVzdApsZWF2ZSBpdCBsaWtlIHRoaXMu Cgo+IAo+ID4gCj4gPiA+ICsJCQkJIGRtYS0+ZGVzaXJlZF9tb2RlKTsKPiA+ID4gKwkJCW11c2Jf d3JpdGV3KGVwaW8sIE1VU0JfVFhDU1IsIGNzciB8IE1VU0JfVFhDU1JfVFhQS1RSRFkpOwo+ID4g Cj4gPiBtb3JlIHRoYW4gODAgY2hhcnMuCj4gCj4gSXQncyBvbmx5IGJ5IDEgY2hhcmFjdGVyLiBT aG91bGQgSSBzdGlsbCBwdXQgdGhlIGxhc3QgYXJndW1lbnQgb24gYSBuZXcKPiBsaW5lPwoKc2Ft ZSBoZXJlLCBuZXZlciBtaW5kIG15IGNvbW1lbnQuCgo+IAo+ID4gCj4gPiA+ICAJCQlyZXF1ZXN0 LT56ZXJvID0gMDsKPiA+ID4gIAkJfQo+ID4gPiAgCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3VzYi9tdXNiL211c2Joc2RtYS5jIGIvZHJpdmVycy91c2IvbXVzYi9tdXNiaHNkbWEuYwo+ID4g PiBpbmRleCBhNjg4ZjdmODc4MjkuLmU1MTRkNDcwMGE2YiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJp dmVycy91c2IvbXVzYi9tdXNiaHNkbWEuYwo+ID4gPiArKysgYi9kcml2ZXJzL3VzYi9tdXNiL211 c2Joc2RtYS5jCj4gPiA+IEBAIC0zNDYsMTIgKzM0NiwxMCBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qg ZG1hX2NvbnRyb2xsZXJfaXJxKGludCBpcnEsIHZvaWQgKnByaXZhdGVfZGF0YSkKPiA+ID4gIAkJ CQljaGFubmVsLT5zdGF0dXMgPSBNVVNCX0RNQV9TVEFUVVNfRlJFRTsKPiA+ID4gIAo+ID4gPiAg CQkJCS8qIGNvbXBsZXRlZCAqLwo+ID4gPiAtCQkJCWlmICgoZGV2Y3RsICYgTVVTQl9ERVZDVExf SE0pCj4gPiA+IC0JCQkJCSYmIChtdXNiX2NoYW5uZWwtPnRyYW5zbWl0KQo+ID4gPiAtCQkJCQkm JiAoKGNoYW5uZWwtPmRlc2lyZWRfbW9kZSA9PSAwKQo+ID4gPiAtCQkJCQkgICAgfHwgKGNoYW5u ZWwtPmFjdHVhbF9sZW4gJgo+ID4gPiAtCQkJCQkgICAgKG11c2JfY2hhbm5lbC0+bWF4X3BhY2tl dF9zeiAtIDEpKSkKPiA+ID4gLQkJCQkgICAgKSB7Cj4gPiA+ICsJCQkJaWYgKG11c2JfY2hhbm5l bC0+dHJhbnNtaXQgJiYKPiA+ID4gKwkJCQkgICAgKCFjaGFubmVsLT5kZXNpcmVkX21vZGUgfHwK PiA+ID4gKwkJCQkgICAgIChjaGFubmVsLT5hY3R1YWxfbGVuICUKPiA+ID4gKwkJCQkgICAgICBt dXNiX2NoYW5uZWwtPm1heF9wYWNrZXRfc3opKSkgewo+ID4gCj4gPiBpbXByb3BlciBpbmRlbnRh dGlvbi4KPiAKPiBhY2suIFlvdSBkb24ndCB0aGluayB0aGlzIGlzIG1vcmUgcmVhZGFibGUgdGhh biBpZiBldmVyeXRoaW5nIHdhcyBsaW5lZAo+IHVwPwoKVGhlIG9yaWdpbmFsIHZlcnNpb24gaGFz IDQtY2hhcnMgaW5kZW50YXRpb24sIEkgdGhpbmsgaXQgaXMgY2xlYXJlci4KCj4gCj4gPiA+ICAJ CQkJCXU4ICBlcG51bSAgPSBtdXNiX2NoYW5uZWwtPmVwbnVtOwo+ID4gPiAgCQkJCQlpbnQgb2Zm c2V0ID0gbXVzYi0+aW8uZXBfb2Zmc2V0KGVwbnVtLAo+ID4gPiAgCQkJCQkJCQkgICAgTVVTQl9U WENTUik7Cj4gPiA+IEBAIC0zNjMsMTEgKzM2MSwxNCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZG1h X2NvbnRyb2xsZXJfaXJxKGludCBpcnEsIHZvaWQgKnByaXZhdGVfZGF0YSkKPiA+ID4gIAkJCQkJ ICovCj4gPiA+ICAJCQkJCW11c2JfZXBfc2VsZWN0KG1iYXNlLCBlcG51bSk7Cj4gPiA+ICAJCQkJ CXR4Y3NyID0gbXVzYl9yZWFkdyhtYmFzZSwgb2Zmc2V0KTsKPiA+ID4gLQkJCQkJdHhjc3IgJj0g fihNVVNCX1RYQ1NSX0RNQUVOQUIKPiA+ID4gKwkJCQkJaWYgKGNoYW5uZWwtPmRlc2lyZWRfbW9k ZSA9PSAxKSB7Cj4gPiA+ICsJCQkJCQl0eGNzciAmPSB+KE1VU0JfVFhDU1JfRE1BRU5BQgo+ID4g PiAgCQkJCQkJCXwgTVVTQl9UWENTUl9BVVRPU0VUKTsKPiA+ID4gLQkJCQkJbXVzYl93cml0ZXco bWJhc2UsIG9mZnNldCwgdHhjc3IpOwo+ID4gPiAtCQkJCQkvKiBTZW5kIG91dCB0aGUgcGFja2V0 ICovCj4gPiA+IC0JCQkJCXR4Y3NyICY9IH5NVVNCX1RYQ1NSX0RNQU1PREU7Cj4gPiA+ICsJCQkJ CQltdXNiX3dyaXRldyhtYmFzZSwgb2Zmc2V0LCB0eGNzcik7Cj4gPiAKPiA+IG1vcmUgdGhhbiA4 MCBjaGFycy4KPiAKPiBUaGlzIGlzIGFsc28gb25seSBieSAyIGNoYXJhY3RlcnM7IGRvIHlvdSBz dGlsbCB3YW50IGp1c3QgdGhlIGxhc3QKPiBhcmd1bWVudCBvbiBhIG5ldyBsaW5lPwoKbmV2ZXIg bWluZCBteSBjb21tZW50LgoKUmVnYXJkcywKLUJpbi4K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 15787C43387 for ; Tue, 8 Jan 2019 16:12:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C84262087F for ; Tue, 8 Jan 2019 16:12:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b="gGoBdg86" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729437AbfAHQMF (ORCPT ); Tue, 8 Jan 2019 11:12:05 -0500 Received: from fllv0016.ext.ti.com ([198.47.19.142]:52508 "EHLO fllv0016.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728854AbfAHQME (ORCPT ); Tue, 8 Jan 2019 11:12:04 -0500 Received: from fllv0034.itg.ti.com ([10.64.40.246]) by fllv0016.ext.ti.com (8.15.2/8.15.2) with ESMTP id x08GBwTI079295; Tue, 8 Jan 2019 10:11:58 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1546963918; bh=rKQnSW7ZzrZTTxzuXMWIGAb7uYwEBw1CAcCAW6NsKgw=; h=Date:From:To:CC:Subject:References:In-Reply-To; b=gGoBdg86VZUQgZwKguc6+vpmXZYIgeqAAsUtzoKKj9uX8uiwu2JkMi2NpdyzCtvjU /NEBVZR3urjLJv98ar5YfupRYsQKrPnzjSgWnUPuw2IehjBEvoiJLozPeECvJxmHC+ b/w9owmYxAaFUEJ+Omg8t5O2S81L9WC3kLgpeaTE= Received: from DFLE102.ent.ti.com (dfle102.ent.ti.com [10.64.6.23]) by fllv0034.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x08GBwXS103842 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 8 Jan 2019 10:11:58 -0600 Received: from DFLE104.ent.ti.com (10.64.6.25) by DFLE102.ent.ti.com (10.64.6.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1591.10; Tue, 8 Jan 2019 10:11:58 -0600 Received: from dflp32.itg.ti.com (10.64.6.15) by DFLE104.ent.ti.com (10.64.6.25) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1591.10 via Frontend Transport; Tue, 8 Jan 2019 10:11:57 -0600 Received: from localhost (ileax41-snat.itg.ti.com [10.172.224.153]) by dflp32.itg.ti.com (8.14.3/8.13.8) with ESMTP id x08GBwhC011146; Tue, 8 Jan 2019 10:11:58 -0600 Date: Tue, 8 Jan 2019 10:11:58 -0600 From: Bin Liu To: Paul Elder CC: , , Nicolas Boichat , , , , Subject: Re: [PATCH] usb: gadget: musb: fix short isoc packets with inventra dma for pandaboard es Message-ID: <20190108161158.GH25910@uda0271908> Mail-Followup-To: Bin Liu , Paul Elder , 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 References: <20181009063220.13745-1-paul.elder@ideasonboard.com> <20190107191137.GA25910@uda0271908> <20190108044524.GA31873@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20190108044524.GA31873@localhost.localdomain> User-Agent: Mutt/1.5.21 (2010-09-15) X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jan 07, 2019 at 11:45:24PM -0500, Paul Elder wrote: > Hi Bin, > > On Mon, Jan 07, 2019 at 01:11:57PM -0600, Bin Liu wrote: > > Hi Paul, > > > > Sorry for the delay on reviewing it. > > Thanks for the review. > > > For the subject, can you please use > > > > usb: musb: gadget: fix short isoc packets with inventra dma > > ack > > > On Tue, Oct 09, 2018 at 02:32:20AM -0400, Paul Elder wrote: > > > Handling short packets (length < max packet size) in the Inventra DMA > > > engine in the MUSB driver causes the MUSB DMA controller to hang. An > > > example of a problem that is caused by this problem is when streaming > > > video out of a UVC gadget, only the first video frame is transferred. > > > > > > For short packets (mode-0 or mode-1 DMA), MUSB_TXCSR_TXPKTRDY must be > > > set manually by the driver. This was previously done in musb_g_tx > > > (musb_gadget.c), but incorrectly (all csr flags were cleared, and only > > > MUSB_TXCSR_MODE and MUSB_TXCSR_TXPKTRDY). Fixing that problem allows > > > some requests to be transferred correctly, but multiple requests were > > > often put together in one USB packet, and caused problems if the packet > > > size was not a multiple of 4. > > > > > > Instead, MUSB_TXCSR_TXPKTRDY is set in dma_controller_irq (musbhsdma.c), > > > just like host mode transfers, then musb_g_tx forces the packet to be > > > flushed, by setting MUSB_TXCSR_FLUSHFIFO. This should be reworded, since we don't set MUSB_TXCSR_FLUSHFIFO in the code. > > > > > > This topic was originally tackled by Nicolas Boichat [0] [1] and is discussed > > > > this line is longer than 75 chars. > > ack > > > > further at [2] as part of his GSoC project [3]. > > > > > > [0] https://groups.google.com/forum/?hl=en#!topic/beagleboard-gsoc/k8Azwfp75CU > > > [1] https://gitorious.org/beagleboard-usbsniffer/beagleboard-usbsniffer-kernel/commit/b0be3b6cc195ba732189b04f1d43ec843c3e54c9?p=beagleboard-usbsniffer:beagleboard-usbsniffer-kernel.git;a=patch;h=b0be3b6cc195ba732189b04f1d43ec843c3e54c9 > > > [2] http://beagleboard-usbsniffer.blogspot.com/2010/07/musb-isochronous-transfers-fixed.html > > > [3] http://elinux.org/BeagleBoard/GSoC/USBSniffer > > > > > > I have forward-ported this patch from 2.6.34 to 4.19-rc1. > > > > this line is irrelevant to the commit message, please move it down to > > under '---'. > > ack > > > > > > > Signed-off-by: Paul Elder > > > --- > > > drivers/usb/musb/musb_gadget.c | 21 ++++++++++++++------- > > > drivers/usb/musb/musbhsdma.c | 21 +++++++++++---------- > > > 2 files changed, 25 insertions(+), 17 deletions(-) > > > > > > diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c > > > index eae8b1b1b45b..d3f33f449445 100644 > > > --- a/drivers/usb/musb/musb_gadget.c > > > +++ b/drivers/usb/musb/musb_gadget.c > > > @@ -479,11 +479,16 @@ void musb_g_tx(struct musb *musb, u8 epnum) > > > && (request->actual == request->length)) > > > short_packet = true; > > > > > > - if ((musb_dma_inventra(musb) || musb_dma_ux500(musb)) && > > > - (is_dma && (!dma->desired_mode || > > > - (request->actual & > > > - (musb_ep->packet_sz - 1))))) > > > - short_packet = true; > > > + if (is_dma && (musb_dma_inventra(musb) || musb_dma_ux500(musb))) { > > > > more than 80 chars. > > > > > + if (!dma->desired_mode || > > > > I understand you forward-port Nicolas' patch, but do you have a specific > > readon to re-write this 'if' condition? I'd like to see minimum code > > change in bug fixes, > > > > > + request->actual % musb_ep->packet_sz) { > > > > but I like this version though, easier to read. > > > > > + musb_dbg(musb, "%s Flushing (FIFO) EP : KPB\n", > > > > what is 'KPB'? the message could be more meaningful? > > > > > + musb_ep->end_point.name); > > > + musb_writew(epio, MUSB_TXCSR, > > > + csr | MUSB_TXCSR_FLUSHFIFO); > > > > What if without this line? The short packet doesn't send out? setting > > TXSCR_TXPKTRDY in the dma driver is not sufficient? TXSCR_FLUSHFIFO is > > only used for aborting cases. > > I just tested this and you are right, it does work without this line. > Since this is the only significant line in this very complex if block, > I'll just remove this entire block too. > > > > + return; > > > + } > > > + } > > > > > > if (short_packet) { > > > /* > > > @@ -493,8 +498,10 @@ void musb_g_tx(struct musb *musb, u8 epnum) > > > if (csr & MUSB_TXCSR_TXPKTRDY) > > > return; > > > > > > - musb_writew(epio, MUSB_TXCSR, MUSB_TXCSR_MODE > > > - | MUSB_TXCSR_TXPKTRDY); > > > + musb_dbg(musb, "sending zero pkt (zero=%d, length=%d, actual=%d, dma->desired_mode=%d)\n", actually this is not a 'zero' packet, it is a short packet. > > > + request->zero, request->length, request->actual, > > > > more than 80 chars. > > The format string or the parameters? Never mind. I meant the parameters, but it is only 1 char longer, just leave it like this. > > > > > > + dma->desired_mode); > > > + musb_writew(epio, MUSB_TXCSR, csr | MUSB_TXCSR_TXPKTRDY); > > > > more than 80 chars. > > It's only by 1 character. Should I still put the last argument on a new > line? same here, never mind my comment. > > > > > > request->zero = 0; > > > } > > > > > > diff --git a/drivers/usb/musb/musbhsdma.c b/drivers/usb/musb/musbhsdma.c > > > index a688f7f87829..e514d4700a6b 100644 > > > --- a/drivers/usb/musb/musbhsdma.c > > > +++ b/drivers/usb/musb/musbhsdma.c > > > @@ -346,12 +346,10 @@ static irqreturn_t dma_controller_irq(int irq, void *private_data) > > > channel->status = MUSB_DMA_STATUS_FREE; > > > > > > /* completed */ > > > - if ((devctl & MUSB_DEVCTL_HM) > > > - && (musb_channel->transmit) > > > - && ((channel->desired_mode == 0) > > > - || (channel->actual_len & > > > - (musb_channel->max_packet_sz - 1))) > > > - ) { > > > + if (musb_channel->transmit && > > > + (!channel->desired_mode || > > > + (channel->actual_len % > > > + musb_channel->max_packet_sz))) { > > > > improper indentation. > > ack. You don't think this is more readable than if everything was lined > up? The original version has 4-chars indentation, I think it is clearer. > > > > u8 epnum = musb_channel->epnum; > > > int offset = musb->io.ep_offset(epnum, > > > MUSB_TXCSR); > > > @@ -363,11 +361,14 @@ static irqreturn_t dma_controller_irq(int irq, void *private_data) > > > */ > > > musb_ep_select(mbase, epnum); > > > txcsr = musb_readw(mbase, offset); > > > - txcsr &= ~(MUSB_TXCSR_DMAENAB > > > + if (channel->desired_mode == 1) { > > > + txcsr &= ~(MUSB_TXCSR_DMAENAB > > > | MUSB_TXCSR_AUTOSET); > > > - musb_writew(mbase, offset, txcsr); > > > - /* Send out the packet */ > > > - txcsr &= ~MUSB_TXCSR_DMAMODE; > > > + musb_writew(mbase, offset, txcsr); > > > > more than 80 chars. > > This is also only by 2 characters; do you still want just the last > argument on a new line? never mind my comment. Regards, -Bin.