aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firewire/fw-topology.c
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2008-03-24 15:57:12 -0400
committerStefan Richter <stefanr@s5r6.in-berlin.de>2008-04-18 11:55:36 -0400
commit25b1c3d8889f982ebc6c7b996cfc7fa5f1dce533 (patch)
tree1af972dbd20246573115769af3b6baa9d489fdab /drivers/firewire/fw-topology.c
parent2a0a2590498be7b92e3e76409c9b8ee722e23c8f (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.c7
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