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