[<prev] [next>] [day] [month] [year] [list]
Message-Id: <1231355949.4895.28.camel@dwillia2-linux.ch.intel.com>
Date: Wed, 07 Jan 2009 12:19:09 -0700
From: Dan Williams <dan.j.williams@...el.com>
To: Linus Torvalds <torvalds@...ux-foundation.org>,
Andrew Morton <akpm@...ux-foundation.org>
Cc: Haavard Skinnemoen <hskinnemoen@...el.com>,
Maciej Sosnowski <maciej.sosnowski@...el.com>,
g.liakhovetski@....de, sfr@...b.auug.org.au,
linux-kernel <linux-kernel@...r.kernel.org>,
netdev@...r.kernel.org
Subject: [git pull] async_tx/dmaengine update for 2.6.29 (part 1)
Hi Linus, please pull from:
git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx.git next
...to receive:
Dan Williams (22):
async_tx, dmaengine: document channel allocation and api rework
dmaengine: remove dependency on async_tx
dmaengine: up-level reference counting to the module level
dmaengine: centralize channel allocation, introduce dma_find_channel
dmaengine: provide a common 'issue_pending_all' implementation
net_dma: convert to dma_find_channel
dmaengine: introduce dma_request_channel and private channels
dmatest: convert to dma_request_channel
atmel-mci: convert to dma_request_channel and down-level dma_slave
dmaengine: replace dma_async_client_register with dmaengine_get
dmaengine: kill struct dma_client and supporting infrastructure
dmaengine: remove 'bigref' infrastructure
dmaengine: kill enum dma_state_client
iop-adma: let devm do its job, don't duplicate free
iop-adma: kill debug BUG_ON
iop-adma: enable module removal
ioat: do not perform removal actions at shutdown
dmaengine: add a release for dma class devices and dependent infrastructure
dmaengine: use idr for registering dma device numbers
dmaengine: advertise all channels on a device to dma_filter_fn
dmaengine: bump initcall level to arch_initcall
ioat: fix self test for multi-channel case
Documentation/crypto/async-tx-api.txt | 96 ++---
Documentation/dmaengine.txt | 1 +
arch/avr32/include/asm/atmel-mci.h | 6 +-
arch/avr32/mach-at32ap/at32ap700x.c | 15 +-
crypto/async_tx/async_tx.c | 350 +---------------
drivers/dca/dca-core.c | 2 +-
drivers/dma/Kconfig | 2 -
drivers/dma/dmaengine.c | 778 ++++++++++++++++++++++++---------
drivers/dma/dmatest.c | 129 ++----
drivers/dma/dw_dmac.c | 119 +++---
drivers/dma/fsldma.c | 5 +-
drivers/dma/ioat.c | 92 ++---
drivers/dma/ioat_dma.c | 18 +-
drivers/dma/iop-adma.c | 30 +--
drivers/dma/mv_xor.c | 11 +-
drivers/mmc/host/atmel-mci.c | 103 ++----
include/linux/async_tx.h | 17 +-
include/linux/dmaengine.h | 181 +++------
include/linux/dw_dmac.h | 31 +-
include/linux/netdevice.h | 3 -
include/net/netdma.h | 11 -
net/core/dev.c | 149 +------
net/ipv4/tcp.c | 5 +-
net/ipv4/tcp_input.c | 2 +-
net/ipv4/tcp_ipv4.c | 2 +-
net/ipv6/tcp_ipv6.c | 2 +-
26 files changed, 900 insertions(+), 1260 deletions(-)
create mode 100644 Documentation/dmaengine.txt
1) Channel allocation rework
The dmaengine subsystem collects and advertises dma channels for two
classes of users in the kernel, memory-to-memory offload and traditional
device-to-memory DMA. The original design was driven by the
memory-to-memory case and is starting to show its limitations now that
more device-to-memory DMA users are appearing. The primary difference
between the two classes is that memory-to-memory offload is very
amenable to channel sharing and is tolerant of dynamic channel changes.
Compare this to the device-to-memory case where a channel must be
dedicated to a device and may have platform-specific reasons why it
cannot talk to a different device.
This rework allows channels to be targeted to a public mem-to-mem pool
or be reserved for an exclusive (private) dev-to-mem allocation.
2) Fixes for dmaengine
Stephen Hemminger pointed out that the dmaengine sysfs implementation
was broken. It now has a proper ->release() routine.
3) Fixes for ioat
The previous channel allocation scheme covered a shutdown bug.
4) Fixes for iop-adma
Some devm fixups, and module removal enablement.
These commits have been in linux-next, although I bit the bullet and
rebased recently to cover a git-bisect breakage case. This was caused
by net-next-2.6.git moving a routine that was deleted by this branch.
Thanks to Stephen Rothwell for pointing this out.
There is at least 1 pending driver that depends on this code, it may
come in a "part 2" pull request once some final comments are resolved.
Thanks!
Dan
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists