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: <87a7mmv46v.fsf@linux.intel.com> Date: Tue, 06 Nov 2018 13:24:56 +0200 To: Alan Stern , Laurent Pinchart Cc: Paul Elder , Bin Liu , kieran.bingham@ideasonboard.com, gregkh@linuxfoundation.org, USB list , Kernel development list , rogerq@ti.com List-ID: SGksCgpBbGFuIFN0ZXJuIDxzdGVybkByb3dsYW5kLmhhcnZhcmQuZWR1PiB3cml0ZXM6Cj4gVGhl cmUncyBhIHNpbWlsYXIgcmFjZSBhdCB0aGUgaGFyZHdhcmUgbGV2ZWwuICBXaGF0IGhhcHBlbnMg aWYgdGhlCj4gY29udHJvbGxlciByZWNlaXZlcyBhIG5ldyBTRVRVUCBwYWNrZXQgYW5kIGNvbmN1 cnJlbnRseSB0aGUgZHJpdmVyIGlzCj4gc2V0dGluZyB1cCB0aGUgY29udHJvbGxlciByZWdpc3Rl cnMgZm9yIGEgcmVzcG9uc2UgdG8gYW4gZWFybGllcgo+IFNFVFVQPyAgSSBkb24ndCBrbm93IGhv dyByZWFsIGNvbnRyb2xsZXJzIGhhbmRsZSB0aGlzLgoKVGhhdCdzIEhXIGltcGxlbWVudGF0aW9u IGRldGFpbC4gRFdDMywgZm9yIGluc3RhbmNlLCB3aWxsIGlnbm9yZSB0aGUKVFJCcyBhbmQgcmV0 dXJuIG1lIHRoZSBzdGF0dXMgInNldHVwIHBhY2tldCBwZW5kaW5nIi4gVGhlbiBJIGp1c3Qgc3Rh cnQKYSBuZXcgU0VUVVAgVFJCLgoKPj4gPiA+IEkgd29uZGVyIGlmIHRoZXJlJ3MgcmVhbGx5IGEg dXNlIGNhc2UgZm9yIGRlbGF5aW5nIHRoZSBkYXRhIHN0YWdlIG9mCj4+ID4gPiBjb250cm9sIE9V VCByZXF1ZXN0cywgYXMgaXQgc2VlbXMgdG8gbWUgdGhhdCB3ZSBjYW4gcGVyZm9ybSB0aGUKPj4g PiA+IGFzeW5jaHJvbm91cyB2YWxpZGF0aW9uIG9mIHRoZSBzZXR1cCBhbmQgZGF0YSBzdGFnZXMg dG9nZXRoZXIsIGluIHdoaWNoCj4+ID4gPiBjYXNlIHdlIHdvdWxkIGFsd2F5cyBwcm9jZWVkIHRv IHRoZSBkYXRhIHN0YWdlLCBhbmQgb25seSBwb3RlbnRpYWxseQo+PiA+ID4gZGVsYXkgdGhlIHN0 YXR1cyBzdGFnZS4gSG93ZXZlciwgaWYgd2Ugc3dpdGNoIHRvIGFuIGV4cGxpY2l0IEFQSSB3aGVy ZQo+PiA+ID4gdGhlIHRyYW5zaXRpb24gZnJvbSB0aGUgc2V0dXAgdG8gdGhlIGRhdGEgc3RhZ2Ug aXMgdHJpZ2dlcmVkIGJ5IHF1ZXVlaW5nCj4+ID4gPiBhIHJlcXVlc3QsIGFuZCBnaXZlbiB0aGF0 IHN1Y2ggYSB0cmFuc2l0aW9uIG1heSBuZWVkIHRvIGJlIGRlbGF5ZWQgZm9yCj4+ID4gPiB0aGUg Y29udHJvbCBJTiBjYXNlLCBkZWxheWluZyB0aGUgZGF0YSBzdGFnZSBmb3IgY29udHJvbCBPVVQg d291bGQKPj4gPiA+IGVzc2VudGlhbGx5IGNvbWUgZm9yIGZyZWUuCj4+IAo+PiBXaGF0IGRvIHlv dSB0aGluayBhYm91dCB0aGlzID8gU2hvdWxkIHdlIGFsbG93IGZ1bmN0aW9uIGRyaXZlcnMgdG8g ZGVsYXkgdGhlIAo+PiBkYXRhIHN0YWdlIG9mIGNvbnRyb2wgT1VUIHJlcXVlc3RzID8KPgo+IFlv dSBtZWFuLCBzaG91bGQgd2UgYWxsb3cgZnVuY3Rpb24gZHJpdmVycyB0byBxdWV1ZSB0aGUgZGF0 YS1zdGFnZQo+IHJlcXVlc3QgYWZ0ZXIgdGhlIHNldHVwIGhhbmRsZXIgaGFzIHJldHVybmVkPyAg SSBkb24ndCBzZWUgYW55IHJlYXNvbgoKdGhhdCdzIGFscmVhZHkgZG9uZToKCnN0YXRpYyB2b2lk IGR3YzNfZXAwX3hmZXJfY29tcGxldGUoc3RydWN0IGR3YzMgKmR3YywKCQkJY29uc3Qgc3RydWN0 IGR3YzNfZXZlbnRfZGVwZXZ0ICpldmVudCkKewoJc3RydWN0IGR3YzNfZXAJCSpkZXAgPSBkd2Mt PmVwc1tldmVudC0+ZW5kcG9pbnRfbnVtYmVyXTsKCglkZXAtPmZsYWdzICY9IH5EV0MzX0VQX1RS QU5TRkVSX1NUQVJURUQ7CglkZXAtPnJlc291cmNlX2luZGV4ID0gMDsKCWR3Yy0+c2V0dXBfcGFj a2V0X3BlbmRpbmcgPSBmYWxzZTsKCglzd2l0Y2ggKGR3Yy0+ZXAwc3RhdGUpIHsKCWNhc2UgRVAw X1NFVFVQX1BIQVNFOgoJCWR3YzNfZXAwX2luc3BlY3Rfc2V0dXAoZHdjLCBldmVudCk7CgkJYnJl YWs7ClsuLi5dCn0KCnN0YXRpYyB2b2lkIGR3YzNfZXAwX2luc3BlY3Rfc2V0dXAoc3RydWN0IGR3 YzMgKmR3YywKCQljb25zdCBzdHJ1Y3QgZHdjM19ldmVudF9kZXBldnQgKmV2ZW50KQp7CglzdHJ1 Y3QgdXNiX2N0cmxyZXF1ZXN0ICpjdHJsID0gKHZvaWQgKikgZHdjLT5lcDBfdHJiOwoJaW50IHJl dCA9IC1FSU5WQUw7Cgl1MzIgbGVuOwoKCWlmICghZHdjLT5nYWRnZXRfZHJpdmVyKQoJCWdvdG8g b3V0OwoKCXRyYWNlX2R3YzNfY3RybF9yZXEoY3RybCk7CgoJbGVuID0gbGUxNl90b19jcHUoY3Ry bC0+d0xlbmd0aCk7CglpZiAoIWxlbikgewoJCWR3Yy0+dGhyZWVfc3RhZ2Vfc2V0dXAgPSBmYWxz ZTsKCQlkd2MtPmVwMF9leHBlY3RfaW4gPSBmYWxzZTsKCQlkd2MtPmVwMF9uZXh0X2V2ZW50ID0g RFdDM19FUDBfTlJEWV9TVEFUVVM7Cgl9IGVsc2UgewoJCWR3Yy0+dGhyZWVfc3RhZ2Vfc2V0dXAg PSB0cnVlOwoJCWR3Yy0+ZXAwX2V4cGVjdF9pbiA9ICEhKGN0cmwtPmJSZXF1ZXN0VHlwZSAmIFVT Ql9ESVJfSU4pOwoJCWR3Yy0+ZXAwX25leHRfZXZlbnQgPSBEV0MzX0VQMF9OUkRZX0RBVEE7Cgl9 ClsuLi5dCn0KCnN0YXRpYyBpbnQgX19kd2MzX2dhZGdldF9lcDBfcXVldWUoc3RydWN0IGR3YzNf ZXAgKmRlcCwKCQlzdHJ1Y3QgZHdjM19yZXF1ZXN0ICpyZXEpCnsKCXN0cnVjdCBkd2MzCQkqZHdj ID0gZGVwLT5kd2M7CgoJcmVxLT5yZXF1ZXN0LmFjdHVhbAk9IDA7CglyZXEtPnJlcXVlc3Quc3Rh dHVzCT0gLUVJTlBST0dSRVNTOwoJcmVxLT5lcG51bQkJPSBkZXAtPm51bWJlcjsKCglsaXN0X2Fk ZF90YWlsKCZyZXEtPmxpc3QsICZkZXAtPnBlbmRpbmdfbGlzdCk7CgpbLi4uXQoKCWlmIChkd2Mt PnRocmVlX3N0YWdlX3NldHVwKSB7CgkJdW5zaWduZWQgICAgICAgIGRpcmVjdGlvbjsKCgkJZGly ZWN0aW9uID0gZHdjLT5lcDBfZXhwZWN0X2luOwoJCWR3Yy0+ZXAwc3RhdGUgPSBFUDBfREFUQV9Q SEFTRTsKCgkJX19kd2MzX2VwMF9kb19jb250cm9sX2RhdGEoZHdjLCBkd2MtPmVwc1tkaXJlY3Rp b25dLCByZXEpOwoKCQlkZXAtPmZsYWdzICY9IH5EV0MzX0VQMF9ESVJfSU47Cgl9CgoJcmV0dXJu IDA7Cn0KClJlZ2FyZGxlc3Mgb2YgdGhlIGRpcmVjdGlvbiwgY29udHJvbCBkYXRhIGFsd2F5cyBk ZXBlbmRzIG9uIGEgY2FsbCB0bwp1c2JfZXBfcXVldWUoKQoKPiB3aHkgbm90LiAgQWZ0ZXIgYWxs LCBzb21lIGRyaXZlcnMgbWF5IHJlcXVpcmUgdGhpcy4gIExpa2V3aXNlIGZvciB0aGUgCj4gZGF0 YSBzdGFnZSBvZiBhIGNvbnRyb2wtSU4uCj4KPiBBbm90aGVyIHRoaW5nIHdlIHNob3VsZCBkbyBp cyBnaXZlIGZ1bmN0aW9uIGRyaXZlcnMgYSB3YXkgdG8gc2VuZCBhCj4gU1RBTEwgcmVzcG9uc2Ug Zm9yIHRoZSBzdGF0dXMgc3RhZ2UuICBDdXJyZW50bHkgdGhlcmUncyBubyB3YXkgdG8gZG8KPiBp dCwgaWYgYSBkYXRhIHN0YWdlIGlzIHByZXNlbnQuCgpTdGF0dXMgc3RhZ2UgY2FuIG9ubHkgYmUg c3RhbGxlZCBpZiBob3N0IHRyaWVzIHRvIG1vdmUgZGF0YSBvbiB0aGUgd3JvbmcKZGlyZWN0aW9u LiBDdXJyZW50bHksIHRoYXQncyBoYW5kbGVkIGludGVybmFsbHkgYnkgVURDcyBzaW5jZSB0aGF0 J3MKZWFzeSBlbm91Z2ggdG8gdHJhY2suCgpEYXRhIHN0YWdlIGFscmVhZHkgaGFzIGV4cGxpY2l0 IHN0YWxsIGhhbmRsaW5nLgo=