diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/amba/pl08x.h | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/include/linux/amba/pl08x.h b/include/linux/amba/pl08x.h index 5b87b6aac3f8..3111385b8ca7 100644 --- a/include/linux/amba/pl08x.h +++ b/include/linux/amba/pl08x.h | |||
@@ -12,7 +12,6 @@ | |||
12 | * | 12 | * |
13 | * Please credit ARM.com | 13 | * Please credit ARM.com |
14 | * Documentation: ARM DDI 0196D | 14 | * Documentation: ARM DDI 0196D |
15 | * | ||
16 | */ | 15 | */ |
17 | 16 | ||
18 | #ifndef AMBA_PL08X_H | 17 | #ifndef AMBA_PL08X_H |
@@ -55,8 +54,8 @@ enum { | |||
55 | * @circular_buffer: whether the buffer passed in is circular and | 54 | * @circular_buffer: whether the buffer passed in is circular and |
56 | * shall simply be looped round round (like a record baby round | 55 | * shall simply be looped round round (like a record baby round |
57 | * round round round) | 56 | * round round round) |
58 | * @single: the device connected to this channel will request single | 57 | * @single: the device connected to this channel will request single DMA |
59 | * DMA transfers, not bursts. (Bursts are default.) | 58 | * transfers, not bursts. (Bursts are default.) |
60 | * @periph_buses: the device connected to this channel is accessible via | 59 | * @periph_buses: the device connected to this channel is accessible via |
61 | * these buses (use PL08X_AHB1 | PL08X_AHB2). | 60 | * these buses (use PL08X_AHB1 | PL08X_AHB2). |
62 | */ | 61 | */ |
@@ -78,8 +77,7 @@ struct pl08x_channel_data { | |||
78 | * @addr: current address | 77 | * @addr: current address |
79 | * @maxwidth: the maximum width of a transfer on this bus | 78 | * @maxwidth: the maximum width of a transfer on this bus |
80 | * @buswidth: the width of this bus in bytes: 1, 2 or 4 | 79 | * @buswidth: the width of this bus in bytes: 1, 2 or 4 |
81 | * @fill_bytes: bytes required to fill to the next bus memory | 80 | * @fill_bytes: bytes required to fill to the next bus memory boundary |
82 | * boundary | ||
83 | */ | 81 | */ |
84 | struct pl08x_bus_data { | 82 | struct pl08x_bus_data { |
85 | dma_addr_t addr; | 83 | dma_addr_t addr; |
@@ -92,10 +90,10 @@ struct pl08x_bus_data { | |||
92 | * struct pl08x_phy_chan - holder for the physical channels | 90 | * struct pl08x_phy_chan - holder for the physical channels |
93 | * @id: physical index to this channel | 91 | * @id: physical index to this channel |
94 | * @lock: a lock to use when altering an instance of this struct | 92 | * @lock: a lock to use when altering an instance of this struct |
95 | * @signal: the physical signal (aka channel) serving this | 93 | * @signal: the physical signal (aka channel) serving this physical channel |
96 | * physical channel right now | 94 | * right now |
97 | * @serving: the virtual channel currently being served by this | 95 | * @serving: the virtual channel currently being served by this physical |
98 | * physical channel | 96 | * channel |
99 | */ | 97 | */ |
100 | struct pl08x_phy_chan { | 98 | struct pl08x_phy_chan { |
101 | unsigned int id; | 99 | unsigned int id; |
@@ -119,7 +117,6 @@ struct pl08x_txd { | |||
119 | size_t len; | 117 | size_t len; |
120 | dma_addr_t llis_bus; | 118 | dma_addr_t llis_bus; |
121 | struct pl08x_lli *llis_va; | 119 | struct pl08x_lli *llis_va; |
122 | bool active; | ||
123 | /* Default cctl value for LLIs */ | 120 | /* Default cctl value for LLIs */ |
124 | u32 cctl; | 121 | u32 cctl; |
125 | /* | 122 | /* |
@@ -130,8 +127,8 @@ struct pl08x_txd { | |||
130 | }; | 127 | }; |
131 | 128 | ||
132 | /** | 129 | /** |
133 | * struct pl08x_dma_chan_state - holds the PL08x specific virtual | 130 | * struct pl08x_dma_chan_state - holds the PL08x specific virtual channel |
134 | * channel states | 131 | * states |
135 | * @PL08X_CHAN_IDLE: the channel is idle | 132 | * @PL08X_CHAN_IDLE: the channel is idle |
136 | * @PL08X_CHAN_RUNNING: the channel has allocated a physical transport | 133 | * @PL08X_CHAN_RUNNING: the channel has allocated a physical transport |
137 | * channel and is running a transfer on it | 134 | * channel and is running a transfer on it |
@@ -152,7 +149,7 @@ enum pl08x_dma_chan_state { | |||
152 | * @chan: wrappped abstract channel | 149 | * @chan: wrappped abstract channel |
153 | * @phychan: the physical channel utilized by this channel, if there is one | 150 | * @phychan: the physical channel utilized by this channel, if there is one |
154 | * @phychan_hold: if non-zero, hold on to the physical channel even if we | 151 | * @phychan_hold: if non-zero, hold on to the physical channel even if we |
155 | * have no pending entries | 152 | * have no pending entries |
156 | * @tasklet: tasklet scheduled by the IRQ to handle actual work etc | 153 | * @tasklet: tasklet scheduled by the IRQ to handle actual work etc |
157 | * @name: name of channel | 154 | * @name: name of channel |
158 | * @cd: channel platform data | 155 | * @cd: channel platform data |
@@ -166,8 +163,8 @@ enum pl08x_dma_chan_state { | |||
166 | * @host: a pointer to the host (internal use) | 163 | * @host: a pointer to the host (internal use) |
167 | * @state: whether the channel is idle, paused, running etc | 164 | * @state: whether the channel is idle, paused, running etc |
168 | * @slave: whether this channel is a device (slave) or for memcpy | 165 | * @slave: whether this channel is a device (slave) or for memcpy |
169 | * @waiting: a TX descriptor on this channel which is waiting for | 166 | * @waiting: a TX descriptor on this channel which is waiting for a physical |
170 | * a physical channel to become available | 167 | * channel to become available |
171 | */ | 168 | */ |
172 | struct pl08x_dma_chan { | 169 | struct pl08x_dma_chan { |
173 | struct dma_chan chan; | 170 | struct dma_chan chan; |
@@ -189,16 +186,16 @@ struct pl08x_dma_chan { | |||
189 | }; | 186 | }; |
190 | 187 | ||
191 | /** | 188 | /** |
192 | * struct pl08x_platform_data - the platform configuration for the | 189 | * struct pl08x_platform_data - the platform configuration for the PL08x |
193 | * PL08x PrimeCells. | 190 | * PrimeCells. |
194 | * @slave_channels: the channels defined for the different devices on the | 191 | * @slave_channels: the channels defined for the different devices on the |
195 | * platform, all inclusive, including multiplexed channels. The available | 192 | * platform, all inclusive, including multiplexed channels. The available |
196 | * physical channels will be multiplexed around these signals as they | 193 | * physical channels will be multiplexed around these signals as they are |
197 | * are requested, just enumerate all possible channels. | 194 | * requested, just enumerate all possible channels. |
198 | * @get_signal: request a physical signal to be used for a DMA | 195 | * @get_signal: request a physical signal to be used for a DMA transfer |
199 | * transfer immediately: if there is some multiplexing or similar blocking | 196 | * immediately: if there is some multiplexing or similar blocking the use |
200 | * the use of the channel the transfer can be denied by returning | 197 | * of the channel the transfer can be denied by returning less than zero, |
201 | * less than zero, else it returns the allocated signal number | 198 | * else it returns the allocated signal number |
202 | * @put_signal: indicate to the platform that this physical signal is not | 199 | * @put_signal: indicate to the platform that this physical signal is not |
203 | * running any DMA transfer and multiplexing can be recycled | 200 | * running any DMA transfer and multiplexing can be recycled |
204 | * @lli_buses: buses which LLIs can be fetched from: PL08X_AHB1 | PL08X_AHB2 | 201 | * @lli_buses: buses which LLIs can be fetched from: PL08X_AHB1 | PL08X_AHB2 |