Release Notes

From IEEE 1394 FireWire Wiki
(Difference between revisions)
Jump to: navigation, search
(Linux 3.10: tentative release notes per 3.10-rc1)
(Linux 4.8, Linux 4.4: stable backports)
 
(25 intermediate revisions by one user not shown)
Line 5: Line 5:
 
'''Release Status'''
 
'''Release Status'''
  
The latest stable releases of Linux IEEE 1394 drivers are those in the latest released Linux 3.x kernels.
+
The latest stable releases of Linux IEEE 1394 drivers are those in the latest released Linux 4.x kernels.
  
The drivers in Linux 2.4 were considered stable too but have not been updated anymore for a long time.  Therefore they lack many features and compatibility updates which went into recent Linux 2.6.x and 3.x releases.
+
The drivers in Linux 2.4 were considered stable too but have not been updated anymore for a long time.  Therefore they lack many features and compatibility updates which went into Linux 2.6.x...4.x releases.
  
 
The following release notes only summarize more notable changes.  A complete list of IEEE 1394 related changes is available via kernel.org git:
 
The following release notes only summarize more notable changes.  A complete list of IEEE 1394 related changes is available via kernel.org git:
:* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/ieee1394 drivers/ieee1394]
+
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/ieee1394 drivers/ieee1394]
:* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/firewire drivers/firewire]
+
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/firewire drivers/firewire]
:* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/media/firewire drivers/media/firewire], formerly [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/media/dvb/firewire drivers/media/dvb/firewire]
+
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/media/firewire drivers/media/firewire], formerly [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/media/dvb/firewire drivers/media/dvb/firewire]
:* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/target/sbp drivers/target/sbp]
+
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=drivers/target/sbp drivers/target/sbp]
:* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=sound/firewire sound/firewire]
+
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=sound/firewire sound/firewire]
:* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=tools/firewire tools/firewire]
+
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=tools/firewire tools/firewire]
:* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/linux/firewire.h include/linux/firewire.h]
+
:* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/linux/firewire.h include/linux/firewire.h]
:* include/uapi/linux/{[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/uapi/linux/firewire-cdev.h firewire-cdev.h],[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/uapi/linux/firewire-constants.h firewire-constants.h]}, formerly include/linux/{[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/linux/firewire-cdev.h firewire-cdev.h],[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/linux/firewire-constants.h firewire-constants.h]}
+
:* include/uapi/linux/{[https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/uapi/linux/firewire-cdev.h firewire-cdev.h],[https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/uapi/linux/firewire-constants.h firewire-constants.h]}, formerly include/linux/{[https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/linux/firewire-cdev.h firewire-cdev.h],[https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/linux/firewire-constants.h firewire-constants.h]}
:* Documentation/ABI/stable/{[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=Documentation/ABI/stable/firewire-cdev firewire-cdev],[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=Documentation/ABI/stable/sysfs-bus-firewire sysfs-bus-firewire]}
+
:* Documentation/ABI/stable/{[https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=Documentation/ABI/stable/firewire-cdev firewire-cdev],[https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=Documentation/ABI/stable/sysfs-bus-firewire sysfs-bus-firewire]}, [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=Documentation/debugging-via-ohci1394.txt Documentation/debugging-via-ohci1394.txt]
  
  
Line 24: Line 24:
  
  
== Linux 3.10 ==
+
== Linux 4.9 ==
  
''tentative release notes per 3.10-rc1''
+
''tentative release notes as per v4.9-rc4''
  
 
;firewire-net:
 
;firewire-net:
:* added support for IPv6-over-1394 compliant with RFC 3146, implemented by YOSHIFUJI Hideaki
+
:* Add missing input validation.  Invalid IP-over-1394 encapsulation headers could trigger buffer overflows, potentially leading up to remote code execution ([http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8633 CVE-2016-8633]).  Also fixed in v4.8.7 and v4.4.31.
:* release IR DMA context at ifdown
+
:* Fix IP-over-1394 link fragmentation headers that were read and written incorrectly, which prevented fragmented reception from/ fragmented transmission to other stacks, including Mac OS X, Windows XP, and older Linux' eth1394.  Also fixed in v4.8.7 and v4.4.31.
:* fix small memory leak at shutdown
+
  
