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

Jay Fenlason fenlason at redhat.com
Mon Feb 24 18:28:47 CET 2014


On Sat, Feb 22, 2014 at 11:34:27AM +0900, Takashi Sakamoto wrote:
> Hi Jay,
> 
> Thanks for your testing.
> 
> But I  cannot respond to your bugs without enough information.
> 
> Please inform me what you tested. My RFC v3 patches or my repository
> in github? If my repository in github, please show me HEAD in your
> local repository.

The RFC v3 patches.

> Additionally, please send me:
> 
> 1. PreSonus Inspire1394
>  $ cat /proc/asound/cardX/#formation

[hack at precision ~]$ cat /proc/asound/card3/#formation 
Output Stream from device:
	Rate	PCM	MIDI
	22050	0	0
	24000	0	0
	32000	0	0
	44100	4	0
	48000	4	0
	88200	4	0
	96000	4	0
	176400	0	0
	192000	0	0
Input Stream to device:
	Rate	PCM	MIDI
	22050	0	0
	24000	0	0
	32000	0	0
	44100	2	0
	48000	2	0
	88200	2	0
	96000	2	0
	176400	0	0
	192000	0	0

>  $ cat /proc/asound/cardX/#clock

[hack at precision ~]$ cat /proc/asound/card3/#clock 
Sampling rate: 44100
Clock Source: Internal (MSU-dest: 3)

>  $ cat /proc/asound/cardX/#firmware

[hack at precision ~]$ cat /proc/asound/card3/#firmware 
Manufacturer:	bridgeCo
Protocol Ver:	1
Build Ver:	0
GUID:		0x000A9200E6120698
Model ID:	0x9C
Model Rev:	1
Firmware Date:	20050902
Firmware Time:	182323
Firmware ID:	0x10001
Firmware Ver:	16777215
Base Addr:	0x20080000
Max Size:	1572864
Loader Date:	20050902
Loader Time:	174321

>  $ aplay --verbose -D plughw:X /usr/share/sounds/alsa/Noise.wav

[hack at precision ~]$ aplay --verbose -D plughw:3
/usr/share/sounds/alsa/Noise.wav 
Playing WAVE '/usr/share/sounds/alsa/Noise.wav' : Signed 16 bit Little
Endian, Rate 48000 Hz, Mono
Plug PCM: Route conversion PCM (sformat=S16_LE)
  Transformation table:
    0 <- 0
    1 <- 0
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 1
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24000
  period_size  : 6000
  period_time  : 125000
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 6000
  period_event : 0
  start_threshold  : 24000
  stop_threshold   : 24000
  silence_threshold: 0
  silence_size : 0
  boundary     : 6755399441055744000
Slave: Hardware PCM card 3 'Inspire1394' device 0 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : MMAP_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24000
  period_size  : 6000
  period_time  : 125000
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 6000
  period_event : 0
  start_threshold  : 24000
  stop_threshold   : 24000
  silence_threshold: 0
  silence_size : 0
  boundary     : 6755399441055744000
  appl_ptr     : 0
  hw_ptr       : 0

>  $ arecord --verbose -D plughw:X /tmp/test.wav

[hack at precision ~]$ arecord --verbose -D plughw:3 /tmp/test.wav
Recording WAVE '/tmp/test.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono
Plug PCM: Rate conversion PCM (48000, sformat=U8)
Converter: linear-interpolation
Protocol version: 10002
Its setup is:
  stream       : CAPTURE
  access       : RW_INTERLEAVED
  format       : U8
  subformat    : STD
  channels     : 1
  rate         : 8000
  exact rate   : 8000 (8000/1)
  msbits       : 8
  buffer_size  : 1365
  period_size  : 341
  period_time  : 42666
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 341
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 1365
  silence_threshold: 0
  silence_size : 0
  boundary     : 768426686420090880
