Felipe > Hi, > > On Mon, Apr 08, 2013 at 12:25:38PM +0200, B, Ravi wrote: > > Daniel > > > > > On 08.04.2013 09:57, B, Ravi wrote: > > > >> Hi all, > > > >> > > > >> here are some patches to separate the HCD and gadget part of the > musb > > > >> driver so they can be deselected in Kconfig. They also make the > driver > > > >> keep track of the configured port mode that is set from DT, so the > > > >> actual runtime configuration can be selected dynamically. > > > >> > > > >> One thing that is still broken is that once pm_suspend() was called > on > > > >> a musb device on a USB disconnect, the port won't wake up again > when a > > > >> device is plugged back in. > > > > > > > > This could be due to SESSION bit removal when root port is > disconnected > > > in otg_timer function. > > > > > > Not sure if we are thinking about the same details, but after debuging > > > this a further, turns out that musb_platform_try_idle() eventually > > > switches off the entire controller, which then leads to DRVBUS going > low > > > on the board. That, in turn, prevents the interrupt from being > triggered > > > on reconnect, because the host port is not powered anymore. > > > > > > I don't know yet how to cope with that, but for now, I simply disabled > > > the call from musb_stage0_irq() to musb_platform_try_idle() locally. > > > > The otg_timer() gets invoked, which removes the session when no device > > connected to root controller, this is required in otg or dual role > > mode (Not for host-only mode). Because otg state is un-defined till > > user's connected a-side of b-side of cable. > > Embedded hosts might also want this to save some power while no devices > are connected. I guess most of those devices would rely on SRP or on a > polling method to enable VBUS. Yes, in case of true otg, SRP wakesup the device to enable VBUS. By 'polling' I mean that e.g. every 2 > seconds turn vbus on, if no device are enumerated in 200ms, then sleep > for another 2 seconds. Yes, we had this workaround mechanism enabled on some earlier davinci platform by setting the session periodically to check any device connected for host or otg/dual-role controller to save VBUS power when no device connected. > > Or something similar. I know of some products (cellphones) which will > only switch Vbus on when you open e.g. file manager. > -- Ravi B -- 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