summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2010-06-21 23:24:35 +0200
committerStefan Richter <stefanr@s5r6.in-berlin.de>2010-07-08 16:52:02 +0200
commit250b2b6dd421c9f8844a867d2ac06e0661e0ad93 (patch)
treeb86719d2c442676a52c6307471c9e278b1bd21f5 /include/linux
parentae948011071c12ff6a328348859c717ea885ed40 (diff)
firewire: cdev: fix fw_cdev_event_bus_reset.bm_node_id
Fix an obscure ABI feature that is a bit of a hassle to implement. However, somebody put it into the ABI, so let's fill in a sensible value there. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/firewire-cdev.h5
-rw-r--r--include/linux/firewire.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h
index 8b9b2737321..d31022b05bd 100644
--- a/include/linux/firewire-cdev.h
+++ b/include/linux/firewire-cdev.h
@@ -66,6 +66,10 @@ struct fw_cdev_event_common {
* This event is sent when the bus the device belongs to goes through a bus
* reset. It provides information about the new bus configuration, such as
* new node ID for this device, new root ID, and others.
+ *
+ * If @bm_node_id is 0xffff right after bus reset it can be reread by an
+ * %FW_CDEV_IOC_GET_INFO ioctl after bus manager selection was finished.
+ * Kernels with ABI version < 4 do not set @bm_node_id.
*/
struct fw_cdev_event_bus_reset {
__u64 closure;
@@ -348,6 +352,7 @@ union fw_cdev_event {
* 3 (2.6.34) - made &fw_cdev_get_cycle_timer reliable
* - added %FW_CDEV_IOC_GET_CYCLE_TIMER2
* 4 (2.6.36) - added %FW_CDEV_EVENT_REQUEST2
+ * - implemented &fw_cdev_event_bus_reset.bm_node_id
*/
#define FW_CDEV_VERSION 3 /* Meaningless; don't use this macro. */
diff --git a/include/linux/firewire.h b/include/linux/firewire.h
index e44b502c834..db30a752a87 100644
--- a/include/linux/firewire.h
+++ b/include/linux/firewire.h
@@ -119,6 +119,7 @@ struct fw_card {
int bm_retries;
int bm_generation;
__be32 bm_transaction_data[2];
+ int bm_node_id;
bool bm_abdicate;
bool priority_budget_implemented; /* controller feature */