linux/sound/firewire/dice
Takashi Sakamoto c4580f2097 ALSA: dice: add stream format parameters for PreSonus FireStudio
FireStudio was launched by PreSonus 2009. This model consists of three
ICs for its packet processing on IEEE 1394 bus:

 - Texus Instruments TSB41AB2 for physical layer of IEEE 1394 bus
 - WaveFront semiconductor, Dice II STD ASIC for link layer of IEEE 1394
   bus and protocol layer
 - Xilinx Spartan XG3S500E FPGA for signal processing

This model don't support TCAT extended application protocol. For such
devices, ALSA dice driver needs to have hard-coded parameters for stream
formats.

This commit adds hard-coded table for this model. As a result, sampling
transfer frequencies of 88.2/96.0 kHz are supported. I note that this
patch can be backported to Linux kernel v4.18 and later.

$ python2 crpp < /sys/bus/firewire/devices/fw1/config_rom
               ROM header and bus information block
               -----------------------------------------------------------------
400  04042eda  bus_info_length 4, crc_length 4, crc 11994
404  31333934  bus_name "1394"
408  e0ff8112  irmc 1, cmc 1, isc 1, bmc 0, pmc 0, cyc_clk_acc 255,
               max_rec 8 (512), max_rom 1, gen 1, spd 2 (S400)
40c  000a9204  company_id 000a92     |
410  023a8b7f  device_id 04023a8b7f  | EUI-64 000a9204023a8b7f

               root directory
               -----------------------------------------------------------------
414  000661b6  directory_length 6, crc 25014
418  03000a92  vendor
41c  8100000a  --> descriptor leaf at 444
420  17000008  model
424  8100000d  --> descriptor leaf at 458
428  0c0087c0  node capabilities per IEEE 1394
42c  d1000001  --> unit directory at 430

               unit directory at 430
               -----------------------------------------------------------------
430  00041c75  directory_length 4, crc 7285
434  12000a92  specifier id
438  13000001  version
43c  17000008  model
440  8100000c  --> descriptor leaf at 470

               descriptor leaf at 444
               -----------------------------------------------------------------
444  00047c11  leaf_length 4, crc 31761
448  00000000  textual descriptor
44c  00000000  minimal ASCII
450  50726553  "PreS"
454  6f6e7573  "onus"

               descriptor leaf at 458
               -----------------------------------------------------------------
458  0005d7b3  leaf_length 5, crc 55219
45c  00000000  textual descriptor
460  00000000  minimal ASCII
464  46495245  "FIRE"
468  53545544  "STUD"
46c  494f0000  "IO"

               descriptor leaf at 470
               -----------------------------------------------------------------
470  0005d7b3  leaf_length 5, crc 55219
474  00000000  textual descriptor
478  00000000  minimal ASCII
47c  46495245  "FIRE"
480  53545544  "STUD"
484  494f0000  "IO"

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-05-20 07:46:43 +02:00
..
dice-alesis.c ALSA: dice: fix wrong copy to rx parameters for Alesis iO26 2018-08-06 09:35:32 +02:00
dice-extension.c ALSA: dice: use extended protocol to detect available stream formats 2018-05-02 16:02:00 +02:00
dice-hwdep.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
dice-interface.h ALSA: dice: improve support for ancient firmware for DICE 2018-04-24 17:18:59 +02:00
dice-midi.c ALSA: dice: use stream formats to add MIDI substreams 2018-05-02 16:02:05 +02:00
dice-mytek.c ALSA: dice: add stream format parameters for Mytek devices 2018-05-18 08:53:51 +02:00
dice-pcm.c ALSA: pcm: Nuke snd_pcm_lib_mmap_vmalloc() 2018-07-18 08:24:29 +02:00
dice-presonus.c ALSA: dice: add stream format parameters for PreSonus FireStudio 2019-05-20 07:46:43 +02:00
dice-proc.c ALSA: firewire: Remove superfluous snd_info_register() calls 2019-02-06 18:11:38 +01:00
dice-stream.c Merge branch 'for-linus' into for-next 2018-05-15 07:30:23 +02:00
dice-tcelectronic.c ALSA: dice: unuse second stream for MIDI conformant data channel for TC Electronic models 2018-05-27 08:32:08 +02:00
dice-transaction.c ALSA: dice: improve support for ancient firmware for DICE 2018-04-24 17:18:59 +02:00
dice.c ALSA: dice: add stream format parameters for PreSonus FireStudio 2019-05-20 07:46:43 +02:00
dice.h ALSA: dice: add stream format parameters for PreSonus FireStudio 2019-05-20 07:46:43 +02:00
Makefile ALSA: dice: add stream format parameters for PreSonus FireStudio 2019-05-20 07:46:43 +02:00