From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Date: Sun, 18 Sep 2016 16:00:52 +0100 Subject: [U-Boot] [PATCH] sunxi: musb: Re-init musb controller on repeated probe calls In-Reply-To: <20160918145316.23471-1-hdegoede@redhat.com> References: <20160918145316.23471-1-hdegoede@redhat.com> Message-ID: <1474210852.28654.11.camel@hellion.org.uk> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 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