Add davinci_pause_dma, and davinci_resume_dma
functions. Used in pausing audio without stopping
the dma channel.
Signed-off-by: Troy Kisky <[EMAIL PROTECTED]>
diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c
index a6c1e8d..8322743 100644
--- a/arch/arm/mach-davinci/dma.c
+++ b/arch/arm/mach-davinci/dma.c
@@ -1129,6 +1129,26 @@ void davinci_get_dma_params(int lch,
edmacc_paramentry_regs * temp)
}
}
+/*
+ * DMA pause - pauses the dma on the channel passed
+ */
+void davinci_pause_dma(int lch)
+{
+ if ((lch >= 0) && (lch < DAVINCI_EDMA_NUM_DMACH)) {
+ unsigned int mask = (1 << (lch & 0x1f));
+ ptr_edmacc_regs->shadow[0].eecr[lch >> 5] = mask;
+ }
+}
+/*
+ * DMA resume - resumes the dma on the channel passed
+ */
+void davinci_resume_dma(int lch)
+{
+ if ((lch >= 0) && (lch < DAVINCI_EDMA_NUM_DMACH)) {
+ unsigned int mask = (1 << (lch & 0x1f));
+ ptr_edmacc_regs->shadow[0].eesr[lch >> 5] = mask;
+ }
+}
/******************************************************************************
*
* DMA Start - Starts the dma on the channel passed
diff --git a/arch/arm/mach-davinci/include/mach/edma.h
b/arch/arm/mach-davinci/include/mach/edma.h
index 8c0447e..fc5bbfc 100644
--- a/arch/arm/mach-davinci/include/mach/edma.h
+++ b/arch/arm/mach-davinci/include/mach/edma.h
@@ -533,6 +533,9 @@ void davinci_free_dma(int lch);
* DMA channel
**/
void davinci_dma_getposition(int lch, dma_addr_t *src, dma_addr_t *dst);
+void davinci_clean_channel(int lch);
+void davinci_pause_dma(int lch);
+void davinci_resume_dma(int lch);
int davinci_alloc_iram(unsigned size);
void davinci_free_iram(unsigned addr, unsigned size);
--
1.5.4.3
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source