[GIT PULL] dmaengine/async_tx update for 2.6.35

From: Dan Williams
Date: Wed May 19 2010 - 18:29:57 EST


Hi Linus, please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx.git next

...to receive:

1/ Two new dma drivers ste_dma40 and timb_dma.
2/ A rework of the existing channel-status and channel-control api's to
make them more generic/extensible. Hence the touch-ups to existing dma
drivers and the excursions into drivers/video/, drivers/serial/, and
sound/.
3/ An update to the ioat driver to allow descriptor submission to run
unlocked against descriptor cleanup.
4/ Other cleanups and fixes

There is one more driver to submit, but it depended on the merge of the
ARM tree and will be sent separately. As you can see below there were a
few late patches, but they have seen at least one -next release.

Thanks,
Dan

Dan Williams (6):
dmaengine: provide helper for setting txstate
ioat: convert to circ_buf
ioat2,3: convert to producer/consumer locking
ioat3: disable cacheline-unaligned transfers for raid operations
async_tx: trim dma_async_tx_descriptor in 'no channel switch' case
Merge branch 'ioat' into dmaengine

Jassi Brar (1):
DMA ENGINE: Do not reset 'private' of channel

Jonas Aaberg (1):
DMAENGINE: DMA40 support paused channel status

Linus Walleij (6):
DMAENGINE: COH 901 318 rename confusing vars
DMAENGINE: COH 901 318 fix bytesleft
DMAENGINE: generic slave control v2
DMAENGINE: generic channel status v2
DMAENGINE: Support for ST-Ericssons DMA40 block v3
DMAENGINE: extend the control command to include an arg

Marcin Mielczarczyk (1):
DMAENGINE: DMA40 fix for allocation of logical channel 0

Minskey Guo (1):
ioat: Remove duplicated devm_kzalloc() calls for ioatdma_device

Richard RÃjfors (2):
dma: Add timb-dma
dma: timb-dma: Update comment and fix compiler warning

Stephen Rothwell (1):
async_tx: use of kzalloc/kfree requires the include of slab.h

Tobias Klauser (1):
dmaengine: mpc512x: Use resource_size

arch/arm/mach-u300/include/mach/coh901318.h | 21 -
arch/arm/plat-nomadik/include/plat/ste_dma40.h | 239 +++
crypto/async_tx/async_tx.c | 46 +-
drivers/dma/Kconfig | 14 +
drivers/dma/Makefile | 2 +
drivers/dma/at_hdmac.c | 35 +-
drivers/dma/coh901318.c | 263 ++-
drivers/dma/dmaengine.c | 22 +-
drivers/dma/dw_dmac.c | 24 +-
drivers/dma/fsldma.c | 28 +-
drivers/dma/ioat/dma.c | 12 +-
drivers/dma/ioat/dma.h | 19 +-
drivers/dma/ioat/dma_v2.c | 186 +-
drivers/dma/ioat/dma_v2.h | 33 +-
drivers/dma/ioat/dma_v3.c | 143 +-
drivers/dma/ioat/pci.c | 7 +-
drivers/dma/iop-adma.c | 39 +-
drivers/dma/ipu/ipu_idmac.c | 34 +-
drivers/dma/mpc512x_dma.c | 15 +-
drivers/dma/mv_xor.c | 25 +-
drivers/dma/ppc4xx/adma.c | 19 +-
drivers/dma/shdma.c | 27 +-
drivers/dma/ste_dma40.c | 2657 ++++++++++++++++++++++++
drivers/dma/ste_dma40_ll.c | 454 ++++
drivers/dma/ste_dma40_ll.h | 354 ++++
drivers/dma/timb_dma.c | 860 ++++++++
drivers/dma/txx9dmac.c | 23 +-
drivers/mmc/host/atmel-mci.c | 2 +-
drivers/serial/sh-sci.c | 2 +-
drivers/video/mx3fb.c | 3 +-
include/linux/dmaengine.h | 127 ++-
include/linux/timb_dma.h | 55 +
sound/soc/txx9/txx9aclc.c | 7 +-
33 files changed, 5286 insertions(+), 511 deletions(-)
create mode 100644 arch/arm/plat-nomadik/include/plat/ste_dma40.h
create mode 100644 drivers/dma/ste_dma40.c
create mode 100644 drivers/dma/ste_dma40_ll.c
create mode 100644 drivers/dma/ste_dma40_ll.h
create mode 100644 drivers/dma/timb_dma.c
create mode 100644 include/linux/timb_dma.h

commit 0b28330e39bbe0ffee4c56b09fc415fcec595ea3
Merge: 0582763 caa20d97
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Mon May 17 16:30:58 2010 -0700

