diff options
Diffstat (limited to 'drivers/ieee1394/iso.h')
-rw-r--r-- | drivers/ieee1394/iso.h | 35 |
1 files changed, 2 insertions, 33 deletions
diff --git a/drivers/ieee1394/iso.h b/drivers/ieee1394/iso.h index 1210a97e8685..b94e55e6eaa5 100644 --- a/drivers/ieee1394/iso.h +++ b/drivers/ieee1394/iso.h | |||
@@ -150,8 +150,6 @@ struct hpsb_iso { | |||
150 | 150 | ||
151 | /* functions available to high-level drivers (e.g. raw1394) */ | 151 | /* functions available to high-level drivers (e.g. raw1394) */ |
152 | 152 | ||
153 | /* allocate the buffer and DMA context */ | ||
154 | |||
155 | struct hpsb_iso* hpsb_iso_xmit_init(struct hpsb_host *host, | 153 | struct hpsb_iso* hpsb_iso_xmit_init(struct hpsb_host *host, |
156 | unsigned int data_buf_size, | 154 | unsigned int data_buf_size, |
157 | unsigned int buf_packets, | 155 | unsigned int buf_packets, |
@@ -159,8 +157,6 @@ struct hpsb_iso* hpsb_iso_xmit_init(struct hpsb_host *host, | |||
159 | int speed, | 157 | int speed, |
160 | int irq_interval, | 158 | int irq_interval, |
161 | void (*callback)(struct hpsb_iso*)); | 159 | void (*callback)(struct hpsb_iso*)); |
162 | |||
163 | /* note: if channel = -1, multi-channel receive is enabled */ | ||
164 | struct hpsb_iso* hpsb_iso_recv_init(struct hpsb_host *host, | 160 | struct hpsb_iso* hpsb_iso_recv_init(struct hpsb_host *host, |
165 | unsigned int data_buf_size, | 161 | unsigned int data_buf_size, |
166 | unsigned int buf_packets, | 162 | unsigned int buf_packets, |
@@ -168,56 +164,29 @@ struct hpsb_iso* hpsb_iso_recv_init(struct hpsb_host *host, | |||
168 | int dma_mode, | 164 | int dma_mode, |
169 | int irq_interval, | 165 | int irq_interval, |
170 | void (*callback)(struct hpsb_iso*)); | 166 | void (*callback)(struct hpsb_iso*)); |
171 | |||
172 | /* multi-channel only */ | ||
173 | int hpsb_iso_recv_listen_channel(struct hpsb_iso *iso, unsigned char channel); | 167 | int hpsb_iso_recv_listen_channel(struct hpsb_iso *iso, unsigned char channel); |
174 | int hpsb_iso_recv_unlisten_channel(struct hpsb_iso *iso, unsigned char channel); | 168 | int hpsb_iso_recv_unlisten_channel(struct hpsb_iso *iso, unsigned char channel); |
175 | int hpsb_iso_recv_set_channel_mask(struct hpsb_iso *iso, u64 mask); | 169 | int hpsb_iso_recv_set_channel_mask(struct hpsb_iso *iso, u64 mask); |
176 | |||
177 | /* start/stop DMA */ | ||
178 | int hpsb_iso_xmit_start(struct hpsb_iso *iso, int start_on_cycle, | 170 | int hpsb_iso_xmit_start(struct hpsb_iso *iso, int start_on_cycle, |
179 | int prebuffer); | 171 | int prebuffer); |
180 | int hpsb_iso_recv_start(struct hpsb_iso *iso, int start_on_cycle, | 172 | int hpsb_iso_recv_start(struct hpsb_iso *iso, int start_on_cycle, |
181 | int tag_mask, int sync); | 173 | int tag_mask, int sync); |
182 | void hpsb_iso_stop(struct hpsb_iso *iso); | 174 | void hpsb_iso_stop(struct hpsb_iso *iso); |
183 | |||
184 | /* deallocate buffer and DMA context */ | ||
185 | void hpsb_iso_shutdown(struct hpsb_iso *iso); | 175 | void hpsb_iso_shutdown(struct hpsb_iso *iso); |
186 | |||
187 | /* queue a packet for transmission. | ||
188 | * 'offset' is relative to the beginning of the DMA buffer, where the packet's | ||
189 | * data payload should already have been placed. */ | ||
190 | int hpsb_iso_xmit_queue_packet(struct hpsb_iso *iso, u32 offset, u16 len, | 176 | int hpsb_iso_xmit_queue_packet(struct hpsb_iso *iso, u32 offset, u16 len, |
191 | u8 tag, u8 sy); | 177 | u8 tag, u8 sy); |
192 | |||
193 | /* wait until all queued packets have been transmitted to the bus */ | ||
194 | int hpsb_iso_xmit_sync(struct hpsb_iso *iso); | 178 | int hpsb_iso_xmit_sync(struct hpsb_iso *iso); |
195 | 179 | int hpsb_iso_recv_release_packets(struct hpsb_iso *recv, | |
196 | /* N packets have been read out of the buffer, re-use the buffer space */ | 180 | unsigned int n_packets); |
197 | int hpsb_iso_recv_release_packets(struct hpsb_iso *recv, | ||
198 | unsigned int n_packets); | ||
199 | |||
200 | /* check for arrival of new packets immediately (even if irq_interval | ||
201 | * has not yet been reached) */ | ||
202 | int hpsb_iso_recv_flush(struct hpsb_iso *iso); | 181 | int hpsb_iso_recv_flush(struct hpsb_iso *iso); |
203 | |||
204 | /* returns # of packets ready to send or receive */ | ||
205 | int hpsb_iso_n_ready(struct hpsb_iso *iso); | 182 | int hpsb_iso_n_ready(struct hpsb_iso *iso); |
206 | 183 | ||
207 | /* the following are callbacks available to low-level drivers */ | 184 | /* the following are callbacks available to low-level drivers */ |
208 | 185 | ||
209 | /* call after a packet has been transmitted to the bus (interrupt context is OK) | ||
210 | * 'cycle' is the _exact_ cycle the packet was sent on | ||
211 | * 'error' should be non-zero if some sort of error occurred when sending the | ||
212 | * packet */ | ||
213 | void hpsb_iso_packet_sent(struct hpsb_iso *iso, int cycle, int error); | 186 | void hpsb_iso_packet_sent(struct hpsb_iso *iso, int cycle, int error); |
214 | |||
215 | /* call after a packet has been received (interrupt context OK) */ | ||
216 | void hpsb_iso_packet_received(struct hpsb_iso *iso, u32 offset, u16 len, | 187 | void hpsb_iso_packet_received(struct hpsb_iso *iso, u32 offset, u16 len, |
217 | u16 total_len, u16 cycle, u8 channel, u8 tag, | 188 | u16 total_len, u16 cycle, u8 channel, u8 tag, |
218 | u8 sy); | 189 | u8 sy); |
219 | |||
220 | /* call to wake waiting processes after buffer space has opened up. */ | ||
221 | void hpsb_iso_wake(struct hpsb_iso *iso); | 190 | void hpsb_iso_wake(struct hpsb_iso *iso); |
222 | 191 | ||
223 | #endif /* IEEE1394_ISO_H */ | 192 | #endif /* IEEE1394_ISO_H */ |