So,
I wrote a few days ago how I was able to get my new echo audiofire12 working under gentoo Linux with the old firewire stack. Well, I couldn't leave well-enough alone, so I tried my hand at updating my kernel and using the new stack. Turned out there were a few caveats that, without some external help from a great person in the ffado IRC channel, I probably would have already reverted back to using the old stack.
First off, I'm now using the 2.6.38 kernel, even though as of now, it's still in the unstable tree.
It's imparative that you use the latest version of libraw1394, or you'll end up tearing all your hair out due to weird error messages, which google knows nothing about. Here are the error messages I was getting when I was using the 2.0.4 version of libraw1394. I'm now using 2.0.7, and all is well.
Error message received under 2.0.4 when starting jackd with the new stack:
jason@JMUSIC ~ $ jackd -R -d firewire -v4
jackdmp 1.9.6
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2010 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
no message buffer overruns
no message buffer overruns
JACK server starting in realtime mode with priority 10
libffado 2.0.1 built Mar 27 2011 00:39:48
00079012960: Warning (fireworks_device.cpp)[ 134] discover: Using generic ECHO Audio FireWorks support for unsupported device 'Echo Digital Audio AudioFire12'
libiec61883 warning: Established connection on channel 0.
You may need to manually set the channel on the receiving node.
libiec61883 warning: Established connection on channel 1.
You may need to manually set the channel on the transmitting node.
00086110714: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream
00086110734: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0
00086110737: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state
00086110743: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream
00086110746: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0
00086110750: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state
00086110753: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream
00086110757: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0
00086110760: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state
00086110765: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream
00086110768: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0
00086110772: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state
00086110775: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream
00086110781: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0
00086110784: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state
00086110791: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream
00086110793: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0
00086110799: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state
00086110802: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream
00086110809: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0
00086110811: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state
00086110818: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream
00086110820: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0
00086110827: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state
00086110829: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream
00086110836: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0
00086110839: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state
00086110845: Fatal (StreamProcessorManager.cpp)[ 901] start: Could not syncStartAll...
00086110848: Warning (devicemanager.cpp)[ 912] startStreaming: Failed to start SPM!
00086111737: Warning (ieee1394service.cpp)[1284] freeIsoChannel: Could not do CMP disconnect for channel 0!
00086112174: Warning (ieee1394service.cpp)[1284] freeIsoChannel: Could not do CMP disconnect for channel 1!
firewire ERR: Could not start streaming threads
00086112185: Fatal (ffado.cpp)[ 211] ffado_streaming_start: Could not start the streaming system
Cannot start driver
JackServer::Start() failed with -1
00086112293: Error (IsoHandler.cpp)[ 162] ~IsoHandler: BUG: Handler still running!
00086138062: Error (IsoHandler.cpp)[ 162] ~IsoHandler: BUG: Handler still running!
no message buffer overruns
Failed to start server
...and that's that. Now, with the new (and only) firewire stack enabled as modules in the 2.6.38 kernel, and the 2.0.7 version of libraw1394 installed, my Echo Audiofire12 works like a charm.
...still working on MIDI...