Merge branch 'ioat' into dmaengine

commit 058276303dbc4ed089c1f7dad0871810b1f5ddf1
Author: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Date: Mon May 17 16:30:42 2010 -0700

DMAENGINE: extend the control command to include an arg

This adds an argument to the DMAengine control function, so that
we can later provide control commands that need some external data
passed in through an argument akin to the ioctl() operation
prototype.

[dan.j.williams@xxxxxxxxx: fix up some missed conversions]
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit caa20d974c86af496b419eef70010e63b7fab7ac
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Mon May 17 16:24:16 2010 -0700

async_tx: trim dma_async_tx_descriptor in 'no channel switch' case

Saves 24 bytes per descriptor (64-bit) when the channel-switching
capabilities of async_tx are not required.

Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit 4aed79b2818e7330b5d00143e4c20bc6555df91f
Author: Marcin Mielczarczyk <marcin.mielczarczyk@xxxxxxxxx>
Date: Tue May 18 00:41:21 2010 +0200

DMAENGINE: DMA40 fix for allocation of logical channel 0

Fix for allocation failure of logical channel when event line
happens to be number 0.

Signed-off-by: Marcin Mielczarczyk <marcin.mielczarczyk@xxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit a5ebca4769f28ceade28ff59fcbffb8e184e599c
Author: Jonas Aaberg <jonas.aberg@xxxxxxxxxxxxxx>
Date: Tue May 18 00:41:09 2010 +0200

DMAENGINE: DMA40 support paused channel status

Support determining whether a channel is paused or
not using the status function.

Signed-off-by: Jonas Aaberg <jonas.aberg@xxxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit 8381fc35244dbdf58cfc49e04e0d7c3498c8aa03
Author: Tobias Klauser <tklauser@xxxxxxxxxx>
Date: Thu May 6 11:58:55 2010 +0200

dmaengine: mpc512x: Use resource_size

Use the resource_size function instead of manually calculating the
resource size. This reduces the chance of introducing off-by-one
errors.

Signed-off-by: Tobias Klauser <tklauser@xxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit cc05ea0cd63437da2033b3ce6e033b1f1aaaf640
Author: Jassi Brar <jassi.brar@xxxxxxxxxxx>
Date: Tue May 4 18:22:15 2010 +0900

DMA ENGINE: Do not reset 'private' of channel

The member 'private' of 'struct dma_chan' is meant for passing
data between client and the controller driver.

The DMA client driver may point it to platform specific stuff after
acquiring the channel. So, it is the responsiblity of the same code
to reset it, if it must.

The DMA engine doesn't set it and hence, shouldn't reset it either.

This reseting of private by DMA Engine comes in the way of implementing
default channel settings during DMAC probe. That capability is useful
for not having the clients to always provide platform specific data,
like Rx/Tx FIFO addresses, which usually doesn't change across channel
requests.

Signed-off-by: Jassi Brar <jassi.brar@xxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit c86e1401c9f2ba8d989fa1c4b33d0f0ec3ba8aaf
Author: Minskey Guo <chaohong_guo@xxxxxxxxxxxxxxx>
Date: Sun May 2 12:52:35 2010 -0700

ioat: Remove duplicated devm_kzalloc() calls for ioatdma_device

The memory for ioatdma_device structure is being allocated in
alloc_ioatdma()

Signed-off-by: Minskey Guo <chaohong_guo@xxxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit 2adfc550b6d9646301c810643bc309fa49375987
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Sat May 1 15:22:56 2010 -0700

ioat3: disable cacheline-unaligned transfers for raid operations

There are cases where cacheline-unaligned raid operations can hang the
dma channel. Simply disable these operations by increasing the
alignment constraints published to async_tx. The raid456 driver always
issues page aligned requests, so the only in-kernel user of the ioatdma
driver that is affected by this change is dmatest.

Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit 074cc47679f8b0931d7d5384e95822d82768f149
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Sat May 1 15:22:55 2010 -0700

ioat2,3: convert to producer/consumer locking

Use separate locks for the descriptor prep (producer) and descriptor
cleanup (consumer) paths. Allows the producer path to run concurrently
with the cleanup path. Inspired by Documentation/circular-buffer.txt.

Cc: David Howells <dhowells@xxxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Maciej Sosnowski <maciej.sosnowski@xxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit abb12dfd50c7580d7dcbd581cf6265ba4d01ea7e
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Sat May 1 15:22:54 2010 -0700

ioat: convert to circ_buf

Use the common power-of-2 circular buffer macros.

Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit 8d318a50b3d72e3daf94131f91e1ab799a8d5ad4
Author: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Date: Tue Mar 30 15:33:42 2010 +0200

