Re: [PATCH v2 1/3] dmaengine: add DMA_PREP_CMD for non-Data descriptors.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2017-07-19 15:37, Vinod Koul wrote:
On Mon, Jun 26, 2017 at 06:19:27PM +0530, Abhishek Sahu wrote:
Some of the DMA controllers are capable of issuing the commands
to peripheral by the DMA. These commands can be list of register
reads/writes and its different from normal data reads/writes.
This patch adds new flag DMA_PREP_CMD in DMA API which tells
the driver that the data passed to DMA API is in command format
and DMA driver will form descriptor in the required format.

This flag can be used by any DMA controller driver which requires
special handling for non-Data descriptors.

Please add Documentation for this new flag in
Documentation/dmaengine/provider.txt


 Sure. I will add update the documentation in v3.


Signed-off-by: Abhishek Sahu <absahu@xxxxxxxxxxxxxx>
---
 include/linux/dmaengine.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index 5336808..bbc297e 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -186,6 +186,8 @@ struct dma_interleaved_template {
  *  on the result of this operation
* @DMA_CTRL_REUSE: client can reuse the descriptor and submit again till
  *  cleared or freed
+ * @DMA_PREP_CMD: tell the driver that the data passed to DMA API is in command + * format and it will be used for configuring the peripheral registers.

Can you explain what is command format..?


 The command format is not generic and its format will be dependent
 upon DMA engine. The client drivers will give data in its own
 command formats and this flag will be passed to DMA API’s to do
 the parsing according to its own command format.

 Currently this flag description and name is inclined towards
 Qualcomm BAM DMA command flag. We want to make this flag as
 generic one so require your suggestion regarding this.
 Will renaming this flag as DMA_PREP_NON_DATA or
 DMA_PREP_CUSTOM make it more generic?

  */
 enum dma_ctrl_flags {
 	DMA_PREP_INTERRUPT = (1 << 0),
@@ -195,6 +197,7 @@ enum dma_ctrl_flags {
 	DMA_PREP_CONTINUE = (1 << 4),
 	DMA_PREP_FENCE = (1 << 5),
 	DMA_CTRL_REUSE = (1 << 6),
+	DMA_PREP_CMD = (1 << 7),
 };

 /**
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation


--
Abhishek Sahu
--
To unsubscribe from this list: send the line "unsubscribe linux-soc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux