diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-10-09 18:12:20 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-10-11 08:48:03 -0400 |
commit | 66fa12c571d35e3cd62574c65f1785a460105397 (patch) | |
tree | b4f8de3d5ca827d2b134ed628628a7bff46967ca /drivers/ieee1394/raw1394-private.h | |
parent | 1ef5b816c0eaf84f91106cfc0893069c49e86113 (diff) |
ieee1394: remove the old IEEE 1394 driver stack
The drivers
- ohci1394 (controller driver)
- ieee1394 (core)
- dv1394, raw1394, video1394 (userspace ABI)
- eth1394, sbp2 (protocol drivers)
are replaced by
- firewire-ohci (controller driver)
- firewire-core (core and userspace ABI)
- firewire-net, firewire-sbp2 (protocol drivers)
which are more featureful, better performing, and more secure than the older
drivers; all with a smaller and more modern code base.
The driver firedtv in drivers/media/dvb/firewire/ contains backends to both
ieee1394 and firewire-core. Its ieee1394 backend code can be removed in an
independent commit; firedtv as-is builds and works fine without ieee1394.
The driver pcilynx (an incomplete controller driver) is deleted without
replacement since PCILynx cards are extremely rare. Owners of these cards
use them with the stand-alone bus sniffer driver nosy instead.
The drivers nosy and init_ohci1394_dma which do not interact with either of
the two IEEE 1394 stacks are not affected by the ieee1394 subsystem removal.
There are still some issues with the newer firewire subsystem compared to
the older one:
- The rare and quirky controllers ALi M52xx, Apple UniNorth v1, NVIDIA
NForce2 are even less well supported by firewire-ohci than by ohci1394.
I am looking into the M52xx issue.
- The experimental firewire-net is reportedly less stable than its
experimental cousin eth1394.
- Audio playback of a certain group of audio devices (ones based on DICE
chipset with EAP; supported by prerelease FFADO code) does not work yet.
This issue is still under investigation.
- There were some ieee1394 based out-of-the-mainline drivers. Of them,
only lisight, an audio driver for iSight webcams, seems still useful.
Work is underway to reimplement it on top of firewire-core.
All these remainig issues are minor; they should not stand in the way of
overall better user experience of IEEE 1394 on Linux, together with a
reduction in support efforts and maintenance burden. The coexistence of two
IEEE 1394 kernel driver stacks in the mainline since 2.6.22 shall end now,
as announced earlier this year.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/ieee1394/raw1394-private.h')
-rw-r--r-- | drivers/ieee1394/raw1394-private.h | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/drivers/ieee1394/raw1394-private.h b/drivers/ieee1394/raw1394-private.h deleted file mode 100644 index 7a225a405987..000000000000 --- a/drivers/ieee1394/raw1394-private.h +++ /dev/null | |||
@@ -1,81 +0,0 @@ | |||
1 | #ifndef IEEE1394_RAW1394_PRIVATE_H | ||
2 | #define IEEE1394_RAW1394_PRIVATE_H | ||
3 | |||
4 | /* header for definitions that are private to the raw1394 driver | ||
5 | and not visible to user-space */ | ||
6 | |||
7 | #define RAW1394_DEVICE_MAJOR 171 | ||
8 | #define RAW1394_DEVICE_NAME "raw1394" | ||
9 | |||
10 | #define RAW1394_MAX_USER_CSR_DIRS 16 | ||
11 | |||
12 | struct iso_block_store { | ||
13 | atomic_t refcount; | ||
14 | size_t data_size; | ||
15 | quadlet_t data[0]; | ||
16 | }; | ||
17 | |||
18 | enum raw1394_iso_state { RAW1394_ISO_INACTIVE = 0, | ||
19 | RAW1394_ISO_RECV = 1, | ||
20 | RAW1394_ISO_XMIT = 2 }; | ||
21 | |||
22 | struct file_info { | ||
23 | struct list_head list; | ||
24 | |||
25 | struct mutex state_mutex; | ||
26 | enum { opened, initialized, connected } state; | ||
27 | unsigned int protocol_version; | ||
28 | |||
29 | struct hpsb_host *host; | ||
30 | |||
31 | struct list_head req_pending; /* protected by reqlists_lock */ | ||
32 | struct list_head req_complete; /* protected by reqlists_lock */ | ||
33 | spinlock_t reqlists_lock; | ||
34 | wait_queue_head_t wait_complete; | ||
35 | |||
36 | struct list_head addr_list; /* protected by host_info_lock */ | ||
37 | |||
38 | u8 __user *fcp_buffer; | ||
39 | |||
40 | u8 notification; /* (busreset-notification) RAW1394_NOTIFY_OFF/ON */ | ||
41 | |||
42 | /* new rawiso API */ | ||
43 | enum raw1394_iso_state iso_state; | ||
44 | struct hpsb_iso *iso_handle; | ||
45 | |||
46 | /* User space's CSR1212 dynamic ConfigROM directories */ | ||
47 | struct csr1212_keyval *csr1212_dirs[RAW1394_MAX_USER_CSR_DIRS]; | ||
48 | |||
49 | /* Legacy ConfigROM update flag */ | ||
50 | u8 cfgrom_upd; | ||
51 | }; | ||
52 | |||
53 | struct arm_addr { | ||
54 | struct list_head addr_list; /* file_info list */ | ||
55 | u64 start, end; | ||
56 | u64 arm_tag; | ||
57 | u8 access_rights; | ||
58 | u8 notification_options; | ||
59 | u8 client_transactions; | ||
60 | u64 recvb; | ||
61 | u16 rec_length; | ||
62 | u8 *addr_space_buffer; /* accessed by read/write/lock requests */ | ||
63 | }; | ||
64 | |||
65 | struct pending_request { | ||
66 | struct list_head list; | ||
67 | struct file_info *file_info; | ||
68 | struct hpsb_packet *packet; | ||
69 | struct iso_block_store *ibs; | ||
70 | quadlet_t *data; | ||
71 | int free_data; | ||
72 | struct raw1394_request req; | ||
73 | }; | ||
74 | |||
75 | struct host_info { | ||
76 | struct list_head list; | ||
77 | struct hpsb_host *host; | ||
78 | struct list_head file_info_list; /* protected by host_info_lock */ | ||
79 | }; | ||
80 | |||
81 | #endif /* IEEE1394_RAW1394_PRIVATE_H */ | ||