From 6258f1f3551b2088beea5f368c0365aaf2a85b21 Mon Sep 17 00:00:00 2001 From: Louis Yung-Chieh Lo Date: Tue, 26 Nov 2013 12:21:57 -0800 Subject: 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 Reviewed-on: https://chromium-review.googlesource.com/178087 Reviewed-by: Vincent Palatin --- chip/stm32/dma.c | 3 +++ 1 file changed, 3 insertions(+) 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; } -- cgit v1.2.1