aboutsummaryrefslogtreecommitdiff
path: root/drivers/firewire/fw-device.c
diff options
context:
space:
mode:
authorJay Fenlason <fenlason@redhat.com>2009-02-23 15:59:34 -0500
committerStefan Richter <stefanr@s5r6.in-berlin.de>2009-03-24 20:56:49 +0100
commit6104ee92d62ea3638b67494fcf061cb4b9b9d518 (patch)
tree899549d281a47f6aaae7a1645b5cb7d882f8e194 /drivers/firewire/fw-device.c
parentf8c2287c65f8f72000102fc058232669e4540bc4 (diff)
firewire: broadcast channel support
This patch adds the ISO broadcast channel support that is required of a 1394a IRM. In specific, if the local device the IRM, it allocates ISO channel 31 and sets the broadcast channel register of all devices on the local bus to BROADCAST_CHANNEL_INITIAL | BROADCAST_CHANNEL_VALID to indicate that channel 31 can be use for broadcast messages. One minor complication is that on startup the local device may become IRM before all the devices on the bus have been enumerated by the stack. Therefore we have to keep a "the local device is IRM" flag and possibly set the broadcast channel register of new devices at enumeration time. Signed-off-by: Jay Fenlason <fenlason@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/fw-device.c')
-rw-r--r--drivers/firewire/fw-device.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/firewire/fw-device.c b/drivers/firewire/fw-device.c
index 633e44de5d1..a40444e8eb2 100644
--- a/drivers/firewire/fw-device.c
+++ b/drivers/firewire/fw-device.c
@@ -849,6 +849,9 @@ static void fw_device_init(struct work_struct *work)
device->config_rom[3], device->config_rom[4],
1 << device->max_speed);
device->config_rom_retries = 0;
+ if (device->card->is_irm)
+ fw_irm_set_broadcast_channel_register(&device->device,
+ NULL);
}
/*