From mboxrd@z Thu Jan 1 00:00:00 1970 From: Albert ARIBAUD Date: Mon, 15 Apr 2013 14:56:27 +0200 Subject: [U-Boot] [PATCH v3 4/8] arm: bootm: call udc_disable() before booting linux In-Reply-To: <20130415124507.GB31159@bill-the-cat> References: <1365793160-18247-1-git-send-email-mikedunn@newsguy.com> <1365793160-18247-5-git-send-email-mikedunn@newsguy.com> <20130414212243.1f8ae3ec@lilith> <201304142212.36618.marex@denx.de> <20130415124507.GB31159@bill-the-cat> Message-ID: <20130415145627.39939ebc@lilith> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Tom, On Mon, 15 Apr 2013 08:45:07 -0400, Tom Rini wrote: > On Sun, Apr 14, 2013 at 10:12:36PM +0200, Marek Vasut wrote: > > Dear Albert ARIBAUD, > > > > > Hi Mike, > > > > > > On Fri, 12 Apr 2013 11:59:16 -0700, Mike Dunn > > > > > > wrote: > > > > On the pxa270, if the udc device is not disabled before jumping to linux, > > > > the device fails to initialize in linux because it was left in a running > > > > state, and the linux driver assumes that it is in a disabled state. > > > > > > > > Signed-off-by: Mike Dunn > > > > --- > > > > > > > > Changelog: > > > > v3: no change > > > > v2: no change > > > > > > > > Arguably, this is a bug in the linux driver, but it seemed pretty simple > > > > and benign to just disable it in u-boot. I'll also send a patch to > > > > upstream kernel to fix its driver. > > > > > > > > arch/arm/include/asm/bootm.h | 1 + > > > > arch/arm/lib/bootm.c | 1 + > > > > 2 files changed, 2 insertions(+), 0 deletions(-) > > > > > > > > diff --git a/arch/arm/include/asm/bootm.h b/arch/arm/include/asm/bootm.h > > > > index db2ff94..68189cc 100644 > > > > --- a/arch/arm/include/asm/bootm.h > > > > +++ b/arch/arm/include/asm/bootm.h > > > > @@ -21,6 +21,7 @@ > > > > > > > > #ifdef CONFIG_USB_DEVICE > > > > extern void udc_disconnect(void); > > > > > > > > +extern void udc_disable(void); > > > > > > > > #endif > > > > > > > > #endif > > > > > > > > diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c > > > > index f3b30c5..6daa7bf 100644 > > > > --- a/arch/arm/lib/bootm.c > > > > +++ b/arch/arm/lib/bootm.c > > > > @@ -105,6 +105,7 @@ static void announce_and_cleanup(void) > > > > > > > > #ifdef CONFIG_USB_DEVICE > > > > > > > > udc_disconnect(); > > > > > > > > + udc_disable(); > > > > > > > > #endif > > > > > > > > cleanup_before_linux(); > > > > > > > > } > > > > > > Acked-By: Albert ARIBAUD > > > > Tom, will this not break any of your musb-toys? > > Albert, did you test this on your musb using nearly released now board? > :) No, I haven't. I had assumed from Marex' request that this worked for him and he wanted my formal ack on it. Amicalement, -- Albert.