Hi, On Fri, Dec 14, 2012 at 02:13:07PM +0200, Grazvydas Ignotas wrote: > On Fri, Dec 14, 2012 at 11:53 AM, Ian Coolidge <iancoolidge@xxxxxxxxx> wrote: > > we find that with about a 2% chance, the gadget comes up in some kind of firmware failed state, driving VBUS. > > In this condition, we found that MUSB_DEVCTL_SESSION bit was set. > > I understand this to be indicative of MUSB thinking it is in host mode, which agrees with the driven VBUS. > > Further, in this state, I found that usually, there was one interrupt from twl4030_usb, but NO interrupts from musb-hdrc. > > I'm also also often seeing this and don't know any workaround except > powercycling the board :( > This was kind or relieved for me after I changed it to deinit musb on > shutdown/reset (3.3 should have that patch merged), however if you > randomly reset the board, there is still something like 30-50% chance > musb will come up dead, and on proper reset it's still something like > 5% chance like you reported. hehe, then you should've reported earlier :-) Anyway, I really think this has something to do with some bogus set_vbus() calls. Likely that looking at probe() path for checks for MUSB_DEVCTL_VBUS will probably show you something which is wrong. Maybe the driver is assuming that if VBUS bitfield is zero, then it kicks host side, or something. Go over that part of the code and you probably will find something. -- balbi
Attachment:
signature.asc
Description: Digital signature