Hi,

On 26-06-15 12:20, Maxime Ripard wrote:
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.

Ah, that is not that ugly actually, I can take that as is if you want me
too just submit it to the u-boot list with me in the Cc and I'll pick it
up and put it in u-boot-sunxi/next

Regards,

Hans
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to