diff -Naurp libraw1394-2.0.0.orig/src/dispatch.c libraw1394-2.0.0.fix/src/dispatch.c --- libraw1394-2.0.0.orig/src/dispatch.c 2008-12-05 11:37:36.686557198 -0500 +++ libraw1394-2.0.0.fix/src/dispatch.c 2008-12-05 11:38:57.117432534 -0500 @@ -553,10 +553,7 @@ int raw1394_channel_modify (raw1394handl errno = EINVAL; return -1; } - if (handle->is_fw) - return fw_channel_modify(handle, channel, mode); - else - return ieee1394_channel_modify(handle, channel, mode); + return ieee1394_channel_modify(handle, channel, mode); } int raw1394_iso_xmit_init(raw1394handle_t handle, diff -Naurp libraw1394-2.0.0.orig/src/fw.c libraw1394-2.0.0.fix/src/fw.c --- libraw1394-2.0.0.orig/src/fw.c 2008-12-05 11:37:36.689432892 -0500 +++ libraw1394-2.0.0.fix/src/fw.c 2008-12-05 11:39:44.830509943 -0500 @@ -1342,52 +1342,3 @@ fw_bandwidth_modify (raw1394handle_t han return 0; } - -int -fw_channel_modify (raw1394handle_t handle, - unsigned int channel, - enum raw1394_modify_mode mode) -{ - quadlet_t buffer, compare, swap, bit; - nodeaddr_t addr; - int result; - - if (channel >= 64) - return -1; - addr = CSR_REGISTER_BASE + - CSR_CHANNELS_AVAILABLE_HI + 4 * (channel / 32); - /* Read currently available channels from IRM. */ - result = raw1394_read(handle, raw1394_get_irm_id (handle), addr, - sizeof buffer, &buffer); - if (result < 0) - return -1; - - /* IEEE numbers bits from MSB (0) to LSB (31). */ - bit = 1 << (31 - (channel & 31)); - compare = ntohl(buffer); - switch (mode) { - case RAW1394_MODIFY_ALLOC: - if ((compare & bit) == 0) - return -1; - swap = buffer & ~bit; - break; - - case RAW1394_MODIFY_FREE: - if ((buffer & bit) != 0) - return -1; - swap = buffer | bit; - break; - - default: - return -1; - } - - result = raw1394_lock (handle, raw1394_get_irm_id (handle), addr, - RAW1394_EXTCODE_COMPARE_SWAP, - htonl(swap), htonl(compare), &buffer); - - if (result < 0 || ntohl(buffer) != compare) - return -1; - - return 0; -} diff -Naurp libraw1394-2.0.0.orig/src/fw.h libraw1394-2.0.0.fix/src/fw.h --- libraw1394-2.0.0.orig/src/fw.h 2008-07-05 16:16:30.000000000 -0400 +++ libraw1394-2.0.0.fix/src/fw.h 2008-12-05 11:40:02.062495475 -0500 @@ -214,9 +214,6 @@ int fw_get_config_rom(fw_handle_t handle int fw_bandwidth_modify (raw1394handle_t handle, unsigned int bandwidth, enum raw1394_modify_mode mode); -int fw_channel_modify (raw1394handle_t handle, - unsigned int channel, - enum raw1394_modify_mode mode); int fw_iso_xmit_start(raw1394handle_t handle, int start_on_cycle, int prebuffer_packets); diff -Naurp libraw1394-2.0.0.orig/src/raw1394.h libraw1394-2.0.0.fix/src/raw1394.h --- libraw1394-2.0.0.orig/src/raw1394.h 2008-07-06 15:03:31.000000000 -0400 +++ libraw1394-2.0.0.fix/src/raw1394.h 2008-12-05 11:39:23.582432381 -0500 @@ -1203,7 +1203,7 @@ raw1394_bandwidth_modify (raw1394handle_ enum raw1394_modify_mode mode); /** - * raw1394_bandwidth_modify - allocate or release isochronous channel + * raw1394_channel_modify - allocate or release isochronous channel * @handle: a libraw1394 handle * @channel: isochronous channel * @mode: whether to allocate or free