diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 11:59:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 11:59:57 -0400 |
commit | 40caf5ea5a7d47f8a33e26b63ca81dea4b5109d2 (patch) | |
tree | 3f879353d5cb69d2dee707108e4aaeae075f5a0c /drivers/ieee1394/iso.h | |
parent | d6454706c382ab74e2ecad7803c434cc6bd30343 (diff) | |
parent | bcfd09ee48f77a4fe903dbc3757e7af931998ce1 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (56 commits)
ieee1394: remove garbage from Kconfig
ieee1394: more help in Kconfig
ieee1394: ohci1394: Fix mistake in printk message.
ieee1394: ohci1394: remove unnecessary rcvPhyPkt bit flipping in LinkControl register
ieee1394: ohci1394: fix cosmetic problem in error logging
ieee1394: eth1394: send async streams at S100 on 1394b buses
ieee1394: eth1394: fix error path in module_init
ieee1394: eth1394: correct return codes in hard_start_xmit
ieee1394: eth1394: hard_start_xmit is called in atomic context
ieee1394: eth1394: some conditions are unlikely
ieee1394: eth1394: clean up fragment_overlap
ieee1394: eth1394: don't use alloc_etherdev
ieee1394: eth1394: omit useless set_mac_address callback
ieee1394: eth1394: CONFIG_INET is always defined
ieee1394: eth1394: allow MTU bigger than 1500
ieee1394: unexport highlevel_host_reset
ieee1394: eth1394: contain host reset
ieee1394: eth1394: shorter error messages
ieee1394: eth1394: correct a memset argument
ieee1394: eth1394: refactor .probe and .update
...
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 */ |