[U-Boot] [PATCH 0/2] sunxi: musb: Fix "usb reset" handling

Marek Vasut marex at denx.de
Fri Jun 19 14:35:48 CEST 2015


On Sunday, June 14, 2015 at 12:40:11 PM, Hans de Goede wrote:
> Hi Ian, Paul,
> 
> Here is a patch to fix the problems where most usb devices will no longer
> work after a "usb reset ", when connected to the otg controller in host
> mode + a related cleanup patch.
> 
> Ian I would like to send out a PR with these 2 as fixed for v2015.07, can
> you review them please? Note I've not tested this with the otg in gadget
> mode, but we do not have gadget mode enabled by default anywhere atm, so
> I still consider this suitable as a bugfix for v2015.07.
> 
> Paul, can you test these with gadget mode? Specifically if they help the
> problem you were seeing when switching roles?
> 
> Also this bit from the kernel code for the sunxi glue may be relevant
> to your problems:
> 
>         if ((musb->int_usb & MUSB_INTR_RESET) && !is_host_active(musb)) {
>                 /* ep0 FADDR must be 0 when (re)entering peripheral mode */
>                 musb_ep_select(musb->mregs, 0);
>                 musb_writeb(musb->mregs, MUSB_FADDR, 0);
>         }
> 
> This is from the interrupt handler in the sunxi-musb glue in the kernel,
> maybe we can do the same, and/or maybe we need to do:
> 
> 	/* ep0 FADDR must be 0 when (re)entering peripheral mode */
> 	musb_ep_select(musb->mregs, 0);
> 	musb_writeb(musb->mregs, MUSB_FADDR, 0);
> 
> From sunxi_musb_disable?
> 
> From my experience sofar we should avoid doing a full reset from musb_stop
> / sunxi_musb_disable as musb_init_controller never gets re-run, so doing a
> full reset leaves things in a bad state where only ep0 still seems to
> work, this may be what you were seeing before.

Hi,

do you want me to pick this via u-boot-usb/master ?

Best regards,
Marek Vasut


More information about the U-Boot mailing list