summaryrefslogtreecommitdiff
path: root/drivers/firewire/fw-cdev.c
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2009-01-08 22:07:40 (GMT)
committerStefan Richter <stefanr@s5r6.in-berlin.de>2009-03-24 19:56:46 (GMT)
commit5d9cb7d276a9c465fef5a771792eac2cf1929f2b (patch)
tree46fb54d0e462debe4016830ee1fa9f7292fb511b /drivers/firewire/fw-cdev.c
parent77258da403be4cfce84b6abcdb515ad0bd1f92f1 (diff)
downloadlinux-fsl-qoriq-5d9cb7d276a9c465fef5a771792eac2cf1929f2b.tar.xz
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 b93ad9c..257b0c7 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)
spin_unlock_irq(&client->lock);
if (todo == ISO_RES_ALLOC && channel >= 0)
- r->channels = 1ULL << (63 - channel);
+ r->channels = 1ULL << channel;
if (todo == ISO_RES_REALLOC && success)
goto out;