[U-Boot] [PATCH RESEND] arm: bootm: call udc_disable() before booting linux

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 mikedunn@newsguy.com --- 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 udc 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(); }

On Sat, Apr 20, 2013 at 1:42 PM, Mike Dunn mikedunn@newsguy.com 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 mikedunn@newsguy.com
Shouldn't it be fixed in Linux, in this case?
-- Otavio Salvador O.S. Systems E-mail: otavio@ossystems.com.br http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br

Dear Otavio Salvador,
On Sat, Apr 20, 2013 at 1:42 PM, Mike Dunn mikedunn@newsguy.com 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 mikedunn@newsguy.com
Shouldn't it be fixed in Linux, in this case?
There is a whole thread about this in the previous version if this patch, dig it up in the mailing list, you'll surely find your answer there shortly.
Best regards, Marek Vasut

Dear Mike Dunn,
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 mikedunn@newsguy.com
Applied this and the USB patch.
Best regards, Marek Vasut
participants (3)
-
Marek Vasut
-
Mike Dunn
-
Otavio Salvador