diff options
author | Viresh Kumar <viresh.kumar@st.com> | 2011-08-05 06:02:37 -0400 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2011-08-25 10:03:38 -0400 |
commit | 16a2e7d359b9fc64fb8a6717c0642691b1e60bb7 (patch) | |
tree | bfeea21d5b565a39ff32718327eb993d9b29c4aa /include | |
parent | 28da28365da3f3bea1d4b7212a8a40e4b9ac3229 (diff) |
dmaengine/amba-pl08x: Get rid of pl08x_pre_boundary()
Pl080 Manual says: "Bursts do not cross the 1KB address boundary"
We can program the controller to cross 1 KB boundary on a burst and controller
can take care of this boundary condition by itself.
Following is the discussion with ARM Technical Support Guys (David):
[Viresh] Manual says: "Bursts do not cross the 1KB address boundary"
What does that actually mean? As, Maximum size transferable with a single LLI is
4095 * 4 =16380 ~ 16KB. So, if we don't have src/dest address aligned to burst
size, we can't use this big of an LLI.
[David] There is a difference between bursts describing the total data
transferred by the DMA controller and AHB bursts. Bursts described by the
programmable parameters in the PL080 have no direct connection with the bursts
that are seen on the AHB bus.
The statement that "Bursts do not cross the 1KB address boundary" in the TRM is
referring to AHB bursts, where this limitation is a requirement of the AHB spec.
You can still issue bursts within the PL080 that are in excess of 1KB. The
PL080 will make sure that its bursts are broken down into legal AHB bursts which
will be formatted to ensure that no AHB burst crosses a 1KB boundary.
Based on above discussion, this patch removes all code related to 1 KB boundary
as we are not required to handle this in driver.
Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/amba/pl08x.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/include/linux/amba/pl08x.h b/include/linux/amba/pl08x.h index cd8f629da58f..ecd17f581e71 100644 --- a/include/linux/amba/pl08x.h +++ b/include/linux/amba/pl08x.h | |||
@@ -77,13 +77,11 @@ struct pl08x_channel_data { | |||
77 | * @addr: current address | 77 | * @addr: current address |
78 | * @maxwidth: the maximum width of a transfer on this bus | 78 | * @maxwidth: the maximum width of a transfer on this bus |
79 | * @buswidth: the width of this bus in bytes: 1, 2 or 4 | 79 | * @buswidth: the width of this bus in bytes: 1, 2 or 4 |
80 | * @fill_bytes: bytes required to fill to the next bus memory boundary | ||
81 | */ | 80 | */ |
82 | struct pl08x_bus_data { | 81 | struct pl08x_bus_data { |
83 | dma_addr_t addr; | 82 | dma_addr_t addr; |
84 | u8 maxwidth; | 83 | u8 maxwidth; |
85 | u8 buswidth; | 84 | u8 buswidth; |
86 | size_t fill_bytes; | ||
87 | }; | 85 | }; |
88 | 86 | ||
89 | /** | 87 | /** |