alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* How trivial would it be to port the DICE driver from FFADO?
@ 2022-08-09 14:44 forevernoob
  2022-08-10  0:32 ` Takashi Sakamoto
  2022-08-19  1:30 ` Takashi Sakamoto
  0 siblings, 2 replies; 3+ messages in thread
From: forevernoob @ 2022-08-09 14:44 UTC (permalink / raw)
  To: Alsa Devel

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_eap.cpp

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: How trivial would it be to port the DICE driver from FFADO?
  2022-08-09 14:44 How trivial would it be to port the DICE driver from FFADO? forevernoob
@ 2022-08-10  0:32 ` Takashi Sakamoto
  2022-08-19  1:30 ` Takashi Sakamoto
  1 sibling, 0 replies; 3+ messages in thread
From: Takashi Sakamoto @ 2022-08-10  0:32 UTC (permalink / raw)
  To: forevernoob; +Cc: Alsa Devel

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=9a08676fc596
[2] https://crates.io/crates/firewire-dice-protocols


Regards

Takashi Sakamoto

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: How trivial would it be to port the DICE driver from FFADO?
  2022-08-09 14:44 How trivial would it be to port the DICE driver from FFADO? forevernoob
  2022-08-10  0:32 ` Takashi Sakamoto
@ 2022-08-19  1:30 ` Takashi Sakamoto
  1 sibling, 0 replies; 3+ messages in thread
From: Takashi Sakamoto @ 2022-08-19  1:30 UTC (permalink / raw)
  To: forevernoob, Alsa Devel

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-function.hwdb

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-08-19  1:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-09 14:44 How trivial would it be to port the DICE driver from FFADO? forevernoob
2022-08-10  0:32 ` Takashi Sakamoto
2022-08-19  1:30 ` Takashi Sakamoto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).