aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ieee1394/iso.h
diff options
context:
space:
mode:
authorBen Collins <bcollins@debian.org>2005-07-09 20:01:23 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-10 15:23:23 -0400
commit1934b8b6561ee7804b0a671b48cf642fcd936b2c (patch)
tree25c975176441aceedd2faae515121374f6f75750 /drivers/ieee1394/iso.h
parentf179bc77d09b9087bfc559d0368bba350342ac76 (diff)
[PATCH] Sync up ieee-1394
Lots of this patch is trivial code cleanups (static vars were being intialized to 0, etc). There's also some fixes for ISO transmits (max buffer handling). Aswell, we have a few fixes to disable IRM capabilites correctly. We've also disabled, by default some generally unused EXPORT symbols for the sake of cleanliness in the kernel. However, instead of removing them completely, we felt it necessary to have a config option that allowed them to be enabled for the many projects outside of the main kernel tree that use our API for driver development. The primary reason for this patch is to revert a MODE6->MODE10 RBC conversion patch from the SCSI maintainers. The new conversions handled directly in the scsi layer do not seem to work for SBP2. This patch reverts to our old working code so that users can enjoy using Firewire disks and dvd drives again. We are working with the SCSI maintainers to resolve this issue outside of the main kernel tree. We'll merge the patch once the SCSI layer's handling of the MODE10 conversion is working for us. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/ieee1394/iso.h')
-rw-r--r--drivers/ieee1394/iso.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/ieee1394/iso.h b/drivers/ieee1394/iso.h
index fb654d9639a7..3efc60b33a88 100644
--- a/drivers/ieee1394/iso.h
+++ b/drivers/ieee1394/iso.h
@@ -47,6 +47,14 @@ struct hpsb_iso_packet_info {
47 /* 2-bit 'tag' and 4-bit 'sy' fields of the isochronous header */ 47 /* 2-bit 'tag' and 4-bit 'sy' fields of the isochronous header */
48 __u8 tag; 48 __u8 tag;
49 __u8 sy; 49 __u8 sy;
50
51 /*
52 * length in bytes of the packet including header/trailer.
53 * MUST be at structure end, since the first part of this structure is also
54 * defined in raw1394.h (i.e. struct raw1394_iso_packet_info), is copied to
55 * userspace and is accessed there through libraw1394.
56 */
57 __u16 total_len;
50}; 58};
51 59
52enum hpsb_iso_type { HPSB_ISO_RECV = 0, HPSB_ISO_XMIT = 1 }; 60enum hpsb_iso_type { HPSB_ISO_RECV = 0, HPSB_ISO_XMIT = 1 };
@@ -111,6 +119,9 @@ struct hpsb_iso {
111 /* how many times the buffer has overflowed or underflowed */ 119 /* how many times the buffer has overflowed or underflowed */
112 atomic_t overflows; 120 atomic_t overflows;
113 121
122 /* Current number of bytes lost in discarded packets */
123 int bytes_discarded;
124
114 /* private flags to track initialization progress */ 125 /* private flags to track initialization progress */
115#define HPSB_ISO_DRIVER_INIT (1<<0) 126#define HPSB_ISO_DRIVER_INIT (1<<0)
116#define HPSB_ISO_DRIVER_STARTED (1<<1) 127#define HPSB_ISO_DRIVER_STARTED (1<<1)
@@ -193,7 +204,7 @@ void hpsb_iso_packet_sent(struct hpsb_iso *iso, int cycle, int error);
193 204
194/* call after a packet has been received (interrupt context OK) */ 205/* call after a packet has been received (interrupt context OK) */
195void hpsb_iso_packet_received(struct hpsb_iso *iso, u32 offset, u16 len, 206void hpsb_iso_packet_received(struct hpsb_iso *iso, u32 offset, u16 len,
196 u16 cycle, u8 channel, u8 tag, u8 sy); 207 u16 total_len, u16 cycle, u8 channel, u8 tag, u8 sy);
197 208
198/* call to wake waiting processes after buffer space has opened up. */ 209/* call to wake waiting processes after buffer space has opened up. */
199void hpsb_iso_wake(struct hpsb_iso *iso); 210void hpsb_iso_wake(struct hpsb_iso *iso);