Index: trunk/libffado/src/libieee1394/IsoHandlerManager.cpp =================================================================== --- trunk/libffado/src/libieee1394/IsoHandlerManager.cpp (revision 791) +++ trunk/libffado/src/libieee1394/IsoHandlerManager.cpp (revision 796) @@ -22,4 +22,5 @@ */ +#include "config.h" #include "IsoHandlerManager.h" #include "ieee1394service.h" @@ -32,6 +33,4 @@ #include - -#define MINIMUM_INTERRUPTS_PER_PERIOD 4U IMPL_DEBUG_MODULE( IsoHandlerManager, IsoHandlerManager, DEBUG_LEVEL_NORMAL ); @@ -101,7 +100,7 @@ unsigned int i; m_poll_nfds_shadow = m_IsoHandlers.size(); - if(m_poll_nfds_shadow > FFADO_MAX_ISO_HANDLERS_PER_PORT) { + if(m_poll_nfds_shadow > ISOHANDLERMANAGER_MAX_ISO_HANDLERS_PER_PORT) { debugWarning("Too much ISO Handlers in manager...\n"); - m_poll_nfds_shadow = FFADO_MAX_ISO_HANDLERS_PER_PORT; + m_poll_nfds_shadow = ISOHANDLERMANAGER_MAX_ISO_HANDLERS_PER_PORT; } for (i = 0; i < m_poll_nfds_shadow; i++) { @@ -209,5 +208,6 @@ } -#ifndef THREAD_PER_ISOHANDLER +#if ISOHANDLER_PER_HANDLER_THREAD +#else // create a thread to iterate our handlers debugOutput( DEBUG_LEVEL_VERBOSE, "Start thread for %p...\n", this); @@ -368,7 +368,7 @@ } - //unsigned int irq_interval = packets_per_period / MINIMUM_INTERRUPTS_PER_PERIOD; - //if(irq_interval <= 0) irq_interval=1; - unsigned int irq_interval=2; // this is not the HW IRQ interval + unsigned int irq_interval = packets_per_period / MINIMUM_INTERRUPTS_PER_PERIOD; + if(irq_interval <= 0) irq_interval=1; +// unsigned int irq_interval=2; // this is not the HW IRQ interval // the receive buffer size doesn't matter for the latency, Index: trunk/libffado/src/libieee1394/IsoHandlerManager.h =================================================================== --- trunk/libffado/src/libieee1394/IsoHandlerManager.h (revision 795) +++ trunk/libffado/src/libieee1394/IsoHandlerManager.h (revision 796) @@ -25,4 +25,6 @@ #define __FFADO_ISOHANDLERMANAGER__ +#include "config.h" + #include "debugmodule/debugmodule.h" @@ -34,11 +36,4 @@ #include -//#define THREAD_PER_ISOHANDLER - -#define FFADO_MAX_ISO_HANDLERS_PER_PORT 16 - -#define USLEEP_AFTER_UPDATE_FAILURE 10 -#define USLEEP_AFTER_UPDATE 100 -#define MAX_UPDATE_TRIES 10 class Ieee1394Service; @@ -74,6 +69,6 @@ private: // shadow variables - struct pollfd m_poll_fds_shadow[FFADO_MAX_ISO_HANDLERS_PER_PORT]; - IsoHandler *m_IsoHandler_map_shadow[FFADO_MAX_ISO_HANDLERS_PER_PORT]; + struct pollfd m_poll_fds_shadow[ISOHANDLERMANAGER_MAX_ISO_HANDLERS_PER_PORT]; + IsoHandler *m_IsoHandler_map_shadow[ISOHANDLERMANAGER_MAX_ISO_HANDLERS_PER_PORT]; unsigned int m_poll_nfds_shadow; Index: trunk/libffado/src/libieee1394/IsoHandler.cpp =================================================================== --- trunk/libffado/src/libieee1394/IsoHandler.cpp (revision 791) +++ trunk/libffado/src/libieee1394/IsoHandler.cpp (revision 796) @@ -22,5 +22,5 @@ */ -//#define PER_HANDLER_THREAD +#include "config.h" #include "IsoHandler.h" @@ -183,5 +183,5 @@ } -#ifdef DO_POLL +#if ISOHANDLER_USE_POLL uint64_t poll_enter = m_manager.get1394Service().getCurrentTimeAsUsecs(); err = poll(&m_poll_fd, 1, m_poll_timeout); @@ -228,5 +228,5 @@ bool IsoHandler::iterate() { - flush(); + //flush(); if(raw1394_loop_iterate(m_handle)) { debugOutput( DEBUG_LEVEL_VERBOSE, @@ -288,5 +288,5 @@ } -#ifdef THREAD_PER_ISOHANDLER +#if ISOHANDLER_PER_HANDLER_THREAD // create a thread to iterate ourselves debugOutput( DEBUG_LEVEL_VERBOSE, "Start thread for %p...\n", this); @@ -471,5 +471,6 @@ m_max_packet_size, m_Client->getChannel(), - RAW1394_DMA_BUFFERFILL, +// RAW1394_DMA_BUFFERFILL, + RAW1394_DMA_PACKET_PER_BUFFER, m_irq_interval)) { debugFatal("Could not do receive initialisation (DMA_BUFFERFILL)!\n" );