diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2009-03-10 16:09:28 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2009-03-24 15:56:52 -0400 |
commit | 7889b60ee71eafaf50699a154a2455424bb92daa (patch) | |
tree | d5bb3a4d274bf186e32605284a34a36398475818 /drivers/firewire/fw-transaction.h | |
parent | cbae787c0f288c3ad385ad4165ae30b5500a1f23 (diff) |
firewire: core: optimize propagation of BROADCAST_CHANNEL
Cache the test result of whether a device implements BROADCAST_CHANNEL.
This minimizes traffic on the bus after each bus reset. A majority of
devices does not implement BROADCAST_CHANNEL.
Remove busy retries; just rely on the hardware to retry requests to busy
responders. Remove unnecessary log messages.
Rename the flag is_irm to broadcast_channel_allocated to better reflect
its meaning. Reset the flag earlier in fw_core_handle_bus_reset.
Pass the generation down as a call parameter; that way generation can't
be newer than card->broadcast_channel_allocated and device->node_id.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/fw-transaction.h')
-rw-r--r-- | drivers/firewire/fw-transaction.h | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/firewire/fw-transaction.h b/drivers/firewire/fw-transaction.h index d4f42cecbdfa..dfa799068f89 100644 --- a/drivers/firewire/fw-transaction.h +++ b/drivers/firewire/fw-transaction.h | |||
@@ -230,11 +230,6 @@ struct fw_card { | |||
230 | u8 color; /* must be u8 to match the definition in struct fw_node */ | 230 | u8 color; /* must be u8 to match the definition in struct fw_node */ |
231 | int gap_count; | 231 | int gap_count; |
232 | bool beta_repeaters_present; | 232 | bool beta_repeaters_present; |
233 | /* | ||
234 | * Set if the local device is the IRM and the broadcast channel | ||
235 | * was allocated. | ||
236 | */ | ||
237 | bool is_irm; | ||
238 | 233 | ||
239 | int index; | 234 | int index; |
240 | 235 | ||
@@ -245,6 +240,7 @@ struct fw_card { | |||
245 | int bm_retries; | 240 | int bm_retries; |
246 | int bm_generation; | 241 | int bm_generation; |
247 | 242 | ||
243 | bool broadcast_channel_allocated; | ||
248 | u32 broadcast_channel; | 244 | u32 broadcast_channel; |
249 | u32 topology_map[(CSR_TOPOLOGY_MAP_END - CSR_TOPOLOGY_MAP) / 4]; | 245 | u32 topology_map[(CSR_TOPOLOGY_MAP_END - CSR_TOPOLOGY_MAP) / 4]; |
250 | }; | 246 | }; |