* [PATCH RESEND] dma: tegra: implement flags parameters for cyclic transfer
@ 2013-01-09 9:56 Laxman Dewangan
[not found] ` <1357725382-25780-1-git-send-email-ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 2+ messages in thread
From: Laxman Dewangan @ 2013-01-09 9:56 UTC (permalink / raw)
To: vinod.koul-ral2JQCrhuEAvxtiuMwx3w
Cc: djbw-b10kYP2dOMg, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
swarren-DDmLM1+adcrQT0dZR+AlfA,
linux-tegra-u79uwXL29TY76Z2rM5mHXA, Laxman Dewangan
The flag parameter is added in the cyclic transfer request.
Use the flag option of:
- DMA_PREP_INTERRUPT for enabling interrupt.
- DMA_CTRL_ACK for deciding whether ack is requred or not for
descriptor.
Signed-off-by: Laxman Dewangan <ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
---
Vinod,
This patch was sent before holiday and may be it is missed in you radar.
You have already applied my other patches on dma which was sent later so
resending this patch.
Stephen wanted this to be part of stable branch also.
This is against bug fixes and new feature added in K3.7 for cyclic transfer without
interrupt.
drivers/dma/tegra20-apb-dma.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c
index efdfffa..bf58bb8 100644
--- a/drivers/dma/tegra20-apb-dma.c
+++ b/drivers/dma/tegra20-apb-dma.c
@@ -266,6 +266,7 @@ static struct tegra_dma_desc *tegra_dma_desc_get(
if (async_tx_test_ack(&dma_desc->txd)) {
list_del(&dma_desc->node);
spin_unlock_irqrestore(&tdc->lock, flags);
+ dma_desc->txd.flags = 0;
return dma_desc;
}
}
@@ -1050,7 +1051,9 @@ struct dma_async_tx_descriptor *tegra_dma_prep_dma_cyclic(
TEGRA_APBDMA_AHBSEQ_WRAP_SHIFT;
ahb_seq |= TEGRA_APBDMA_AHBSEQ_BUS_WIDTH_32;
- csr |= TEGRA_APBDMA_CSR_FLOW | TEGRA_APBDMA_CSR_IE_EOC;
+ csr |= TEGRA_APBDMA_CSR_FLOW;
+ if (flags & DMA_PREP_INTERRUPT)
+ csr |= TEGRA_APBDMA_CSR_IE_EOC;
csr |= tdc->dma_sconfig.slave_id << TEGRA_APBDMA_CSR_REQ_SEL_SHIFT;
apb_seq |= TEGRA_APBDMA_APBSEQ_WRAP_WORD_1;
@@ -1095,7 +1098,8 @@ struct dma_async_tx_descriptor *tegra_dma_prep_dma_cyclic(
mem += len;
}
sg_req->last_sg = true;
- dma_desc->txd.flags = 0;
+ if (flags & DMA_CTRL_ACK)
+ dma_desc->txd.flags = DMA_CTRL_ACK;
/*
* Make sure that mode should not be conflicting with currently
--
1.7.1.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH RESEND] dma: tegra: implement flags parameters for cyclic transfer
[not found] ` <1357725382-25780-1-git-send-email-ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
@ 2013-01-09 13:30 ` Vinod Koul
0 siblings, 0 replies; 2+ messages in thread
From: Vinod Koul @ 2013-01-09 13:30 UTC (permalink / raw)
To: Laxman Dewangan
Cc: djbw-b10kYP2dOMg, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
swarren-DDmLM1+adcrQT0dZR+AlfA,
linux-tegra-u79uwXL29TY76Z2rM5mHXA
On Wed, Jan 09, 2013 at 03:26:22PM +0530, Laxman Dewangan wrote:
> The flag parameter is added in the cyclic transfer request.
> Use the flag option of:
> - DMA_PREP_INTERRUPT for enabling interrupt.
> - DMA_CTRL_ACK for deciding whether ack is requred or not for
> descriptor.
>
> Signed-off-by: Laxman Dewangan <ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Applied thanks
--
~Vinod
> ---
> Vinod,
> This patch was sent before holiday and may be it is missed in you radar.
> You have already applied my other patches on dma which was sent later so
> resending this patch.
> Stephen wanted this to be part of stable branch also.
> This is against bug fixes and new feature added in K3.7 for cyclic transfer without
> interrupt.
>
> drivers/dma/tegra20-apb-dma.c | 8 ++++++--
> 1 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c
> index efdfffa..bf58bb8 100644
> --- a/drivers/dma/tegra20-apb-dma.c
> +++ b/drivers/dma/tegra20-apb-dma.c
> @@ -266,6 +266,7 @@ static struct tegra_dma_desc *tegra_dma_desc_get(
> if (async_tx_test_ack(&dma_desc->txd)) {
> list_del(&dma_desc->node);
> spin_unlock_irqrestore(&tdc->lock, flags);
> + dma_desc->txd.flags = 0;
> return dma_desc;
> }
> }
> @@ -1050,7 +1051,9 @@ struct dma_async_tx_descriptor *tegra_dma_prep_dma_cyclic(
> TEGRA_APBDMA_AHBSEQ_WRAP_SHIFT;
> ahb_seq |= TEGRA_APBDMA_AHBSEQ_BUS_WIDTH_32;
>
> - csr |= TEGRA_APBDMA_CSR_FLOW | TEGRA_APBDMA_CSR_IE_EOC;
> + csr |= TEGRA_APBDMA_CSR_FLOW;
> + if (flags & DMA_PREP_INTERRUPT)
> + csr |= TEGRA_APBDMA_CSR_IE_EOC;
> csr |= tdc->dma_sconfig.slave_id << TEGRA_APBDMA_CSR_REQ_SEL_SHIFT;
>
> apb_seq |= TEGRA_APBDMA_APBSEQ_WRAP_WORD_1;
> @@ -1095,7 +1098,8 @@ struct dma_async_tx_descriptor *tegra_dma_prep_dma_cyclic(
> mem += len;
> }
> sg_req->last_sg = true;
> - dma_desc->txd.flags = 0;
> + if (flags & DMA_CTRL_ACK)
> + dma_desc->txd.flags = DMA_CTRL_ACK;
>
> /*
> * Make sure that mode should not be conflicting with currently
> --
> 1.7.1.1
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-01-09 13:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-09 9:56 [PATCH RESEND] dma: tegra: implement flags parameters for cyclic transfer Laxman Dewangan
[not found] ` <1357725382-25780-1-git-send-email-ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-09 13:30 ` Vinod Koul
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).