Re: [PATCH] dmaengine: qcom_bam_dma: Add descriptor flag APIs

From: Srinivas Kandagatla
Date: Thu May 22 2014 - 11:56:27 EST




On 22/05/14 16:32, Andy Gross wrote:
On Thu, May 22, 2014 at 04:27:05PM +0100, Srinivas Kandagatla wrote:

<snip>


The EOT is not used for every transaction. It is part of a handshaking
protocol with the attached peripheral, much like the NWD (notify when done). As
near as I can tell today, no peripheral depends on the EOB, so we could drop it
for now until it is needed and cross this bridge when we need to.

As EOT behaviour is totally dependent on the attached peripheral(or
channel), Can't we make this specific to channel by passing
additional flags in the DT dma channel descriptors? This will be
better abstraction for drivers as well.

Even for channels where you want to use EOT, you don't use it for every
transaction. So a global channel flag isn't going to work. This is the same
for NWD. It is a per descriptor choice.

Thanks Andy for explaining, I got it now.


I know that EOT flag is part of descriptor but still some channels
*must* have EOT to run there state-machine correctly. So making it
optional for those channels might be wrong.

Are there any use cases for particular *channel* where EOT
requirement changes dynamically?

I2C is one example. You place EOT on the last transaction that makes up a
write/read transaction. You may have multiple descriptors to send data, but the
last one has EOT. And for read transactions, you place NWD on the last read
transaction.

<snip>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/