This 14 patchset is to enable ALSA Dice driver to handle more models with some functionalities: - up to 192.0 kHz - PCM capture - MIDI playback/capture - Duplex streams with synchronization (with snd-firewire-lib)
This driver doesn't support: - Synchronization between multiple devices on the same bus For this purpose, please join in user-space driver project (FFADO) - Any control functionality for internal DSP For this purpose, please use ffado-dbus-server/ffado-mixer, or write your own application
Remarks: - When this driver is loaded, user-space driver fails to register notification address, thus cannot handle device for streaming. See: http://mailman.alsa-project.org/pipermail/alsa-devel/2014-September/081731.h...
Newly supported models (as long as I know): Supported devices: TC Electronic Desktop Konnekt 6 Impact Twin Konnekt 8/24D/Live Studio Konnekt 48 PreSonus FireStudio 26x26/Mobile/Project/Tube/LightPipe StudioLive 1602/1642/2442 FireStation Mackie Onyx Blackbird Onyx i-series (latter models) Focusrite Saffire Pro 14/24/24 DSP/26/40/56 M-Audio Profire 610/2626 Alessis IO 24/26 MultiMix 12/16 Weiss ADC2 Vesta Mineva AFI 1 TAG DAC 1 INT 202 DAC 202 Flex 5000 DnR Axus FireWire I/O card 16x16 Lexicon I-ONIX FW 810S Allen and Heath Zed R16 Midas Venice F32
Updates from my previous RFC: http://mailman.alsa-project.org/pipermail/alsa-devel/2014-September/081673.h... - Improve bus reset handling, especially for registering notification address At bus reset, Dice devices initialize a register for notification address, then drivers need to register the address again. Just after powering on, devices generates any bus reset, then drivers often fail to detect stream formation because this operation requires to change sampling rate. My improvement is retries to register notification address when notification wait is timed out. - Remove experimental state - Fix minor bugs
Takashi Sakamoto (14): ALSA: dice: Rename structure and its members ALSA: dice: Move file to its own directory ALSA: dice: Split transaction functionality into a file ALSA: dice: Split stream functionality into a file ALSA: dice: Split PCM functionality into a file ALSA: dice: Split hwdep functionality into a file ALSA: dice: Split proc functionality into a file ALSA: dice: Add new functions for restriction of PCM parameters ALSA: dice: Change the way to start stream ALSA: dice: Add support for duplex streams with synchronization ALSA: dice: Support for non SYT-Match sampling clock source mode ALSA: dice: Add support for PCM capture ALSA: dice: Add support for MIDI capture/playback ALSA: dice: remove experimental state
sound/firewire/Kconfig | 7 +- sound/firewire/Makefile | 3 +- sound/firewire/dice.c | 1511 ---------------------------- sound/firewire/dice/Makefile | 3 + sound/firewire/dice/dice-hwdep.c | 190 ++++ sound/firewire/{ => dice}/dice-interface.h | 0 sound/firewire/dice/dice-midi.c | 176 ++++ sound/firewire/dice/dice-pcm.c | 404 ++++++++ sound/firewire/dice/dice-proc.c | 252 +++++ sound/firewire/dice/dice-stream.c | 424 ++++++++ sound/firewire/dice/dice-transaction.c | 380 +++++++ sound/firewire/dice/dice.c | 359 +++++++ sound/firewire/dice/dice.h | 189 ++++ 13 files changed, 2380 insertions(+), 1518 deletions(-) delete mode 100644 sound/firewire/dice.c create mode 100644 sound/firewire/dice/Makefile create mode 100644 sound/firewire/dice/dice-hwdep.c rename sound/firewire/{ => dice}/dice-interface.h (100%) create mode 100644 sound/firewire/dice/dice-midi.c create mode 100644 sound/firewire/dice/dice-pcm.c create mode 100644 sound/firewire/dice/dice-proc.c create mode 100644 sound/firewire/dice/dice-stream.c create mode 100644 sound/firewire/dice/dice-transaction.c create mode 100644 sound/firewire/dice/dice.c create mode 100644 sound/firewire/dice/dice.h