This repository has been archived on 2022-09-20. You can view files and clone it, but cannot push or open issues or pull requests.

198 lines
7.9 KiB

libraw1394 Release Notes
Version 2.1.2:
- Fix build with some alternative C libraries and with some older
build environments. No functional changes.
Version 2.1.1:
- Fix backwards moving cycle timer in isochronous transmit.
The problem has been observed with audio I/O on different systems.
- Fix crash with SIGBUS on SPARC and similar architectures.
- Fix memory leak in address range mapping response handler.
- Fix errno reporting to applications which relied on behavior of
libraw1394 1.x.
- Fix errno checking in the dumpiso and sendiso example programs.
- Minor documentation improvement.
Version 2.1.0:
- Behavior changes of the backend to firewire-core:
- The isochronous reception buffer is now mapped read/writable
rather than read-only. The raw1394 backend already maps the
buffer read/writable too. Note that writing into the buffer
will go wrong on architectures without cache-coherent DMA if
the CPU and the OHCI write within the same cacheline region,
so use this feature with caution.
- Decrease memory footprint of IR and IT buffers by avoiding
some internal rounding up of the buffer size.
- New APIs in <libraw1394/raw1394.h>:
- raw1394_add_config_rom_descriptor():
Add contents to the Configuration ROM of the local node(s).
At runtime, this API is only available if running on top of
firewire-core. It could probably also be implemented with
the raw1394 kernel driver if anybody cared.
- raw1394_remove_config_rom_descriptor():
Counterpart to raw1394_add_config_rom_descriptor().
- raw1394_read_cycle_timer_and_clock():
Like the existing raw1394_read_cycle_timer(), but lets the
caller choose between CLOCK_REALTIME (which the former call
For example, this enables libffado's audio streaming to run
undisturbed by resets of CLOCK_REALTIME.
At runtime, this call requires firewire-core underneath.
- raw1394_get_speed():
Returns the speed code of the maximum possible transmission
speed between a given node and the local node. This takes
maximum speeds of all participating PHYs and the two links
into account. This can be used to configure the speed of
isochronous streams.
At runtime, this call requires firewire-core underneath.
- enum raw1394_iso_speed was extended by
RAW1394_ISO_SPEED_800, _1600, and _3200.
- New APIs in <libraw1394/ieee1394.h>:
- Added preprocessor constants
L1394_SPEED_BETA, L1394_SPEED_800, _1600, and _3200.
- testlibraw1394:
Added unit tests of the new APIs.
Version 2.0.9:
- Fix that raw1394_iso_recv_flush() did not have any effect when running
on firewire-core alias juju kernel drivers. Requires kernel 3.4 or
- Remove build-time dependency on linux-headers. Before, if too old
kernel headers were present on the build system, features and fixes
would be silently omitted from the build.
- Remove --with-fw-dir configure switch which is no longer useful.
- Janitorial fixes.
Version 2.0.8:
- Configuration ROM access via raw1394_read() is dramatically faster and
very robust now. We read the kernel's Configuration ROM cache instead
of the actual register of the FireWire device.
- Internally retry raw1394_read/write/lock/lock64() after ack-busy
response. Most notably this fixes control of some older Panasonic and
Grundig camcorders.
- small bug fixes
Version 2.0.7:
- Fix playback to some audio devices based on the DICE chipset.
Version 2.0.6:
- Bug fixes, notably for FCP and request reception on firewire-core.
Note, several of these updates are only built into libraw1394 if
linux-headers 2.6.36 or later are present at build time.
Version 2.0.5:
- Bug fixes, in particular, for isochronous transmission and FFADO project.
Version 2.0.4:
- Fix build due to incomplete tarball.
Version 2.0.3:
- various bug fixes, in particular for firewire stack
Version 2.0.2:
- Fixed license headers on new files introduced in v2.0.0 to be consistent
with LGPL v2.1.
Version 2.0.1:
- Optimized usage of /dev/fw? nodes based upon user permissions.
- many good bugfixes
Version 2.0.0:
- added support for new firewire subsystem.
- removed deprecated isochronous functions.
Version 1.3.0:
- added raw1394_read_cycle_timer() as used by FFADO project.
- added support for environment variable RAW1394DEV to override default
device node /dev/raw1394.
- added --with-valgrind to configure script.
- other optimizations and bugfixes - see ChangeLog.
Version 1.2.1:
- generate compiler warnings on deprecated functions (legacy isochronous).
- bugfixes and optimizations.
Version 1.2.0:
- added constants useful for ARM: transaction and response return codes.
- added raw1394_bandwidth_modify() and raw1394_channel_modify().
Version 1.1.0:
- added ability to specify the isochronous receive mode in the new
rawiso (raw1394_iso_*) API. Therefore, the signature of
raw1394_iso_recv_init() changed, and likewise, the libtool/.so version
numbers changed to reflect a new interface that is not backwards compatible!
- added raw1394_arm_set_buf() and raw1394_arm_get_buf() functions.
- added raw1394_new_handle_on_port() to make initialization simpler.
- make versioning consistent and updated. 1.0.0 was reported by pkg-config in
0.10 series; hence, 1.1.0 in this release.
- removed outdated, bogus "linking required only" version symbols in
version.c - use pkg-config now.
- dropped libraw1394.m4 - use pkg-config now.
- added RPM spec file.
- deprecate old isochronous API.
- move API comment documentation to header and reformat header comments as
kernel-doc (use linux/scripts/kernel-doc to extract and format them).
- updated tools/dumpiso and tools/sendiso to new isochronous API.
Version 0.10:
- merged in the rawiso branch
- add sendiso and dumpiso tools with man files
- fix wrong error mapping on local transactions in raw1394_errcode_to_errno().
- added comment headers for most exported functions
- merged in weihs branch which brings new functionality including address
range mapping, reading and writing configROM images, additional bus reset
handling, and others.
Version 0.9:
- error reporting reworked to be more C library style; functions affected are
mainly raw1394_read(), raw1394_write(), raw1394_lock;
Source incompatibility! Parts need to be adapted in application code, but
it's well worth it.
- the generation number is not unconditionally updated on bus reset in the event
loop anymore, the new function raw1394_update_generation() has to be used
(unless the default bus reset handler is used) so that transactions won't fail
- iso handlers used to get the iso header quadlet in host endian, now they get
it in big endian like the rest of the packet for consistency
- testlibraw gets installed now, man page also included
- (not yet complete) documentation in Docbook format included
- libraw1394.m4 autoconf macro added
Version 0.8:
- added libraw1394/ieee1394.h with useful defines (especially ack and rcodes)
- function to query isochronous resource manager ID
- functions for isochronous sending
- new raw1394_reset_bus() function to reset the bus
Version 0.7:
- added support for environments where the kernel runs in 64 bit mode whereas
user space runs in 32 bit mode
- fixed lock transaction to actually return the required response; these
functions are actually useful now, prototypes for raw1394_start_lock and
raw1394_lock changed
- a void pointer can now be stored as user data with a handle
Version 0.6:
- FCP monitoring added
- not really libraw1394 news: the subsystem doesn't swap data anymore,
everything is to be kept big endian now on all architectures
Version 0.5:
- there are now separate iso handlers for each channel
Version 0.4:
- isochronous receive support
Version 0.3:
- first release of new libraw1394 for new raw1394 driver
- supports 1394 async reads/writes
- maintainer: Andreas Bombe <>