aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/firewire-cdev.h
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 /include/linux/firewire-cdev.h
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 'include/linux/firewire-cdev.h')
-rw-r--r--include/linux/firewire-cdev.h10
1 files changed, 4 insertions, 6 deletions
diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h
index 6ed9127680fd..2e35379bf96c 100644
--- a/include/linux/firewire-cdev.h
+++ b/include/linux/firewire-cdev.h
@@ -174,8 +174,6 @@ struct fw_cdev_event_iso_interrupt {
174 * @handle: Reference by which an allocated resource can be deallocated 174 * @handle: Reference by which an allocated resource can be deallocated
175 * @channel: Isochronous channel which was (de)allocated, if any 175 * @channel: Isochronous channel which was (de)allocated, if any
176 * @bandwidth: Bandwidth allocation units which were (de)allocated, if any 176 * @bandwidth: Bandwidth allocation units which were (de)allocated, if any
177 * @channels_available: Last known availability of channels
178 * @bandwidth_available: Last known availability of bandwidth
179 * 177 *
180 * An %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED event is sent after an isochronous 178 * An %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED event is sent after an isochronous
181 * resource was allocated at the IRM. The client has to check @channel and 179 * resource was allocated at the IRM. The client has to check @channel and
@@ -580,7 +578,7 @@ struct fw_cdev_get_cycle_timer {
580 * 578 *
581 * The %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE ioctl works like 579 * The %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE ioctl works like
582 * %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE except that resources are freed 580 * %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE except that resources are freed
583 * instead of allocated. At most one channel may be specified in this ioctl. 581 * instead of allocated.
584 * An %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event concludes this operation. 582 * An %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event concludes this operation.
585 * 583 *
586 * To summarize, %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE allocates iso resources 584 * To summarize, %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE allocates iso resources
@@ -588,9 +586,9 @@ struct fw_cdev_get_cycle_timer {
588 * In contrast, %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE allocates iso resources 586 * In contrast, %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE allocates iso resources
589 * for the duration of a bus generation. 587 * for the duration of a bus generation.
590 * 588 *
591 * @channels is a host-endian bitfield with the most significant bit 589 * @channels is a host-endian bitfield with the least significant bit
592 * representing channel 0 and the least significant bit representing channel 63: 590 * representing channel 0 and the most significant bit representing channel 63:
593 * 1ULL << (63 - c) 591 * 1ULL << c for each channel c that is a candidate for (de)allocation.
594 * 592 *
595 * @bandwidth is expressed in bandwidth allocation units, i.e. the time to send 593 * @bandwidth is expressed in bandwidth allocation units, i.e. the time to send
596 * one quadlet of data (payload or header data) at speed S1600. 594 * one quadlet of data (payload or header data) at speed S1600.