diff options
author | Tomasz Moń <desowin@gmail.com> | 2021-06-27 13:32:20 +0200 |
---|---|---|
committer | Tomasz Moń <desowin@gmail.com> | 2021-06-27 13:32:20 +0200 |
commit | 3c7c71030f64eacc2fb7bb4d01247b81ee9d117e (patch) | |
tree | 67c4c2331b36da0bcab227c7db6d13d46013344a | |
parent | 1b81bd8a6153314aadc1144d55a7c02eb11111c5 (diff) | |
download | rockbox-3c7c71030f64eacc2fb7bb4d01247b81ee9d117e.tar.gz rockbox-3c7c71030f64eacc2fb7bb4d01247b81ee9d117e.zip |
Sansa Connect: Ensure adequate AVR Slave Select delay
Waiting 10 us between selecting slave and transmitting data on SPI
resolves spurious startup glitches.
Cache last read monotime value as it can differ from the first one.
Change-Id: Ia6ac5696f6ee2bc3c6a8be27e33aaddd9ff4ce2a
-rw-r--r-- | firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c b/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c index 94ffcdf195..12058eba03 100644 --- a/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c +++ b/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c | |||
@@ -376,6 +376,7 @@ static bool avr_run_command(uint8_t opcode, uint8_t *data, size_t data_length) | |||
376 | IO_SERIAL1_TX_ENABLE = 0x0001; | 376 | IO_SERIAL1_TX_ENABLE = 0x0001; |
377 | 377 | ||
378 | avr_hid_select(); | 378 | avr_hid_select(); |
379 | udelay(10); | ||
379 | 380 | ||
380 | IO_SERIAL1_TX_DATA = CMD_SYNC; | 381 | IO_SERIAL1_TX_DATA = CMD_SYNC; |
381 | spi_read_byte(); | 382 | spi_read_byte(); |
@@ -660,7 +661,7 @@ static void read_monotime(void) | |||
660 | if ((t1 == t2) || (t1 + 1 == t2)) | 661 | if ((t1 == t2) || (t1 + 1 == t2)) |
661 | { | 662 | { |
662 | int flags = disable_irq_save(); | 663 | int flags = disable_irq_save(); |
663 | monotime_value = t1; | 664 | monotime_value = t2; |
664 | monotime_value_tick = current_tick; | 665 | monotime_value_tick = current_tick; |
665 | restore_irq(flags); | 666 | restore_irq(flags); |
666 | monotime_available = true; | 667 | monotime_available = true; |