1 From a734ac5eef1dd8ee8cba4eea5d2db568247c484c Mon Sep 17 00:00:00 2001
2 From: Philip Balister <philip@opensdr.com>
3 Date: Thu, 22 Apr 2010 19:41:58 -0700
4 Subject: [PATCH 02/22] Add functions to dma.c to set address and length for src and dest.
7 arch/arm/plat-omap/dma.c | 30 ++++++++++++++++++++++++++++++
8 arch/arm/plat-omap/include/plat/dma.h | 4 ++++
9 2 files changed, 34 insertions(+), 0 deletions(-)
11 diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
12 index c4b2b47..f28f756 100644
13 --- a/arch/arm/plat-omap/dma.c
14 +++ b/arch/arm/plat-omap/dma.c
15 @@ -471,6 +471,21 @@ void omap_set_dma_src_burst_mode(int lch, enum omap_dma_burst_mode burst_mode)
17 EXPORT_SYMBOL(omap_set_dma_src_burst_mode);
19 +void omap_set_dma_src_addr_size(int lch, unsigned int addr, int elem_count)
22 + if (cpu_class_is_omap1()) {
23 + p->dma_write(addr >> 16, CSSA, lch);
24 + //p->dma_write((u16)addr, CSSA_L, lch);
27 + if (cpu_class_is_omap2())
28 + p->dma_write(addr, CSSA, lch);
30 + p->dma_write(elem_count, CEN, lch);
32 +EXPORT_SYMBOL_GPL(omap_set_dma_src_addr_size);
34 /* Note that dest_port is only for OMAP1 */
35 void omap_set_dma_dest_params(int lch, int dest_port, int dest_amode,
36 unsigned long dest_start,
37 @@ -561,6 +576,21 @@ void omap_set_dma_dest_burst_mode(int lch, enum omap_dma_burst_mode burst_mode)
39 EXPORT_SYMBOL(omap_set_dma_dest_burst_mode);
41 +void omap_set_dma_dest_addr_size(int lch, unsigned int addr, int elem_count)
44 + if (cpu_class_is_omap1()) {
45 + p->dma_write(addr >> 16, CDSA, lch);
46 + //p->dma_write((u16)addr, CDSA_L, lch);
49 + if (cpu_class_is_omap2())
50 + p->dma_write(addr, CDSA, lch);
52 + p->dma_write(elem_count, CEN, lch);
54 +EXPORT_SYMBOL_GPL(omap_set_dma_dest_addr_size);
56 static inline void omap_enable_channel_irq(int lch)
59 diff --git a/arch/arm/plat-omap/include/plat/dma.h b/arch/arm/plat-omap/include/plat/dma.h
60 index d1c916f..1e7243e 100644
61 --- a/arch/arm/plat-omap/include/plat/dma.h
62 +++ b/arch/arm/plat-omap/include/plat/dma.h
63 @@ -462,6 +462,8 @@ extern void omap_set_dma_src_index(int lch, int eidx, int fidx);
64 extern void omap_set_dma_src_data_pack(int lch, int enable);
65 extern void omap_set_dma_src_burst_mode(int lch,
66 enum omap_dma_burst_mode burst_mode);
67 +extern void omap_set_dma_src_addr_size(int lch, unsigned int addr,
70 extern void omap_set_dma_dest_params(int lch, int dest_port, int dest_amode,
71 unsigned long dest_start,
72 @@ -470,6 +472,8 @@ extern void omap_set_dma_dest_index(int lch, int eidx, int fidx);
73 extern void omap_set_dma_dest_data_pack(int lch, int enable);
74 extern void omap_set_dma_dest_burst_mode(int lch,
75 enum omap_dma_burst_mode burst_mode);
76 +extern void omap_set_dma_dest_addr_size(int lch, unsigned int addr,
79 extern void omap_set_dma_params(int lch,
80 struct omap_dma_channel_params *params);