[U-Boot] [PATCH] sunxi: musb: Re-init musb controller on repeated probe calls

Ian Campbell ijc+uboot at hellion.org.uk
Sun Sep 18 17:00:52 CEST 2016


On Sun, 2016-09-18 at 16:53 +0200, Hans de Goede wrote:
> With sunxi-musb musb_lowlevel_init() can fail when a charger; or no
> cable
> is plugged into the otg port.
> 
> To avoid leaking the struct musb allocated by musb_init_controller()
> on repeated musb_usb_probe() calls, we were caching its result.
> But musb_init_controller() does more, such as calling
> sunxi_musb_init()
> which enables the clocks.
> 
> Not calling sunxi_musb_init() causes the musb controller to stop
> working
> after a "usb reset" since that calls musb_usb_remove() which disables
> the
> clocks.
> 
> This commit fixes this by removing the caching of the struct returned
> from musb_init_controller(), it replaces this by free-ing the
> allocated
> memory in musb_usb_remove() and calling musb_usb_remove() on
> musb_usb_probe() errors to ensure proper cleanup.
> 
> While at it also make musb_usb_probe() and musb_usb_remove() static.
> 
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>

LGTM in so far as it seems like a more normal way to do things, but
maybe an Ack from a USB-in-uboot-savvy person might be nice?

Anyway: Acked-by: Ian Campbell <ijc at hellion.org.uk>



More information about the U-Boot mailing list