From: viresh.kumar@st.com (Viresh Kumar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 11/18] dmaengine/amba-pl08x: max_bytes_per_lli is TRANSFER_SIZE * src_width (not MIN(width))
Date: Fri, 29 Jul 2011 16:19:21 +0530 [thread overview]
Message-ID: <5521ee74eef41cf26a9f1ece6dadd32cca529cce.1311936524.git.viresh.kumar@st.com> (raw)
In-Reply-To: <cover.1311936523.git.viresh.kumar@st.com>
max_bytes_per_lli = bd.srcbus.buswidth * PL080_CONTROL_TRANSFER_SIZE_MASK;
This is confirmed by ARM support guys.
Below is summary of mail exchange with them:
[Viresh] What is the total data to be transferred in case source and destination
bus widths are different. Suppose, source bus width is 2 bytes and destination
is 4 bytes. Now in order to transfer 80 bytes, what should be value of
TransferSize field in control reg: 40? or 20?.
[David from ARM] The value that is programmed into the TransferSize field should
be the number of <SourceWidth> transfers needed to achieve the required data
transfer.
So, to transfer 80 bytes, with a Source Width of 2, the TransferSize field =
should be programmed with:
Total transfer size
------------------- = 40
<source width>
[Viresh] Will this change if source is 4 bytes and dest is 2?
[David] Yes - the calculation then becomes:
Total transfer size
------------------- =20
<source width>
Also, max_bytes_per_lli must be calculated after fixing src and dest widths not
before that. So move this code to the correct place.
This patch also removes max_bytes_per_lli from earlier print message, as till
that point max_bytes_per_lli is unknown.
Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
---
drivers/dma/amba-pl08x.c | 15 ++++++---------
1 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
index 04f7889..3b7357e 100644
--- a/drivers/dma/amba-pl08x.c
+++ b/drivers/dma/amba-pl08x.c
@@ -597,24 +597,17 @@ static int pl08x_fill_llis_for_desc(struct pl08x_driver_data *pl08x,
bd.srcbus.buswidth = bd.srcbus.maxwidth;
bd.dstbus.buswidth = bd.dstbus.maxwidth;
- /*
- * Bytes transferred == tsize * MIN(buswidths), not max(buswidths)
- */
- max_bytes_per_lli = min(bd.srcbus.buswidth, bd.dstbus.buswidth) *
- PL080_CONTROL_TRANSFER_SIZE_MASK;
-
/* We need to count this down to zero */
bd.remainder = txd->len;
pl08x_choose_master_bus(&bd, &mbus, &sbus, cctl);
- dev_vdbg(&pl08x->adev->dev, "src=0x%08x%s/%u dst=0x%08x%s/%u len=%zu "
- "llimax=%zu\n",
+ dev_vdbg(&pl08x->adev->dev, "src=0x%08x%s/%u dst=0x%08x%s/%u len=%zu\n",
bd.srcbus.addr, cctl & PL080_CONTROL_SRC_INCR ? "+" : "",
bd.srcbus.buswidth,
bd.dstbus.addr, cctl & PL080_CONTROL_DST_INCR ? "+" : "",
bd.dstbus.buswidth,
- bd.remainder, max_bytes_per_lli);
+ bd.remainder);
dev_vdbg(&pl08x->adev->dev, "mbus=%s sbus=%s\n",
mbus == &bd.srcbus ? "src" : "dst",
sbus == &bd.srcbus ? "src" : "dst");
@@ -654,6 +647,10 @@ static int pl08x_fill_llis_for_desc(struct pl08x_driver_data *pl08x,
sbus->buswidth = 1;
}
+ /* Bytes transferred = tsize * src width, not MIN(buswidths) */
+ max_bytes_per_lli = bd.srcbus.buswidth *
+ PL080_CONTROL_TRANSFER_SIZE_MASK;
+
/*
* Make largest possible LLIs until less than one bus
* width left
--
1.7.2.2
next prev parent reply other threads:[~2011-07-29 10:49 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-29 10:49 [PATCH 00/18] dmaengine/amba-pl08x updates Viresh Kumar
2011-07-29 10:49 ` [PATCH 01/18] ARM: asm/pl080.h: Protect against multiple inclusion of header file Viresh Kumar
2011-07-30 22:16 ` Linus Walleij
2011-07-29 10:49 ` [PATCH 02/18] dmaengine/amba-pl08x: Resolve formatting issues Viresh Kumar
2011-07-29 11:00 ` Russell King - ARM Linux
2011-07-29 11:21 ` viresh kumar
2011-07-29 12:05 ` Koul, Vinod
2011-07-29 15:25 ` viresh kumar
2011-07-29 10:49 ` [PATCH 03/18] dmaengine/amba-pl08x: Complete doc comment for struct pl08x_txd Viresh Kumar
2011-07-29 10:49 ` [PATCH 04/18] dmaengine/amba-pl08x: Remove redundant comment and rewrite original Viresh Kumar
2011-07-29 12:09 ` Koul, Vinod
2011-07-29 15:47 ` viresh kumar
2011-07-29 16:34 ` Russell King - ARM Linux
2011-07-30 22:32 ` Linus Walleij
2011-07-30 22:57 ` Russell King - ARM Linux
2011-07-30 23:37 ` Linus Walleij
2011-07-31 5:51 ` viresh kumar
2011-07-31 9:06 ` Russell King - ARM Linux
2011-07-29 10:49 ` [PATCH 05/18] dmaengine/amba-pl08x: Changing few prints to dev_dbg from dev_info Viresh Kumar
2011-07-30 22:34 ` Linus Walleij
2011-07-29 10:49 ` [PATCH 06/18] dmaengine/amba-pl08x: Simplify pl08x_ensure_on() Viresh Kumar
2011-07-30 22:36 ` Linus Walleij
2011-07-29 10:49 ` [PATCH 07/18] dmaengine/amba-pl08x: Enable/Disable amba_pclk with channel requests Viresh Kumar
2011-07-30 12:07 ` Russell King - ARM Linux
2011-07-30 13:05 ` Russell King - ARM Linux
2011-07-30 23:53 ` Linus Walleij
2011-07-31 0:04 ` Linus Walleij
2011-07-31 17:04 ` Russell King - ARM Linux
2011-08-02 9:05 ` Linus Walleij
2011-08-03 12:55 ` Russell King - ARM Linux
2011-08-09 19:50 ` Linus Walleij
2011-07-29 10:49 ` [PATCH 08/18] dmaengine/amba-pl08x: No need to check "ch->signal < 0" Viresh Kumar
2011-07-31 0:09 ` Linus Walleij
2011-07-29 10:49 ` [PATCH 09/18] dmaengine/amba-pl08x: Schedule tasklet in case of error interrupt Viresh Kumar
2011-07-29 12:16 ` Koul, Vinod
2011-07-29 13:02 ` Russell King - ARM Linux
2011-07-29 15:30 ` viresh kumar
2011-08-04 4:25 ` Koul, Vinod
2011-08-04 5:54 ` viresh kumar
2011-08-04 5:32 ` Koul, Vinod
2011-08-14 8:29 ` Russell King - ARM Linux
2011-07-31 0:19 ` Linus Walleij
2011-07-31 5:33 ` viresh kumar
2011-07-29 10:49 ` [PATCH 10/18] dmaengine/amba-pl08x: Get rid of pl08x_pre_boundary() Viresh Kumar
2011-07-29 11:05 ` Russell King - ARM Linux
2011-07-29 12:32 ` Koul, Vinod
2011-07-29 15:58 ` viresh kumar
2011-07-29 12:19 ` Koul, Vinod
2011-07-29 15:40 ` viresh kumar
2011-07-31 0:24 ` Linus Walleij
2011-07-29 10:49 ` Viresh Kumar [this message]
2011-07-31 0:27 ` [PATCH 11/18] dmaengine/amba-pl08x: max_bytes_per_lli is TRANSFER_SIZE * src_width (not MIN(width)) Linus Walleij
2011-07-31 9:09 ` Russell King - ARM Linux
2011-07-29 10:49 ` [PATCH 12/18] dmaengine/amba-pl08x: Add prep_single_byte_llis() routine Viresh Kumar
2011-07-29 11:06 ` Russell King - ARM Linux
2011-07-29 11:30 ` viresh kumar
2011-07-29 10:49 ` [PATCH 13/18] dmaengine/amba-pl08x: Align lli_len to max(src.width, dst.width) Viresh Kumar
2011-07-29 12:43 ` Koul, Vinod
2011-07-29 15:39 ` viresh kumar
2011-07-31 0:30 ` Linus Walleij
2011-07-29 10:49 ` [PATCH 14/18] dmaengine/amba-pl08x: Choose peripheral bus as master bus Viresh Kumar
2011-07-31 0:36 ` Linus Walleij
2011-07-29 10:49 ` [PATCH 15/18] dmaengine/amba-pl08x: Pass flow controller information with slave channel data Viresh Kumar
2011-07-29 11:10 ` Russell King - ARM Linux
2011-07-29 11:31 ` viresh kumar
2011-07-31 0:40 ` Linus Walleij
2011-07-31 5:36 ` viresh kumar
2011-07-29 10:49 ` [PATCH 16/18] dmaengine/amba-pl08x: Add support for sg len greater than one for slave transfers Viresh Kumar
2011-07-31 0:41 ` Linus Walleij
2011-08-14 8:36 ` Russell King - ARM Linux
2011-08-15 10:11 ` Linus Walleij
2011-08-18 8:38 ` Viresh Kumar
2011-08-21 8:33 ` Russell King - ARM Linux
2011-08-23 4:22 ` Viresh Kumar
2011-08-23 5:20 ` Koul, Vinod
2011-08-26 3:41 ` Viresh Kumar
2011-08-26 8:03 ` Linus Walleij
2011-08-26 8:51 ` Viresh Kumar
2011-09-01 10:07 ` Viresh Kumar
2011-09-07 18:42 ` Koul, Vinod
2011-09-07 23:01 ` Linus Walleij
2011-09-08 3:50 ` Viresh Kumar
2011-09-08 10:29 ` Linus Walleij
2011-09-08 21:54 ` [PATCH 16/18] dmaengine/ambhe rest oa-pl08x: " Vinod Koul
2011-09-20 6:19 ` Vinod Koul
2011-09-20 6:27 ` Viresh Kumar
2011-09-20 8:08 ` Vinod Koul
2011-07-29 10:49 ` [PATCH 17/18] dmaengine/amba-pl08x: Check txd->llis_va before freeing dma_pool Viresh Kumar
2011-07-31 0:44 ` Linus Walleij
2011-07-29 10:49 ` [PATCH 18/18] dmaengine/amba-pl08x: Call pl08x_free_txd() instead of calling kfree() directly Viresh Kumar
2011-07-29 11:15 ` Russell King - ARM Linux
2011-07-29 11:38 ` viresh kumar
2011-07-31 0:45 ` Linus Walleij
2011-07-31 5:39 ` viresh kumar
2011-07-29 10:57 ` [PATCH 00/18] dmaengine/amba-pl08x updates Russell King - ARM Linux
2011-07-29 11:14 ` viresh kumar
2011-07-29 11:19 ` Russell King - ARM Linux
2011-07-29 11:23 ` viresh kumar
2011-07-29 12:43 ` Russell King - ARM Linux
2011-07-29 15:22 ` viresh kumar
2011-07-29 11:58 ` Koul, Vinod
2011-08-01 5:30 ` viresh kumar
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=5521ee74eef41cf26a9f1ece6dadd32cca529cce.1311936524.git.viresh.kumar@st.com \
--to=viresh.kumar@st.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).