Thread (26 messages) flat view 26 messages, 6 authors, 2011-07-25
STALE5501d

[PATCH V4 03-1/13] DMA: PL330: Support DMA_SLAVE_CONFIG command

From: jassisinghbrar@gmail.com (Jassi Brar)
Date: 2011-07-21 15:56:22
Also in: linux-samsung-soc

On Thu, Jul 21, 2011 at 8:53 PM, Russell King - ARM Linux
[off-list ref] wrote:
On Thu, Jul 21, 2011 at 08:42:40PM +0530, Jassi Brar wrote:
quoted
On Thu, Jul 21, 2011 at 4:59 PM, Russell King - ARM Linux
[off-list ref] wrote:
quoted
Does your hardware have a hardware block from the device itself containing
all the systems FIFOs ?
I am not sure what you ask, but let me say what I know.
In this case atleast, all PL330 DMA channels have fixed source/destination
address on the device side. So it's not like developer doesn't know
fifo_addr here.
Even so, your approach is _conceptually_ wrong. ?Think about it.

You declare your devices giving the bus address where they're located.
So, lets say for argument that your UART is located at 0x10001000.

Your UART driver knows that the FIFO register is at offset 0x20 from
the base address. ?Your platform data provides the UART driver with a
DMA match function and data specific for that match function. ?This
data encodes the specific DMA channel.

Now, why should you have to encode into the DMA drivers platform data
that DMA channel X has its FIFO at 0x10001020? ?Not only do you have
to declare the base address of the UART but also you have to know the
offset into the UART.

Why not just let the UART driver - which knows that the base address
is 0x10001000, and the FIFO is at offset 0x20 above that - tell the
DMA driver that's where the FIFO is located?
Yes I understand, the idea was to avoid optional DMA_SLAVE_CONFIG call.
Apparently we give different weightage to the pros and cons.

Anyways, I accept your opinion.

Though you might want to consider changing the DMA_SLAVE_CONFIG API from
optional to mandatory for Slave capable DMACs. Otherwise I don't see common
client drivers working over different DMACs.

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help