Hi,
My former patchset adds support for Fireface 800 with MIDI functionality only[1]. This patchset updates driver with packet streaming functionality. As a result, both of PCM frames/MIDI messages are available.
This patchset is based on my former patch to fix a bug to switch frame fetching mode:
[alsa-devel] [PATCH] ALSA: fireface: fix for state to fetch PCM frames http://mailman.alsa-project.org/pipermail/alsa-devel/2018-December/143150.ht...
Unfortunately, my initial commit of ALSA fireface driver in v4.12 kernel includes bugs to handle tx isochronous packets. When testing this patchset, please apply below patchset in advance:
[alsa-devel] [PATCH 0/3] ALSA: firewire-lib: fixes for processing packets without CIP header http://mailman.alsa-project.org/pipermail/alsa-devel/2018-December/143146.ht...
For testers, a remote branch including overall patches is available in my remote repository in github.com[2]. They can be backport to Linux kernel v4.17 or later.
I note that this driver can generate hissing noise long-periodically as I reported for Fireface 400[3]. The cause is not cleared yet.
[1] http://mailman.alsa-project.org/pipermail/alsa-devel/2018-December/142826.ht... [2] https://github.com/takaswie/snd-firewire-improve/tree/topic/ff800-pcm [3] http://mailman.alsa-project.org/pipermail/alsa-devel/2015-December/102261.ht...
Takashi Sakamoto (5): ALSA: fireface: share helper function to switch fetching mode ALSA: fireface: code refactoring to handle multiplier mode ALSA: fireface: allocate isochronous resources in mode-specific implementation ALSA: fireface: add support for packet streaming on Fireface 800 ALSA: fireface: code refactoring to handle model-specific registers
sound/firewire/fireface/ff-pcm.c | 33 ++++-- sound/firewire/fireface/ff-protocol-ff400.c | 81 +++++++------ sound/firewire/fireface/ff-protocol-ff800.c | 116 ++++++++++++++++++ sound/firewire/fireface/ff-stream.c | 124 +++++++++++--------- sound/firewire/fireface/ff-transaction.c | 4 +- sound/firewire/fireface/ff.c | 37 +++--- sound/firewire/fireface/ff.h | 21 ++-- 7 files changed, 283 insertions(+), 133 deletions(-)