[alsa-devel] [RFC v3] [PATCH 00/52] Enhancement for support of firewire devices

Takashi Sakamoto o-takashi at sakamocchi.jp
Tue Feb 25 04:41:20 CET 2014


Hi Jay,

> The RFC v3 patches.

BeBoB/OXFW driver in RFCv3 includes some bugs.

Please use latest patches:
  https://github.com/takaswie/sound
Or backport package for Linux 3.11/12/13.
  https://github.com/takaswie/snd-firewire-improve

 >> 1. PreSonus Inspire1394
 > [hack at precision ~]$ cat /proc/asound/card3/#formation
 > [hack at precision ~]$ cat /proc/asound/card3/#clock
 > [hack at precision ~]$ cat /proc/asound/card3/#firmware

OK. I can confirm BeBoB driver detect inspire1394 correctly.

 > [hack at precision ~]$ arecord --verbose -D plughw:3 /tmp/test.wav
 > [hack at precision ~]$ aplay --verbose -D plughw:3

It looks good.

I guess:
  - BeBoB driver in RFCv3 has a bug in access by several processes:
http://sourceforge.net/mailarchive/message.php?msg_id=31924100
  - When PulseAudio was installed your system, PulseAudio generate much 
access to detect inspire1394.
  - As a result, BeBoB driver works badly, often hungs your system.

>> 2. FireWave
> [hack at precision ~]$ cat /proc/asound/cards
> [hack at precision ~]$ hexdump -C /sys/bus/firewire/devices/fw3/config_rom

For 'struct snd_card.shortname', OXFW driver pick up model name from 
config_rom. In this case, the model name is 26 bytes (Griffin FireWave 
Surround). But OXFW driver keeps char[24] (char model[32] in 
name_card()). So the name is split.

I pushed fix for this issue:
https://github.com/takaswie/snd-firewire-improve/commit/cf4cec651de539e5debb2da274cee30a3847004d

But this long model name also affects 'struct snd_card.longname' 
(Griffin Technology Griffin FireWave Surrou (OXFW970 0104), GUID 
001292060052048). This shold have been 'Griffin Technology Griffin 
FireWave Surround (OXFW970 0104), GUID 001292060052048 at fw1,0. S400'. 
I'm under consideration about how to fix this...

> [hack at precision ~]$ cat /proc/asound/card2/#formation
> [hack at precision ~]$ aplay --verbose -D plughw:2
> /usr/share/sounds/alsa/Noise.wav
> Playing WAVE '/usr/share/sounds/alsa/Noise.wav' : Signed 16 bit Little
> Endian, Rate 48000 Hz, Mono
> aplay: set_params:1297: Unable to install hw params:
> ACCESS:  RW_INTERLEAVED
> FORMAT:  S16_LE
> SUBFORMAT:  STD
> SAMPLE_BITS: 16
> FRAME_BITS: 16
> CHANNELS: 1
> RATE: 48000
> PERIOD_TIME: 125000
> PERIOD_SIZE: 6000
> PERIOD_BYTES: 12000
> PERIODS: 4
> BUFFER_TIME: 500000
> BUFFER_SIZE: 24000
> BUFFER_BYTES: 48000
> TICK_TIME: 0

This is a bug of OXFW driver in RFCv3. I already fix this.

 > Let me know if there is any other information you need.

I want you to test latest patches with FireWave to check regression.


Thank you

Takashi Sakamoto
o-takashi at sakamocchi.jp



More information about the Alsa-devel mailing list