linux/drivers/firewire
Stefan Richter 872e330e38 firewire: add isochronous multichannel reception
This adds the DMA context programming and userspace ABI for multichannel
reception, i.e. for listening on multiple channel numbers by means of a
single DMA context.

The use case is reception of more streams than there are IR DMA units
offered by the link layer.  This is already implemented by the older
ohci1394 + ieee1394 + raw1394 stack.  And as discussed recently on
linux1394-devel, this feature is occasionally used in practice.

The big drawbacks of this mode are that buffer layout and interrupt
generation necessarily differ from single-channel reception:  Headers
and trailers are not stripped from packets, packets are not aligned with
buffer chunks, interrupts are per buffer chunk, not per packet.

These drawbacks also cause a rather hefty code footprint to support this
rarely used OHCI-1394 feature.  (367 lines added, among them 94 lines of
added userspace ABI documentation.)

This implementation enforces that a multichannel reception context may
only listen to channels to which no single-channel context on the same
link layer is presently listening to.  OHCI-1394 would allow to overlay
single-channel contexts by the multi-channel context, but this would be
a departure from the present first-come-first-served policy of IR
context creation.

The implementation is heavily based on an earlier one by Jay Fenlason.
Thanks Jay.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2010-07-29 23:09:18 +02:00
..
core-card.c firewire: cdev: add PHY packet reception 2010-07-23 13:36:28 +02:00
core-cdev.c firewire: add isochronous multichannel reception 2010-07-29 23:09:18 +02:00
core-device.c firewire: cdev: fix fw_cdev_event_bus_reset emission after local config ROM changes 2010-07-13 09:47:47 +02:00
core-iso.c firewire: add isochronous multichannel reception 2010-07-29 23:09:18 +02:00
core-topology.c firewire: core: fix fw_send_request kerneldoc comment 2010-07-13 09:47:47 +02:00
core-transaction.c firewire: core: fix upper bound of possible CSR allocations 2010-07-23 13:36:28 +02:00
core.h firewire: add isochronous multichannel reception 2010-07-29 23:09:18 +02:00
Kconfig firewire, ieee1394: update Kconfig help 2009-12-29 19:58:17 +01:00
Makefile firewire: net: add Kconfig item, rename driver 2009-06-14 14:26:29 +02:00
net.c firewire: remove an unused function argument 2010-06-20 23:11:55 +02:00
ohci.c firewire: add isochronous multichannel reception 2010-07-29 23:09:18 +02:00
ohci.h firewire: add CSR cmstr support 2010-06-10 08:36:37 +02:00
sbp2.c firewire: remove an unused function argument 2010-06-20 23:11:55 +02:00