diff mbox

[12/20] OMAP: McBSP: Configure NO IDLE mode for DMA mode different of threshold

Message ID 1248958183-15015-13-git-send-email-eduardo.valentin@nokia.com (mailing list archive)
State Awaiting Upstream, archived
Headers show

Commit Message

Eduardo Valentin July 30, 2009, 12:49 p.m. UTC
Use dma mode property to configure NO IDLE or SMART IDLE of McBSPs.

Signed-off-by: Eduardo Valentin <eduardo.valentin@nokia.com>
---
 arch/arm/plat-omap/mcbsp.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

Comments

Eduardo Valentin Aug. 6, 2009, noon UTC | #1
Tony and Jarkko,

On Thu, Jul 30, 2009 at 02:49:35PM +0200, Valentin Eduardo (Nokia-D/Helsinki) wrote:
> Use dma mode property to configure NO IDLE or SMART IDLE of McBSPs.
> 
> Signed-off-by: Eduardo Valentin <eduardo.valentin@nokia.com>
> ---
>  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 6c535b3..11cfcfe 100644
> --- a/arch/arm/plat-omap/mcbsp.c
> +++ b/arch/arm/plat-omap/mcbsp.c
> @@ -376,7 +376,15 @@ int omap_mcbsp_request(unsigned int id)
>  
>  		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));

Because of this piece of code that patch 0002 is using ifdefs.

>  		OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, syscon);
>  
>  		OMAP_MCBSP_WRITE(mcbsp->io_base, WAKEUPEN, WAKEUPEN_ALL);
> -- 
> 1.6.2.GIT
diff mbox

Patch

diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
index 6c535b3..11cfcfe 100644
--- a/arch/arm/plat-omap/mcbsp.c
+++ b/arch/arm/plat-omap/mcbsp.c
@@ -376,7 +376,15 @@  int omap_mcbsp_request(unsigned int id)
 
 		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, WAKEUPEN_ALL);