linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [CFT 01/11] dmaengine: add OMAP DMA engine driver
Date: Fri, 8 Jun 2012 10:02:00 +0100	[thread overview]
Message-ID: <20120608090200.GA15831@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <E1ScaXw-0003tR-U8@rmk-PC.arm.linux.org.uk>

On Thu, Jun 07, 2012 at 12:06:32PM +0100, Russell King wrote:
> Tested-by: Tony Lindgren <tony@atomide.com>
> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
> ---
>  drivers/dma/Kconfig      |    6 +
>  drivers/dma/Makefile     |    1 +
>  drivers/dma/omap-dma.c   |  522 ++++++++++++++++++++++++++++++++++++++++++++++
>  include/linux/omap-dma.h |   24 ++
>  4 files changed, 553 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/dma/omap-dma.c
>  create mode 100644 include/linux/omap-dma.h

There is a bug in here which no one has spotted... I just noticed it.

diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c
index 500bc71..02eb2fd 100644
--- a/drivers/dma/omap-dma.c
+++ b/drivers/dma/omap-dma.c
@@ -130,14 +130,13 @@ static void omap_dma_callback(int ch, u16 status, void *data)
 
 	spin_lock_irqsave(&c->vc.lock, flags);
 	d = c->desc;
-	if (!d)
-		return;
-
-	if (++c->sgidx < d->sglen) {
-		omap_dma_start_sg(c, d, c->sgidx);
-	} else {
-		omap_dma_start_desc(c);
-		vchan_cookie_complete(&d->vd);
+	if (d) {
+		if (++c->sgidx < d->sglen) {
+			omap_dma_start_sg(c, d, c->sgidx);
+		} else {
+			omap_dma_start_desc(c);
+			vchan_cookie_complete(&d->vd);
+		}
 	}
 	spin_unlock_irqrestore(&c->vc.lock, flags);
 }

  parent reply	other threads:[~2012-06-08  9:02 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-07 10:34 [CFT] DMA engine patches Russell King - ARM Linux
2012-06-07 10:40 ` [CFT 1/3] dmaengine: split out virtual channel DMA support from sa11x0 driver Russell King
2012-06-07 10:41 ` [CFT 2/3] dmaengine: virt-dma: vchan_find_desc() Russell King
2012-06-07 10:41 ` [CFT 3/3] dmaengine: virt-dma: add support for cyclic DMA periodic callbacks Russell King
2012-06-07 10:42   ` [CFT] SA11x0 patches Russell King - ARM Linux
2012-06-07 10:43     ` [CFT 1/2] dmaengine: sa11x0-dma: fix DMA residue support Russell King
2012-06-07 10:43     ` [CFT 2/2] dmaengine: sa11x0-dma: add cyclic DMA support Russell King
2012-06-07 10:45   ` [CFT] PL08x patches Russell King - ARM Linux
2012-06-07 10:46     ` [CFT 01/31] dmaengine: PL08x: remove runtime PM support Russell King
2012-06-07 10:46     ` [CFT 02/31] dmaengine: PL08x: fix missed dma_transfer_direction fixup Russell King
2012-06-07 10:46     ` [CFT 03/31] dmaengine: PL08x: remove redundant spinlock Russell King
2012-06-07 10:47     ` [CFT 04/31] dmaengine: PL08x: remove circular_buffer boolean from channel data Russell King
2012-06-07 10:47     ` [CFT 05/31] dmaengine: PL08x: clean up get_signal/put_signal Russell King
2012-06-10 10:03       ` Russell King - ARM Linux
2012-06-07 10:47     ` [CFT 06/31] dmaengine: PL08x: move private data structures into amba-pl08x.c Russell King
2012-06-07 10:48     ` [CFT 07/31] dmaengine: PL08x: constify channel names and bus_id strings Russell King
2012-06-07 10:48     ` [CFT 08/31] dmaengine: PL08x: get src/dst addr direct from dma_slave_config struct Russell King
2012-06-07 10:48     ` [CFT 09/31] dmaengine: PL08x: get rid of device_fc in struct pl08x_dma_chan Russell King
2012-06-07 10:49     ` [CFT 10/31] dmaengine: PL08x: move the bus and increment selection to dma prepare function Russell King
2012-06-07 10:49     ` [CFT 11/31] dmaengine: PL08x: extract function to to generate cctl values Russell King
2012-06-07 10:49     ` [CFT 12/31] dmaengine: PL08x: ignore 'direction' argument in dma_slave_config Russell King
2012-06-07 10:50     ` [CFT 13/31] dmaengine: PL08x: get rid of unnecessary checks " Russell King
2012-06-07 10:50     ` [CFT 14/31] dmaengine: PL08x: split DMA signal muxing from channel alloc Russell King
2012-06-07 10:50     ` [CFT 15/31] dmaengine: PL08x: move DMA signal muxing into pl08x_dma_chan struct Russell King
2012-06-07 10:51     ` [CFT 16/31] dmaengine: PL08x: track mux usage on a per-channel basis Russell King
2012-06-07 10:51     ` [CFT 17/31] dmaengine: PL08x: convert to a list of completed descriptors Russell King
2012-06-07 10:51     ` [CFT 18/31] dmaengine: PL08x: move DMA signal muxing into slave prepare code Russell King
2012-06-07 10:52     ` [CFT 19/31] dmaengine: PL08x: remove waiting descriptor pointer Russell King
2012-06-07 10:52     ` [CFT 20/31] dmaengine: PL08x: re-jig the starting of txds Russell King
2012-06-07 10:52     ` [CFT 21/31] dmaengine: PL08x: split the pend_list in two Russell King
2012-06-07 10:53     ` [CFT 22/31] dmaengine: PL08x: start next descriptor from irq context Russell King
2012-06-07 10:53     ` [CFT 23/31] dmaengine: PL08x: rejig physical channel allocation Russell King
2012-06-07 10:53     ` [CFT 24/31] dmaengine: PL08x: convert to use virt-dma structs Russell King
2012-06-07 10:54     ` [CFT 25/31] dmaengine: PL08x: use vchan's spinlock Russell King
2012-06-07 10:54     ` [CFT 26/31] dmaengine: PL08x: convert to use vchan submitted/issued lists Russell King
2012-06-07 10:54     ` [CFT 27/31] dmaengine: PL08x: convert to use vchan done list Russell King
2012-06-07 10:55     ` [CFT 28/31] dmaengine: PL08x: fix tx_status function to return correct residue Russell King
2012-06-07 10:55     ` [CFT 29/31] dmaengine: PL08x: get rid of pl08x_prep_channel_resources Russell King
2012-06-07 10:55     ` [CFT 30/31] dmaengine: PL08x: get rid of write only pool_ctr and free_txd locking Russell King
2012-06-07 10:56     ` [CFT 31/31] dmaengine: PL08x: ensure all descriptors are freed when channel is released Russell King
2012-06-08  8:32     ` [CFT] PL08x patches Linus Walleij
2012-06-07 11:06   ` [CFT] OMAP patches Russell King - ARM Linux
2012-06-07 11:06     ` [CFT 01/11] dmaengine: add OMAP DMA engine driver Russell King
2012-06-07 12:40       ` S, Venkatraman
2012-06-07 12:45         ` S, Venkatraman
2012-06-08  6:19       ` Shilimkar, Santosh
2012-06-08  9:02       ` Russell King - ARM Linux [this message]
2012-06-08 10:00         ` Shilimkar, Santosh
2012-06-08 10:01           ` Russell King - ARM Linux
2012-06-07 11:06     ` [CFT 02/11] mmc: omap_hsmmc: add DMA engine support Russell King
2012-06-07 17:04       ` Tony Lindgren
2012-06-08  8:53       ` Linus Walleij
2012-06-07 11:07     ` [CFT 03/11] mmc: omap_hsmmc: remove private DMA API implementation Russell King
2012-06-07 17:04       ` Tony Lindgren
2012-06-07 17:53       ` S, Venkatraman
2012-07-10 21:48       ` Kevin Hilman
2012-06-07 11:07     ` [CFT 04/11] mmc: omap: add DMA engine support Russell King
2012-06-07 17:05       ` Tony Lindgren
2012-06-08  8:52       ` Linus Walleij
2012-06-07 11:07     ` [CFT 05/11] mmc: omap: remove private DMA API implementation Russell King
2012-06-07 17:05       ` Tony Lindgren
2012-06-07 11:08     ` [CFT 06/11] ARM: omap: remove mmc platform data dma_mask and initialization Russell King
2012-06-07 17:06       ` Tony Lindgren
2012-06-07 11:08     ` [CFT 07/11] spi: omap2-mcspi: add DMA engine support Russell King
2012-06-08  8:50       ` Linus Walleij
2012-06-14 11:53       ` Russell King - ARM Linux
2012-06-14 12:08         ` Russell King - ARM Linux
2012-06-14 12:50           ` Russell King - ARM Linux
2012-06-14 14:07             ` [PATCH] SPI: OMAP: fix over-eager devm_xxx() conversion (was: Re: [CFT 07/11] spi: omap2-mcspi: add DMA engine support) Russell King - ARM Linux
2012-06-16 10:33               ` Russell King - ARM Linux
2012-06-18  6:41             ` [CFT 07/11] spi: omap2-mcspi: add DMA engine support Shubhrajyoti
2012-06-07 11:08     ` [CFT 08/11] spi: omap2-mcspi: remove private DMA API implementation Russell King
2012-06-07 11:09     ` [CFT 09/11] mtd: omap2: add DMA engine support Russell King
2012-06-07 12:49       ` Artem Bityutskiy
2012-06-07 13:11         ` Russell King - ARM Linux
2012-06-07 13:28           ` Artem Bityutskiy
2012-06-07 17:10             ` Tony Lindgren
2012-06-07 11:09     ` [CFT 10/11] mtd: omap2: remove private DMA API implementation Russell King
2012-06-07 11:09     ` [CFT 11/11] Add feature removal of old OMAP private DMA implementation Russell King
2012-06-07 17:07       ` Tony Lindgren
2012-06-08  6:10       ` Shilimkar, Santosh
2012-06-08 18:37       ` Rob Landley
2012-06-09  8:32         ` Russell King - ARM Linux

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=20120608090200.GA15831@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).