From: joelf@ti.com (Joel Fernandes)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/9] dma: edma: Support scatter-lists of any length
Date: Mon, 29 Jul 2013 08:29:46 -0500 [thread overview]
Message-ID: <1375104595-16018-1-git-send-email-joelf@ti.com> (raw)
The following series adds support to EDMA driver to enable DMA of
scatter-gather lists of arbitrary length, but still make use of only
a certain MAX number of slots at a time for a given channel. Thus
free-ing up the rest of the slots to other slaves/channels. With this
there is no need for slave drivers to query the EDMA driver about how
much is the MAX it can send at a time as done in [1]. Drivers can send
SG lists of any number of entries to DMA. Reference discussion at [2].
Tested omap-aes and omap_hsmmc drivers with different MAX number of slots,
even just 1. In the case where it is 1, only 1-slot is used to DMA an
entire scatter list of arbitrary length.
Since this series touches EDMA private API code also shared with davinci-pcm,
playback of a 16-bit 44.1KHz audio file with davinci-pcm has been tested.
Sample test run with 1 vs 16 (MAX number of slots/SG) in omap-aes driver:
MAX slots = 1:
(128 bit key, 8192 byte blocks): 1266 operations in 1 seconds (10371072 bytes)
MAX slots = 16:
(128 bit key, 8192 byte blocks): 1601 operations in 1 seconds (13115392 bytes)
Note: For the above test, 8K buffer is mapped into SG list of size 2 so
only 2 slots are required. So beyond size 2, there will not be any noticeable
performance improvement. But using 1 slot is even managed by just DMA'ing 1 SG
entry at a time.
[1] https://lkml.org/lkml/2013/7/18/432
[2] http://marc.info/?l=linux-omap&m=137416733628831&w=2
Joel Fernandes (9):
dma: edma: Setup parameters to DMA MAX_NR_SG at a time
dma: edma: Write out and handle MAX_NR_SG at a given time
ARM: edma: Add function to manually trigger an EDMA channel
dma: edma: Find missed events and issue them
dma: edma: Leave linked to Null slot instead of DUMMY slot
dma: edma: Detect null slot errors and handle them correctly
ARM: edma: Don't clear EMR of channel in edma_stop
dma: edma: Link to dummy slot only for last SG list split
dma: edma: remove limits on number of slots
arch/arm/common/edma.c | 22 ++++-
drivers/dma/edma.c | 157 +++++++++++++++++++++++++++---------
include/linux/platform_data/edma.h | 2 +
3 files changed, 142 insertions(+), 39 deletions(-)
--
1.7.9.5
next reply other threads:[~2013-07-29 13:29 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-29 13:29 Joel Fernandes [this message]
2013-07-29 13:29 ` [PATCH 1/9] dma: edma: Setup parameters to DMA MAX_NR_SG at a time Joel Fernandes
2013-07-29 13:29 ` [PATCH 2/9] dma: edma: Write out and handle MAX_NR_SG at a given time Joel Fernandes
2013-07-29 13:29 ` [PATCH 3/9] ARM: edma: Add function to manually trigger an EDMA channel Joel Fernandes
2013-07-30 5:18 ` Sekhar Nori
2013-07-31 4:30 ` Joel Fernandes
2013-07-31 5:23 ` Sekhar Nori
2013-07-31 5:34 ` Fernandes, Joel
2013-07-29 13:29 ` [PATCH 4/9] dma: edma: Find missed events and issue them Joel Fernandes
2013-07-30 7:05 ` Sekhar Nori
2013-07-31 4:49 ` Joel Fernandes
2013-07-31 9:18 ` Sekhar Nori
2013-08-01 2:27 ` Joel Fernandes
2013-08-01 3:43 ` Joel Fernandes
2013-08-01 4:39 ` Joel Fernandes
2013-08-01 6:13 ` Sekhar Nori
2013-08-01 20:28 ` Joel Fernandes
2013-08-01 20:48 ` Joel Fernandes
2013-08-02 13:26 ` Sekhar Nori
2013-08-02 18:15 ` Joel Fernandes
2013-08-02 23:00 ` Joel Fernandes
2013-07-29 13:29 ` [PATCH 5/9] dma: edma: Leave linked to Null slot instead of DUMMY slot Joel Fernandes
2013-07-29 13:29 ` [PATCH 6/9] dma: edma: Detect null slot errors and handle them correctly Joel Fernandes
2013-07-29 13:29 ` [PATCH 7/9] ARM: edma: Don't clear EMR of channel in edma_stop Joel Fernandes
2013-07-30 8:29 ` Sekhar Nori
2013-07-31 5:05 ` Joel Fernandes
2013-07-31 9:35 ` Sekhar Nori
2013-08-01 1:59 ` Joel Fernandes
2013-07-29 13:29 ` [PATCH 8/9] dma: edma: Link to dummy slot only for last SG list split Joel Fernandes
2013-07-29 13:29 ` [PATCH 9/9] dma: edma: remove limits on number of slots Joel Fernandes
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=1375104595-16018-1-git-send-email-joelf@ti.com \
--to=joelf@ti.com \
--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).