Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e860e6da authored by Mathias Nyman's avatar Mathias Nyman Committed by Tony Lindgren
Browse files

omap: dma: Add read-back to DMA interrupt handler to avoid spuriousinterrupts



Flush the writes to IRQSTATUS_L0 register in the DMA interrupt handler by reading the register
directly after write. This prevents the spurious DMA interrupts noted when using VDD_OPP 1

Signed-off-by: default avatarMathias Nyman <mathias.nyman@nokia.com>
Acked-by: default avatarSantosh Shilimkar <Santosh.shilimkar@ti.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent b7283945
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -1983,6 +1983,8 @@ static int omap2_dma_handle_ch(int ch)


	dma_write(OMAP2_DMA_CSR_CLEAR_MASK, CSR(ch));
	dma_write(OMAP2_DMA_CSR_CLEAR_MASK, CSR(ch));
	dma_write(1 << ch, IRQSTATUS_L0);
	dma_write(1 << ch, IRQSTATUS_L0);
	/* read back the register to flush the write */
	dma_read(IRQSTATUS_L0);


	/* If the ch is not chained then chain_id will be -1 */
	/* If the ch is not chained then chain_id will be -1 */
	if (dma_chan[ch].chain_id != -1) {
	if (dma_chan[ch].chain_id != -1) {