summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Moń <desowin@gmail.com>2011-12-20 13:36:43 +0000
committerTomasz Moń <desowin@gmail.com>2011-12-20 13:36:43 +0000
commit44d1a262715d0f4891e499661a89a6cd49bbb440 (patch)
treef7fe7d6f1eee80c031db7c285659362fa21c7afe
parent4aec0012440ceeeee45913cfe5ce8869597db1f6 (diff)
downloadrockbox-44d1a262715d0f4891e499661a89a6cd49bbb440.tar.gz
rockbox-44d1a262715d0f4891e499661a89a6cd49bbb440.zip
Sansa Connect: use udelay() in AVR spi_txrx().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31377 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c8
-rw-r--r--firmware/target/arm/tms320dm320/system-dm320.c8
2 files changed, 7 insertions, 9 deletions
diff --git a/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c b/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c
index c22bd2c21d..c8b2c9623c 100644
--- a/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c
+++ b/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c
@@ -229,8 +229,8 @@ static void spi_txrx(unsigned char *buf_tx, unsigned char *buf_rx, int n)
229 { 229 {
230 IO_SERIAL1_TX_DATA = buf_tx[i]; 230 IO_SERIAL1_TX_DATA = buf_tx[i];
231 231
232 /* a short wait for AVR to process data */ 232 /* 100 us wait for AVR */
233 sleep(0); 233 udelay(100);
234 234
235 do 235 do
236 { 236 {
@@ -240,8 +240,8 @@ static void spi_txrx(unsigned char *buf_tx, unsigned char *buf_rx, int n)
240 if (buf_rx != NULL) 240 if (buf_rx != NULL)
241 buf_rx[i] = rxdata & 0xFF; 241 buf_rx[i] = rxdata & 0xFF;
242 242
243 /* seems to be unneccessary */ 243 /* 100 us wait to give AVR time to process data */
244 //udelay(100); 244 udelay(100);
245 } 245 }
246 246
247 IO_SERIAL1_TX_ENABLE = 0; 247 IO_SERIAL1_TX_ENABLE = 0;
diff --git a/firmware/target/arm/tms320dm320/system-dm320.c b/firmware/target/arm/tms320dm320/system-dm320.c
index a2a9ec3661..e455ade590 100644
--- a/firmware/target/arm/tms320dm320/system-dm320.c
+++ b/firmware/target/arm/tms320dm320/system-dm320.c
@@ -426,7 +426,7 @@ void udelay(int usec) {
426 stop = count + usec*((tmp+1)/10000); 426 stop = count + usec*((tmp+1)/10000);
427 stop += (unsigned short)(((unsigned long)(usec)*((tmp%10000)+1))/10000); 427 stop += (unsigned short)(((unsigned long)(usec)*((tmp%10000)+1))/10000);
428 428
429 /* stop values over tmdiv won't ever be reached */ 429 /* stop values over TMDIV won't ever be reached */
430 if (stop > tmp) 430 if (stop > tmp)
431 { 431 {
432 stop -= tmp; 432 stop -= tmp;
@@ -435,15 +435,13 @@ void udelay(int usec) {
435 if (stop < count) 435 if (stop < count)
436 { 436 {
437 /* udelay will end after counter reset (tick) */ 437 /* udelay will end after counter reset (tick) */
438 while ((((tmp = IO_TIMER1_TMCNT) < stop) && 438 while (((IO_TIMER1_TMCNT < stop) && (current_tick != prev_tick)) ||
439 (current_tick != prev_tick)) ||
440 (current_tick == prev_tick)); /* ensure new tick */ 439 (current_tick == prev_tick)); /* ensure new tick */
441 } 440 }
442 else 441 else
443 { 442 {
444 /* udelay will end before counter reset (tick) */ 443 /* udelay will end before counter reset (tick) */
445 while (((tmp = IO_TIMER1_TMCNT) < stop) && 444 while ((IO_TIMER1_TMCNT < stop) && (current_tick == prev_tick));
446 (current_tick == prev_tick));
447 } 445 }
448} 446}
449 447