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: [4/6] usb: gadget: add functions to signal udc driver to delay status stage From: Laurent Pinchart Message-Id: <2683135.rrYvd4LdR5@avalon> Date: Fri, 02 Nov 2018 14:44:55 +0200 To: Paul Elder Cc: Alan Stern , Bin Liu , kieran.bingham@ideasonboard.com, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, balbi@kernel.org, rogerq@ti.com List-ID: SGVsbG8sCgpPbiBGcmlkYXksIDIgTm92ZW1iZXIgMjAxOCAwMTo0MDo1OSBFRVQgUGF1bCBFbGRl ciB3cm90ZToKPiBPbiBUaHUsIE9jdCAxOCwgMjAxOCBhdCAxMDowNzozNkFNIC0wNDAwLCBBbGFu IFN0ZXJuIHdyb3RlOgo+ID4gT24gVGh1LCAxOCBPY3QgMjAxOCwgTGF1cmVudCBQaW5jaGFydCB3 cm90ZToKPiA+PiBPbiBUaHVyc2RheSwgMTEgT2N0b2JlciAyMDE4IDE5OjEwOjIxIEVFU1QgQmlu IExpdSB3cm90ZToKPiA+Pj4gT24gVHVlLCBPY3QgMDksIDIwMTggYXQgMTA6NDk6MDFQTSAtMDQw MCwgUGF1bCBFbGRlciB3cm90ZToKPiA+Pj4+IEEgdXNiIGdhZGdldCBmdW5jdGlvbiBkcml2ZXIg bWF5IG9yIG1heSBub3Qgd2FudCB0byBkZWxheSB0aGUgc3RhdHVzCj4gPj4+PiBzdGFnZSBvZiBh IGNvbnRyb2wgT1VUIHJlcXVlc3QuIEFuIGluc3RhbmNlIGl0IG1pZ2h0IHdhbnQgdG8gaXMgdG8K PiA+Pj4+IGFzeW5jaHJvbm91c2x5IHZhbGlkYXRlIHRoZSBkYXRhIG9mIGEgY2xhc3Mtc3BlY2lm aWMgcmVxdWVzdC4KPiA+Pj4+IAo+ID4+Pj4gQWRkIGEgZnVuY3Rpb24gdXNiX2VwX2RlbGF5X3N0 YXR1cyB0byBhbGxvdyBmdW5jdGlvbiBkcml2ZXJzIHRvCj4gPj4+PiBjaG9vc2UgdG8gZGVsYXkg dGhlIHN0YXR1cyBzdGFnZSBpbiB0aGUgcmVxdWVzdCBjb21wbGV0aW9uIGhhbmRsZXIuCj4gPj4+ PiBUaGUgVURDIHNob3VsZCB0aGVuIGNoZWNrIHRoZSB1c2JfZXAtPmRlbGF5ZWRfc3RhdHVzIGZs YWcgYW5kIGFjdAo+ID4+Pj4gYWNjb3JkaW5nbHkgdG8gZGVsYXkgdGhlIHN0YXR1cyBzdGFnZS4K PiA+Pj4+IAo+ID4+Pj4gQWxzbyBhZGQgYSBmdW5jdGlvbiB1c2JfZXBfc2VuZF9yZXNwb25zZSBh cyBhIHdyYXBwZXIgZm9yCj4gPj4+PiB1c2JfZXAtPm9wcy0+c2VuZF9yZXNwb25zZSwgd2hvc2Ug cHJvdG90eXBlIGlzIGFkZGVkIGFzIHdlbGwuIFRoaXMKPiA+Pj4+IGZ1bmN0aW9uIHNob3VsZCBi ZSBjYWxsZWQgYnkgZnVuY3Rpb24gZHJpdmVycyB0byB0ZWxsIHRoZSBVREMgd2hhdAo+ID4+Pj4g dG8gcmVwbHkgaW4gdGhlIHN0YXR1cyBzdGFnZSB0aGF0IGl0IGhhcyByZXF1ZXN0ZWQgdG8gYmUg ZGVsYXllZC4KPiA+Pj4+IAo+ID4+Pj4gU2lnbmVkLW9mZi1ieTogUGF1bCBFbGRlciA8cGF1bC5l bGRlckBpZGVhc29uYm9hcmQuY29tPgo+ID4+Pj4gUmV2aWV3ZWQtYnk6IExhdXJlbnQgUGluY2hh cnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KPiA+Pj4+IC0tLQo+ID4+Pj4g Cj4gPj4+PiAgZHJpdmVycy91c2IvZ2FkZ2V0L3VkYy9jb3JlLmMgfCAzNSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+ID4+Pj4gIGluY2x1ZGUvbGludXgvdXNiL2dhZGdldC5oICAg IHwgMTEgKysrKysrKysrKysKPiA+Pj4+ICAyIGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMo KykKPiA+Pj4+IAo+ID4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC91ZGMvY29y ZS5jCj4gPj4+PiBiL2RyaXZlcnMvdXNiL2dhZGdldC91ZGMvY29yZS5jCj4gPj4+PiBpbmRleCBh Zjg4YjQ4YzFjZWEuLjFlYzVjZTZiNDNjZCAxMDA2NDQKPiA+Pj4+IC0tLSBhL2RyaXZlcnMvdXNi L2dhZGdldC91ZGMvY29yZS5jCj4gPj4+PiArKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvdWRjL2Nv cmUuYwo+ID4+Pj4gQEAgLTQ0Myw2ICs0NDMsNDEgQEAgdm9pZCB1c2JfZXBfZmlmb19mbHVzaChz dHJ1Y3QgdXNiX2VwICplcCkKPiA+Pj4+IAo+ID4+Pj4gIH0KPiA+Pj4+ICBFWFBPUlRfU1lNQk9M X0dQTCh1c2JfZXBfZmlmb19mbHVzaCk7Cj4gPj4+PiAKPiA+Pj4+ICsvKioKPiA+Pj4+ICsgKiB1 c2JfZXBfZXBfZGVsYXlfc3RhdHVzIC0gc2V0IGRlbGF5X3N0YXR1cyBmbGFnCj4gPj4+PiArICog QGVwOiB0aGUgZW5kcG9pbnQgd2hvc2UgZGVsYXlfc3RhdHVzIGZsYWcgaXMgYmVpbmcgc2V0Cj4g Pj4+PiArICoKPiA+Pj4+ICsgKiBUaGlzIGZ1bmN0aW9uIGluc3RydWN0cyB0aGUgVURDIHRvIGRl bGF5IHRoZSBzdGF0dXMgc3RhZ2Ugb2YgYQo+ID4+Pj4gY29udHJvbAo+ID4+Pj4gKyAqIHJlcXVl c3QuIEl0IGNhbiBvbmx5IGJlIGNhbGxlZCBmcm9tIHRoZSByZXF1ZXN0IGNvbXBsZXRpb24KPiA+ Pj4+IGhhbmRsZXIgb2YgYQo+ID4+Pj4gKyAqIGNvbnRyb2wgcmVxdWVzdC4KPiA+Pj4+ICsgKi8K PiA+Pj4+ICt2b2lkIHVzYl9lcF9kZWxheV9zdGF0dXMoc3RydWN0IHVzYl9lcCAqZXApCj4gPj4+ PiArewo+ID4+Pj4gKwllcC0+ZGVsYXllZF9zdGF0dXMgPSB0cnVlOwo+ID4+Pj4gK30KPiA+Pj4+ ICtFWFBPUlRfU1lNQk9MX0dQTCh1c2JfZXBfZGVsYXlfc3RhdHVzKTsKPiA+Pj4gCj4gPj4+IElz IHVzYl9lcF9zZXRfZGVsYXlfc3RhdHVzKCkgYmV0dGVyPyBJIHRob3VnaHQgaXQgaW1wbGllcyBn ZXQvcmV0dXJuCj4gPj4+IGFjdGlvbiBpZiBhIHZlcmIgaXMgbWlzc2luZyBpbiB0aGUgZnVuY3Rp b24gbmFtZS4KPiA+PiAKPiA+PiBGb3Igd2hhdCBpdCdzIHdvcnRoLCBJIHVuZGVyc3RhbmQgdGhl IGZ1bmN0aW9uIG5hbWUgYXMgImRlbGF5IHRoZSBzdGF0dXMKPiA+PiBzdGFnZSIsIHdpdGggImRl bGF5IiBiZWluZyBhIHZlcmIuIE1heWJlIHRoZSBzaG9ydCBkZXNjcmlwdGlvbiBjb3VsZCBiZQo+ ID4+IHVwZGF0ZWQgYWNjb3JkaW5nbHkuCj4gPiAKPiA+IElzIHRoZXJlIGEgcmVhc29uIGZvciBh ZGRpbmcgYSBuZXcgZnVuY3Rpb24gZm9yIHRoaXM/ICBUaGlzIGlzIGV4YWN0bHkKPiA+IHdoYXQg dGhlIFVTQl9HQURHRVRfREVMQVlFRF9TVEFUVVMgcmV0dXJuIHZhbHVlIGZyb20gdGhlIHNldHVw IGNhbGxiYWNrCj4gPiBpcyBtZWFudCBmb3IgKGFuZCBpdCBpcyBhbHJlYWR5IHVzZWQgYnkgc29t ZSBnYWRnZXQgZHJpdmVycykuCj4gCj4gSW4gdGhlb3J5LCB3ZSBtaWdodCBiZSBhYmxlIHRvIHVz ZSBVU0JfR0FER0VUX0RFTEFZRURfU1RBVFVTIGZvciB0aGlzLgo+IEhvd2V2ZXIsIHRoZXJlIGFy ZSBhIGZldyBhbWJpZ3VpdGllcyB0aGF0IHByZXZlbnQgdXMgZnJvbSBkb2luZyBzby4KPiAKPiBG aXJzdCBvZiBhbGwsIHdlIHdhbnQgdG8gZGVsYXkgb25seSB0aGUgc3RhdHVzIHN0YWdlIGZvciBj b250cm9sIE9VVAo+IHJlcXVlc3RzOyBhY2NvcmRpbmcgdG8gY29tcG9zaXRlLmgsIFVTQl9HQURH RVRfREVMQVlFRF9TVEFUVVMgaXMgZm9yCj4gZGVsYXlpbmcgdGhlICJkYXRhL3N0YXR1cyBzdGFn ZXMiLiBEb2VzIHRoaXMgbWVhbiB0aGF0IGl0IGRlbGF5cyB0aGUKPiBzdGF0dXMgc3RhZ2Ugb25s eSBvciBkb2VzIGl0IGRlbGF5IGJvdGggc3RhZ2VzPyBJZiB0aGUgc2xhc2ggbWVhbnMKPiAiYW5k IiwgdGhlbiB3ZSBjYW5ub3QgdXNlIFVTQl9HQURHRVRfREVMQVlFRF9TVEFUVVMuCj4gCj4gRnVy dGhlcm1vcmUsIHdlIGhhdmUgZm91bmQgdGhhdCBVU0JfR0FER0VUX0RFTEFZRURfU1RBVFVTIGlz IHJhY2V5LAo+IHdoaWNoIGhhcyBhbHJlYWR5IGJlZW4gb2JzZXJ2ZWQgaW4gdGhlIFVWQyBnYWRn ZXQgZHJpdmVyIHByZXZpb3VzbHkgWzBdLgo+IFRoZSByYWNlaW5lc3Mgc3RlbXMgZnJvbSB0aGUg ZmFjdCB0aGF0IHRoaW5ncyBjYW4gaGFwcGVuIGluIGJldHdlZW4KPiByZXR1cm5pbmcgVVNCX0dB REdFVF9ERUxBWUVEX1NUQVRVUyBhbmQgdGhlIGNvbXBvc2l0ZSBsYXllciByZWFjdGluZyB0bwo+ IGl0IC0gZXNwZWNpYWxseSBpZiB1c2JfY29tcG9zaXRlX3NldHVwX2NvbnRpbnVlIGlzIGNhbGxl ZCB3aXRoaW4gdGhhdAo+IHdpbmRvdyBpdCBjYXVzZXMgYSBXQVJOLiBJbiBhbnkgY2FzZSwgdGhl IGZhY3QgdGhhdCB0aGUgbWVjaGFuaXNtIGl0c2VsZgo+IGlzIHJhY2V5IHN1Z2dlc3RzIHRoYXQg aXQgbmVlZHMgaW1wcm92ZW1lbnQsIGFuZCB1c2luZyBpdCB3b3VsZG4ndCBiZSBhCj4gZ29vZCBz b2x1dGlvbiBpbiB0aGlzIGNhc2UuCj4gCj4gPiBJcyBpdCBhIHF1ZXN0aW9uIG9mIHdoZW4gdGhl IGdhZGdldCBkcml2ZXIgbGVhcm5zIHRoYXQgaXQgd2lsbCBuZWVkIHRvCj4gPiBkZWxheSB0aGUg c3RhdHVzIHN0YWdlPyAgSWYgdGhhdCdzIHRoZSBjYXNlLAo+IAo+IE5vdCByZWFsbHkuCj4gCj4g PiB3aHkgbm90IGFsd2F5cyByZXR1cm4KPiA+IFVTQl9HQURHRVRfREVMQVlFRF9TVEFUVVMgZnJv bSB0aGUgc2V0dXAgY2FsbGJhY2s/ICBUaGVuIGluc3RlYWQgb2YKPiA+IGNhbGxpbmcgdXNiX2Vw X2RlbGF5X3N0YXR1cygpIHdoZW4gYSBkZWxheSBpcyBuZWVkZWQsIHlvdSBjb3VsZCBxdWV1ZQo+ ID4gdGhlIHN0YXR1cyByZXF1ZXN0IHdoZW4gYSBkZWxheSBpc24ndCBuZWVkZWQuCj4gCj4gVGhl b3JldGljYWxseSB0aGlzIG1pZ2h0IHdvcmssIGJ1dCBzZWUgdGhlIHByb2JsZW1zIG1lbnRpb25l ZCBhYm92ZS4KPiAKPiA+IEFzIGEgbW9yZSBnZW5lcmFsIHNvbHV0aW9uLCBGZWxpcGUgaGFzIHNh aWQgdGhhdCBhIFVEQyBkcml2ZXIgc2hvdWxkCj4gPiBfbmV2ZXJfIGNhcnJ5IG91dCB0aGUgc3Rh dHVzIHN0YWdlIHRyYW5zYWN0aW9uIHVudGlsIHRoZSBnYWRnZXQgZHJpdmVyCj4gPiBoYXMgdG9s ZCBpdCB0byBkbyBzby4gIFRoZW4gdGhlcmUgd291bGQgYmUgbm8gbmVlZCBmb3IgYW55IHNvcnQg b2YKPiA+IGRlbGF5IGluZGljYXRvci4KPiAKPiBZZWFoLCBidXQsCj4gCj4gPiAoQnV0IGltcGxl bWVudGluZyB0aGlzIHdvdWxkIHJlcXVpcmUgc2lnbmlmaWNhbnQKPiA+IGNoYW5nZXMgdG8gYSBi dW5jaCBvZiBkaWZmZXJlbnQgZHJpdmVycy4uLikKPiAKPiBleGFjdGx5IDovCj4gCj4gWzBdIGh0 dHBzOi8vd3d3LnNwaW5pY3MubmV0L2xpc3RzL2xpbnV4LXVzYi9tc2cxNjkyMDguaHRtbAoKQWxh biwgRmVsaXBlLCBob3cgZG8gd2UgbW92ZSBmb3J3YXJkIHdpdGggdGhpcyA/IFRoZXJlIGFyZSBz ZXZlcmFsIGlzc3VlcyB3aXRoIAp0aGUgZXhpc3RpbmcgY29udHJvbCByZXF1ZXN0IGhhbmRsaW5n IG1lY2hhbmlzbSBpbiB0aGUgVVNCIGdhZGdldCBzdGFjaywgYW5kIAp3aGlsZSBQYXVsIGNvdWxk IHdvcmsgb24gaW1wcm92aW5nIHRoZSBtZWNoYW5pc20sIHdlIG5lZWQgdG8gcHJvdmlkZSBjbGVh ciAKZ3VpZGFuY2UgcmVnYXJkaW5nIHRoZSBkaXJlY3Rpb24gd2Ugd2FudCB0byB0YWtlLgoKRm9y IHJlZmVyZW5jZSwgdGhlIGlzc3VlcyBJIGtub3cgYWJvdXQgZm9yIHRoZSBVU0JfR0FER0VUX0RF TEFZRURfU1RBVFVTIAptZWNoYW5pc20gYXJlCgotIFRoZSBtZWNoYW5pc20gaXMgaW5oZXJlbnRs eSByYWN5LiBJdCByZWxpZXMgb24gc2lnbmFsaW5nIHRoZSBkZWxheSBhdCB0aGUgCnZlcnkgZW5k IG9mIHRoZSBwcm9jZXNzaW5nIGluIHRoZSBzZXR1cCBoYW5kbGVyLCB3aGljaCBieSBkZWZpbml0 aW9uIG9jY3VycyAKYWZ0ZXIgdGhlIHdvcmsgdG8gcHJvY2VzcyB0aGUgY29udHJvbCByZXF1ZXN0 IGlzIHF1ZXVlZCAoaW4gdGhlIGdlbmVyaWMgc2Vuc2UsIApyZWdhcmRsZXNzIG9mIHdoZXRoZXIg dGhpcyBpbnZvbHZlcyBhIGtlcm5lbCB3b3JrcXVldWUgb3IgcGFzc2luZyB0aGUgd29yayB0byAK dXNlcnNwYWNlKS4gVGhlcmUgaXMgdGh1cyBhIHJhY2Ugd2luZG93IGFmdGVyIHF1ZXVpbmcgdGhl IHdvcmsgYW5kIGJlZm9yZSAKc2lnbmFsaW5nIHRoZSBkZWxheSBkdXJpbmcgd2hpY2ggdGhlIHdv cmsgaGFuZGxlciBjb3VsZCBzaWduYWwgY29tcGxldGlvbi4KCi0gVGhlIG1lY2hhbmlzbSBpcyBw b29ybHkgZG9jdW1lbnRlZC4gQXMgUGF1bCBtZW50aW9uZWQsIGNvbW1lbnRzIGluIHRoZSBjb2Rl IApzdGF0ZSB0aGF0IFVTQl9HQURHRVRfREVMQVlFRF9TVEFUVVMgZGVsYXkgdGhlICJkYXRhL3N0 YXR1cyBzdGFnZXMiLiBUaGlzIGlzIAp2ZXJ5IHVuY2xlYXIsIGFuZCB0aGUgb25seSB0aHJlZSBV RENzIHRoYXQgaW1wbGVtZW50IHRoZSBtZWNoYW5pc20gc2VlbSB0byBkbyAKc28gaW4gZGlmZmVy ZW50IHdheXM6CgogIC0gVGhlIG10dSBkcml2ZXIgc3RhdGVzIGluIGEgY29tbWVudCB0aGF0IGl0 IHdpbGwgImhhbmRsZSB0aGUgZGVsYXkgU1RBVFVTIApwaGFzZSB0aWxsIHJlY2VpdmUgZXBfcXVl dWUgb24gZXAwIi4KCiAgLSBUaGUgYmRjIGRyaXZlciBzdGF0ZXMgaW4gYSBjb21tZW50IHRoYXQg IlRoZSBlcDAgc3RhdGUgd2lsbCByZW1haW4gCldBSVRfRk9SX0RBVEFfU1RBUlQgdGlsbCB3ZSBy ZWNlaXZlZCBlcF9xdWV1ZSBvbiBlcDAiLgoKICAtIFRoZSBkd2MzIGRyaXZlciBzZWVtcyB0byBo YW5kbGUgVVNCX0dBREdFVF9ERUxBWUVEX1NUQVRVUyBmb3IgdGhlIApTRVRfQ09ORklHIHJlcXVl c3Qgb25seS4KCi0gVGhlIG1lY2hhbmlzbSByZWxpZXMgb24gcXVldWVpbmcgYSByZXF1ZXN0IHRv IHRoZSBVREMgdG8gc2lnbmFsIHRoYXQgaXQgCnNob3VsZCBjb250aW51ZSB3aXRoIHRoZSBzdGF0 dXMgc3RhZ2UuIFRoYXQgcmVxdWVzdCBjYW4gYmUgcXVldWVkIGVpdGhlciBieSAKdGhlIFVTQiBn YWRnZXQgZnVuY3Rpb24gZHJpdmVyIGRpcmVjdGx5LCBvciBieSB0aGUgY29tcG9zaXRlIGxheWVy IGluIAp1c2JfY29tcG9zaXRlX3NldHVwX2NvbnRpbnVlKCkgKHRoZSBsYXR0ZXIgaXMgcmVzdHJp Y3RlZCB0byByZXF1ZXN0cyB0aGF0IApjYXJyeSBubyBkYXRhIGFzIGl0IHNldHMgdGhlIHJlcXVl c3QgbGVuZ3RoIHRvIDApLiBUaGlzIGlzIHByb2JsZW1hdGljIGlmIHdlIAp3YW50IHRvIGRlbGF5 IHRoZSBzdGF0dXMgcGhhc2UgYWZ0ZXIgY29tcGxldGluZyB0aGUgZGF0YSBwaGFzZSwgaW4gb3Jk ZXIgdG8gCnZhbGlkYXRlIHRoZSBzZXR1cCBwaGFzZSBkYXRhIGFuZCB0aGUgZGF0YSBwaGFzZSBk YXRhIChmb3IgYSBjb250cm9sIE9VVCAKcmVxdWVzdCkgdG9nZXRoZXIuCgoKRm9yIHRob3NlIHJl YXNvbnMgSSB0aGluayBhIG5ldyBtZWNoYW5pc20gaXMgbmVlZGVkLiBJdCBzaG91bGQgZWl0aGVy IHNpZ25hbCAKdGhlIHN0YXR1cyBwaGFzZSBkZWxheSB0aHJvdWdoIGFuIGV4cGxpY2l0IGZ1bmN0 aW9uIGNhbGwgaW5zdGVhZCBvZiBhIHJldHVybiAKdmFsdWUgKHRvIHNvbHZlIHRoZSByYWNlIG1l bnRpb25lZCBhYm92ZSksIG9yIGJ5IHJlcXVpcmluZyBhbGwgcmVxdWVzdHMgdG8gYmUgCmV4cGxp Y2l0bHkgY29tcGxldGVkIChidXQgdGhhdCB3aWxsIHJlcXVpcmUgY2hhbmdpbmcgYWxsIFVTQiBm dW5jdGlvbiAKZHJpdmVycykuIEZ1cnRoZXJtb3JlLCB0aGUgbWVjaGFuaXNtIG5lZWQgdG8gc3Vw cG9ydCBkZWxheWluZyB0aGUgc3RhdHVzIHBoYXNlIAphZnRlciBxdWV1aW5nIHRoZSByZXF1ZXN0 IGZvciB0aGUgZGF0YSBwaGFzZSwgc28gd2UgbmVlZCBhbiBleHBsaWNpdCB3YXkgdG8gCnNpZ25h bCB0aGF0IHRoZSBVREMgc2hvdWxkIHByb2NlZWQgd2l0aCB0aGUgc3RhdHVzIHBoYXNlLCBvdGhl ciB0aGFuIHF1ZXVlaW5nIAp0aGUgcmVxdWVzdC4KClRob3VnaHRzID8gUHJlZmVyZW5jZXMgPwo=