Slave: Route conversion PCM (sformat=S32_LE)
  Transformation table:
    0 <- 0*0.25 + 1*0.25 + 2*0.25 + 3*0.25
Its setup is:
  stream       : CAPTURE
  access       : MMAP_INTERLEAVED
  format       : U8
  subformat    : STD
  channels     : 1
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 8
  buffer_size  : 8192
  period_size  : 2048
  period_time  : 42666
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 2048
  period_event : 0
  start_threshold  : 6
  stop_threshold   : 8192
  silence_threshold: 0
  silence_size : 0
  boundary     : 4611686018427387904
Slave: Hardware PCM card 3 'Inspire1394' device 0 subdevice 0
Its setup is:
  stream       : CAPTURE
  access       : MMAP_INTERLEAVED
  format       : S32_LE
  subformat    : STD
  channels     : 4
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 24
  buffer_size  : 8192
  period_size  : 2048
  period_time  : 42666
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 2048
  period_event : 0
  start_threshold  : 6
  stop_threshold   : 8192
  silence_threshold: 0
  silence_size : 0
  boundary     : 4611686018427387904
  appl_ptr     : 0
  hw_ptr       : 0
^CAborted by signal Interrupt...
arecord: pcm_read:2031: read error: Interrupted system call

>  ('X' should be for inspire1394.)
> 
> 2. FireWave
>  $ cat /proc/asound/cards

[hack at precision ~]$ cat /proc/asound/cards
 0 [ICH5           ]: ICH4 - Intel ICH5
                      Intel ICH5 with AD1981B at irq 17
 1 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                      HDA ATI HDMI at 0xf0710000 irq 89
 2 [Surrou         ]: FireWave - Griffin FireWave Surrou
                      Griffin Technology Griffin FireWave Surrou
(OXFW970 0104), GUID 001292060052048
 3 [Inspire1394    ]: BeBoB - Inspire1394
                      Presonus Inspire1394 (id:156, rev:1), GUID
000a9200e6120698 at fw2.0, S400

>  $ cat /proc/asound/cardY/#formation

[hack at precision ~]$ cat /proc/asound/card2/#formation
Output Stream from device:
	Rate	PCM	MIDI
	32000	0	0
	44100	0	0
	48000	0	0
	88200	0	0
	96000	0	0
	176400	0	0
	192000	0	0
Input Stream to device:
	Rate	PCM	MIDI
	32000	6	0
	44100	6	0
	48000	2	0
	88200	0	0
	96000	2	0
	176400	0	0
	192000	0	0

>  $ cat /proc/asound/cardY/#clock

[hack at precision ~]$ cat /proc/asound/card2/#clock
[hack at precision ~]$ 
>  $ aplay --verbose -D plughw:Y /usr/share/sounds/alsa/Noise.wav
> ('Y' should be for FireWave.)

