[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