We can't afford turning off interrupts for long periods in
U-Boot as the USB stack fails and leaves the USB device in
Insane Spam Mode.

This patch allowed 50 resets in a row giving normal USB
behaviour with no sign of the issue any more.

Signed-off-by: Andy Green <[EMAIL PROTECTED]>
---

 board/neo1973/gta02/gta02.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/board/neo1973/gta02/gta02.c b/board/neo1973/gta02/gta02.c
index c4766b0..3d8f14e 100644
--- a/board/neo1973/gta02/gta02.c
+++ b/board/neo1973/gta02/gta02.c
@@ -405,7 +405,13 @@ static void wait_for_power(void)
                if (pcf50633_usb_last_maxcurrent >= 500)
                        break;
 
-               cpu_idle();
+               /* cpu_idle sits with interrupts off destroying USB operation
+                * don't run it unless we are in trouble
+                */
+               if (!battery_is_good())
+                       cpu_idle();
+               else
+                       udelay(1000000);
 
                if (neo1973_new_second()) {
                        /*


Reply via email to