[alsa-devel] [PATCH 1/3] fireface: add skeleton for RME Fireface series
Takashi Sakamoto
o-takashi at sakamocchi.jp
Mon Dec 7 02:32:26 CET 2015
Hi,
On Dec 07 2015 07:13, Jonathan Woithe wrote:
> On Sun, Dec 06, 2015 at 10:23:42PM +0900, Takashi Sakamoto wrote:
>> Three types of firmware have been released by RME GmbH; for Fireface 400,
>> for Fireface 800 and for UCX/802/UFX.
>
> The FF400 and FF800 firmwares are pretty much the same. The control
> protocol does differ between the two but at a fundamental level they are the
> same - especially where streaming is concerned. They are similar enough
> that it would not make sense to implement a separate driver for the FF800.
>
> You are correct in concluding that the latter is a totally new firmware. In
> addition to the UFX/UCX/802 RME have also ported as much as is relevant to
> the FF800. The mixer interface (which doesn't directly concern ALSA) is
> completely different. I have not yet investigated the streaming part in
> full but my initial investigations suggest that it may not be significantly
> different.
>
>> It's reasonable that these models use different protocol for
>> communication.
>
> For FF400 and FF800 the streaming protocol is very similar. I expect the
> same to hold for the newer devices too, but will be able to say more once I
> get a chance to fully probe the UFX. In other words, at this stage it is
> fair to say that the streaming component for all devices will be similar,
> and there is probably no reason to consider there being three completely
> different firmwares. There are obviously some differences which will need
> to be allowed for in places, but the same is true for almost every device
> family.
If so, why the vendor (RME GmbH) produces these different firmwares?
Could I request your opinions about it?
> In the patch:
>
>> diff --git a/sound/firewire/fireface/fireface.c b/sound/firewire/fireface/fireface.c
>> new file mode 100644
>> index 0000000..7e21667
>> --- /dev/null
>> +++ b/sound/firewire/fireface/fireface.c
>> @@ -0,0 +1,139 @@
>> +/*
>> + * fireface.c - a part of driver for RMW Fireface series
>
> Typo: it should be "RME", obviously.
>
>> + /* TODO: how to detect all of models? */
>> + model = "Fireface 400";
>
> Though the unit version field of the ConfigROM.
>
> Once I get my head around git and how best to keep track of these patch
> series I can provide a patch for this. Despite several attempts to truly
> understand git over the last few years I have so far failed abysmally. :-(
Currently, I have no direction to support models except for FF400
because I've never seen their packets. Even if you insists that they are
similar, actually they're somewhat different (and I guess that the
difference is larger than you expect, at least, isochronous packet
streaming management).
Regards
Takashi Sakamoto
More information about the Alsa-devel
mailing list