On Mon, Aug 28, 2023 at 4:52 PM Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > On Mon, Aug 28, 2023 at 04:10:32AM +0200, andrey.konovalov@xxxxxxxxx wrote: > > From: Andrey Konovalov <andreyknvl@xxxxxxxxx> > > > > Return USB_GADGET_DELAYED_STATUS from the setup() callback for 0-length > > transfers as a workaround to stop some UDC drivers (e.g. dwc3) from > > automatically proceeding with the status stage. > > > > This workaround should be removed once all UDC drivers are fixed to > > always delay the status stage until a response is queued to EP0. > > > > Signed-off-by: Andrey Konovalov <andreyknvl@xxxxxxxxx> > > --- > > drivers/usb/gadget/legacy/inode.c | 15 ++++++++++++++- > > 1 file changed, 14 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c > > index 28249d0bf062..154bbf578ba2 100644 > > --- a/drivers/usb/gadget/legacy/inode.c > > +++ b/drivers/usb/gadget/legacy/inode.c > > @@ -31,6 +31,7 @@ > > > > #include <linux/usb/gadgetfs.h> > > #include <linux/usb/gadget.h> > > +#include <linux/usb/composite.h> > > Add: /* for USB_GADGET_DELAYED_STATUS */ Will do in v2. > > +#undef ERROR > > #define ERROR(dev,fmt,args...) \ > > xprintk(dev , KERN_ERR , fmt , ## args) > > +#undef INFO > > Please move these #undef lines up, just after the new #include. And > add a comment explaining briefly why they are needed. Will do in v2. > > Aside from these changes, > > Reviewed-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> Thank you, Alan!