Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 66fa12c5 authored by Stefan Richter's avatar Stefan Richter
Browse files

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: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
parent 1ef5b816
Loading
Loading
Loading
Loading

Documentation/ABI/obsolete/dv1394

deleted100644 → 0
+0 −9
Original line number Diff line number Diff line
What:		dv1394 (a.k.a. "OHCI-DV I/O support" for FireWire)
Contact:	linux1394-devel@lists.sourceforge.net
Description:
	New application development should use raw1394 + userspace libraries
	instead, notably libiec61883 which is functionally equivalent.

Users:
	ffmpeg/libavformat (used by a variety of media players)
	dvgrab v1.x (replaced by dvgrab2 on top of raw1394 and resp. libraries)
+14 −0
Original line number Diff line number Diff line
What:		dv1394 (a.k.a. "OHCI-DV I/O support" for FireWire)
Date:		May 2010 (scheduled), finally removed in kernel v2.6.37
Contact:	linux1394-devel@lists.sourceforge.net
Description:
	/dev/dv1394/* were character device files, one for each FireWire
	controller and for NTSC and PAL respectively, from which DV data
	could be received by read() or transmitted by write().  A few
	ioctl()s allowed limited control.
	This special-purpose interface has been superseded by libraw1394 +
	libiec61883 which are functionally equivalent, support HDV, and
	transparently work on top of the newer firewire kernel drivers.

Users:
	ffmpeg/libavformat (if configured for DV1394)
+15 −0
Original line number Diff line number Diff line
What:		raw1394 (a.k.a. "Raw IEEE1394 I/O support" for FireWire)
Date:		May 2010 (scheduled), finally removed in kernel v2.6.37
Contact:	linux1394-devel@lists.sourceforge.net
Description:
	/dev/raw1394 was a character device file that allowed low-level
	access to FireWire buses.  Its major drawbacks were its inability
	to implement sensible device security policies, and its low level
	of abstraction that required userspace clients do duplicate much
	of the kernel's ieee1394 core functionality.
	Replaced by /dev/fw*, i.e. the <linux/firewire-cdev.h> ABI of
	firewire-core.

Users:
	libraw1394 (works with firewire-cdev too, transparent to library ABI
	users)
+0 −16
Original line number Diff line number Diff line
What:		legacy isochronous ABI of raw1394 (1st generation iso ABI)
Date:		June 2007 (scheduled), removed in kernel v2.6.23
Contact:	linux1394-devel@lists.sourceforge.net
Description:
	The two request types RAW1394_REQ_ISO_SEND, RAW1394_REQ_ISO_LISTEN have
	been deprecated for quite some time.  They are very inefficient as they
	come with high interrupt load and several layers of callbacks for each
	packet.  Because of these deficiencies, the video1394 and dv1394 drivers
	and the 3rd-generation isochronous ABI in raw1394 (rawiso) were created.

Users:
	libraw1394 users via the long deprecated API raw1394_iso_write,
	raw1394_start_iso_write, raw1394_start_iso_rcv, raw1394_stop_iso_rcv

	libdc1394, which optionally uses these old libraw1394 calls
	alternatively to the more efficient video1394 ABI
+16 −0
Original line number Diff line number Diff line
What:		video1394 (a.k.a. "OHCI-1394 Video support" for FireWire)
Date:		May 2010 (scheduled), finally removed in kernel v2.6.37
Contact:	linux1394-devel@lists.sourceforge.net
Description:
	/dev/video1394/* were character device files, one for each FireWire
	controller, which were used for isochronous I/O.  It was added as an
	alternative to raw1394's isochronous I/O functionality which had
	performance issues in its first generation.  Any video1394 user had
	to use raw1394 + libraw1394 too because video1394 did not provide
	asynchronous I/O for device discovery and configuration.
	Replaced by /dev/fw*, i.e. the <linux/firewire-cdev.h> ABI of
	firewire-core.

Users:
	libdc1394 (works with firewire-cdev too, transparent to library ABI
	users)
Loading