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-card.c | |
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-card.c')
-rw-r--r-- | drivers/firewire/fw-card.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/firewire/fw-card.c b/drivers/firewire/fw-card.c index 140b34d477de..7e4012db6ad2 100644 --- a/drivers/firewire/fw-card.c +++ b/drivers/firewire/fw-card.c | |||
@@ -331,7 +331,7 @@ fw_card_bm_work(struct work_struct *work) | |||
331 | */ | 331 | */ |
332 | spin_unlock_irqrestore(&card->lock, flags); | 332 | spin_unlock_irqrestore(&card->lock, flags); |
333 | goto out; | 333 | goto out; |
334 | } else if (root_device->config_rom[2] & BIB_CMC) { | 334 | } else if (root_device->cmc) { |
335 | /* | 335 | /* |
336 | * FIXME: I suppose we should set the cmstr bit in the | 336 | * FIXME: I suppose we should set the cmstr bit in the |
337 | * STATE_CLEAR register of this node, as described in | 337 | * STATE_CLEAR register of this node, as described in |