[alsa-devel] Status of ALSA FireWire stack as of Linux 3.19

Takashi Sakamoto o-takashi at sakamocchi.jp
Thu Feb 12 15:20:03 CET 2015


Dear all,

I'm just a developer, not a maintainer of this stack, but often receive
personal messages from users. I think it helpful to explain about its
status and known issues here, as of Linux 3.19.

== Impovements in 3.19 release
 * ALSA FireWire stack gain a thlottle for MIDI data rate. No devices
   can disorder due to MIDI buffer overflow.

http://mailman.alsa-project.org/pipermail/alsa-devel/2014-November/084652.html
 * ALSA Dice driver becomes to handle more models with 176.4/192.0 kHz
   support and both of playback/capture for PCM/MIDI substreams.
 * ALSA firewire-speakers driver was obsoleted by ALSA OXFW driver to
   handles more models based on OXFW 970/971.
 * As a result, ALSA supports approximately 140 FireWire models in
   comparison to Linux 3.15.


== Model dependent issues
There're some reports about model dependent issues.

 * PreSonus FP10 (former known as FirePod)
   * When ALSA BeBoB driver re-establishes connections, this model
     causes hung-up, then reset automatically. The cause is unknown.

 * Terratek PHASE 88 Rack FW
   * https://github.com/takaswie/snd-firewire-improve/issues/8
   * According to a reporter, when ALSA BeBoB driver establishes
     connections according to CMP, this model transfers no packets. The
     cause is unknown.

 * Behringer XENIX UFX 1604
   * http://sourceforge.net/p/ffado/mailman/message/32846563/
   * When ALSA BeBoB driver communicates, this model sometimes misses to
     transfer responses. The cause is unknown but I guess that this
     model expects vendor-specific command.

 * Echo AudioFire 2
   *
http://mailman.alsa-project.org/pipermail/alsa-devel/2014-August/080379.html
   * At least, firmware version 5.7.3 for this model has a quirk about
     AMDTP processing. It's not compliant to this protocol. Even if
     ALSA Fireworks driver communicates successfully, ALSA FireWire
     stack detects protocol error.

 * Weiss engineering DAC 202
   * According to a reporter, when ALSA Dice driver probes this model
     it's trials are ETIMEDOUT at setting sampling rate. The cause is
     unknown.


== Stack and driver issues
There're still some issues about ALSA FireWire stack and drivers. Most
of them are written in my report:
  https://github.com/takaswie/alsa-firewire-report
  * 9.2 A lack of arrangement for severe latency
  * 9.3 A lack of delay for timestamp processing
  * 9.4 A lack of PCM configuration for virtual surround nodes
  * 9.6 A lack of control elements for ALSA control interface
  * 9.7 A lack of packet sorting
  * 9.9 Various results at bus reset
  * 9.10 A lack of synchronizing several devices on the same bus

  * Sometimes kernel oops at disconnecting devices during streaming.
   * I guess three contexts have somewhat race condition:
     * Application process with snd_pcm_prepare()
     * Isochronous context
     * .remove callback by OHCI 1394 host controller driver


== The other issues
 * PulseAudio 6,0 (not released yet) gain multichannel profiles.
     http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/6.0/
   ALSA FireWire sound devices can be available, while in most case the
   display name is the name of OHCI 3194 host controller.
     https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1381475
   I've posted RFC patch to pulseaudio-discuss but I think it better to
   touch hardware database which systemd produces.

http://lists.freedesktop.org/archives/pulseaudio-discuss/2015-January/022945.html


== My plan for 3.21 release
 * Some userspace library is under development for developers of mixer
   application.
   * libhinawa

http://mailman.alsa-project.org/pipermail/alsa-devel/2015-January/086969.html
   * alsa-gir
     https://github.com/takaswie/alsa-gir

 * An offload of control functionality from ALSA OXFW driver to
   userspace
   * Currently ALSA OXFW driver includes control functionality in
     kernel side, while this can be implemented in userspace. This
     functionaliy utilizes certailn commands which the other drivers
     can use for the same purpose.
   * Need to discuss about it, later.

 * ALSA BeBoB driver improvement
   * ALSA BeBoB driver's bootup command for M-Audio models depends on
     little-endiannness machine. I need more time to prepare for
     big-endianness machine to test my patch for this issue.
   * Some models expect BridgeCo.-specific command to change sampling
     rate. Currently ALSA BeBoB driver uses commands in AV/C general
     specification. Let's start to replace these comands.


Regards

Takashi Sakamoto


More information about the Alsa-devel mailing list