Root/
1 | /* |
2 | * driver/dma/coh901318_lli.h |
3 | * |
4 | * Copyright (C) 2007-2009 ST-Ericsson |
5 | * License terms: GNU General Public License (GPL) version 2 |
6 | * Support functions for handling lli for coh901318 |
7 | * Author: Per Friden <per.friden@stericsson.com> |
8 | */ |
9 | |
10 | #ifndef COH901318_LLI_H |
11 | #define COH901318_LLI_H |
12 | |
13 | #include <mach/coh901318.h> |
14 | |
15 | struct device; |
16 | |
17 | struct coh901318_pool { |
18 | spinlock_t lock; |
19 | struct dma_pool *dmapool; |
20 | struct device *dev; |
21 | |
22 | #ifdef CONFIG_DEBUG_FS |
23 | int debugfs_pool_counter; |
24 | #endif |
25 | }; |
26 | |
27 | struct device; |
28 | /** |
29 | * coh901318_pool_create() - Creates an dma pool for lli:s |
30 | * @pool: pool handle |
31 | * @dev: dma device |
32 | * @lli_nbr: number of lli:s in the pool |
33 | * @algin: address alignemtn of lli:s |
34 | * returns 0 on success otherwise none zero |
35 | */ |
36 | int coh901318_pool_create(struct coh901318_pool *pool, |
37 | struct device *dev, |
38 | size_t lli_nbr, size_t align); |
39 | |
40 | /** |
41 | * coh901318_pool_destroy() - Destroys the dma pool |
42 | * @pool: pool handle |
43 | * returns 0 on success otherwise none zero |
44 | */ |
45 | int coh901318_pool_destroy(struct coh901318_pool *pool); |
46 | |
47 | /** |
48 | * coh901318_lli_alloc() - Allocates a linked list |
49 | * |
50 | * @pool: pool handle |
51 | * @len: length to list |
52 | * return: none NULL if success otherwise NULL |
53 | */ |
54 | struct coh901318_lli * |
55 | coh901318_lli_alloc(struct coh901318_pool *pool, |
56 | unsigned int len); |
57 | |
58 | /** |
59 | * coh901318_lli_free() - Returns the linked list items to the pool |
60 | * @pool: pool handle |
61 | * @lli: reference to lli pointer to be freed |
62 | */ |
63 | void coh901318_lli_free(struct coh901318_pool *pool, |
64 | struct coh901318_lli **lli); |
65 | |
66 | /** |
67 | * coh901318_lli_fill_memcpy() - Prepares the lli:s for dma memcpy |
68 | * @pool: pool handle |
69 | * @lli: allocated lli |
70 | * @src: src address |
71 | * @size: transfer size |
72 | * @dst: destination address |
73 | * @ctrl_chained: ctrl for chained lli |
74 | * @ctrl_last: ctrl for the last lli |
75 | * returns number of CPU interrupts for the lli, negative on error. |
76 | */ |
77 | int |
78 | coh901318_lli_fill_memcpy(struct coh901318_pool *pool, |
79 | struct coh901318_lli *lli, |
80 | dma_addr_t src, unsigned int size, |
81 | dma_addr_t dst, u32 ctrl_chained, u32 ctrl_last); |
82 | |
83 | /** |
84 | * coh901318_lli_fill_single() - Prepares the lli:s for dma single transfer |
85 | * @pool: pool handle |
86 | * @lli: allocated lli |
87 | * @buf: transfer buffer |
88 | * @size: transfer size |
89 | * @dev_addr: address of periphal |
90 | * @ctrl_chained: ctrl for chained lli |
91 | * @ctrl_last: ctrl for the last lli |
92 | * @dir: direction of transfer (to or from device) |
93 | * returns number of CPU interrupts for the lli, negative on error. |
94 | */ |
95 | int |
96 | coh901318_lli_fill_single(struct coh901318_pool *pool, |
97 | struct coh901318_lli *lli, |
98 | dma_addr_t buf, unsigned int size, |
99 | dma_addr_t dev_addr, u32 ctrl_chained, u32 ctrl_last, |
100 | enum dma_transfer_direction dir); |
101 | |
102 | /** |
103 | * coh901318_lli_fill_single() - Prepares the lli:s for dma scatter list transfer |
104 | * @pool: pool handle |
105 | * @lli: allocated lli |
106 | * @sg: scatter gather list |
107 | * @nents: number of entries in sg |
108 | * @dev_addr: address of periphal |
109 | * @ctrl_chained: ctrl for chained lli |
110 | * @ctrl: ctrl of middle lli |
111 | * @ctrl_last: ctrl for the last lli |
112 | * @dir: direction of transfer (to or from device) |
113 | * @ctrl_irq_mask: ctrl mask for CPU interrupt |
114 | * returns number of CPU interrupts for the lli, negative on error. |
115 | */ |
116 | int |
117 | coh901318_lli_fill_sg(struct coh901318_pool *pool, |
118 | struct coh901318_lli *lli, |
119 | struct scatterlist *sg, unsigned int nents, |
120 | dma_addr_t dev_addr, u32 ctrl_chained, |
121 | u32 ctrl, u32 ctrl_last, |
122 | enum dma_transfer_direction dir, u32 ctrl_irq_mask); |
123 | |
124 | #endif /* COH901318_LLI_H */ |
125 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9