From: Holger D. <deh...@ah...> - 2010-12-21 21:48:32
|
This mail is also sent to tech people at mackie/loud, but I think there are problems with FFADO as well as with the firmware, so please don't just ignore it. After a lot of testing and try and error I finally got my Mackie mixer running. I have fond solutions without knowning the problem exactly. I will show you the diffs with some comments: Index: src/libstreaming/amdtp-oxford/AmdtpOxfordReceiveStreamProcessor.cpp =================================================================== --- src/libstreaming/amdtp-oxford/AmdtpOxfordReceiveStreamProcessor.cpp (Revision 1942) +++ src/libstreaming/amdtp-oxford/AmdtpOxfordReceiveStreamProcessor.cpp (Arbeitskopie) @@ -87,7 +87,7 @@ // than one packet FFADO_ASSERT( m_temp_buffer == NULL ); if( !(m_temp_buffer = ffado_ringbuffer_create( - packet_payload_size_events * 4 * 4))) { + (packet_payload_size_events + 50) * 4 * 4))) { debugFatal("Could not allocate memory event ringbuffer\n"); return false; } The calculated buffer size is too small: I don't know why, it might or might not have something to do with the following modification. Without the extra size, StreamProcessor tries to add more bytes to the buffer to fill a complete packet, but there ist no space... Index: src/libavc/general/avc_plug.cpp =================================================================== --- src/libavc/general/avc_plug.cpp (Revision 1942) +++ src/libavc/general/avc_plug.cpp (Arbeitskopie) @@ -235,7 +235,7 @@ m_unit->getConfigRom().getNodeId(), getSubunitType(), getSubunitId(), m_direction, m_id ); // return false; } - + if( m_infoPlugType != AVC::Plug::eAPT_Sync ){ if ( !discoverSupportedStreamFormats() ) { debugOutput(DEBUG_LEVEL_NORMAL, "Could not discover supported stream formats " @@ -243,7 +243,7 @@ m_unit->getConfigRom().getNodeId(), getSubunitType(), getSubunitId(), m_direction, m_id ); // return false; } - + } return m_unit->getPlugManager().addPlug( *this ); } This is the problem I described in my firat mail. When plugtype is eAPT_Sync, the bus / device is blocked and only a hard reset makes the bus respond again (by either unplugging the firewire cable or switching on and off the device) Index: configuration =================================================================== --- configuration (Revision 1942) +++ configuration (Arbeitskopie) @@ -17,6 +17,13 @@ xmit_max_cycles_early_transmit = 4; }, { + vendorid = 0x000ff2; + modelid = 0x081216; + vendorname = "Loud Technologies Inc."; + modelname = "Onyx-i"; + driver = 4; # Oxford +}, +{ vendorid = 0x0003db; modelid = 0x00010048; vendorname = "Apogee Electronics"; This does not need any comment - does it? Problems so far: - a few XRuns - somtimes noise after stopping and starting a song - Rosegarden is killed when I try to activate more than 4 input channels - qtractor does not start at all Maybe others will occur. I would be glad if someone could comment on this. Holger |