diff options
Diffstat (limited to 'include/linux/dmaengine.h')
| -rw-r--r-- | include/linux/dmaengine.h | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 3e0f64c335c8..1956c8d46d32 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
| @@ -97,7 +97,6 @@ typedef struct { DECLARE_BITMAP(bits, DMA_TX_TYPE_END); } dma_cap_mask_t; | |||
| 97 | 97 | ||
| 98 | /** | 98 | /** |
| 99 | * struct dma_chan_percpu - the per-CPU part of struct dma_chan | 99 | * struct dma_chan_percpu - the per-CPU part of struct dma_chan |
| 100 | * @refcount: local_t used for open-coded "bigref" counting | ||
| 101 | * @memcpy_count: transaction counter | 100 | * @memcpy_count: transaction counter |
| 102 | * @bytes_transferred: byte counter | 101 | * @bytes_transferred: byte counter |
| 103 | */ | 102 | */ |
| @@ -114,13 +113,11 @@ struct dma_chan_percpu { | |||
| 114 | * @cookie: last cookie value returned to client | 113 | * @cookie: last cookie value returned to client |
| 115 | * @chan_id: channel ID for sysfs | 114 | * @chan_id: channel ID for sysfs |
| 116 | * @dev: class device for sysfs | 115 | * @dev: class device for sysfs |
| 117 | * @refcount: kref, used in "bigref" slow-mode | ||
| 118 | * @slow_ref: indicates that the DMA channel is free | ||
| 119 | * @rcu: the DMA channel's RCU head | ||
| 120 | * @device_node: used to add this to the device chan list | 116 | * @device_node: used to add this to the device chan list |
| 121 | * @local: per-cpu pointer to a struct dma_chan_percpu | 117 | * @local: per-cpu pointer to a struct dma_chan_percpu |
| 122 | * @client-count: how many clients are using this channel | 118 | * @client-count: how many clients are using this channel |
| 123 | * @table_count: number of appearances in the mem-to-mem allocation table | 119 | * @table_count: number of appearances in the mem-to-mem allocation table |
| 120 | * @private: private data for certain client-channel associations | ||
| 124 | */ | 121 | */ |
| 125 | struct dma_chan { | 122 | struct dma_chan { |
| 126 | struct dma_device *device; | 123 | struct dma_device *device; |
| @@ -134,6 +131,7 @@ struct dma_chan { | |||
| 134 | struct dma_chan_percpu *local; | 131 | struct dma_chan_percpu *local; |
| 135 | int client_count; | 132 | int client_count; |
| 136 | int table_count; | 133 | int table_count; |
| 134 | void *private; | ||
| 137 | }; | 135 | }; |
| 138 | 136 | ||
| 139 | /** | 137 | /** |
| @@ -211,8 +209,6 @@ struct dma_async_tx_descriptor { | |||
| 211 | * @global_node: list_head for global dma_device_list | 209 | * @global_node: list_head for global dma_device_list |
| 212 | * @cap_mask: one or more dma_capability flags | 210 | * @cap_mask: one or more dma_capability flags |
| 213 | * @max_xor: maximum number of xor sources, 0 if no capability | 211 | * @max_xor: maximum number of xor sources, 0 if no capability |
| 214 | * @refcount: reference count | ||
| 215 | * @done: IO completion struct | ||
| 216 | * @dev_id: unique device ID | 212 | * @dev_id: unique device ID |
| 217 | * @dev: struct device reference for dma mapping api | 213 | * @dev: struct device reference for dma mapping api |
| 218 | * @device_alloc_chan_resources: allocate resources and return the | 214 | * @device_alloc_chan_resources: allocate resources and return the |
| @@ -225,6 +221,7 @@ struct dma_async_tx_descriptor { | |||
| 225 | * @device_prep_dma_interrupt: prepares an end of chain interrupt operation | 221 | * @device_prep_dma_interrupt: prepares an end of chain interrupt operation |
| 226 | * @device_prep_slave_sg: prepares a slave dma operation | 222 | * @device_prep_slave_sg: prepares a slave dma operation |
| 227 | * @device_terminate_all: terminate all pending operations | 223 | * @device_terminate_all: terminate all pending operations |
| 224 | * @device_is_tx_complete: poll for transaction completion | ||
| 228 | * @device_issue_pending: push pending transactions to hardware | 225 | * @device_issue_pending: push pending transactions to hardware |
| 229 | */ | 226 | */ |
| 230 | struct dma_device { | 227 | struct dma_device { |
| @@ -282,6 +279,18 @@ static inline void dmaengine_put(void) | |||
| 282 | } | 279 | } |
| 283 | #endif | 280 | #endif |
| 284 | 281 | ||
| 282 | #ifdef CONFIG_NET_DMA | ||
| 283 | #define net_dmaengine_get() dmaengine_get() | ||
| 284 | #define net_dmaengine_put() dmaengine_put() | ||
| 285 | #else | ||
| 286 | static inline void net_dmaengine_get(void) | ||
| 287 | { | ||
| 288 | } | ||
| 289 | static inline void net_dmaengine_put(void) | ||
| 290 | { | ||
| 291 | } | ||
| 292 | #endif | ||
| 293 | |||
| 285 | dma_cookie_t dma_async_memcpy_buf_to_buf(struct dma_chan *chan, | 294 | dma_cookie_t dma_async_memcpy_buf_to_buf(struct dma_chan *chan, |
| 286 | void *dest, void *src, size_t len); | 295 | void *dest, void *src, size_t len); |
| 287 | dma_cookie_t dma_async_memcpy_buf_to_pg(struct dma_chan *chan, | 296 | dma_cookie_t dma_async_memcpy_buf_to_pg(struct dma_chan *chan, |
