aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firewire/fw-cdev.c
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2009-01-08 17:07:40 -0500
committerStefan Richter <stefanr@s5r6.in-berlin.de>2009-03-24 15:56:46 -0400
commit5d9cb7d276a9c465fef5a771792eac2cf1929f2b (patch)
tree46fb54d0e462debe4016830ee1fa9f7292fb511b /drivers/firewire/fw-cdev.c
parent77258da403be4cfce84b6abcdb515ad0bd1f92f1 (diff)
firewire: cdev: add ioctls for iso resource management, amendment
Some fixes: - Remove stale documentation. - Fix a != vs. == thinko that got in the way of channel management. - Try bandwidth deallocation even if channel deallocation failed. A simplification: - fw_cdev_allocate_iso_resource.channels is now ordered like libdc1394's dc1394_iso_allocate_channel() channels_allowed argument. By the way, I looked closer at cards from NEC, TI, and VIA, and noticed that they all don't implement IEEE 1394a behaviour which is meant to deviate from IEEE 1212's notion of lock compare-swap. This means that we have to do two lock transactions instead of one in many cases where one transaction would already succeed on a fully 1394a compliant IRM. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/fw-cdev.c')
-rw-r--r--drivers/firewire/fw-cdev.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/firewire/fw-cdev.c b/drivers/firewire/fw-cdev.c
index b93ad9c0a0d0..257b0c709a8b 100644
--- a/drivers/firewire/fw-cdev.c
+++ b/drivers/firewire/fw-cdev.c
@@ -1082,7 +1082,7 @@ static void iso_resource_work(struct work_struct *work)
1082 spin_unlock_irq(&client->lock); 1082 spin_unlock_irq(&client->lock);
1083 1083
1084 if (todo == ISO_RES_ALLOC && channel >= 0) 1084 if (todo == ISO_RES_ALLOC && channel >= 0)
1085 r->channels = 1ULL << (63 - channel); 1085 r->channels = 1ULL << channel;
1086 1086
1087 if (todo == ISO_RES_REALLOC && success) 1087 if (todo == ISO_RES_REALLOC && success)
1088 goto out; 1088 goto out;