[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

> And I need dump of config_rom for FireWave.
>  $ hexdump -C /sys/bus/firewire/devices/fwZ/config_rom
> ('Z' should be 1 or 2 for FireWave.)

I'm including the hexdump for the Inspire1394 here and a decoded
version of the FireWave's config rom (as reported by my fwhack tool)

[hack at precision ~]$ echo /dev/fw*
/dev/fw0 /dev/fw1 /dev/fw2 /dev/fw3
[hack at precision ~]$ hexdump -C /sys/bus/firewire/devices/fw3/config_rom
00000000  a8 06 27 04 34 39 33 31  03 50 ff 20 06 92 12 00  |..'.4931.P. ....|
00000010  81 04 52 00 9a 54 06 00  92 12 00 03 0a 00 00 81  |..R..T..........|
00000020  70 f9 00 17 10 00 00 81  c0 83 00 0c 01 00 00 d1  |p...............|
00000030  bd ba 04 00 2d a0 00 12  01 00 01 13 70 f9 00 17  |....-.......p...|
00000040  0e 00 00 81 1e 89 07 00  00 00 00 00 00 00 00 00  |................|
00000050  66 69 72 47 20 6e 69 66  68 63 65 54 6f 6c 6f 6e  |firG nifhceTolon|
00000060  00 00 79 67 2b 0c 04 00  00 00 00 00 00 00 00 00  |..yg+...........|
00000070  65 72 69 46 65 76 61 57  1a 90 09 00 00 00 00 00  |eriFevaW........|
00000080  00 00 00 00 66 69 72 47  20 6e 69 66 65 72 69 46  |....firG niferiF|
00000090  65 76 61 57 72 75 53 20  6e 75 6f 72 00 00 00 64  |evaWruS nuor...d|
000000a0
[hack at precision ~]$ hexdump -C /sys/bus/firewire/devices/fw2/config_rom
00000000  28 ea 2b 04 34 39 33 31  22 61 64 f0 00 92 0a 00  |(.+.4931"ad.....|
00000010  98 06 12 e6 75 f1 09 00  9c 00 00 04 c0 83 00 0c  |....u...........|
00000020  92 0a 00 03 12 00 00 81  01 00 01 17 15 00 00 81  |................|
00000030  ff ff ff 13 02 00 00 d1  06 00 00 d4 c9 af 04 00  |................|
00000040  2d a0 00 12 01 00 01 13  01 00 01 17 13 00 00 81  |-...............|
00000050  c7 37 06 00 f5 07 00 12  01 00 00 13 c7 ff ff 3a  |.7.............:|
00000060  00 00 10 3b c7 ff ff 3c  00 00 60 3d a5 74 04 00  |...;...<..`=.t..|
00000070  00 00 00 00 00 00 00 00  73 65 72 50 73 75 6e 6f  |........serPsuno|
00000080  18 12 05 00 00 00 00 00  00 00 00 00 70 73 6e 49  |............psnI|
00000090  31 65 72 69 00 34 39 33  18 12 05 00 00 00 00 00  |1eri.493........|
000000a0  00 00 00 00 70 73 6e 49  31 65 72 69 00 34 39 33  |....psnI1eri.493|
000000b0
[hack at precision ~]$ fwhack /dev/fw3
i
info: version = 5, rom_length = 160, bus_reset_closure = 1, card = 1
rom (40 quadlets):
 042706a8  31333934  20ff5003  00129206
 00520481  0006549a  03001292  8100000a
 1700f970  81000010  0c0083c0  d1000001
 0004babd  1200a02d  13010001  1700f970
 8100000e  0007891e  00000000  00000000
 47726966  66696e20  54656368  6e6f6c6f
 67790000  00040c2b  00000000  00000000
 46697265  57617665  0009901a  00000000
 00000000  47726966  66696e20  46697265
 57617665  20537572  726f756e  64000000

Info length:  4
CRC length:  27
CRC:          6a8
Bus Info Block:  ISC res1=0, cyc_clk_acc=ff, max_rec=64, res2=3, max_rom=Quadlet, generation=0, res3=0, link_spd=3, node_vendor_id=001292, node_chip_id=0600520481
6 elements CRC 549a
Immediate Vendor   1292
Leaf Descriptor      a
key type 2
    7 elements CRC 891e
    Text 0 Griffin Technology
Immediate Model   f970
Leaf Descriptor     10
key type 2
    4 elements CRC c2b
    Text 0 FireWave
Immediate Node Capabilities   83c0
Directory Unit      1
key type 3
    4 elements CRC babd
    Immediate Specifier ID   a02d
    Immediate Version  10001
    Immediate Model   f970
    Leaf Descriptor      e
key type 2
        9 elements CRC 901a
        Text 0 Griffin FireWave Surround
bus reset: closure = 1, type = 0, node_id = ffc1, local_node_id = ffc2, bm_node_id = ffc2, irm_node_id = ffc2, root_node_id = ffc2, generation = 4



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

			-- JF


More information about the Alsa-devel mailing list