The new API - omap_set_dma_dst_pos(int lch, int value) is added for setting channel destination address in CPC/CDAC register Cc: Tony Lindgren <tony@xxxxxxxxxxx> Cc: S, Venkatraman <svenkatr@xxxxxx> Signed-off-by: Manjunatha GK <manjugk@xxxxxx> Signed-off-by: Govindraj R <govindraj.raja@xxxxxx> --- arch/arm/plat-omap/dma.c | 17 +++++++++++++++++ arch/arm/plat-omap/include/plat/dma.h | 1 + 2 files changed, 18 insertions(+), 0 deletions(-) diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index 2ab224c..9a2a5c4 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c @@ -1109,6 +1109,23 @@ dma_addr_t omap_get_dma_dst_pos(int lch) } EXPORT_SYMBOL(omap_get_dma_dst_pos); +/** + * omap_set_dma_dst_pos() - Set DMA channel destination address + * @arg1: lch DMA logical channel number + * @arg2: value Value to write into CDAC register + * + * Writes "value" into the register CPC/CDAC + */ +void omap_set_dma_dst_pos(int lch, int value) +{ + if (cpu_is_omap15xx()) + dma_write(CPC(lch), value); + else + dma_write(CDAC(lcd), value); + +} +EXPORT_SYMBOL(omap_set_dma_dst_pos); + int omap_get_dma_active_status(int lch) { return (dma_read(CCR(lch)) & OMAP_DMA_CCR_EN) != 0; diff --git a/arch/arm/plat-omap/include/plat/dma.h b/arch/arm/plat-omap/include/plat/dma.h index 02232ca..3b6e43e 100644 --- a/arch/arm/plat-omap/include/plat/dma.h +++ b/arch/arm/plat-omap/include/plat/dma.h @@ -509,6 +509,7 @@ extern int omap_set_dma_callback(int lch, void *data); extern dma_addr_t omap_get_dma_src_pos(int lch); extern dma_addr_t omap_get_dma_dst_pos(int lch); +extern void omap_set_dma_dst_pos(int lch, int value); extern void omap_clear_dma(int lch); extern int omap_get_dma_active_status(int lch); extern int omap_dma_running(void); -- 1.6.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html