android_kernel_samsung_sm8650/sound/firewire
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
..
bebob ALSA: bebob: use more identical mod_alias for Saffire Pro 10 I/O against Liquid Saffire 56 2019-02-26 07:11:32 +01:00
dice ALSA: dice: add stream format parameters for PreSonus FireStudio 2019-05-20 07:46:43 +02:00
digi00x ALSA: firewire: Remove superfluous snd_info_register() calls 2019-02-06 18:11:38 +01:00
fireface ALSA: firewire: Remove superfluous snd_info_register() calls 2019-02-06 18:11:38 +01:00
fireworks ALSA: firewire: Remove superfluous snd_info_register() calls 2019-02-06 18:11:38 +01:00
motu ALSA: firewire-motu: add support MOTU 8pre FireWire 2019-03-18 14:50:16 +01:00
oxfw ALSA: firewire: Remove superfluous snd_info_register() calls 2019-02-06 18:11:38 +01:00
tascam ALSA: firewire: Remove superfluous snd_info_register() calls 2019-02-06 18:11:38 +01:00
amdtp-am824.c locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE() 2017-10-25 11:01:08 +02:00
amdtp-am824.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
amdtp-stream-trace.h ALSA: firewire-lib: use the same print format for 'without_header' tracepoints 2018-12-16 10:10:21 +01:00
amdtp-stream.c ALSA: firewire-lib: use 8 byte header for IR context to get isochronous cycle 2019-03-18 14:50:35 +01:00
amdtp-stream.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
cmp.c ALSA: firewire-lib: fix kerneldoc errors 2014-11-18 18:10:23 +01:00
cmp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fcp.c ALSA: firewire-lib/bebob/oxfw: improve response evaluation for AV/C commands 2017-04-05 21:37:23 +02:00
fcp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
isight.c ALSA: isight: fix leak of reference to firewire unit in error path of .probe callback 2018-10-12 08:08:04 +02:00
iso-resources.c ALSA: firewire: fix NULL pointer dereference when releasing uninitialized data of iso-resource 2017-08-20 09:40:32 +02:00
iso-resources.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig ALSA: fireface: add support for Fireface UCX 2019-01-21 15:12:25 +01:00
lib.c ALSA: firewire-lib/firewire-tascam: localize async midi port 2017-04-14 14:50:26 +02:00
lib.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
packets-buffer.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
packets-buffer.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00