From 3c7c71030f64eacc2fb7bb4d01247b81ee9d117e Mon Sep 17 00:00:00 2001 From: Tomasz Moń Date: Sun, 27 Jun 2021 13:32:20 +0200 Subject: 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 --- firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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) IO_SERIAL1_TX_ENABLE = 0x0001; avr_hid_select(); + udelay(10); IO_SERIAL1_TX_DATA = CMD_SYNC; spi_read_byte(); @@ -660,7 +661,7 @@ static void read_monotime(void) if ((t1 == t2) || (t1 + 1 == t2)) { int flags = disable_irq_save(); - monotime_value = t1; + monotime_value = t2; monotime_value_tick = current_tick; restore_irq(flags); monotime_available = true; -- cgit v1.2.3