Hi,
In recent work for ALSA PCM core, driver-side implementation for 'struct snd_pcm_ops.ack' is called when appl_ptr in intermediate PCM buffer is changed, except for a case that mapped page frame is used for the buffer and userspace applications doesn't voluntarily notify the change.
In packet-oriented drivers, this callback is useful for the timing to queue packets for data transmission with burstness. If things works well, reduction of latency between PCM frame queueing and actual data transmission. This patchset is for the purpose, additionally including minor code refactoring.
Major use case of ALSA PCM interface is memory mapped I/O and this patchset adds no advantage in this case due to design of the .ack callback, as I described.
Takashi Sakamoto (2): ALSA: firewire: process packets in 'struct snd_pcm_ops.ack' callback ALSA: fireface: constify ALSA specific operations
sound/firewire/amdtp-stream.c | 19 ++++++++++ sound/firewire/amdtp-stream.h | 1 + sound/firewire/bebob/bebob_pcm.c | 16 +++++++++ sound/firewire/dice/dice-pcm.c | 18 ++++++++++ sound/firewire/digi00x/digi00x-pcm.c | 16 +++++++++ sound/firewire/fireface/ff-midi.c | 22 ++++++------ sound/firewire/fireface/ff-pcm.c | 62 +++++++++++++++++++------------- sound/firewire/fireworks/fireworks_pcm.c | 16 +++++++++ sound/firewire/motu/motu-pcm.c | 16 +++++++++ sound/firewire/oxfw/oxfw-pcm.c | 16 +++++++++ sound/firewire/tascam/tascam-pcm.c | 16 +++++++++ 11 files changed, 182 insertions(+), 36 deletions(-)