mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2026-03-14 21:10:27 +01:00
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@redhat.com> |
||
|---|---|---|
| .. | ||
| am35x.c | ||
| Kconfig | ||
| linux-compat.h | ||
| Makefile | ||
| musb_core.c | ||
| musb_core.h | ||
| musb_debug.h | ||
| musb_dma.h | ||
| musb_dsps.c | ||
| musb_gadget.c | ||
| musb_gadget.h | ||
| musb_gadget_ep0.c | ||
| musb_host.c | ||
| musb_host.h | ||
| musb_io.h | ||
| musb_regs.h | ||
| musb_uboot.c | ||
| musb_uboot.h | ||
| omap2430.c | ||
| omap2430.h | ||
| pic32.c | ||
| sunxi.c | ||
| usb-compat.h | ||