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: Felipe Balbi Message-Id: <87r2fxtlrj.fsf@linux.intel.com> Date: Wed, 07 Nov 2018 09:00:32 +0200 To: Alan Stern Cc: Laurent Pinchart , Paul Elder , Bin Liu , kieran.bingham@ideasonboard.com, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, rogerq@ti.com List-ID: SGksCgpBbGFuIFN0ZXJuIDxzdGVybkByb3dsYW5kLmhhcnZhcmQuZWR1PiB3cml0ZXM6Cj4+IERB VEEgc3RhZ2UgYWx3YXlzIGRlcGVuZHMgb24gYSB1c2JfZXBfcXVldWUoKSBmcm9tIGdhZGdldCBk cml2ZXIuIFNvCj4+IGl0J3MgYWx3YXlzICJkZWxheWVkIiBpbiB0aGF0IHNlbnNlLgo+Cj4gSG93 ZXZlciwgaXQncyBjb25jZWl2YWJsZSB0aGF0IHNvbWUgVURDIGRyaXZlcnMgbWlnaHQgYmVoYXZl IAo+IGRpZmZlcmVudGx5IGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSB1c2JfZXBfcXVldWUgY2Fs bCBvY2N1cnMgd2l0aGluIAo+IHRoZSBzZXR1cCBjYWxsYmFjayBvciBhZnRlciB0aGF0IGNhbGxi YWNrIHJldHVybnMuICBUaGV5IF9zaG91bGRuJ3RfLCAKPiBidXQgdGhleSBtaWdodC4KCmJ1dCBu b3cgd2UncmUgc3BlY3VsYXRpbmcuIFNob3VsZCB3ZSByZWFsbHkgY2FyZSBiZWZvcmUgd2UgY2F0 Y2gKcmVncmVzc2lvbnM/Cgo+PiBpdCBhdm9pZHMgYWxsIHRoZSBzcGVjaWFsIGNhc2VzLiBVREMg ZHJpdmVycyBjYW4gaW1wbGVtZW50IGEgc2luZ2xlCj4+IGhhbmRsaW5nIGZvciBzdHJ1Y3QgdXNi X3JlcXVlc3QuIFdlIGNvdWxkIGRvIGF3YXkgd2l0aCBzcGVjaWFsIHJldHVybgo+PiB2YWx1ZXMg YW5kIHNvIG9uLi4uCj4KPiBJdCdzIG5vdCBxdWl0ZSBzbyBzaW1wbGUsIGJlY2F1c2UgdGhlIFVE QyBkcml2ZXIgd2lsbCBuZWVkIHRvIGtlZXAgCj4gdHJhY2sgb2Ygd2hldGhlciBhIHJlcXVlc3Qg cXVldWVkIG9uIGVwMCBzaG91bGQgYmUgaW4gdGhlIElOIG9yIHRoZSBPVVQgCj4gZGlyZWN0aW9u LiAgKE1heWJlIHRoZXkgaGF2ZSB0byBkbyB0aGlzIGFscmVhZHksIEkgZG9uJ3Qga25vdy4pCgpV REMgZHJpdmVycyBhbHJlYWR5IGhhdmUgdG8gZG8gdGhhdC4KCj4+ID4gcmVxdWVzdCBhbmQgdGhl IFVEQyB3b3VsZCB0aGVuIG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGF0IHJlcXVlc3QgY29ycmVz cG9uZHMgCj4+ID4gdG8gYSBzdGF0dXMgc3RhZ2UgYW5kIHByb2Nlc3MgaXQgYWNjb3JkaW5nbHku IEEgbmV3IG9wZXJhdGlvbiBzcGVjaWZpYyB0byB0aGlzIAo+PiAKPj4gbm8sIGl0IHdvdWxkbid0 LiBVREMgd291bGQgaGF2ZSB0byBjaGVjayB0aGUgc2l6ZSBvZiByZXF1ZXN0LCB0aGF0J3MKPj4g YWxsOgo+PiAKPj4gCWlmIChyLT5sZW5ndGggPT0gMCkKPj4gICAgICAgICAJc3BlY2lhbF96bHBf aGFuZGxpbmcoKTsKPj4gCWVsc2UKPj4gICAgICAgICAJcmVndWxhcl9ub25femxwX2hhbmRsaW5n KCk7Cj4KPiBDaGVja2luZyB0aGUgbGVuZ3RoIGlzbid0IGVub3VnaC4gIEEgZGF0YSBzdGFnZSBj YW4gaGF2ZSAwIGxlbmd0aC4KCmFwb2xvZ2llcywgSSBtZWFudCB3TGVuZ3RoLCBsaWtlIHNvOgoK CWxlbiA9IGxlMTZfdG9fY3B1KGN0cmwtPndMZW5ndGgpOwoJaWYgKCFsZW4pIHsKCQlkd2MtPnRo cmVlX3N0YWdlX3NldHVwID0gZmFsc2U7CgkJZHdjLT5lcDBfZXhwZWN0X2luID0gZmFsc2U7CgkJ ZHdjLT5lcDBfbmV4dF9ldmVudCA9IERXQzNfRVAwX05SRFlfU1RBVFVTOwoJfSBlbHNlIHsKCQlk d2MtPnRocmVlX3N0YWdlX3NldHVwID0gdHJ1ZTsKCQlkd2MtPmVwMF9leHBlY3RfaW4gPSAhIShj dHJsLT5iUmVxdWVzdFR5cGUgJiBVU0JfRElSX0lOKTsKCQlkd2MtPmVwMF9uZXh0X2V2ZW50ID0g RFdDM19FUDBfTlJEWV9EQVRBOwoJfQoKPj4gQnV0IHdlIGRvbid0IG5lZWQgdG8gY2FyZSBhYm91 dCBzcGVjaWFsIHJldHVybiB2YWx1ZXMgYW5kIHRoZSBsaWtlLiBXZQo+PiBkb24ndCBldmVuIG5l ZWQgdG8gY2FyZSAoZnJvbSBVREMgcGVyc3BlY3RpdmUpIGlmIHdlJ3JlIGRlYWxpbmcgd2l0aAo+ PiAyLXN0YWdlIG9yIDMtc3RhZ2UgY29udHJvbCB0cmFuc2ZlcnMgKHdlbGwsIGR3YzMgbmVlZHMg dG8gY2FyZSBiZWNhdXNlCj4+IG9mIGRpZmZlcmVudCBUUkIgdHlwZXMgdGhhdCBuZWVkcyB0byBi ZSB1c2VkLCBidXQgdGhhdCdzIGFub3RoZXIgc3RvcnkpCj4KPiBObywgd2UgZG8gbmVlZCB0byBj YXJlIGJlY2F1c2Ugb2YgdGhlIGRpcmVjdGlvbiBpc3N1ZS4KCnNwZWNpYWwgcmV0dXJuIHZhbHVl cyB3b3VsZCBiZSByZW5kZXJlZCB1bmNlc3NhcnkgaWYgdGhlcmUncyBhZ3JlZW1lbnQKdGhhdCBz dGF0dXMgc3RhZ2UgaXMgYWx3YXlzIGV4cGxpY2l0LiBXaHkgd291bGQgbmVlZApVU0JfR0FER0VU X0RFTEFZRURfU1RBVFVTIGlmIGV2ZXJ5IGNhc2UgcmV0dXJucyB0aGF0PwoKPj4gPiBUaGVyZSdz IGFsc28gdGhlIGZhY3QgdGhhdCByZXF1ZXN0cyBjYW4gc3BlY2lmeSBhIGNvbXBsZXRpb24gaGFu ZGxlciwgYnV0IG9ubHkgCj4+ID4gdGhlIGRhdGEgc3RhZ2UgcmVxdWVzdCB3b3VsZCBzZWUgaXRz IGNvbXBsZXRpb24gaGFuZGxlciBjYWxsZWQgKHVubGVzcyB3ZSAKPj4gPiByZXF1aXJlIFVEQ3Mg dG8gY2FsbCBjb21wbGV0aW9uIHJlcXVlc3RzIGF0IHRoZSBjb21wbGV0aW9uIG9mIHRoZSBzdGF0 dXMgCj4+ID4gc3RhZ2UsIGJ1dCBJJ20gbm90IHN1cmUgdGhhdCBhbGwgVURDcyBjYW4gcmVwb3J0 IHRoZSBldmVudCB0byB0aGUgZHJpdmVyLCBhbmQgCj4+ID4gdGhhdCB3b3VsZCBsaWtlbHkgYmUg dXNlbGVzcyBhcyBub2JvZHkgbmVlZHMgdGhhdCBmZWF0dXJlKS4KPj4gCj4+IHlvdSBzdGlsbCB3 YW5uYSBrbm93IGlmIHRoZSBob3N0IGFjdHVhbGx5IHByb2Nlc3NlZCB5b3VyIHN0YXR1cwo+PiBz dGFnZS4gdWRjLWNvcmUgY2FuIChhbmQgc2hvdWxkKSBwcm92aWRlIGEgZ2VuZXJpYyBzdGF0dXMg c3RhZ2UKPj4gY29tcGxldGlvbiBmdW5jdGlvbiB3aGljaCwgYXQgYSBtaW5pbXVtLCBhaWRzIHdp dGggc29tZSB0cmFjZXBvaW50cy4KPgo+IEhlbHBpbmcgd2l0aCB0cmFjZXBvaW50cyBpcyBmaW5l LiAgSG93ZXZlciwgSSBkb24ndCB0aGluayBmdW5jdGlvbiAKPiBkcml2ZXJzIHJlYWxseSBuZWVk IHRvIGtub3cgd2hldGhlciB0aGUgc3RhdHVzIHN0YWdlIHdhcyBwcm9jZXNzZWQgYnkgCj4gdGhl IGhvc3QuICBDYW4geW91IHBvaW50IG91dCBhbnkgZXhhbXBsZXMgd2hlcmUgc3VjaCBpbmZvcm1h dGlvbiB3b3VsZCAKPiBiZSB1c2VmdWw/CgpJZiB5b3Uga25vdyB5b3VyIFNUQVRVUyBzdGFnZSBj b21wbGV0ZWQsIHlvdSBoYXZlIGEgZ3VhcmFudGVlIHRoYXQgeW91cgpwcmV2aW91cyBjb250cm9s IHRyYW5zZmVyIGlzIGNvbXBsZXRlLiBJdCdzIGEgdmVyeSBjbGVhciBzaWduYWwgdGhhdCB5b3UK c2hvdWxkIHByZXBhcmUgZm9yIG1vcmUgY29udHJvbCB0cmFuc2ZlcnMuCgo+PiA+PiAoQnV0IGl0 IGRvZXMgaW52b2x2ZSBhCj4+ID4+IHJhY2UgaW4gY2FzZXMgd2hlcmUgdGhlIGhvc3QgZ2V0cyB0 aXJlZCBvZiB3YWl0aW5nIGFuZCBpc3N1ZXMgYW5vdGhlcgo+PiA+PiBTRVRVUCBwYWNrZXQgYmVm b3JlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSBmaXJzdCB0cmFuc2ZlciBpcyBmaW5pc2hlZC4pCj4+ IAo+PiBIb3N0IHdvdWxkIHN0YWxsIGZpcnN0IGluIHRoYXQgY2FzZS4KPgo+IEkgZG9uJ3QgZm9s bG93LiAgU3VwcG9zZSB0aGUgaG9zdCBzZW5kcyBhIFNFVFVQIHBhY2tldCBmb3IgYW4gSU4gCj4g dHJhbnNmZXIsIGJ1dCB0aGUgZ2FkZ2V0IHRha2VzIHNvIGxvbmcgdG8gc2VuZCB0aGUgSU4gZGF0 YSBiYWNrIHRoYXQgCj4gdGhlIGhvc3QgdGltZXMgb3V0LiAgU28gdGhlbiB0aGUgaG9zdCBzZW5k cyBhIFNFVFVQIHBhY2tldCBmb3IgYSBuZXcgCj4gdHJhbnNmZXIuICBObyBzdGFsbHMuCj4KPiAo QmVzaWRlcywgaG9zdHMgbmV2ZXIgc2VuZCBTVEFMTCBwYWNrZXRzIGFueXdheS4gIE9ubHkgcGVy aXBoZXJhbHMgZG8uKQoKb2ggb2theS4gVGhpcyBpcyB0aGUgc2V0dXBfcGFja2V0X3BlbmRpbmcg Y2FzZS4KCj4+ID4gVG8gc2ltcGxpZnkgZnVuY3Rpb24gZHJpdmVycywgZG8geW91IHRoaW5rIHRo ZSBhYm92ZSBwcm9wb3NhbCBvZiBhZGRpbmcgYSBmbGFnIAo+PiA+IHRvIHRoZSAoZGF0YSBzdGFn ZSkgcmVxdWVzdCB0byByZXF1ZXN0IGFuIGF1dG9tYXRpYyB0cmFuc2l0aW9uIHRvIHRoZSBzdGF0 dXMgCj4+ID4gc3RhZ2UgaXMgYSBnb29kIGlkZWEgPyBXZSBjb3VsZCBldmVuIHBvc3NpYmx5IGlu dmVydCB0aGUgbG9naWMgYW5kIHRyYW5zaXRpb24gCj4+IAo+PiBubywgSSBkb24ndCB0aGluayBz by4gTWFraW5nIHRoZSBzdGF0dXMgcGhhc2UgYWx3YXlzIGV4cGxpY2l0IGlzIGZhcgo+PiBiZXR0 ZXIuIFVEQ3Mgd29uJ3QgaGF2ZSB0byBjaGVjayBmbGFncywgb3IgYWN0IG9uIG1hZ2ljIHJldHVy bgo+PiB2YWx1ZXMuIEl0IGp1c3Qgd29uJ3QgZG8gYW55dGhpbmcgdW50aWwgYSByZXF1ZXN0IGlz IHF1ZXVlZC4KPgo+IEkgZG9uJ3QgYWdyZWUuICBUaGlzIHdvdWxkIGJlIGEgc2ltcGxlIHRlc3Qg aW4gYSBsb2NhbGl6ZWQgYXJlYSAodGhlIAo+IGNvbXBsZXRpb24gY2FsbGJhY2sgZm9yIGNvbnRy b2wgcmVxdWVzdHMpLiAgSXQgY291bGQgZXZlbiBiZSAKPiBpbXBsZW1lbnRlZCBieSBhIGxpYnJh cnkgcm91dGluZTsgdGhlIFVEQyBkcml2ZXIgd291bGQgc2ltcGx5IGhhdmUgdG8gCj4gY2FsbCB0 aGlzIHJvdXRpbmUgaW1tZWRpYXRlbHkgYWZ0ZXIgaW52b2tpbmcgdGhlIGNhbGxiYWNrLgoKSSBk b24ndCBmb2xsb3cgd2hhdCB5b3UgbWVhbiBoZXJlLgo=