libraw1394 Release Notes 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 : - 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 is always using), CLOCK_MONOTONIC, or CLOCK_MONOTONIC_RAW. 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 : - 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 later. - 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