Skip to content

sunxi: musb: Fix "usb reset" handling

Hans de Goede u-boot 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest0 of 2 patches 0 repliesNew

Patches in v1 No applies recorded yet

None of the 2 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

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

Hi,

Quoted 33 lines · Marek Vasut
Quoted 32 lines · Hans de Goede

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?

Quoted 8 lines
Quoted 4 lines

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 ?

No, I've already send a pull-req for them via u-boot-sunxi/master and they are already merged :)

Regards,

Hans