diff options
Diffstat (limited to 'arch/arm/plat-omap/mcbsp.c')
-rw-r--r-- | arch/arm/plat-omap/mcbsp.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c index 2c274e6f0de9..85176a5f4148 100644 --- a/arch/arm/plat-omap/mcbsp.c +++ b/arch/arm/plat-omap/mcbsp.c | |||
@@ -317,7 +317,15 @@ static inline void omap34xx_mcbsp_request(struct omap_mcbsp *mcbsp) | |||
317 | 317 | ||
318 | syscon = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON); | 318 | syscon = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON); |
319 | syscon &= ~(ENAWAKEUP | SIDLEMODE(0x03) | CLOCKACTIVITY(0x03)); | 319 | syscon &= ~(ENAWAKEUP | SIDLEMODE(0x03) | CLOCKACTIVITY(0x03)); |
320 | syscon |= (ENAWAKEUP | SIDLEMODE(0x02) | CLOCKACTIVITY(0x02)); | 320 | |
321 | spin_lock_irq(&mcbsp->lock); | ||
322 | if (mcbsp->dma_op_mode == MCBSP_DMA_MODE_THRESHOLD) | ||
323 | syscon |= SIDLEMODE(0x02); | ||
324 | else | ||
325 | syscon |= SIDLEMODE(0x01); | ||
326 | spin_unlock_irq(&mcbsp->lock); | ||
327 | |||
328 | syscon |= (ENAWAKEUP | CLOCKACTIVITY(0x02)); | ||
321 | OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, syscon); | 329 | OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, syscon); |
322 | 330 | ||
323 | OMAP_MCBSP_WRITE(mcbsp->io_base, WAKEUPEN, XRDYEN | RRDYEN); | 331 | OMAP_MCBSP_WRITE(mcbsp->io_base, WAKEUPEN, XRDYEN | RRDYEN); |