summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Yung-Chieh Lo <yjlou@chromium.org>2013-11-26 12:21:57 -0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-03-11 05:54:04 +0000
commit6258f1f3551b2088beea5f368c0365aaf2a85b21 (patch)
tree0c47afd59bd860a664e45bf39d26c02f99874ff5
parent2476ae11fce6cd549dcfe6c39aab7c126c23c234 (diff)
downloadchrome-ec-6258f1f3551b2088beea5f368c0365aaf2a85b21.tar.gz
stm32: flush write buffer before start DMA transfer.
BUG=chrome-os-partner:22849 TEST=Tested on peach-pit FAFT. No "checksum invalid" from cpu_uart.txt BRANCH=pit,nyan Change-Id: I64f4b636943158fab48892020980f784ca551e4f Signed-off-by: Louis Yung-Chieh Lo <yjlou@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/178087 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r--chip/stm32/dma.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/chip/stm32/dma.c b/chip/stm32/dma.c
index 71fa4e22f1..e648b7418e 100644
--- a/chip/stm32/dma.c
+++ b/chip/stm32/dma.c
@@ -79,6 +79,9 @@ static void prepare_channel(stm32_dma_chan_t *chan, unsigned count,
void dma_go(stm32_dma_chan_t *chan)
{
+ /* Flush data in write buffer so that DMA can get the lastest data */
+ asm volatile("dsb;");
+
/* Fire it up */
chan->ccr |= STM32_DMA_CCR_EN;
}