Re: [RFC PATCH] usb: udc: run disconnect callback before pull up zero

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Jan 20, 2024 at 01:12:04AM +0000, Thinh Nguyen wrote:
> On Fri, Jan 19, 2024, Alan Stern wrote:
> > On Fri, Jan 19, 2024 at 01:48:13PM +0800, yuan linyu wrote:
> > > When write UDC to empty and unbind gadget driver from gadget device, it is
> > > possible that there are many queue failures for mass storage function.
> 
> That's expected right?

Certainly.  And not just for mass storage; for other gadget drivers too.

> > > The root cause is on platform like dwc3, if pull down called first, the
> > > queue operation from mass storage main thread will fail as it is belong to
> > > another thread context and always try to receive a command from host.
> > > 
> > > In order to fix it, call gadget driver disconnect callback first, mass
> > > storage function driver will disable endpoints and clear running flag,
> > > so there will be no request queue to UDC.
> > > 
> > > One note is when call disconnect callback first, it mean function will
> > > disable endpoints before stop UDC controller.
> > 
> > Exactly.  So instead of getting a bunch of errors on the gadget, now 
> > you'll get a bunch of errors on the host.  I don't think that's any 
> > better.
> > 
> > Why don't you change the dwc3 driver instead?  If it allowed ep_queue 
> > operations to succeed while the pull-up is off then this problem would 
> > go away.
> > 
> 
> I don't think we should do that either. When pullup off occurs, the
> device is disconnected for dwc3. usb_ep_queue() doc noted that we
> should return error on disconnection.

Oh yes, so it does.  Okay, forget that idea.

>  Beside, it will add unnecessary
> complication to dwc3 handling this.

How about instead just reducing the visibility of these error messages 
to make them less annoying?  They aren't very important, after all -- 
they don't indicate that anything has gone seriously wrong.

Alan Stern




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux