summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Moń <desowin@gmail.com>2021-06-27 13:32:20 +0200
committerTomasz Moń <desowin@gmail.com>2021-06-27 13:32:20 +0200
commit3c7c71030f64eacc2fb7bb4d01247b81ee9d117e (patch)
tree67c4c2331b36da0bcab227c7db6d13d46013344a
parent1b81bd8a6153314aadc1144d55a7c02eb11111c5 (diff)
downloadrockbox-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.c3
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;