diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2008-03-24 15:54:28 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2008-04-18 11:55:36 -0400 |
commit | c9755e14a01987ada4063e8b4c50c2b6738d879e (patch) | |
tree | 41a593c4b9ac10ccc4ad031510438e4551e51b5b /drivers/firewire/fw-topology.h | |
parent | 1dadff71d6356ebb804c3f4f1d3049247e16111c (diff) |
firewire: reread config ROM when device reset the bus
When a device changes its configuration ROM, it announces this with a
bus reset. firewire-core has to check which node initiated a bus reset
and whether any unit directories went away or were added on this node.
Tested with an IOI FWB-IDE01AB which has its link-on bit set if bus
power is available but does not respond to ROM read requests if self
power is off. This implements
- recognition of the units if self power is switched on after fw-core
gave up the initial attempt to read the config ROM,
- shutdown of the units when self power is switched off.
Also tested with a second PC running Linux/ieee1394. When the eth1394
driver is inserted and removed on that node, fw-core now notices the
addition and removal of the IPv4 unit on the ieee1394 node.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/fw-topology.h')
-rw-r--r-- | drivers/firewire/fw-topology.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/firewire/fw-topology.h b/drivers/firewire/fw-topology.h index cedc1ec906e9..addb9f8ea776 100644 --- a/drivers/firewire/fw-topology.h +++ b/drivers/firewire/fw-topology.h | |||
@@ -20,11 +20,12 @@ | |||
20 | #define __fw_topology_h | 20 | #define __fw_topology_h |
21 | 21 | ||
22 | enum { | 22 | enum { |
23 | FW_NODE_CREATED = 0x00, | 23 | FW_NODE_CREATED, |
24 | FW_NODE_UPDATED = 0x01, | 24 | FW_NODE_UPDATED, |
25 | FW_NODE_DESTROYED = 0x02, | 25 | FW_NODE_DESTROYED, |
26 | FW_NODE_LINK_ON = 0x03, | 26 | FW_NODE_LINK_ON, |
27 | FW_NODE_LINK_OFF = 0x04, | 27 | FW_NODE_LINK_OFF, |
28 | FW_NODE_INITIATED_RESET, | ||
28 | }; | 29 | }; |
29 | 30 | ||
30 | struct fw_node { | 31 | struct fw_node { |