Message ID | 1366476164-2270-1-git-send-email-mikedunn@newsguy.com |
---|---|
State | Accepted |
Delegated to: | Marek Vasut |
Headers | show |
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
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 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(-)