[alsa-devel] [RFC v2][PATCH 00/11] digi00x: new driver for Digidesign 002/003 family

Takashi Sakamoto o-takashi at sakamocchi.jp
Sun Mar 29 17:05:20 CEST 2015


This patchset is revised version of my previous set.

[alsa-devel] [RFC][PATCH 00/11] digi00x: new driver for Digidesign 002/003 family
http://mailman.alsa-project.org/pipermail/alsa-devel/2015-March/089141.html

Improvements from the previous set:
 * improve double-oh-three (DOT) application
 * extend hwdep interface for asynchronous messaging
 * limit sampling rate for PCM substream when clock source is external or
   any PCM substreams are running
 * support s16 samples for PCM playback

In this time, I test PCM functionality with my test programs. As a result,
I can confirm that S/PDIF and ADAT output from my Digi 002 Rack includes
expected PCM samples as my programs generates. I think we can judge the
implementation of DOT is proper for Digi 002 rack.

Currently, several issues remains:
 * The port for MIDI machine control message is not tested yet, because
   002/003 console model are required.
 * When allocates 2 or more channel numbers for the device, after 15 to 20
   seconds from playbacking, any PCM samples causes noisy sound. Then, all
   of LED on the front panel light. The streaming still continues correctly.
 * The actual effects of external clock source is not clear. When set the
   clock source is somewhat external, even if stopping the clock source,
   the device continues to sound PCM samples against my expectation.
 * The meaning of asynchronous messages is unknown. This patchset adds
   a functionality to receive it in userspace. You can test it with
   updated libhinawa sample script.
   https://github.com/takaswie/libhinawa

Well, I'll stop my work for this driver in this developing period
(for Linux 4.0), because this work is not in my original plan. I hope any
users test this driver and report the result till Linux 4.2 merge window.
If not, this driver will not be merged into upstream, naturally.

I prepare for DKMS package to test this patchset. Please use it if needed.
https://github.com/takaswie/snd-firewire-improve

Takashi Sakamoto (11):
  ALSA: digi00x: add skeleton for Digi 002/003 device driver
  ALSA: digi00x: add streaming functionality
  ALSA: digi00x: add proc node for clock status
  ALSA: digi00x: add PCM functionality
  ALSA: digi00x: add MIDI functionality
  ALSA: digi00x: add hwdep interface
  ALSA: digi00x: support unknown asynchronous message
  ALSA: digi00x: support MIDI ports for device control
  ALSA: firewire-lib: allows to implement external MIDI callback function
  ALSA: digi00x: improve MIDI capture/playback
  ALSA: digi00x: apply double-oh-three algorithm to multiplex PCM samples

 include/uapi/sound/asound.h               |   3 +-
 include/uapi/sound/firewire.h             |   8 +
 sound/firewire/Kconfig                    |  10 +
 sound/firewire/Makefile                   |   1 +
 sound/firewire/amdtp.c                    |  30 ++-
 sound/firewire/amdtp.h                    |   5 +
 sound/firewire/digi00x/Makefile           |   3 +
 sound/firewire/digi00x/digi00x-hwdep.c    | 200 +++++++++++++++
 sound/firewire/digi00x/digi00x-midi.c     | 199 +++++++++++++++
 sound/firewire/digi00x/digi00x-pcm.c      | 344 +++++++++++++++++++++++++
 sound/firewire/digi00x/digi00x-proc.c     |  86 +++++++
 sound/firewire/digi00x/digi00x-protocol.c | 406 ++++++++++++++++++++++++++++++
 sound/firewire/digi00x/digi00x-stream.c   | 393 +++++++++++++++++++++++++++++
 sound/firewire/digi00x/digi00x.c          | 179 +++++++++++++
 sound/firewire/digi00x/digi00x.h          | 167 ++++++++++++
 15 files changed, 2026 insertions(+), 8 deletions(-)
 create mode 100644 sound/firewire/digi00x/Makefile
 create mode 100644 sound/firewire/digi00x/digi00x-hwdep.c
 create mode 100644 sound/firewire/digi00x/digi00x-midi.c
 create mode 100644 sound/firewire/digi00x/digi00x-pcm.c
 create mode 100644 sound/firewire/digi00x/digi00x-proc.c
 create mode 100644 sound/firewire/digi00x/digi00x-protocol.c
 create mode 100644 sound/firewire/digi00x/digi00x-stream.c
 create mode 100644 sound/firewire/digi00x/digi00x.c
 create mode 100644 sound/firewire/digi00x/digi00x.h

-- 
2.1.0



More information about the Alsa-devel mailing list