DMAENGINE: Support for ST-Ericssons DMA40 block v3

This is a straightforward driver for the ST-Ericsson DMA40 DMA
controller found in U8500, implemented akin to the existing
COH 901 318 driver.

Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Acked-by: Srinidh Kasagar <srinidhi.kasagar@xxxxxxxxxxxxxx>
Cc: STEricsson_nomadik_linux@xxxxxxxxxxx
Cc: Alessandro Rubini <rubini@xxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit 6a3cd3ea48584d14f60dce0b3c4e9e4428beb0fe
Author: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Date: Mon Mar 29 15:54:40 2010 +1100

async_tx: use of kzalloc/kfree requires the include of slab.h

Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit bca3469205402d9fb14060d255d8786ae2256640
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Fri Mar 26 16:52:10 2010 -0700

dmaengine: provide helper for setting txstate

Simple conditional struct filler to cut out some duplicated code.

Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit 0793448187643b50af89d36b08470baf45a3cab4
Author: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Date: Fri Mar 26 16:50:49 2010 -0700

DMAENGINE: generic channel status v2

Convert the device_is_tx_complete() operation on the
DMA engine to a generic device_tx_status()operation which
can return three states, DMA_TX_RUNNING, DMA_TX_COMPLETE,
DMA_TX_PAUSED.

[dan.j.williams@xxxxxxxxx: update for timberdale]
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Acked-by: Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Cc: Maciej Sosnowski <maciej.sosnowski@xxxxxxxxx>
Cc: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
Cc: Pavel Machek <pavel@xxxxxx>
Cc: Li Yang <leoli@xxxxxxxxxxxxx>
Cc: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
Cc: Paul Mundt <lethal@xxxxxxxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: Haavard Skinnemoen <haavard.skinnemoen@xxxxxxxxx>
Cc: Magnus Damm <damm@xxxxxxxxxxxxx>
Cc: Liam Girdwood <lrg@xxxxxxxxxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Cc: Roland Dreier <rdreier@xxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit c3635c78e500a52c9fcd55de381a72928d9e054d
Author: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Date: Fri Mar 26 16:44:01 2010 -0700

DMAENGINE: generic slave control v2

Convert the device_terminate_all() operation on the
DMA engine to a generic device_control() operation
which can now optionally support also pausing and
resuming DMA on a certain channel. Implemented for the
COH 901 318 DMAC as an example.

[dan.j.williams@xxxxxxxxx: update for timberdale]
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Acked-by: Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Cc: Maciej Sosnowski <maciej.sosnowski@xxxxxxxxx>
Cc: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
Cc: Pavel Machek <pavel@xxxxxx>
Cc: Li Yang <leoli@xxxxxxxxxxxxx>
Cc: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
Cc: Paul Mundt <lethal@xxxxxxxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: Haavard Skinnemoen <haavard.skinnemoen@xxxxxxxxx>
Cc: Magnus Damm <damm@xxxxxxxxxxxxx>
Cc: Liam Girdwood <lrg@xxxxxxxxxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Cc: Roland Dreier <rdreier@xxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit 0f65169b1bf44220308e1ce1f6666ad03ddc27af
Author: Richard RÃjfors <richard.rojfors@xxxxxxxxxxxxxx>
Date: Fri Mar 26 08:23:58 2010 +0100

dma: timb-dma: Update comment and fix compiler warning

An incremental patch which clarifies what the spinlock is used for
and fixes a compiler warning.

Signed-off-by: Richard RÃjfors <richard.rojfors@xxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit de5d4453c5b224eefd02b6a141ed411a76d458af
Author: Richard RÃjfors <richard.rojfors@xxxxxxxxxxxxxx>
Date: Thu Mar 25 19:44:21 2010 +0100

dma: Add timb-dma

Adds the support for the DMA engine withing the timberdale FPGA.

The DMA channels are strict device to host, or host to device
and can not be used for generic memcpy.

Signed-off-by: Richard RÃjfors <richard.rojfors@xxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit 84c8447c544bc7579097649273bc3f4e1b5de6af
Author: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Date: Thu Mar 4 14:40:30 2010 +0100

DMAENGINE: COH 901 318 fix bytesleft

This makes the function to get the number of bytes left in the
ongoing DMA transaction actually work: the old code did not take
neither lli:s nor queued jobs into account. Also fix a missing
spinlock while we're at it.

Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

commit cecd87da83869ad4157295b87a2e51e38c3e03bf
Author: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Date: Thu Mar 4 14:31:47 2010 +0100

DMAENGINE: COH 901 318 rename confusing vars

This fixes up the code with a lot of comments that make it readable,
rename things with opaque names like "data" into something more
appropriate, and remove some very confusing BUG() statements.

Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/