linux/sound/firewire
Takashi Sakamoto dec63cc8b6 ALSA: firewire-lib: handle IT/IR contexts in each software interrupt context
In clause 6.3 of IEC 61883-6:2000, there's an explanation about processing
of presentation timestamp. In the clause, we can see "If a function block
receives a CIP, processes it and subsequently re-transmits it, then the
SYT of the outgoing CIP shall be the sum of the incoming SYT and the
processing delay." ALSA firewire stack has an implementation to partly
satisfy this specification. Developers assumed the stack to perform as an
Audio function block[1].

Following to the assumption, current implementation of ALSA firewire stack
use one software interrupt context to handle both of in/out packets. In
most case, this is processed in 1394 OHCI IR context independently of the
opposite context. Thus, this implementation uses longer CPU time in the
software interrupt context. This is not better for whole system.

Against the assumption, I confirmed that each ASIC for IEC 61883-1/6
doesn't necessarily expect it to the stack. Thus, current implementation
of ALSA firewire stack includes over-engineering.

This commit purges the implementation. As a result, packets of one
direction are handled in one software interrupt context and spends
minimum CPU time.

[1] [alsa-devel] [PATCH 0/8] [RFC] new driver for Echo Audio's Fireworks based devices
http://mailman.alsa-project.org/pipermail/alsa-devel/2013-June/062660.html

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-05-10 17:03:59 +02:00
..
bebob ALSA: bebob: drop reuse of incoming packet parameter for outgoing packet parameter 2016-05-10 17:03:57 +02:00
dice ALSA: dice: add support for M-Audio Profire 610 and perhaps 2626 2016-05-08 11:17:37 +02:00
digi00x ALSA: firewire-digi00x: delayed registration of sound card 2016-03-31 15:36:20 +02:00
fireworks ALSA: fireworks: drop reuse of incoming packet parameter for ougoing packet parameter 2016-05-10 17:03:58 +02:00
oxfw ALSA: oxfw: delayed registration of sound card 2016-03-31 15:36:19 +02:00
tascam ALSA: firewire-tascam: drop reuse of incoming packet parameter for outgoing packet parameter 2016-05-10 17:03:59 +02:00
amdtp-am824.c ALSA: firewire-lib: process_rx_data_blocks() can be static 2015-09-29 16:52:52 +02:00
amdtp-am824.h ALSA: firewire-lib: complete AM824 data block processing layer 2015-09-29 12:51:20 +02:00
amdtp-stream-trace.h ALSA: firewire-lib: add tracepoints to dump a part of isochronous packet data 2016-05-09 15:18:25 +02:00
amdtp-stream.c ALSA: firewire-lib: handle IT/IR contexts in each software interrupt context 2016-05-10 17:03:59 +02:00
amdtp-stream.h ALSA: firewire-lib: handle IT/IR contexts in each software interrupt context 2016-05-10 17:03:59 +02:00
cmp.c ALSA: firewire-lib: fix kerneldoc errors 2014-11-18 18:10:23 +01:00
cmp.h ALSA: firewire-lib: Add a new function to check others' connection 2014-05-26 14:22:46 +02:00
fcp.c ALSA: firewire-lib: rename 'amdtp' to 'amdtp-stream' to prepare for functional separation 2015-09-29 12:47:11 +02:00
fcp.h ALSA: firewire-lib: Add some AV/C general commands 2014-05-26 14:23:13 +02:00
isight.c ALSA: pcm: Add snd_pcm_stop_xrun() helper 2014-11-09 18:20:40 +01:00
iso-resources.c ALSA: firewire-lib: leave unit reference counting completely 2015-03-10 15:27:19 +01:00
iso-resources.h firewire: octlet AT payloads can be stack-allocated 2011-05-10 22:53:44 +02:00
Kconfig ALSA: firewire-tascam: add Kconfig entry for TASCAM FW-1804 2016-03-28 09:39:41 +02:00
lib.c ALSA: firewire-lib: add new function to schedule a work for sound card registration 2016-03-31 15:36:18 +02:00
lib.h ALSA: firewire-lib: add new function to schedule a work for sound card registration 2016-03-31 15:36:18 +02:00
Makefile ALSA: firewire-lib: add tracepoints to dump a part of isochronous packet data 2016-05-09 15:18:25 +02:00
packets-buffer.c sound: Add export.h for THIS_MODULE/EXPORT_SYMBOL where needed 2011-10-31 19:31:22 -04:00
packets-buffer.h