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>
Цей коміт міститься в:
@@ -230,11 +230,6 @@ struct fw_card {
|
||||
u8 color; /* must be u8 to match the definition in struct fw_node */
|
||||
int gap_count;
|
||||
bool beta_repeaters_present;
|
||||
/*
|
||||
* Set if the local device is the IRM and the broadcast channel
|
||||
* was allocated.
|
||||
*/
|
||||
bool is_irm;
|
||||
|
||||
int index;
|
||||
|
||||
@@ -245,6 +240,7 @@ struct fw_card {
|
||||
int bm_retries;
|
||||
int bm_generation;
|
||||
|
||||
bool broadcast_channel_allocated;
|
||||
u32 broadcast_channel;
|
||||
u32 topology_map[(CSR_TOPOLOGY_MAP_END - CSR_TOPOLOGY_MAP) / 4];
|
||||
};
|
||||
|
Посилання в новій задачі
Заблокувати користувача