How trivial would it be to port the DICE driver from FFADO?
Hello,
I'm new to these kinds of mailing lists so please forgive me if I'm doing something dumb.
I would love to see Allen & Heath Zed R16 as well as Midas Venice F32 support in ALSA.
Currently (at least according to libffado-2.4.4/configuration), they are supported via the DICE driver:
{ # Allen and Heath Zed R16. Information from Brendan Pike. vendorid = 0x000004C4; modelid = 0x00000000; vendorname = "Allen and Heath"; modelname = "Zed R16"; driver = "DICE"; mixer = "Generic_Dice_EAP"; }, { # Midas Venice F32. Information from Jano Svitok. vendorid = 0x0010C73F; modelid = 0x00000001; vendorname = "Midas"; modelname = "Venice F32"; driver = "DICE"; mixer = "Generic_Dice_EAP"; },
In their source code I think it's this file: http://subversion.ffado.org/browser/branches/2.4.x/libffado/src/dice/dice_ea...
So my question would be: How difficult would it be to port this driver (more specifically: Port it sufficiently enough to support the aforementioned devices) ?
Are we talking trivial enough for someone with minimal C experience, a dedicated team of ALSA devs or something else?
Thanks in advance, FN
Hi,
I'm a maintainer of ALSA firewire stack. Thanks for your contacting to the list.
On Tue, Aug 09, 2022 at 04:44:23PM +0200, forevernoob@tutanota.com wrote:
Hello,
I'm new to these kinds of mailing lists so please forgive me if I'm doing something dumb.
I would love to see Allen & Heath Zed R16 as well as Midas Venice F32 support in ALSA. ... So my question would be: How difficult would it be to port this driver (more specifically: Port it sufficiently enough to support the aforementioned devices) ?
Are we talking trivial enough for someone with minimal C experience, a dedicated team of ALSA devs or something else?
If investigating just for code migration from libffado2, it's impossible since the implementation of ALSA dice driver is completely different from the implementation of the dice part of libffado2. They have different root for development. Thus we need to start investigation for the devices at the first place. It demands you for a bit patience.
As long as reading manuals of the models, hardware vendors selected TCD2210 ASIC (Dice Jr.) for them. I know that some options were given to the vendors when using the ASIC; 1. just with TCAT general protocol 2. with both TCAT general protocol and protocol extension 3. with Open Generic Transporter (OGT) protocol.
If you can drive the devices by libffado2, the possibility of OGT is dropped. The implementation of libffado2 mention about the 2nd option by usage of word, EAP (=Extended Application Protocol), however I know the case of TCD2220 without protocol extension. It's Lexicon FW810s[1], In the case, we need to hard-code stream formats in ALSA dice driver by investigation to actual models.
Anyway, if you are satisfied in libffado2, it's better to continue using it. Of course, I would be glad if I got your help to extend ALSA firewire stack.
P.S. If you are interested in DICE ASICs and protocols themselves, it's a good start to read my user space implementation (but by Rust language), which I recently published. You can see overview at crates.io[2].
[1] https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git?id=9a08676fc... [2] https://crates.io/crates/firewire-dice-protocols
Regards
Takashi Sakamoto
Hi,
I forgot to mention about udev rule.
On Tue, Aug 9, 2022, at 23:44, forevernoob@tutanota.com wrote:
I would love to see Allen & Heath Zed R16 as well as Midas Venice F32 support in ALSA.
Would I ask you to collect image of configuration ROM for the devices? Linux kernel exports content of configuration ROM via sysfs.
$ cat /sys/bus/firewire/devices/fw1/config_rom > rom.img
The content is used to identify node in IEEE 1394 bus. You can see my current collection:
* https://github.com/takaswie/am-config-roms
The content is used to generate systemd hardware database for rules of udev.
* https://github.com/systemd/systemd/blob/main/hwdb.d/80-ieee1394-unit-functio...
The rule shall obsolete udev rule provided by libffado:
* http://subversion.ffado.org/browser/trunk/libffado/libffado/60-ffado.rules
Actually you can see hwdb entries for the models, thus the purpose is to fulfill the collection as development resource.
Regards
Takashi Sakamoto
participants (2)
-
forevernoob@tutanota.com
-
Takashi Sakamoto