Re: ALSA: dice: improve support for Weiss devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Wed, Aug 16, 2023 at 03:05:36PM +0200, Michele Perrone wrote:
> That is very kind of you. You can now find our current AVC code in the
> following public repository (branch 'avc'):
> [1]https://github.com/weiss-engineering/snd-dice/tree/avc
> If you have questions about the code, also on the firmware side of
> things,
> feel free to ask.

This is my first time to see implementation of 1394TA AV/C transaction
for TCAT DICE ASICs. I know that TCAT provides own protocol and
mLAN/OGT, however it is the third protocol, interesting.

It takes me a bit time to read it, thus leave it next work.

> You can find the `clock caps` and `clock source names` fields for all
> our Firewire devices below. As I currently do not have access to our
> Firewire hardware except for MAN301, DAC202, and INT202, for the
> remaining devices I copied the fields from their latest firmware source
> code.

Good. I filed a merge request for these models in common protocol
implementation[1]. I note that the code is released under GPLv3, thus it
shall include concern when included to your product. Please take care of it.

> I have created a pull request in takaswie/am-config-roms with three ROM
> images: MAN301, DAC202, INT202. I cannot extract the remaining images
> at the moment, because I do not have all Firewire devices available. I
> will add the remaining images as soon as I can get my hands on them.

They are really useful, thanks. Later I deal with the request filed to
it as well as alsa-gobject project.

Well, as long as I print the content of configuration ROM[2] for MAN301,
it includes two units.  The first unit expresses AV/C device compliant to
AV/C command set generic specification. The second unit expresses TCAT
DICE protocol. I guess that the AV/C Vendor-dependent command is just
implemented to MAN301 only. Is it right? If not, I would ask you to
provide configuration ROM for the other models.

Anyway, such device is likely undetected in current implementation of
snd-dice-ctl-service due to the layout of configuration ROM[3]. Take me
a bit time to solve it.

```
$ config-rom-pretty-printer < audio_and_music/dice/weiss-man301.img 
               ROM header and bus information block
               -----------------------------------------------------------------
1024  0404f4fa  bus_info_length 4, crc_length 4, crc 62714
1028  31333934  bus_name "1394"
1032  e0008122  irmc 1, cmc 1, isc 1, bmc 0, pmc 0, cyc_clk_acc 0,
               max_rec 8 (512), max_rom 1, gen 2, spd 2 (S400)
1036  001c6a00  company_id 001c6a     | 
1040  02c000ca  device_id 0046137546  | EUI-64 7997847626580170

               root directory
               -----------------------------------------------------------------
1044  00074103  directory_length 7, crc 16643
1048  03001c6a  vendor
1052  81000010  --> descriptor leaf at 1116
1056  1700000b  model
1060  81000017  --> descriptor leaf at 1152
1064  0c0087c0  node capabilities: per IEEE 1394
1068  d1000002  --> unit directory at 1076
1072  d1000006  --> unit directory at 1096

               unit directory at 1076
               -----------------------------------------------------------------
1076  000421e1  directory_length 4, crc 8673
1080  1200a02d  specifier id
1084  13010001  version
1088  1700000b  model
1092  81000014  --> descriptor leaf at 1172

               unit directory at 1096
               -----------------------------------------------------------------
1096  000473f8  directory_length 4, crc 29688
1100  12001c6a  specifier id
1104  13000001  version
1108  1700000b  model
1112  81000014  --> descriptor leaf at 1192

               descriptor leaf at 1116
               -----------------------------------------------------------------
1116  0008decb  leaf_length 8, crc 57035
1120  00000000  textual descriptor
1124  00000000  minimal ASCII
1128  57656973  "Weis"
1132  735f456e  "s_En"
1136  67696e65  "gine"
1140  6572696e  "erin"
1144  675f4c74  "g_Lt"
1148  642e0000  "d."

               descriptor leaf at 1152
               -----------------------------------------------------------------
1152  00041b75  leaf_length 4, crc 7029
1156  00000000  textual descriptor
1160  00000000  minimal ASCII
1164  4d414e5f  "MAN_"
1168  33303100  "301"

               descriptor leaf at 1172
               -----------------------------------------------------------------
1172  00041b75  leaf_length 4, crc 7029
1176  00000000  textual descriptor
1180  00000000  minimal ASCII
1184  4d414e5f  "MAN_"
1188  33303100  "301"

               descriptor leaf at 1192
               -----------------------------------------------------------------
1192  00041b75  leaf_length 4, crc 7029
1196  00000000  textual descriptor
1200  00000000  minimal ASCII
1204  4d414e5f  "MAN_"
1208  33303100  "301"
```

[1] [PATCH 0/2] dice: add support for Weiss Engineering models
https://github.com/alsa-project/snd-firewire-ctl-services/pull/175
[2] config-rom-pretty-printer is available in linux-firewire-utils
v0.5.0 or later.
https://git.kernel.org/pub/scm/utils/ieee1394/linux-firewire-utils.git/
[3] `DiceConfigRom` implementation for `ConfigRom` just handles the
first unit in configuration ROM.
https://github.com/alsa-project/snd-firewire-ctl-services/blob/master/protocols/dice/src/tcat/config_rom.rs


Thanks

Takashi Sakamoto



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux