LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Haavard Skinnemoen <hskinnemoen@atmel.com>
To: Dan Williams <dan.j.williams@intel.com>, linux-kernel@vger.kernel.org
Cc: Shannon Nelson <shannon.nelson@intel.com>,
David Brownell <david-b@pacbell.net>,
kernel@avr32linux.org, "Francis Moreau" <francis.moro@gmail.com>,
"Paul Mundt" <lethal@linux-sh.org>,
"Vladimir A. Barinov" <vbarinov@ru.mvista.com>,
Pierre Ossman <drzeus-list@drzeus.cx>
Subject: [RFC v2 0/5] dmaengine: Slave DMA interface and example users
Date: Tue, 29 Jan 2008 19:10:08 +0100 [thread overview]
Message-ID: <1201630213-31900-1-git-send-email-hskinnemoen@atmel.com> (raw)
This patch series adds the necessary interfaces to the DMA Engine
framework to use functionality found on most embedded DMA controllers:
DMA from and to I/O registers with hardware handshaking.
In this context, hardware hanshaking means that the peripheral that
owns the I/O registers in question is able to tell the DMA controller
when more data is available for reading, or when there is room for
more data to be written. This usually happens internally on the chip,
but these signals may also be exported outside the chip for things
like IDE DMA, etc.
Since v1 that was posted in november last year, I've rebased it on top
of the four async_tx patches that were posted by Dan Williams in
december, and made a few changes to the "slave" part of the API:
* Information about the slave device can now be found in struct
dma_client if the DMA_SLAVE capability is set.
* The dma_client struct is passed to device_alloc_chan_resources so
that the DMA engine driver can find this information.
* Because of this, the device_set_slave hook isn't needed anymore,
so it has been removed.
* The slave_set_width and slave_set_direction descriptor hooks have
been removed for the same reasons the tx_set_src and tx_set_dest
hooks were removed from the async_tx descriptor.
Which I hope will address the concerns Dan had about my first patch
series. I think this version is cleaner than the first one, and this
is confirmed by the fact that the dw_dmac driver is 60 lines shorter
than it was the first time around. The mmc driver is slightly shorter
too.
I would especially like some feedback on the first two patches in the
series, but if you find any issues with the rest of them, I would
certainly like to hear about those too.
The whole thing has been tested using an SD card with an ext3
filesystem on it: mke2fs, e2fsck and copying stuff around. The
filesystem errors I mentioned the last time around are gone, but I get
some warnings messages from the MMC driver that I need to investigate.
They don't seem to cause any actual harm though.
The patch series must be applied on top of Dan's "towards an async_tx
update for 2.6.25" patches:
http://lkml.org/lkml/2007/12/21/277
or you can simply pull from the master branch of my (temporary)
dmaslave git repository:
git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/dmaslave.git master
which contains everything you need to try it out.
Haavard Skinnemoen (5):
dmaengine: Add dma_client parameter to device_alloc_chan_resources
dmaengine: Add slave DMA interface
dmaengine: Make DMA Engine menu visible for AVR32 users
dmaengine: Driver for the Synopsys DesignWare DMA controller
Atmel MCI: Driver for Atmel on-chip MMC controllers
arch/avr32/boards/atngw100/setup.c | 6 +
arch/avr32/boards/atstk1000/atstk1002.c | 3 +
arch/avr32/mach-at32ap/at32ap700x.c | 60 +-
drivers/dma/Kconfig | 11 +-
drivers/dma/Makefile | 1 +
drivers/dma/dmaengine.c | 11 +-
drivers/dma/dw_dmac.c | 1120 +++++++++++++++++++++++++++
drivers/dma/dw_dmac.h | 256 ++++++
drivers/dma/ioat_dma.c | 5 +-
drivers/dma/iop-adma.c | 7 +-
drivers/mmc/host/Kconfig | 10 +
drivers/mmc/host/Makefile | 1 +
drivers/mmc/host/atmel-mci.c | 1159 ++++++++++++++++++++++++++++
drivers/mmc/host/atmel-mci.h | 192 +++++
include/asm-avr32/arch-at32ap/at32ap700x.h | 16 +
include/asm-avr32/arch-at32ap/board.h | 10 +-
include/linux/dmaengine.h | 71 ++-
17 files changed, 2911 insertions(+), 28 deletions(-)
create mode 100644 drivers/dma/dw_dmac.c
create mode 100644 drivers/dma/dw_dmac.h
create mode 100644 drivers/mmc/host/atmel-mci.c
create mode 100644 drivers/mmc/host/atmel-mci.h
next reply other threads:[~2008-01-29 18:10 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-29 18:10 Haavard Skinnemoen [this message]
2008-01-29 18:10 ` [RFC v2 1/5] dmaengine: Add dma_client parameter to device_alloc_chan_resources Haavard Skinnemoen
2008-01-29 18:10 ` [RFC v2 2/5] dmaengine: Add slave DMA interface Haavard Skinnemoen
2008-01-29 18:10 ` [RFC v2 3/5] dmaengine: Make DMA Engine menu visible for AVR32 users Haavard Skinnemoen
2008-01-29 18:10 ` [RFC v2 4/5] dmaengine: Driver for the Synopsys DesignWare DMA controller Haavard Skinnemoen
2008-01-29 18:10 ` [RFC v2 5/5] Atmel MCI: Driver for Atmel on-chip MMC controllers Haavard Skinnemoen
2008-02-13 18:30 ` Pierre Ossman
2008-02-13 18:47 ` Haavard Skinnemoen
2008-02-14 14:00 ` MMC core debugfs support (was Re: [RFC v2 5/5] Atmel MCI: Driver for Atmel on-chip MMC controllers) Haavard Skinnemoen
2008-02-25 17:12 ` Pierre Ossman
2008-02-13 19:11 ` [RFC v2 5/5] Atmel MCI: Driver for Atmel on-chip MMC controllers Dan Williams
2008-02-13 21:06 ` Haavard Skinnemoen
2008-02-13 23:55 ` Dan Williams
2008-02-14 8:36 ` Haavard Skinnemoen
2008-02-14 18:34 ` Dan Williams
2008-02-14 19:21 ` Haavard Skinnemoen
2008-01-30 18:53 ` [RFC v2 4/5] dmaengine: Driver for the Synopsys DesignWare DMA controller Dan Williams
2008-01-30 7:30 ` [RFC v2 2/5] dmaengine: Add slave DMA interface David Brownell
2008-01-30 9:27 ` Haavard Skinnemoen
2008-01-30 10:52 ` David Brownell
2008-01-30 12:26 ` Haavard Skinnemoen
2008-01-31 8:27 ` David Brownell
2008-01-31 8:44 ` Paul Mundt
2008-01-31 12:51 ` David Brownell
2008-01-31 14:12 ` Haavard Skinnemoen
2008-01-31 13:52 ` Haavard Skinnemoen
2008-02-06 21:08 ` Dan Williams
2008-02-07 17:56 ` Haavard Skinnemoen
2008-01-30 18:28 ` Dan Williams
2008-01-30 20:45 ` David Brownell
2008-01-31 6:35 ` SDIO driver not receiving responses Farbod Nejati
2008-02-07 19:51 ` Pierre Ossman
2008-01-29 20:54 ` [RFC v2 0/5] dmaengine: Slave DMA interface and example users Haavard Skinnemoen
2008-01-30 6:56 ` David Brownell
2008-01-30 8:56 ` Haavard Skinnemoen
2008-01-30 17:39 ` Dan Williams
2008-02-04 15:32 ` Haavard Skinnemoen
2008-02-06 18:46 ` Dan Williams
2008-02-07 17:52 ` Haavard Skinnemoen
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=1201630213-31900-1-git-send-email-hskinnemoen@atmel.com \
--to=hskinnemoen@atmel.com \
--cc=dan.j.williams@intel.com \
--cc=david-b@pacbell.net \
--cc=drzeus-list@drzeus.cx \
--cc=francis.moro@gmail.com \
--cc=kernel@avr32linux.org \
--cc=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=shannon.nelson@intel.com \
--cc=vbarinov@ru.mvista.com \
--subject='Re: [RFC v2 0/5] dmaengine: Slave DMA interface and example users' \
/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
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).