OMAP: McBSP: Configure NO IDLE mode for DMA mode different of threshold
authorEduardo Valentin <eduardo.valentin@nokia.com>
Thu, 20 Aug 2009 13:18:18 +0000 (16:18 +0300)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 20 Aug 2009 19:10:27 +0000 (20:10 +0100)
Use dma mode property to configure NO IDLE or SMART IDLE of McBSPs.

Signed-off-by: Eduardo Valentin <eduardo.valentin@nokia.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
arch/arm/plat-omap/mcbsp.c

index 2c274e6f0de9230152d99204c2eb1252654fe6d0..85176a5f414880fbfb02ede77bc6c45284390603 100644 (file)
@@ -317,7 +317,15 @@ static inline void omap34xx_mcbsp_request(struct omap_mcbsp *mcbsp)
 
                syscon = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON);
                syscon &= ~(ENAWAKEUP | SIDLEMODE(0x03) | CLOCKACTIVITY(0x03));
-               syscon |= (ENAWAKEUP | SIDLEMODE(0x02) | CLOCKACTIVITY(0x02));
+
+               spin_lock_irq(&mcbsp->lock);
+               if (mcbsp->dma_op_mode == MCBSP_DMA_MODE_THRESHOLD)
+                       syscon |= SIDLEMODE(0x02);
+               else
+                       syscon |= SIDLEMODE(0x01);
+               spin_unlock_irq(&mcbsp->lock);
+
+               syscon |= (ENAWAKEUP | CLOCKACTIVITY(0x02));
                OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, syscon);
 
                OMAP_MCBSP_WRITE(mcbsp->io_base, WAKEUPEN, XRDYEN | RRDYEN);