[PATCH 3/3] dmaengine: qcom: bam_dma: Add support for immediate commands

From: Sireesh Kodali
Date: Sun Sep 19 2021 - 10:44:43 EST


Immediate commands are needed by the IPA driver to send commands to the
IPA controller over BAM. To support immediate commands, all we need to
do is set the relevant flag in the descriptor.

Signed-off-by: Sireesh Kodali <sireeshkodali1@xxxxxxxxx>
---
drivers/dma/qcom/bam_dma.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c
index c8a77b428b52..cebec638a994 100644
--- a/drivers/dma/qcom/bam_dma.c
+++ b/drivers/dma/qcom/bam_dma.c
@@ -58,6 +58,7 @@ struct bam_desc_hw {
#define DESC_FLAG_EOB BIT(13)
#define DESC_FLAG_NWD BIT(12)
#define DESC_FLAG_CMD BIT(11)
+#define DESC_FLAG_IMM BIT(8)

struct bam_async_desc {
struct virt_dma_desc vd;
@@ -651,6 +652,8 @@ static struct dma_async_tx_descriptor *bam_prep_slave_sg(struct dma_chan *chan,
do {
if (flags & DMA_PREP_CMD)
desc->flags |= cpu_to_le16(DESC_FLAG_CMD);
+ else if (flags & DMA_PREP_IMM_CMD)
+ desc->flags |= cpu_to_le16(DESC_FLAG_IMM);

desc->addr = cpu_to_le32(sg_dma_address(sg) +
curr_offset);
--
2.33.0