;firewire-ohci:
 
:* fix video reception on VIA VT6306 with gstreamer, MythTV, and maybe dv4l
 
:* fix a startup issue with Agere/LSI FW643-e2
 
:* fix controller removal when controller is in suspended state
 
:* improved error logging
 
  
 +
== Linux 4.8 ==
  
== Linux 3.9 ==
+
''2 October 2016''
  
''28 April 2013''
+
;snd-firewire-tascam:
 +
:* Fix possible deadlock in hwdep interface.  Also fixed in v4.7.4 and v4.4.21.
  
The firewire subsystem underwent only minor janitorial changes in this kernel.
+
;snd-fireworks:
 +
:* Fix possible deadlock in hwdep interface.  Also fixed in v4.7.4, v4.4.21, v4.1.34, v3.18.43.
  
  
== Linux 3.8 ==
+
== Linux 4.7 ==
  
''18 February 2013''
+
''24 July 2016''
  
;firewire-net:
+
;snd-dice:
:* fix reception of fragmented multicast and broadcast datagrams
+
:* Add support for M-Audio Profire 610, and perhaps for Profire 2626.
  
;firewire-sbp2:
+
;snd-firewire-lib:
:* pass through thin provisioning related opcodes to SPC-3 devices
+
:* Add tracepoints to dump a part of isochronous packet data in order to support debugging of device quirks and of kernel-internal packet processing.  The [https://git.kernel.org/linus/0c95c1d6197f patch changelog] describes how to use this feature.  A [https://git.kernel.org/linus/a9c4284bf5a9 subsequent commit] expands the dump format.
  
;snd-scs1x:
+
;snd-firewire-lib, snd-bebob, snd-firewire-tascam, snd-fireworks:
:* New ALSA MIDI driver for Stanton [http://www.stantondj.com/stanton-controllers-systems/scs1d.html SCS.1d] and [http://www.stantondj.com/stanton-controllers-systems/scs1m.html SCS.1m] FireWire DJ controllers, written by Clemens Ladisch.<br> (While MIDI is handled by the snd-scs1x driver, audio I/O with SCS.1m is handled by [http://ffado.org/ FFADO] userspace drivers.)
+
:* Remove matching of SYT fields of the outbound stream to those of the inbound stream since it proves to be unnecessary in practice. The same was already done in snd-dice in Linux v4.6This simplifies the kernel code and allows for finer-grained tasklet scheduling.
  
 +
;snd-firewire-lib, snd-bebob, snd-firewire-digi00x, snd-firewire-tascam, snd-fireworks, snd-oxfw:
 +
:* Perform sound card registration at least 2 seconds after the last IEEE 1394 bus reset.  This was already implemented for snd-dice in Linux v4.5 and is now adopted by the other FireWire audio drivers.  It ensures that the bus and device firmware settle into a ready state before userspace initiate I/O to the device.
  
== Linux 3.7 ==
 
  
''10 December 2012''
+
== Linux 4.6 ==
  
;firewire-core:
+
''15 May 2016''
:* cdev ioctl ABI:  On 64-bit architectures, the kernel wrote 4 bytes too many to non-zero fw_cdev_get_info.bus_reset.  This could corrupt user memory in case of x86-32 userland on x86-64 kernel.  This was fixed also in kernel 3.6.3, 3.5.7.1, 3.4.15, 3.2.32, 3.0.47.
+
:* seed the random number generator with GUIDs of FireWire nodes
+
:* internal optimization concerning address handlers
+
  
;firewire-ohci:
+
;snd-bebob:
:* more complete TI TSB41BA3D support: properly read the local selfID0.i bit
+
:* internal rework related to streaming recovery after bus reset
  
;sbp-target:
+
;snd-dice:
:* minor fixes
+
:* Change how the dependency between number of available PCM and MIDI channels versus sampling rate is handled.  Also affects the hw_params ioctl interface.  Userspace should set the desired sampling rate before starting PCM I/O.
 +
:* Change how phase lock is ensured and how lock status is detected.
 +
:* Remove matching of SYT fields of the outbound stream to those of the inbound stream.  This synchronization happened when the device was configured for internal clock.  It required a startup delay of the outbound stream, which caused DICE II based devices to remain silent at the first attempt to start streaming.
 +
:* Add support for previously unavailable higher PCM channels on certain devices with high channel count, notably Focusrite Saffire PRO 40, Focusrite Liquid Saffire 56, and TC Electronic Studio Konnekt 48.  These devices spread the PCM and MIDI channels across 2 tx + 2 rx IEEE 1394 channels instead of just 1 tx + 1 rx IEEE 1394 channel, as most other devices do.
  
 +
;snd-oxfw:
 +
:* improvements to MIDI I/O
  
== Linux 3.6 ==
 
  
''30 September 2012''
+
== Linux 4.5 ==
  
;firewire-core, -ohci:
+
''13 March 2016''
:* various small fixes and optimizations
+
  
;sysfs ABI:
+
;snd-dice:
:* new attribute <code>/sys/bus/firewire/devices/fw[0-9]+/is_local</code> to tell local and remote nodes apart
+
:* Improved handling of DICE II firmware bootstrapping during device start-up.
 +
:* Avoid time-out when PCM streaming is started.
  
 +
;snd-firewire-tascam:
 +
:* Add support for TASCAM FW-1804.
  
== Linux 3.5 ==
+
;snd-scs1x:
 +
:* The functionality of this driver was moved to the snd-oxfw driver, and the now obsolete snd-scs1x module has been removed.
  
''21 July 2012''
 
  
;firewire-core:
+
== Linux 4.4 ==
:* Fix mismatch between DMA mapping direction and DMA synchronization direction of isochronous reception buffers of userspace drivers if vma-mapped for R/W access. Depending on IOMMU properties of the hardware, this bug could have caused e.g. failures to capture video through libdc1394.
+
:* more consistent retry stategy in device discovery/ rediscovery, and improved failure diagnostics
+
  
;[[sbp-target]]:
+
''10 January 2016''
:* New driver:  Adds SCSI target functionality over FireWire.  This enables a Linux node to act as SBP-2/ SCSI device to other nodes on the FireWire bus, for example as hard disk &mdash; similar to FireWire Target Disk mode of the firmware of many Apple computers.  Any SCSI command set supported by the Linux target core, multiple logical units on the target node, and concurrent login by initiators are supported by sbp-target.<br>  In the kernel configuration menu, the sbp-target option resides under "Device Drivers/ Generic Target Core Mod (TCM) and ConfigFS Infrastructure/ FireWire SBP-2 fabric module".
+
  
 +
;firewire-ohci:
 +
:* Work around JMicron JMB38x initialization quirk.  Affected isochronous transmission, e.g. audio via FFADO or ALSA.  Also fixed in v4.3.3, v4.2.8, v4.1.15, v3.18.26, v3.16.35, v3.14.59, v3.12.52, v3.10.95, v3.4.113, v3.2.74.
  
== Linux 3.4 ==
+
;snd-bebob:
 +
:* Fix device identifier of Mackie Onyx 1220/1620/1640 FireWire I/O card.
  
''20 May 2012''
+
;snd-dice:
 +
:* Fix device identifier of Mackie Onyx Blackbird and Onyx-i series.
  
;<linux/firewire-cdev.h> API:
+
;snd-firewire-digi00x:
:* Added FW_CDEV_IOC_FLUSH_ISO ioctl which lets an application get any currently completed isochronous packets reportedA corresponding libraw1394 update to use this ioctl in raw1394_iso_recv_flush() has been released in libraw1394 2.0.9.
+
:* New driver for Digidesign audio interfaces: Digi 002 Console, Digi 002 Rack, Digi 003 Console, Digi 003 Rack, Digi 003 Rack+Written by Takashi Sakamoto.
  
;firewire-core, -net, -ohci, -sbp2:
+
;snd-firewire-lib:
:* All messages to the kernel log are now consistently prefixed by driver name and device name or number.
+
:* Restructured and extended for wider protocol support.  Data block processing is split from isochronous packet processing.  This work was required for integration of snd-firewire-digi00x and snd-firewire-tascam because devices which are supported by these drivers do not comply with IEC 61883-6.  Written by Takashi Sakamoto.
  
;firewire-ohci:
+
;snd-firewire-tascam:
:* Fix premature completion of multichannel isochronous reception DMAAlso fixed in kernel 3.3.1, 3.2.14, 3.0.27.
+
:* New driver for TASCAM audio interfaces: FW-1082, FW-1884Written by Takashi Sakamoto.
:* Fix missing completion notification in isochronous I/O in case of big intervals between interrupt packets or with big packet headers.
+
  
;firewire-sbp2:
+
;snd-oxfw:
:* If the target's unit directory contains a Unit_Unique_ID entry, use it instead of the node unique ID as the target's GUID in the ieee1394_id sysfs attribute and consequently in udev's /dev/disk/by-id symbolic links.
+
:* Fix Mackie Onyx Satellite packet discontinuity when device is used in base station mode.
:* Do not try to log into targets on the local node.  I/O to such targets is not yet implemented, and local targets are probably meant to be accessed by remote initiators anyway.
+
:* Add support for TASCAM FireOne.
:* Fix handling of SCSI sense data (deferred errors, Valid, Filemark, EOM, ILI).
+
:* Fix calculation of MIDI ports.
 +
:* Fix for statically linked (i.e. non-modular) builds.
  
  
== Linux 3.3 ==
+
== Linux 4.3 ==
  
''18 March 2012''
+
''1 November 2015''
  
;firewire-ohci:
+
No functional changes to the FireWire subsystem.
:* Add workaround for the 1394 part of Creative SoundBlaster Audigy in order to fix transaction failures.  Also fixed in kernel 3.2.6 and 3.0.21.
+
:* Work around random malfunctions of Ricoh PCI Express 1394 controllers by disabling MSI (message signaled interrupts).  Also fixed in kernel 3.2.6 and 3.0.21.
+
  
Loosely related to FireWire (but also USB, SATA, and other interconnects):  Some kernel crashes at hot unplug of storage devices were fixed; e.g. an infamous bug with card readers has been addressed.
 
  
 +
== Linux 4.2 ==
  
== Linux 3.2 ==
+
''30 August 2015''
  
''4 January 2012''
+
;snd-bebob:
 +
:* Add support for
 +
::: Digidesign Mbox 2 Pro
 +
::: Behringer FCA610, FCA1616
 +
:* Improve BeBoB v3 support (PrismSound Orpheus, Behringer UFX1604, Behringer FCA610).
 +
:* Improved clock source detection.  Add SYT-Match support.
  
;firewire-net:
+
;snd-firewire-lib:
:* Increase throughput by use of unified transactions for incoming datagrams.
+
:* Internal changes related to packet handling.
  
;firewire-ohci:
+
;snd-fireworks:
:* Add support for TI TSB41BA3D as local PHY.  This PHY is found on special 1394b-400 cards.
+
:* Fix packet discontinuity with newer firmwaresAlso fixed in v4.1.6 and v3.18.21.
:* Fix bus topology recognition in presence of a cycle master node with a wrong gap countThe issue was observed when switching off a bus-powered DesktopKonnekt6 audio device.
+
:* Properly synchronize isochronous I/O buffers on non-coherent architectures. Architectures with cache-coherent DMA like x86 or PPC were not affected.
+
  
  
== Linux 3.1 ==
+
== Linux 4.1 ==
  
''24 October 2011''
+
''21 June 2015''
  
;Documentation:
+
No functional changes to the FireWire subsystem.
:* Added a [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=Documentation/ABI/stable/firewire-cdev;h=16d030827368b2c49cbbe396588635dfa69d6c08;hb=322a8b034003c0d46d39af85bf24fee27b902f48 brief introduction into the character device file ABI].  Inline documentation in the API header file was improved.
+
:* Added a [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=Documentation/ABI/stable/sysfs-bus-firewire;h=3d484e5dc846ed9b7625c83d948322f825c323df;hb=322a8b034003c0d46d39af85bf24fee27b902f48 reference documentation of the sysfs ABI].
+
  
;<linux/firewire-cdev.h> API:
+
 
:* Unknown ioctls set errno to ENOTTY now instead of EINVAL.  FW_CDEV_EVENT_BUS_RESET events are now guaranteed not to be generated before FW_CDEV_IOC_GET_INFO was used to set the bus reset closure.  Both issues are also fixed in Linux 3.0.1 and 2.6.35.14.
+
== Linux 4.0 ==
;* The first FW_CDEV_IOC_GET_INFO ioctl is clarified to start reception of bus reset events; earlier bus reset events are discarded.  This ensures events with well-defined closure value under all circumstances.  Also fixed in kernel 3.0.1 and 2.6.35.14.
+
 
;* Fixed an issue with 32 bit userland drivers on top of 64 bit kernel, resulting in FW_CDEV_IOC_GET_INFO failing with EFAULT.  Also fixed in kernel 3.0.25.  libraw1394 and libdc1394 were not affected by this issue.
+
''12 April 2015''
  
 
;firewire-core:
 
;firewire-core:
:* Fix detection failures of old Panasonic and Grundig camcordersThe failure was accompanied by "giving up on config rom" log messages after ack-busy events in firewire-ohci's debug log.  Also fixed in kernel 3.0.25.<br>  (The fix addresses transaction failures to these camcorders which had more severe effect on the current driver stack than on the linux1394 drivers of kernel 2.6.36 and older.  While basic DV capture without AV/C control works with these camcorders now, full operation also requires libraw1394 changes which were released in libraw1394 2.0.8.)
+
:: The vendor ID and model ID in the Configuration ROM root directory of Linux hosts was changed from 0xd00d1e:0x000001 to 0x001f11:0x023901This change makes firewire-core's local Configuration ROM comply with IEEE's OUI assignment rules.
  
;firewire-ohci:
+
:: This has been made possible by Openmoko's granting a range of IDs to the Linux IEEE 1394 subsystemSee [[IEEE OUI Assignments]] for additional informationThis change cannot have negative impact on any standard protocols, but developers of private protocols may need to adapt if they relied on these root directory entries instead of their own unit directory entries.
:* Continuing the optimization work that was released in kernel 3.0, CPU utilization during packet queueing was reduced further, benefiting all higherlevel 1394 kernel drivers and userland drivers.
+
:* Fix I/O and PM suspend with O2Micro PCIe FireWire controllers by blacklisting MSI on them.  Also fixed in kernel 3.0.5.
+
:* A fix in the core kernel's memory management addresses firewire-ohci startup failures with kernels that were configured for a maximum number of CPUs of something else than a power of twoThis was a regression since kernel 2.6.38Also fixed in kernel 3.0.3.
+
  
;firewire-sbp2:
+
:: The change was also backmerged into v3.12.51.
:* Fix panic when the module was unloaded while a management transaction was still pending, e.g. login.  This was a regression since kernel 3.0.  Also fixed in kernel 3.0.8.
+
  
 +
;snd-bebob:
 +
:* Fix initialization of some M-Audio devices with Linux on big-endian CPUs.  Also fixed in v3.19.5 and v3.18.13.
  
== Linux 3.0 ==
+
;snd-firewire-lib, snd-bebob, snd-dice, snd-fireworks:
 +
:* Fix device reference counting and shutdown.  Also fixed in v3.19.2.
  
''21 July 2011''
 
  
This release contains a few fixes and some optimizations regarding CPU utilization of the IEEE 1394 kernel drivers, and the following more visible changes.
+
== Linux 3.0...3.19 ==
  
;firewire-ohci:
+
''July 2011 &ndash; February 2015''
:* Probing of the FireWire part on Pinnacle MovieBoard is disabled for now because it used to lock up the kernel.  Also disabled in kernel 2.6.39.4, 2.6.35.14.  Perhaps we can come up with a proper fix longer term, perhaps not.
+
  
;firewire-sbp2:
+
Support of various devices and controllers was improved.  IPv6 support was added to ''firewire-net'' (v3.10).  New drivers ware added:
:* Management of storage devices (connect, reconnect, disconnect) is now performed in parallel if there are two or more devices present.
+
:* ''sbp-target'' lets a Linux node act as a storage device (v3.5),
 +
:* ''snd-isight'' for audio capture through Apple iSight FireWire webcam (v3.0),
 +
:* ''snd-scs1x'', a MIDI driver for Stanton SCS.1d and SCS.1m FireWire DJ controllers (v3.8),
 +
:* ''snd-dice'' for audio playback through some audio devices based on TC Applied Technologies' DICE chipset (v3.13), later also for audio capture and MIDI through basically all DICE based devices (v3.19),
 +
:* ''snd-bebob'' for audio I/O through BridgeCo DM1000/DM1100/DM1500 based devices with BeBoB firmware (v3.16),
 +
:* ''snd-fireworks'' for audio I/O through Echo Digital Audio Fireworks based devices (v3.16),
 +
:* ''snd-oxfw'' for audio I/O through Oxford Semiconductor OXFW970/971 based devices (v3.19).  ''snd-oxfw'' replaced ''snd-firewire-speakers'' in v3.19 and ''snd-scs1x'' in v4.5.
 +
The audio I/O drivers are an alternative to the existing userspace drivers which [http://ffado.org/ the FFADO project] provides.  While the FFADO drivers can only be used in conjunction with [http://jackaudio.org/ JACK], the kernelspace drivers can be used with any ALSA compatible application.  However, the kernelspace drivers only implement PCM streaming and MIDI streaming, whereas device control is meant to be provided by userspace applications like ffado-mixer.
  
;snd-isight:
+
See [[Release Notes/3.x]].
:* New ALSA driver for the microphones in Apple iSight FireWire webcams. It exposes front and rear microphone as a sound card with two PCM capture channels.  This supersedes an older out-of-the-mainline driver with the same function, called lisight, which depended on the removed ieee1394 driver stack.
+
  
  

Latest revision as of 13:58, 13 November 2016

Release Notes: Kernel Drivers

See Release Notes - Libraries for changelogs of some IEEE 1394 userspace libraries.

Release Status

The latest stable releases of Linux IEEE 1394 drivers are those in the latest released Linux 4.x kernels.

The drivers in Linux 2.4 were considered stable too but have not been updated anymore for a long time. Therefore they lack many features and compatibility updates which went into Linux 2.6.x...4.x releases.

The following release notes only summarize more notable changes. A complete list of IEEE 1394 related changes is available via kernel.org git:


Contents


[edit] Linux 4.9

tentative release notes as per v4.9-rc4

firewire-net
  • Add missing input validation. Invalid IP-over-1394 encapsulation headers could trigger buffer overflows, potentially leading up to remote code execution (CVE-2016-8633). Also fixed in v4.8.7 and v4.4.31.
  • Fix IP-over-1394 link fragmentation headers that were read and written incorrectly, which prevented fragmented reception from/ fragmented transmission to other stacks, including Mac OS X, Windows XP, and older Linux' eth1394. Also fixed in v4.8.7 and v4.4.31.


[edit] Linux 4.8

2 October 2016

snd-firewire-tascam
  • Fix possible deadlock in hwdep interface. Also fixed in v4.7.4 and v4.4.21.
snd-fireworks
  • Fix possible deadlock in hwdep interface. Also fixed in v4.7.4, v4.4.21, v4.1.34, v3.18.43.


[edit] Linux 4.7

24 July 2016

snd-dice
  • Add support for M-Audio Profire 610, and perhaps for Profire 2626.
snd-firewire-lib
  • Add tracepoints to dump a part of isochronous packet data in order to support debugging of device quirks and of kernel-internal packet processing. The patch changelog describes how to use this feature. A subsequent commit expands the dump format.
snd-firewire-lib, snd-bebob, snd-firewire-tascam, snd-fireworks
  • Remove matching of SYT fields of the outbound stream to those of the inbound stream since it proves to be unnecessary in practice. The same was already done in snd-dice in Linux v4.6. This simplifies the kernel code and allows for finer-grained tasklet scheduling.
snd-firewire-lib, snd-bebob, snd-firewire-digi00x, snd-firewire-tascam, snd-fireworks, snd-oxfw
  • Perform sound card registration at least 2 seconds after the last IEEE 1394 bus reset. This was already implemented for snd-dice in Linux v4.5 and is now adopted by the other FireWire audio drivers. It ensures that the bus and device firmware settle into a ready state before userspace initiate I/O to the device.


[edit] Linux 4.6

15 May 2016

snd-bebob
  • internal rework related to streaming recovery after bus reset
snd-dice
  • Change how the dependency between number of available PCM and MIDI channels versus sampling rate is handled. Also affects the hw_params ioctl interface. Userspace should set the desired sampling rate before starting PCM I/O.
  • Change how phase lock is ensured and how lock status is detected.
  • Remove matching of SYT fields of the outbound stream to those of the inbound stream. This synchronization happened when the device was configured for internal clock. It required a startup delay of the outbound stream, which caused DICE II based devices to remain silent at the first attempt to start streaming.
  • Add support for previously unavailable higher PCM channels on certain devices with high channel count, notably Focusrite Saffire PRO 40, Focusrite Liquid Saffire 56, and TC Electronic Studio Konnekt 48. These devices spread the PCM and MIDI channels across 2 tx + 2 rx IEEE 1394 channels instead of just 1 tx + 1 rx IEEE 1394 channel, as most other devices do.
snd-oxfw
  • improvements to MIDI I/O


[edit] Linux 4.5

13 March 2016

snd-dice
  • Improved handling of DICE II firmware bootstrapping during device start-up.
  • Avoid time-out when PCM streaming is started.
snd-firewire-tascam
  • Add support for TASCAM FW-1804.
snd-scs1x
  • The functionality of this driver was moved to the snd-oxfw driver, and the now obsolete snd-scs1x module has been removed.


[edit] Linux 4.4

10 January 2016

firewire-ohci
  • Work around JMicron JMB38x initialization quirk. Affected isochronous transmission, e.g. audio via FFADO or ALSA. Also fixed in v4.3.3, v4.2.8, v4.1.15, v3.18.26, v3.16.35, v3.14.59, v3.12.52, v3.10.95, v3.4.113, v3.2.74.
snd-bebob
  • Fix device identifier of Mackie Onyx 1220/1620/1640 FireWire I/O card.
snd-dice
  • Fix device identifier of Mackie Onyx Blackbird and Onyx-i series.
snd-firewire-digi00x
  • New driver for Digidesign audio interfaces: Digi 002 Console, Digi 002 Rack, Digi 003 Console, Digi 003 Rack, Digi 003 Rack+. Written by Takashi Sakamoto.
snd-firewire-lib
  • Restructured and extended for wider protocol support. Data block processing is split from isochronous packet processing. This work was required for integration of snd-firewire-digi00x and snd-firewire-tascam because devices which are supported by these drivers do not comply with IEC 61883-6. Written by Takashi Sakamoto.
snd-firewire-tascam
  • New driver for TASCAM audio interfaces: FW-1082, FW-1884. Written by Takashi Sakamoto.
snd-oxfw
  • Fix Mackie Onyx Satellite packet discontinuity when device is used in base station mode.
  • Add support for TASCAM FireOne.
  • Fix calculation of MIDI ports.
  • Fix for statically linked (i.e. non-modular) builds.


[edit] Linux 4.3

1 November 2015

No functional changes to the FireWire subsystem.


[edit] Linux 4.2

30 August 2015

snd-bebob
  • Add support for
Digidesign Mbox 2 Pro
Behringer FCA610, FCA1616
  • Improve BeBoB v3 support (PrismSound Orpheus, Behringer UFX1604, Behringer FCA610).
  • Improved clock source detection. Add SYT-Match support.
snd-firewire-lib
  • Internal changes related to packet handling.
snd-fireworks
  • Fix packet discontinuity with newer firmwares. Also fixed in v4.1.6 and v3.18.21.


[edit] Linux 4.1

21 June 2015

No functional changes to the FireWire subsystem.


[edit] Linux 4.0

12 April 2015

firewire-core
The vendor ID and model ID in the Configuration ROM root directory of Linux hosts was changed from 0xd00d1e:0x000001 to 0x001f11:0x023901. This change makes firewire-core's local Configuration ROM comply with IEEE's OUI assignment rules.
This has been made possible by Openmoko's granting a range of IDs to the Linux IEEE 1394 subsystem. See IEEE OUI Assignments for additional information. This change cannot have negative impact on any standard protocols, but developers of private protocols may need to adapt if they relied on these root directory entries instead of their own unit directory entries.
The change was also backmerged into v3.12.51.
snd-bebob
  • Fix initialization of some M-Audio devices with Linux on big-endian CPUs. Also fixed in v3.19.5 and v3.18.13.
snd-firewire-lib, snd-bebob, snd-dice, snd-fireworks
  • Fix device reference counting and shutdown. Also fixed in v3.19.2.


[edit] Linux 3.0...3.19

July 2011 – February 2015

Support of various devices and controllers was improved. IPv6 support was added to firewire-net (v3.10). New drivers ware added:

  • sbp-target lets a Linux node act as a storage device (v3.5),
  • snd-isight for audio capture through Apple iSight FireWire webcam (v3.0),
  • snd-scs1x, a MIDI driver for Stanton SCS.1d and SCS.1m FireWire DJ controllers (v3.8),
  • snd-dice for audio playback through some audio devices based on TC Applied Technologies' DICE chipset (v3.13), later also for audio capture and MIDI through basically all DICE based devices (v3.19),
  • snd-bebob for audio I/O through BridgeCo DM1000/DM1100/DM1500 based devices with BeBoB firmware (v3.16),
  • snd-fireworks for audio I/O through Echo Digital Audio Fireworks based devices (v3.16),
  • snd-oxfw for audio I/O through Oxford Semiconductor OXFW970/971 based devices (v3.19). snd-oxfw replaced snd-firewire-speakers in v3.19 and snd-scs1x in v4.5.

The audio I/O drivers are an alternative to the existing userspace drivers which the FFADO project provides. While the FFADO drivers can only be used in conjunction with JACK, the kernelspace drivers can be used with any ALSA compatible application. However, the kernelspace drivers only implement PCM streaming and MIDI streaming, whereas device control is meant to be provided by userspace applications like ffado-mixer.

See Release Notes/3.x.


[edit] Linux 2.6.30...2.6.39

June 2009 – May 2011

The older ieee1394 driver stack was removed from the kernel after it coexisted as an alternative to the current firewire drivers until kernel 2.6.36 inclusive. Many new features and fixes went into the newer firewire drivers. Some new drivers were added: firewire-net (IPv4 over 1394, replacing the eth1394 driver), nosy (a bus sniffer, formerly maintained outside of the kernel repository), and snd-firewire-speakers (for LaCie FireWire speakers and Griffin FireWave).

See Release Notes/2.6.3x.


[edit] Linux 2.6.20...2.6.29

February 2007 – March 2009

The new alternative firewire drivers were added and gradually stabilized. Since the new drivers were not yet feature-complete, the older ieee1394 stack remained preferred for production but received only few minor updates during this time frame.

See Release Notes/2.6.2x.


[edit] Linux 2.6.12...2.6.19

June 2005 – November 2006

This is a stabilization phase of the ieee1394 driver stack in Linux 2.6.

See Release Notes/2.6.1x.

Personal tools