Thanks Peter for your fast response!
And sorry for my very short last tickets.
Now I try to include as much information as possible.
Some informations about my system setup:
- Slackware 12.0
- Kernel 2.6.23.12 with
- realtime patch: patch-2.6.23.11-rt14.bz2
- acpi patch: acpi-release-20070126-2.6.23.diff.bz2
- ieee1394 patch: 2.6.23_ieee1394_v600.patch.bz2
I use libfreebob 1.0.7 and jackd 0.109.0 for audio streaming and ffado for controlling the mixer.
FYI, I tried to use ffado r836 and jackd 0.109.0 for audio streaming, but ffado used mostly all of the available cpu power.
This is the output of "ffado-bridgeco-downloader 0 display":
2520594313: Debug (ieee1394service.cpp)[ 201] initialize: This system supports the raw1394_read_cycle_timer call, using it.
2520629851: Debug (configrom.cpp)[ 524] printConfigRom: Config ROM
2520629872: Debug (configrom.cpp)[ 525] printConfigRom: Current Node Id: 0
2520629880: Debug (configrom.cpp)[ 526] printConfigRom: GUID: 0x000AAC07xxxxxxxx
2520629934: Debug (configrom.cpp)[ 527] printConfigRom: Vendor Name: TerraTec? Electronic GmbH
2520629964: Debug (configrom.cpp)[ 528] printConfigRom: Model Name: PHASE X24 FW
2520629974: Debug (configrom.cpp)[ 529] printConfigRom: Node Vendor ID: 0x000aac
2520629982: Debug (configrom.cpp)[ 530] printConfigRom: Model Id: 0x00000007
2520630002: Debug (configrom.cpp)[ 531] printConfigRom: Unit Specifier ID: 0x00a02d
2520630012: Debug (configrom.cpp)[ 532] printConfigRom: Unit version: 0x00010001
2520630020: Debug (configrom.cpp)[ 533] printConfigRom: ISO resource manager: 1
2520630029: Debug (configrom.cpp)[ 534] printConfigRom: Cycle master capable: 1
2520630037: Debug (configrom.cpp)[ 535] printConfigRom: Bus manager capable: 1
2520630046: Debug (configrom.cpp)[ 536] printConfigRom: Cycle clock accuracy: 100
2520630056: Debug (configrom.cpp)[ 538] printConfigRom: Max rec: 6 (max asy payload: 128 bytes)
Info Registers
Manufactors Id: bridgeCo
Protocol Version: 0x00000001
Bootloader Version: 0x00000000
GUID: 0x000aac07xxxxxxxx
Hardware Model ID: 0x00000007
Hardware Revision: 0x00000001
Software Date: 25.07.2005, 13:56:53
Software Id: 0x00000007
Software Version: 0x01200d1f
Base Address: 0x20080000
Max. Image Len: 0x00180000
Bootloader Date: 29.07.2005, 14:05:14
Debugger Id: 0x00000000
Debugger Version: 0x00000000
I'm using the firmware version 1.32.13.31, which IMHO is not available online from ftp.terratec.de.
I don't want to overwrite this firmware without a possibility to first read it out or get it as bcd-file, so that I can return to it in case of problems with 1.34.13.31.
If you know a way to read this firmware out of my device or if there is another way to get it, please let me know.
But now to the problems with the cache.
Let me show you the differences in a short first test:
Start ffado-dbus-server for the first time without using an existing cache:
$ support/dbus/ffado-dbus-server -c0 2>ffado-dbus-server-second-time.err
...After enough time for the startup to finish, press CTRL-C.
Start ffado-dbus-server a second time now using the cache:
$ support/dbus/ffado-dbus-server -c1 2>ffado-dbus-server-second-time.err
...After enough time for the startup to finish, press CTRL-C.
You will see that almost all of the mixer elements aren't exported the second time.
If this is not enough, I can show you more in a second test:
Please first apply a small patch, it extends the meaning of the new option "-c" in a useful third way ;-)
$ patch -p1 <test-ffado-cache-debug.diff
Start test-ffado for the first time without using an existing cache:
$ tests/test-ffado -v5 -c0 Discover >test-ffado-first-time.out 2>test-ffado-first-time.err
$ cp -p ~/.ffado/cache/000aac07xxxxxxxx/60030c03.xml 60030c03-first-time.xml2
Start test-ffado a second time now using the cache:
$ tests/test-ffado -v5 -c2 Discover >test-ffado-second-time.out 2>test-ffado-second-time.err
$ cp -p ~/.ffado/cache/000aac07xxxxxxxx/60030c03.xml 60030c03-second-time.xml
If you only compare stdout and stderr of both runs, then everything looks ok.
But if you compare the two cache-files then a lot of things are missing.
And there are some additional things, which don't look ok to me:
The filename of the cache depends on the node number (buggy getConfigurationIdNumberOfChannel?):
Device is Node 0:
Relevant output of tests/test-ffado -v6 -c0 Discover:
4168922724: Debug (devicemanager.cpp)[ 306] discover: discovery successful
4168937419: Debug (bebob_avdevice.cpp)[ 273] getConfigurationIdSampleRate: Sample rate 0x03
4168945418: Debug (bebob_avdevice.cpp)[ 308] getConfigurationIdNumberOfChannel: Number of channels 0x07
4168953419: Debug (bebob_avdevice.cpp)[ 308] getConfigurationIdNumberOfChannel: Number of channels 0x05
4168961435: Debug (bebob_avdevice.cpp)[ 342] getConfigurationIdSyncMode: Sync mode 0x6003
4168961478: Debug (bebob_avdevice.cpp)[ 504] saveCache: filename /home/martin/.ffado/cache/000aac07xxxxxxxx/60030c03.xml
Device is Node 1:
Relevant output of tests/test-ffado -v6 -c0 Discover:
3871827738: Debug (devicemanager.cpp)[ 306] discover: discovery successful
3871842443: Debug (bebob_avdevice.cpp)[ 273] getConfigurationIdSampleRate: Sample rate 0x03
3871854440: Debug (bebob_avdevice.cpp)[ 308] getConfigurationIdNumberOfChannel: Number of channels 0x02
3871866442: Debug (bebob_avdevice.cpp)[ 308] getConfigurationIdNumberOfChannel: Number of channels 0x02
3871878448: Debug (bebob_avdevice.cpp)[ 342] getConfigurationIdSyncMode: Sync mode 0x6003
3871878496: Debug (bebob_avdevice.cpp)[ 504] saveCache: filename /home/martin/.ffado/cache/000aac07xxxxxxxx/60030403.xml
And some values are probably uninitialized:
<Plug63>
<m_subunitType>12</m_subunitType>
<m_subunitId>0</m_subunitId>
<m_functionBlockType>255</m_functionBlockType>
<m_functionBlockId>255</m_functionBlockId>
<m_addressType>3</m_addressType>
<m_direction>0</m_direction>
<m_id>4</m_id>
<m_infoPlugType>3</m_infoPlugType>
<m_nrOfChannels>2</m_nrOfChannels>
<m_name>MSU Synch Input</m_name>
<m_clusterInfos0>
<m_index>1</m_index>
<m_portType>229</m_portType>
<m_name></m_name>
<m_nrOfChannels>2</m_nrOfChannels>
<m_channelInfo0>
<m_streamPosition>0</m_streamPosition>
<m_location>1</m_location>
<m_name>SynchChannel?1</m_name>
</m_channelInfo0>
<m_channelInfo1>
<m_streamPosition>1</m_streamPosition>
<m_location>2</m_location>
<m_name>SynchChannel?2</m_name>
</m_channelInfo1>
<m_streamFormat>252</m_streamFormat>
</m_clusterInfos0>
This also happens within:
<Plug67>
<Plug70>
<Plug72>
Hope this helps