diff options
author | 2010-06-12 20:34:50 +0200 | |
---|---|---|
committer | 2010-06-19 13:01:41 +0200 | |
commit | c8a94ded57e9cc2498d401b2f5c856213a3e19fb (patch) | |
tree | 8fd6a196ff953270c03700dd682108baf3ee369b /drivers/firewire/core-topology.c | |
parent | firewire: replace get_features card driver hook (diff) | |
download | linux-c8a94ded57e9cc2498d401b2f5c856213a3e19fb.tar.gz linux-c8a94ded57e9cc2498d401b2f5c856213a3e19fb.tar.bz2 linux-c8a94ded57e9cc2498d401b2f5c856213a3e19fb.zip |
firewire: normalize STATE_CLEAR/SET CSR access interface
Push the maintenance of STATE_CLEAR/SET.abdicate down into the card
driver. This way, the read/write_csr_reg driver method works uniformly
across all CSR offsets.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/core-topology.c')
-rw-r--r-- | drivers/firewire/core-topology.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/firewire/core-topology.c b/drivers/firewire/core-topology.c index 3b9667c37b67..56e908ba43f1 100644 --- a/drivers/firewire/core-topology.c +++ b/drivers/firewire/core-topology.c @@ -524,7 +524,7 @@ static void update_topology_map(struct fw_card *card, } void fw_core_handle_bus_reset(struct fw_card *card, int node_id, int generation, - int self_id_count, u32 *self_ids) + int self_id_count, u32 *self_ids, bool bm_abdicate) { struct fw_node *local_node; unsigned long flags; @@ -552,8 +552,7 @@ void fw_core_handle_bus_reset(struct fw_card *card, int node_id, int generation, smp_wmb(); card->generation = generation; card->reset_jiffies = jiffies; - card->bm_abdicate = card->csr_abdicate; - card->csr_abdicate = false; + card->bm_abdicate = bm_abdicate; fw_schedule_bm_work(card, 0); local_node = build_tree(card, self_ids, self_id_count); |