[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