parent
59efcebafb
commit
59659a8e6c
@ -0,0 +1,96 @@
|
|||||||
|
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
|
Loading…
Reference in new issue