diff options
| author | Tomasz Moń <desowin@gmail.com> | 2011-12-20 13:36:43 +0000 |
|---|---|---|
| committer | Tomasz Moń <desowin@gmail.com> | 2011-12-20 13:36:43 +0000 |
| commit | 44d1a262715d0f4891e499661a89a6cd49bbb440 (patch) | |
| tree | f7fe7d6f1eee80c031db7c285659362fa21c7afe | |
| parent | 4aec0012440ceeeee45913cfe5ce8869597db1f6 (diff) | |
| download | rockbox-44d1a262715d0f4891e499661a89a6cd49bbb440.zip rockbox-44d1a262715d0f4891e499661a89a6cd49bbb440.tar.gz rockbox-44d1a262715d0f4891e499661a89a6cd49bbb440.tar.bz2 rockbox-44d1a262715d0f4891e499661a89a6cd49bbb440.tar.xz | |
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.c | 8 | ||||
| -rw-r--r-- | firmware/target/arm/tms320dm320/system-dm320.c | 8 |
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 c22bd2c..c8b2c96 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) { IO_SERIAL1_TX_DATA = buf_tx[i]; - /* a short wait for AVR to process data */ - sleep(0); + /* 100 us wait for AVR */ + udelay(100); do { @@ -240,8 +240,8 @@ static void spi_txrx(unsigned char *buf_tx, unsigned char *buf_rx, int n) if (buf_rx != NULL) buf_rx[i] = rxdata & 0xFF; - /* seems to be unneccessary */ - //udelay(100); + /* 100 us wait to give AVR time to process data */ + udelay(100); } IO_SERIAL1_TX_ENABLE = 0; diff --git a/firmware/target/arm/tms320dm320/system-dm320.c b/firmware/target/arm/tms320dm320/system-dm320.c index a2a9ec3..e455ade 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) { stop = count + usec*((tmp+1)/10000); stop += (unsigned short)(((unsigned long)(usec)*((tmp%10000)+1))/10000); - /* stop values over tmdiv won't ever be reached */ + /* stop values over TMDIV won't ever be reached */ if (stop > tmp) { stop -= tmp; @@ -435,15 +435,13 @@ void udelay(int usec) { if (stop < count) { /* udelay will end after counter reset (tick) */ - while ((((tmp = IO_TIMER1_TMCNT) < stop) && - (current_tick != prev_tick)) || + while (((IO_TIMER1_TMCNT < stop) && (current_tick != prev_tick)) || (current_tick == prev_tick)); /* ensure new tick */ } else { /* udelay will end before counter reset (tick) */ - while (((tmp = IO_TIMER1_TMCNT) < stop) && - (current_tick == prev_tick)); + while ((IO_TIMER1_TMCNT < stop) && (current_tick == prev_tick)); } } |