diff options
author | Rafaël Carré <rafael.carre@gmail.com> | 2011-05-03 17:17:23 +0000 |
---|---|---|
committer | Rafaël Carré <rafael.carre@gmail.com> | 2011-05-03 17:17:23 +0000 |
commit | befabb2bab2736667d681c192bf4cb51b3aca032 (patch) | |
tree | 8e6996ed8d6850d03848af03f3eddf1ff9e7a3c3 /firmware/target | |
parent | 8fa0e13c9f4a4dfe9f1bb4c4d90f6fd257c92223 (diff) | |
download | rockbox-befabb2bab2736667d681c192bf4cb51b3aca032.tar.gz rockbox-befabb2bab2736667d681c192bf4cb51b3aca032.zip |
AMSv2 USB: Write usb_delay() in assembly
Ensure no changes when we use different versions of gcc (USB used to panic with gcc 4.6.0)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29818 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-rw-r--r-- | firmware/target/arm/as3525/usb-drv-as3525v2.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/firmware/target/arm/as3525/usb-drv-as3525v2.c b/firmware/target/arm/as3525/usb-drv-as3525v2.c index 24548f30c5..35b50d21cf 100644 --- a/firmware/target/arm/as3525/usb-drv-as3525v2.c +++ b/firmware/target/arm/as3525/usb-drv-as3525v2.c | |||
@@ -101,12 +101,14 @@ void usb_attach(void) | |||
101 | 101 | ||
102 | static inline void usb_delay(void) | 102 | static inline void usb_delay(void) |
103 | { | 103 | { |
104 | int i = 0; | 104 | register int i = 0; |
105 | while(i < 0x300) | 105 | asm volatile( |
106 | { | 106 | "1: nop \n" |
107 | asm volatile("nop"); | 107 | " add %0, %0, #1 \n" |
108 | i++; | 108 | " cmp %0, #0x300 \n" |
109 | } | 109 | " bne 1b \n" |
110 | : "+r"(i) | ||
111 | ); | ||
110 | } | 112 | } |
111 | 113 | ||
112 | static void as3525v2_connect(void) | 114 | static void as3525v2_connect(void) |