Hi,

On Wed, Sep 02, 2015 at 11:35:45AM +0200, Pascal Huerst wrote:
> Hey Felipe,
> 
> on a custom built, am335x based board, running v4.0, I'm facing an issue
> with usb:
> 
> After suspend, storage devices are not being enumerated correctly. I

hmm, mainline kernel doesn't support suspend/resume on AM335x devices so
I'm gonna say you need to ask for support from whoever gave you this
kernel. If that's TI, then you need to either ask for help on TI's e2e
forums or talk to your FAE...

> have seen and applied your recent patch:
> 
> usb: musb: host: rely on port_mode to call musb_start()
> 
> Now, the issue only happens once. So if the device resumes the first
> time, I face the same enumeration problem, but all following times, it
> seems to work properly.
> 
> I figureed out, that in a working situation:
> 
> void musb_start(...)
> 
> -> http://lxr.free-electrons.com/source/drivers/usb/musb/musb_core.c#L1027
> 
> is called before the isr:
> 
> static irqreturn_t musb_stage0_irq(...)
> 
> -> http://lxr.free-electrons.com/source/drivers/usb/musb/musb_core.c#L539
> 
> And in a non working situation, its the other way arround. (Which should
> not happen!?) I'm not too familiar with usb. Do you have any ideas, what
> could cause that behavior?

... with that said, you didn't give me logs of the problem happening nor
gave me any instructions on how to reproduce.

based on the description alone, I think making sure MUSB IRQs are masked
on suspen and unmask on resume might be enough, though you'd have to
patch that up and check.

-- 
balbi

Attachment: signature.asc
Description: Digital signature

Reply via email to