All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrian Hunter <adrian.hunter@nokia.com>
To: Tony Lindgren <tony@atomide.com>
Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>,
	Manjunath Kondaiah G <manjugk@ti.com>,
	linux-omap Mailing List <linux-omap@vger.kernel.org>
Subject: Re: [PATCH 2/2] OMAP: DMA: clear interrupt status correctly
Date: Wed, 05 Jan 2011 11:58:56 +0200	[thread overview]
Message-ID: <4D2440E0.7040008@nokia.com> (raw)
In-Reply-To: <20101221202914.GK5829@atomide.com>


 From fffa19df17d73c1ed2e8c65c0b6604ee1dddff84 Mon Sep 17 00:00:00 2001
From: Adrian Hunter <adrian.hunter@nokia.com>
Date: Wed, 24 Nov 2010 13:23:21 +0200
Subject: [PATCH] OMAP: DMA: clear interrupt status correctly

When clearing the DMA channel, clear all status bits.

When handling a DMA interrupt, clear only the interrupt
status bits that have been read and are passed to the
channel's interrupt handler, not every status bit.

Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
---
  arch/arm/plat-omap/dma.c |    7 +++----
  1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index c4b2b47..8536308 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -53,7 +53,7 @@ enum { DMA_CHAIN_STARTED, DMA_CHAIN_NOTSTARTED };
  #endif
  
  #define OMAP_DMA_ACTIVE			0x01
-#define OMAP2_DMA_CSR_CLEAR_MASK	0xffe
+#define OMAP2_DMA_CSR_CLEAR_MASK	0xffffffff
  
  #define OMAP_FUNC_MUX_ARM_BASE		(0xfffe1000 + 0xec)
  
@@ -1873,7 +1873,7 @@ static int omap2_dma_handle_ch(int ch)
  		printk(KERN_INFO "DMA misaligned error with device %d\n",
  		       dma_chan[ch].dev_id);
  
-	p->dma_write(OMAP2_DMA_CSR_CLEAR_MASK, CSR, ch);
+	p->dma_write(status, CSR, ch);
  	p->dma_write(1 << ch, IRQSTATUS_L0, ch);
  	/* read back the register to flush the write */
  	p->dma_read(IRQSTATUS_L0, ch);
@@ -1893,10 +1893,9 @@ static int omap2_dma_handle_ch(int ch)
  			OMAP_DMA_CHAIN_INCQHEAD(chain_id);
  
  		status = p->dma_read(CSR, ch);
+		p->dma_write(status, CSR, ch);
  	}
  
-	p->dma_write(status, CSR, ch);
-
  	if (likely(dma_chan[ch].callback != NULL))
  		dma_chan[ch].callback(ch, status, dma_chan[ch].data);
  
-- 
1.7.0.4

  reply	other threads:[~2011-01-05  9:59 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-30 13:23 [PATCH 0/2] Minor DMA fixes Adrian Hunter
2010-11-30 13:23 ` [PATCH 1/2] OMAP: DMA: prevent races while setting M idle mode to nostandby Adrian Hunter
2010-11-30 14:24   ` Santosh Shilimkar
2010-12-01 12:21   ` Peter Ujfalusi
2010-12-01 19:11   ` G, Manjunath Kondaiah
2010-11-30 13:23 ` [PATCH 2/2] OMAP: DMA: clear interrupt status correctly Adrian Hunter
2010-11-30 14:25   ` Santosh Shilimkar
2010-12-21 20:29     ` Tony Lindgren
2011-01-05  9:58       ` Adrian Hunter [this message]
2011-01-05 17:27         ` Kevin Hilman
2011-01-19 10:24           ` [PATCH] " Adrian Hunter
2011-01-19 10:24             ` Adrian Hunter
2011-01-19 22:23             ` Tony Lindgren
2011-01-19 22:23               ` Tony Lindgren
2011-01-19 22:44               ` Tony Lindgren
2011-01-19 22:44                 ` Tony Lindgren
2011-01-20  3:44                 ` G, Manjunath Kondaiah
2011-01-20  3:44                   ` G, Manjunath Kondaiah
2011-01-20 11:10                 ` Adrian Hunter
2011-01-20 11:10                   ` Adrian Hunter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D2440E0.7040008@nokia.com \
    --to=adrian.hunter@nokia.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=manjugk@ti.com \
    --cc=santosh.shilimkar@ti.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.