diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2008-03-24 15:57:12 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2008-04-18 11:55:36 -0400 |
commit | 25b1c3d8889f982ebc6c7b996cfc7fa5f1dce533 (patch) | |
tree | 1af972dbd20246573115769af3b6baa9d489fdab /drivers/firewire/fw-topology.c | |
parent | 2a0a2590498be7b92e3e76409c9b8ee722e23c8f (diff) |
firewire: fix synchronization of gap counts
Fix: The fact that nodes had different gap counts would be overlooked
if the bus manager code would pick gap count 63 because of beta
repeaters or because of very large hop counts. In this case, the bus
manager code would miss that it actually has to send the PHY config
packet with gap count 63.
Related trivial changes: Use bool for an int used as bool, touch up
some comments.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/fw-topology.c')
-rw-r--r-- | drivers/firewire/fw-topology.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/firewire/fw-topology.c b/drivers/firewire/fw-topology.c index ebdec4c6c689..213b0ff8f3d6 100644 --- a/drivers/firewire/fw-topology.c +++ b/drivers/firewire/fw-topology.c | |||
@@ -290,12 +290,11 @@ static struct fw_node *build_tree(struct fw_card *card, | |||
290 | beta_repeaters_present = true; | 290 | beta_repeaters_present = true; |
291 | 291 | ||
292 | /* | 292 | /* |
293 | * If all PHYs does not report the same gap count | 293 | * If PHYs report different gap counts, set an invalid count |
294 | * setting, we fall back to 63 which will force a gap | 294 | * which will force a gap count reconfiguration and a reset. |
295 | * count reconfiguration and a reset. | ||
296 | */ | 295 | */ |
297 | if (SELF_ID_GAP_COUNT(q) != gap_count) | 296 | if (SELF_ID_GAP_COUNT(q) != gap_count) |
298 | gap_count = 63; | 297 | gap_count = 0; |
299 | 298 | ||
300 | update_hop_count(node); | 299 | update_hop_count(node); |
301 | 300 | ||