git: 23ea903f6801 - main - firewire: force root change when root node is not cycle master capable
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 20 Jul 2026 22:50:20 UTC
The branch main has been updated by adrian:
URL: https://cgit.FreeBSD.org/src/commit/?id=23ea903f68017f781ff579325caa01c928612d57
commit 23ea903f68017f781ff579325caa01c928612d57
Author: Abdelkader Boudih <freebsd@seuros.com>
AuthorDate: 2026-07-20 22:47:49 +0000
Commit: Adrian Chadd <adrian@FreeBSD.org>
CommitDate: 2026-07-20 22:47:58 +0000
firewire: force root change when root node is not cycle master capable
When a FireWire bus resets, all devices negotiate who is the new boss.
when we detect the root node can't be cycle master,
we send a PHY config packet that forces a reelection.
Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D58309
---
sys/dev/firewire/firewire.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/sys/dev/firewire/firewire.c b/sys/dev/firewire/firewire.c
index cc0cf9e5b7ad..1020aff31929 100644
--- a/sys/dev/firewire/firewire.c
+++ b/sys/dev/firewire/firewire.c
@@ -2491,9 +2491,10 @@ fw_bmr(struct firewire_comm *fc)
cmstr = fc->max_node;
else {
device_printf(fc->bdev,
- "root node is not cycle master capable\n");
- /* TODO: issue PHY config to force root change + bus reset */
- cmstr = fc->nodeid;
+ "root node is not cycle master capable, "
+ "forcing root to node %d\n", fc->nodeid);
+ fw_phy_config(fc, fc->nodeid, -1);
+ return 0;
}
} else
cmstr = -1;