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: [2/3] usb: dwc3: gadget: Don't skip updating remaining data From: Felipe Balbi Message-Id: <8736vxw7l6.fsf@linux.intel.com> Date: Thu, 02 Aug 2018 10:28:21 +0300 To: Thinh Nguyen Thinh Nguyen Cc: "linux-usb@vger.kernel.org" , John Youn List-ID: SGksCgpUaGluaCBOZ3V5ZW4gPFRoaW5oLk5ndXllbkBzeW5vcHN5cy5jb20+IHdyaXRlczoKPj4+ Pgo+Pj4+IDEuIFdoZW4gYSBUUkIgcmVjZWl2ZXMgd2hvc2UgQ1NQIGJpdCBpcyAwIGFuZCBDSE4g Yml0IGlzIDEgcmVjZWl2ZXMgYQo+Pj4+IHNob3J0IHBhY2tldCwgdGhlIGNoYWluZWQgVFJCcyB0 aGF0IGZvbGxvdyBpdCBhcmUgbm90IHdyaXR0ZW4gYmFjawo+Pj4+IChlLmcuIHRoZSBCVUZTSVog YW5kIEhXTyBmaWVsZHMgcmVtYWluIHRoZSBzYW1lIGFzIHRoZQo+Pj4+IHNvZnR3YXJlLXByZXBh cmVkIHZhbHVlKQo+Pj4+Cj4+Pj4gMi4gSW4gdGhlIGNhc2Ugb2YgYW4gT1VUIGVuZHBvaW50LCBp ZiB0aGUgQ0hOIGJpdCBpcyBzZXQgKGFuZCBDU1AgaXMKPj4+PiBhbHNvIHNldCksIGFuZCBhIHNo b3J0IHBhY2tldCBpcyByZWNlaXZlZCwgdGhlIGNvcmUgcmV0aXJlcyB0aGUgVFJCIGluCj4+Pj4g cHJvZ3Jlc3MgYW5kIHNraXAgcGFzdCB0aGUgVFJCIHdoZXJlIENITj0wLCBhY2N1bXVsYXRpbmcg dGhlIElTUCBhbmQKPj4+PiBJT0MgYml0cyBmcm9tIGVhY2ggVFJCLiBJZiBJU1Agb3IgSU9DIGlz IHNldCBpbiBhbnkgVFJCLCB0aGUgY29yZQo+Pj4+IGdlbmVyYXRlcyBhbiBYZmVySW5Qcm9ncmVz cyBldmVudC4gSGFyZHdhcmUgZG9lcyBub3Qgc2V0IHRoZSBIV08gYml0Cj4+Pj4gdG8gMCBpbiBz a2lwcGVkIFRSQnMuIElmIHRoZSBlbmRwb2ludCB0eXBlIGlzIGlzb2Nocm9ub3VzLCB0aGUgQ0hO PTAKPj4+PiBUUkIgd2lsbCBhbHNvIGJlIHJldGlyZWQgYW5kIGl0cyBidWZmZXIgc2l6ZSBmaWVs ZCB1cGRhdGVkIHdpdGggdGhlCj4+Pj4gdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHJlbWFpbmluZyBp biB0aGUgQkQuCj4+Pj4KPj4+PiBOb3RlIHRoYXQgYXQgbW9zdCB3ZSBoYXZlIGNvbmZpcm1hdGlv biB0aGF0IFNJWkUgd2lsbCBiZSB1cGRhdGVkIGluCj4+Pj4gY2FzZSBvZiBJc29jIGVuZHBvaW50 cywgYnV0IHRoZXJlJ3Mgbm90aGluZyB0aGVyZSBhYm91dCBIV08sIHNvIEkKPj4+PiBleHBlY3Rl ZCBpdCB0byByZW1haW4gc2V0IGFjY29yZGluZyB0byB0aGUgcmVzdCBvZiB0aGUgdGV4dC4KPj4+ Pgo+Pj4+IFRoZXJlJ3Mgb25lIHBvc3NpYmlsaXR5IHRoYXQgIlRSQiB3aWxsIGFsc28gYmUgKnJl dGlyZWQqIiBtZWFucyB0aGF0Cj4+Pj4gaXQncyBub3Qgc2tpcHBlZCwgd2hpY2ggd291bGQgbWVh biB0aGF0IEhXTyBpcywgaW5kZWVkLCBzZXQgdG8gMC4gVG8KPgo+IFJpZ2h0LiBBbmQgdGhlIHBy b2dyYW1taW5nIGd1aWRlIGFsc28gc2F5cyB0aGF0IGZvciBpc29jIE9VVCB0cmFuc2ZlciwKPiAt IEFueSBub24tZmlyc3QgVFJCcyB3aXRoIENITj0xIHRoYXQgaGFkIG5vdCBhbHJlYWR5IGJlZW4g cmV0aXJlZCB3aWxsCj4gbm90IGJlIHdyaXR0ZW4gYmFjay4gSFdPIHdpbGwgc3RpbGwgYmUgMSwg YW5kIHNvZnR3YXJlIGNhbiByZWNsYWltIHRoZW0KPiBmb3IgYW5vdGhlciB0cmFuc2Zlci4KPiAt IFRoZSBsYXN0IFRSQiBvZiB0aGUgQnVmZmVyIERlc2NyaXB0b3Igd2lsbCBiZSByZXRpcmVkIHdp dGg6Cj4gICAgICogSFdPID0gMC4KPiAgICAgKiBCVUZTSVogPSBUaGUgdG90YWwgcmVtYWluaW5n IGJ1ZmZlciBzaXplIG9mIHRoZSBCdWZmZXIgRGVzY3JpcHRvci4KPiAgCj4gU28gd2Uga25vdyB0 aGF0IHRoZSBsYXN0IGlzb2MgVFJCIHdpbGwgaGF2ZSBDSE49MCBhbmQgSFdPPTAuCgp5ZWFoLCBv bmx5IG5vdyBJIHVuZGVyc3Rvb2QgdGhlIGFjdHVhbCBwcm9ibGVtLiByZXEtPmxlbmd0aCBpcyAx LCBzbwpyZWFkaW5nIEJVRlNJWiBmcm9tIGxhc3QgVFJCIHdpbGwsIGFjdHVhbGx5LCBjYXVzZSB0 aGUgcHJvYmxlbS4KCj4gc3RhdGljIGludCBkd2MzX2dhZGdldF9lcF9yZWNsYWltX2NvbXBsZXRl ZF90cmIoc3RydWN0IGR3YzNfZXAgKmRlcCwKPiAgICAgICAgIHN0cnVjdCBkd2MzX3JlcXVlc3Qg KnJlcSwgc3RydWN0IGR3YzNfdHJiICp0cmIsCj4gICAgICAgICBjb25zdCBzdHJ1Y3QgZHdjM19l dmVudF9kZXBldnQgKmV2ZW50LCBpbnQgc3RhdHVzLCBpbnQgY2hhaW4pCj4gewo+ICAgICB1bnNp Z25lZCBpbnQgICAgICAgIGNvdW50Owo+Cj4gICAgIGR3YzNfZXBfaW5jX2RlcShkZXApOwo+Cj4g ICAgIHRyYWNlX2R3YzNfY29tcGxldGVfdHJiKGRlcCwgdHJiKTsKPgo+ICAgICAvKgo+ICAgICAg KiBJZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIHNlcmllcyBvZiBjaGFpbmVkIFRSQnMgYW5kIHdl Cj4gICAgICAqIHJlY2VpdmUgYSBzaG9ydCB0cmFuc2ZlciBhbG9uZyB0aGUgd2F5LCBEV0MzIHdp bGwgc2tpcAo+ICAgICAgKiB0aHJvdWdoIGFsbCBUUkJzIGluY2x1ZGluZyB0aGUgbGFzdCBUUkIg aW4gdGhlIGNoYWluICh0aGUKPiAgICAgICogd2hlcmUgQ0hOIGJpdCBpcyB6ZXJvLiBEV0MzIHdp bGwgYWxzbyBhdm9pZCBjbGVhcmluZyBIV08KPiAgICAgICogYml0IGFuZCBTVyBoYXMgdG8gZG8g aXQgbWFudWFsbHkuCj4gICAgICAqCj4gICAgICAqIFdlJ3JlIGdvaW5nIHRvIGRvIHRoYXQgaGVy ZSB0byBhdm9pZCBwcm9ibGVtcyBvZiBIVyB0cnlpbmcKPiAgICAgICogdG8gdXNlIGJvZ3VzIFRS QnMgZm9yIHRyYW5zZmVycy4KPiAgICAgICovCj4gICAgIGlmIChjaGFpbiAmJiAodHJiLT5jdHJs ICYgRFdDM19UUkJfQ1RSTF9IV08pKQo+ICAgICAgICAgdHJiLT5jdHJsICY9IH5EV0MzX1RSQl9D VFJMX0hXTzsKPgo+ICAgICAvKgo+ICAgICAgKiBJZiB3ZSdyZSBkZWFsaW5nIHdpdGggdW5hbGln bmVkIHNpemUgT1VUIHRyYW5zZmVyLCB3ZSB3aWxsIGJlIGxlZnQKPiAgICAgICogd2l0aCBvbmUg VFJCIHBlbmRpbmcgaW4gdGhlIHJpbmcuIFdlIG5lZWQgdG8gbWFudWFsbHkgY2xlYXIgSFdPIGJp dAo+ICAgICAgKiBmcm9tIHRoYXQgVFJCLgo+ICAgICAgKi8KPiAgICAgaWYgKChyZXEtPnplcm8g fHwgcmVxLT51bmFsaWduZWQpICYmICh0cmItPmN0cmwgJiBEV0MzX1RSQl9DVFJMX0hXTykpIHsK PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eCj4+Pj4+Pj4+Pj4+Cj4gVGhpcyB0cmllcyB0byBjaGVjayBm b3IgdGhlIGxhc3QgVFJCIGFuZCByZXR1cm4gZWFybHkuIFRoaXMgd29ya3MgaW4gbm9ybWFsCj4g Y2FzZXMgYW5kIGl0IHN0b3BzIGluY3JlbWVudGluZyB0aGUgcmVxLT5yZW1haW5pbmcuIEJ1dCBm b3IgaXNvYyBPVVQKPiB0cmFuc2ZlcnMsCj4gdGhpcyBjYXNlIHdvbid0IGhpdCBkdWUgdG8gcmVh c29uIG1lbnRpb24gcHJldmlvdXNseS4KPiA8PDw8PDw8PDw8Cj4KPiAgICAgICAgIHRyYi0+Y3Ry bCAmPSB+RFdDM19UUkJfQ1RSTF9IV087Cj4gICAgICAgICByZXR1cm4gMTsKPiAgICAgfQo+Cj4g ICAgIGNvdW50ID0gdHJiLT5zaXplICYgRFdDM19UUkJfU0laRV9NQVNLOwo+ICAgICByZXEtPnJl bWFpbmluZyArPSBjb3VudDsKPiAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgo+Pj4+ Pj4+Pj4+Pgo+IFNvLCB5b3VyIHByb3Bvc2FscyB3aWxsIHN0aWxsIHVwZGF0ZSB0aGUgcmVxLT5y ZW1haW5pbmcgd2l0aCB0aGUgQlVGU0laCj4gY291bnQgb2YKPiB0aGUgbGFzdCBUUkIuCj4gPDw8 PDw8PDw8PAo+Cj4KPiAgICAgaWYgKCh0cmItPmN0cmwgJiBEV0MzX1RSQl9DVFJMX0hXTykgJiYg c3RhdHVzICE9IC1FU0hVVERPV04pCj4gICAgICAgICByZXR1cm4gMTsKPgo+ICAgICBpZiAoZXZl bnQtPnN0YXR1cyAmIERFUEVWVF9TVEFUVVNfU0hPUlQgJiYgIWNoYWluKQo+ICAgICAgICAgcmV0 dXJuIDE7Cj4KPiAgICAgaWYgKGV2ZW50LT5zdGF0dXMgJiBERVBFVlRfU1RBVFVTX0lPQykKPiAg ICAgICAgIHJldHVybiAxOwo+Cj4gICAgIHJldHVybiAwOwo+IH0KPgo+Cj4KPiBzdGF0aWMgaW50 IGR3YzNfZ2FkZ2V0X2VwX2NsZWFudXBfY29tcGxldGVkX3JlcXVlc3Qoc3RydWN0IGR3YzNfZXAg KmRlcCwKPiAgICAgICAgIGNvbnN0IHN0cnVjdCBkd2MzX2V2ZW50X2RlcGV2dCAqZXZlbnQsCj4g ICAgICAgICBzdHJ1Y3QgZHdjM19yZXF1ZXN0ICpyZXEsIGludCBzdGF0dXMpCj4gewo+IC4uLi4K PiAgICAgcmVxLT5yZXF1ZXN0LmFjdHVhbCA9IHJlcS0+cmVxdWVzdC5sZW5ndGggLSByZXEtPnJl bWFpbmluZzsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXl5eXl5eXl5eXl5eXl4KPj4+Pj4+Pj4+Pj4KPiBBbmQgdGhlIGNhbGN1bGF0aW9uIGlz IG9mZiBiZWNhdXNlIHJlcS0+cmVtYWluaW5nIGluY2x1ZGVzIHRoZSByZW1haW5pbmcKPiBvZiB0 aGUKPiBsYXN0IFRSQiBCVUZTSVogY291bnQuCj4gPDw8PDw8PDw8PAo+ICAuLi4uCj4gfQo+Cj4g SSBpbmNsdWRlZCB0aGUgdHJhY2VzLiBIb3BlZnVsbHkgaXQgd2lsbCBnbyBvdXQgdG8gdGhlIG1h aWxpbmcgbGlzdC4KPiBUaGFua3MgZm9yIG1ha2luZyB0aGUgcGF0Y2hlcywgYW5kIG9mIGNvdXJz ZSBJIHdpbGwgdGVzdCB0aGVtLiA6KQoKSSdsbCByZWFkIHlvdXIgdHJhY2VzIHNob3J0bHkgYW5k IHJlcGx5IGFnYWluLgo=