diff options
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap/usrp/0002-Add-functions-to-dma.c-to-set-address-and-length-for.patch')
-rw-r--r-- | extras/recipes-kernel/linux/linux-omap/usrp/0002-Add-functions-to-dma.c-to-set-address-and-length-for.patch | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap/usrp/0002-Add-functions-to-dma.c-to-set-address-and-length-for.patch b/extras/recipes-kernel/linux/linux-omap/usrp/0002-Add-functions-to-dma.c-to-set-address-and-length-for.patch new file mode 100644 index 00000000..a7415ff0 --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap/usrp/0002-Add-functions-to-dma.c-to-set-address-and-length-for.patch | |||
@@ -0,0 +1,83 @@ | |||
1 | From fa589f1ad83e8795ba0509e7899dd1a6926c5fbd 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 2/3] Add functions to dma.c to set address and length for src and dest. | ||
5 | |||
6 | --- | ||
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(-) | ||
10 | |||
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) | ||
16 | } | ||
17 | EXPORT_SYMBOL(omap_set_dma_src_burst_mode); | ||
18 | |||
19 | +void omap_set_dma_src_addr_size(int lch, unsigned int addr, int elem_count) | ||
20 | +{ | ||
21 | + | ||
22 | + if (cpu_class_is_omap1()) { | ||
23 | + p->dma_write(addr >> 16, CSSA, lch); | ||
24 | + //p->dma_write((u16)addr, CSSA_L, lch); | ||
25 | + } | ||
26 | + | ||
27 | + if (cpu_class_is_omap2()) | ||
28 | + p->dma_write(addr, CSSA, lch); | ||
29 | + | ||
30 | + p->dma_write(elem_count, CEN, lch); | ||
31 | +} | ||
32 | +EXPORT_SYMBOL_GPL(omap_set_dma_src_addr_size); | ||
33 | + | ||
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) | ||
38 | } | ||
39 | EXPORT_SYMBOL(omap_set_dma_dest_burst_mode); | ||
40 | |||
41 | +void omap_set_dma_dest_addr_size(int lch, unsigned int addr, int elem_count) | ||
42 | +{ | ||
43 | + | ||
44 | + if (cpu_class_is_omap1()) { | ||
45 | + p->dma_write(addr >> 16, CDSA, lch); | ||
46 | + //p->dma_write((u16)addr, CDSA_L, lch); | ||
47 | + } | ||
48 | + | ||
49 | + if (cpu_class_is_omap2()) | ||
50 | + p->dma_write(addr, CDSA, lch); | ||
51 | + | ||
52 | + p->dma_write(elem_count, CEN, lch); | ||
53 | +} | ||
54 | +EXPORT_SYMBOL_GPL(omap_set_dma_dest_addr_size); | ||
55 | + | ||
56 | static inline void omap_enable_channel_irq(int lch) | ||
57 | { | ||
58 | u32 status; | ||
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, | ||
68 | + int elem_count); | ||
69 | |||
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, | ||
77 | + int elem_count); | ||
78 | |||
79 | extern void omap_set_dma_params(int lch, | ||
80 | struct omap_dma_channel_params *params); | ||
81 | -- | ||
82 | 1.6.6.1 | ||
83 | |||