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