Hi,
ALSA IEC 61883-1/6 packet streaming engine controls OHCI 1394 controller to generate hardware IRQ for fixed number (=16) of isoc packets. Additionally, the size of packet buffer is fixed for triple of interval of hardware IRQ (=48).
This commit allows ALSA PCM applications to configure these parameters by ALSA PCM interface. As a result, the size of PCM period is available in the range between 125 usec and 64 msec (or 32 msec). The hardware IRQ is scheduled for isoc packet which includes event across PCM period boundary.
Takashi Sakamoto (12): ALSA: firewire-lib: use variable size of queue for isoc packets instead of fixed size ALSA: bebob: share PCM buffer size for both direction ALSA: fireworks: share PCM buffer size for both direction ALSA: oxfw: share PCM buffer size for both direction ALSA: dice: share PCM buffer size for both direction ALSA: firewire-digi00x: share PCM buffer size for both direction ALSA: firewire-tascam: share PCM buffer size for both direction ALSA: firewire-motu: share PCM buffer size for both direction ALSA: fireface: share PCM buffer size for both direction ALSA: firewire-lib: schedule hardware IRQ according to the size of PCM period ALSA: firewire-lib: tune the maximum available size of PCM period ALSA: firewire-lib: tune the minimum available size of PCM period
sound/firewire/amdtp-stream.c | 154 ++++++++++++++------ sound/firewire/amdtp-stream.h | 9 +- sound/firewire/bebob/bebob.h | 3 +- sound/firewire/bebob/bebob_midi.c | 2 +- sound/firewire/bebob/bebob_pcm.c | 12 +- sound/firewire/bebob/bebob_stream.c | 5 +- sound/firewire/dice/dice-midi.c | 2 +- sound/firewire/dice/dice-pcm.c | 20 ++- sound/firewire/dice/dice-stream.c | 5 +- sound/firewire/dice/dice.h | 3 +- sound/firewire/digi00x/digi00x-midi.c | 2 +- sound/firewire/digi00x/digi00x-pcm.c | 12 +- sound/firewire/digi00x/digi00x-stream.c | 5 +- sound/firewire/digi00x/digi00x.h | 3 +- sound/firewire/fireface/ff-pcm.c | 13 +- sound/firewire/fireface/ff-stream.c | 5 +- sound/firewire/fireface/ff.h | 3 +- sound/firewire/fireworks/fireworks.h | 3 +- sound/firewire/fireworks/fireworks_midi.c | 2 +- sound/firewire/fireworks/fireworks_pcm.c | 12 +- sound/firewire/fireworks/fireworks_stream.c | 5 +- sound/firewire/motu/motu-midi.c | 2 +- sound/firewire/motu/motu-pcm.c | 12 +- sound/firewire/motu/motu-stream.c | 5 +- sound/firewire/motu/motu.h | 3 +- sound/firewire/oxfw/oxfw-midi.c | 4 +- sound/firewire/oxfw/oxfw-pcm.c | 17 ++- sound/firewire/oxfw/oxfw-stream.c | 5 +- sound/firewire/oxfw/oxfw.h | 3 +- sound/firewire/tascam/tascam-pcm.c | 12 +- sound/firewire/tascam/tascam-stream.c | 5 +- sound/firewire/tascam/tascam.h | 3 +- 32 files changed, 266 insertions(+), 85 deletions(-)