]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/meta-ti-glsdk.git/blob - recipes-bsp/linux/linux-omap/0028-Add-functions-to-dma.c-to-set-address-and-length-for.patch
TI BSP: add USRP-E100 support
[glsdk/meta-ti-glsdk.git] / recipes-bsp / linux / linux-omap / 0028-Add-functions-to-dma.c-to-set-address-and-length-for.patch
1 From c0b0f03265656641342b4915e476a3d5ec9dd17c 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 28/29] Add functions to dma.c to set address and length for src and dest.
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(-)
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