Hi,
On Sun, Jun 14, 2015 at 12:40:11PM +0200, Hans de Goede wrote:
> 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?So, I was affected by this issue on a SinA33, even when not switching roles (since the SinA33 is peripheral only). The issue I was seeing what that when I was two subsequent use of any gadget (fastboot, USB ethernet traffic), the second would silently fail on U-boot side with the host failing to enumerate the device. Paul pointed me to that thread, and your suggestion on EP0 seems like a good lead, since the ugly http://pastebin.com/9Y6S9Hpw makes it work. Thanks, Maxime -- Maxime Ripard, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

