Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1394930
| From | Peter Chen <hzpeterchen@gmail.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] usb: dwc3: usb/dwc3: fake dissconnect event when turn off pullup |
| Date | 2016-05-05 10:20 +0200 |
| Message-ID | <rvmFQ-4se-9@gated-at.bofh.it> (permalink) |
| References | <rstku-6Ff-11@gated-at.bofh.it> <rsu6S-7lj-15@gated-at.bofh.it> <rsvPl-jK-27@gated-at.bofh.it> <rsNVU-720-7@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Thu, Apr 28, 2016 at 09:46:15AM +0300, Felipe Balbi wrote: > > Hi, > > (we don't top-post on this forum ;-) > > "Du, Changbin" <changbin.du@intel.com> writes: > > Hi, Balbi, > > > > The step to reproduce this issue is: > > 1) connect device to a host and wait its enumeration. > > 2) trigger software disconnect by calling function > > usb_gadget_disconnect(), which finally call > > dwc3_gadget_pullup(false). Do not reconnect device > > (I mean no enumeration go on, keep bit Run/Stop 0.). > > > > At here, gadget driver's disconnect callback should be > > Called, right? We has been disconnected. But no, as > > You said " not generating disconnect IRQ after you > > drop Run/Stop is expected". > > > > And I am testing on an Android device, Android only > > use dwc3_gadget_pullup(false) to issue a soft disconnection. > > This confused user that the UI still show usb as connected > > State, caused by missing a disconnect event. > > okay, so I know what this is. This is caused by Android gadget itself > not notifying the gadget that a disconnect has happened. Just look at > udc-core's soft_connect implementation for the sysfs interface, and > you'll see what I mean. > > This should be fixed at Android gadget itself. The only thing we could > do is introduce a new usb_gadget_soft_connect()/disconnect() to wrap the > logic so it's easier for Android gadget to use; but even that I'm a > little bit reluctant to do because Android should be using our > soft_connect interface instead of reimplementing it (wrongly) by its > own. > If it is a gadget driver, it can call its disconnect explicitly. Another thing is the gadget driver should not call usb_gadget_disconnect directly, it should call usb_gadget_deactivate or usb_function_deactivate. Since currently, calling usb_gadget_disconnect may not do real pull down dp, Felipe, will you consider adding gadget_driver->disconnect into usb_gadget_disconnect after pull down dp? -- Best Regards, Peter Chen
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
Re: [PATCH] usb: dwc3: usb/dwc3: fake dissconnect event when turn off pullup Peter Chen <hzpeterchen@gmail.com> - 2016-05-05 10:20 +0200
Re: [PATCH] usb: dwc3: usb/dwc3: fake dissconnect event when turn off pullup Felipe Balbi <balbi@kernel.org> - 2016-05-06 09:10 +0200
Re: [PATCH] usb: dwc3: usb/dwc3: fake dissconnect event when turn off pullup Peter Chen <hzpeterchen@gmail.com> - 2016-05-06 09:50 +0200
Re: [PATCH] usb: dwc3: usb/dwc3: fake dissconnect event when turn off pullup Felipe Balbi <balbi@kernel.org> - 2016-05-06 10:00 +0200
csiph-web