Re: Should usb_gadget_disconnect() call driver's ->disconnect?

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

 



On Wed, 8 Aug 2018, Felipe Balbi wrote:

> 
> Hi,
> 
> Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> writes:
> > Felipe:
> >
> > The documentation doesn't state whether a gadget driver's 
> > ->disconnect() callback will be invoked when usb_gadget_disconnect() 
> > runs.  Probably the UDC drivers' behavior has changed over the years.
> >
> > In any case, it's likely that various UDC drivers do behave
> > differently.  My current feeling is that ->disconnect() should be
> > invoked only when Vbus turns off, but I can't guarantee that all UDCs 
> > will do this.
> 
> my feeling is that ->disconnect() should be called everytime we cause
> the session to be killed. VBUS Turning off is a guaratee that session is
> gone, but so is disconnecting data pullup, which is what
> usb_gadget_disconnect() does.

Okay.  I don't mind either way, so long as it is settled.

> > How do you feel about documenting this ambiguity as in the patch below?
> > If you think this is okay, I'll submit it formally.
> 
> Perhaps a better approach would be to start auditing all UDCs to make
> sure that ->disconnect() is called when pullup is disconnected. Then we
> can move ->disconnect() to usb_gadget_disconnect() itself. No?

Rather the other way around: Call ->disconnect() from
usb_gadget_disconnect() itself, then audit all the UDCs to make sure
they don't invoke the callbackup.  That's better than adding a callback
to the UDCs that are missing it, only then to remove it from all of
them later on.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



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

  Powered by Linux