diff --git a/libffado-MIPS.patch b/libffado-MIPS.patch
new file mode 100644
index 0000000..4d5d2f5
--- /dev/null
+++ b/libffado-MIPS.patch
@@ -0,0 +1,12 @@
+diff -rupN libffado-2.3.0.org/SConstruct libffado-2.3.0/SConstruct
+--- libffado-2.3.0.org/SConstruct	2016-08-08 06:31:03.000000000 -0400
++++ libffado-2.3.0/SConstruct	2017-08-10 21:56:15.358412952 -0400
+@@ -558,7 +558,7 @@ def cpuinfo_kv():
+     for line in f:
+         line = line.strip()
+         if line:
+-            k,v = line.split(':')
++            k,v = line.split(':', 1)
+             yield (k.strip(), v.strip())
+     f.close()
+ 
diff --git a/libffado-diff-trunk-from-r2650-to-r2651.diff b/libffado-diff-trunk-from-r2650-to-r2651.diff
new file mode 100644
index 0000000..a2540a0
--- /dev/null
+++ b/libffado-diff-trunk-from-r2650-to-r2651.diff
@@ -0,0 +1,2208 @@
+Index: trunk/libffado/src/libieee1394/test-cyclecalc.cpp
+===================================================================
+--- trunk/libffado/src/libieee1394/test-cyclecalc.cpp (revision 2540)
++++ trunk/libffado/src/libieee1394/test-cyclecalc.cpp (revision 2651)
+@@ -51,5 +51,5 @@
+                           (unsigned int)CYCLE_TIMER_GET_OFFSET(now_ctr));
+ 
+-    debugOutput(DEBUG_LEVEL_VERBOSE,"NOW              : %011"PRIu64" (%03us %04uc %04ut)\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE,"NOW              : %011" PRIu64 " (%03us %04uc %04ut)\n",
+                           now,
+                           (unsigned int)TICKS_TO_SECS(now),
+@@ -65,5 +65,5 @@
+     uint64_t calc_ts = sytRecvToFullTicks(syt, cycle, now_ctr);
+ 
+-    debugOutput(DEBUG_LEVEL_VERBOSE,"CALC_TS          : %011"PRIu64" (%03us %04uc %04ut)\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE,"CALC_TS          : %011" PRIu64 " (%03us %04uc %04ut)\n",
+                           calc_ts,
+                           (unsigned int)TICKS_TO_SECS(calc_ts),
+Index: trunk/libffado/src/libieee1394/CycleTimerHelper.cpp
+===================================================================
+--- trunk/libffado/src/libieee1394/CycleTimerHelper.cpp (revision 2523)
++++ trunk/libffado/src/libieee1394/CycleTimerHelper.cpp (revision 2651)
+@@ -164,8 +164,8 @@
+                         m_cycle_timer_prev, maxtries2);
+         }
+-        debugOutput( DEBUG_LEVEL_VERBOSE, " read : CTR: %11u, local: %17"PRIu64"\n",
++        debugOutput( DEBUG_LEVEL_VERBOSE, " read : CTR: %11u, local: %17" PRIu64 "\n",
+                             m_cycle_timer_prev, local_time);
+         debugOutput(DEBUG_LEVEL_VERBOSE,
+-                           "  ctr   : 0x%08X %11"PRIu64" (%03us %04ucy %04uticks)\n",
++                           "  ctr   : 0x%08X %11" PRIu64 " (%03us %04ucy %04uticks)\n",
+                            (uint32_t)m_cycle_timer_prev, (uint64_t)CYCLE_TIMER_TO_TICKS(m_cycle_timer_prev),
+                            (unsigned int)CYCLE_TIMER_GET_SECS( m_cycle_timer_prev ),
+@@ -292,8 +292,8 @@
+     #endif
+ 
+-    debugOutputExtreme( DEBUG_LEVEL_VERY_VERBOSE, " read : CTR: %11u, local: %17"PRIu64"\n",
++    debugOutputExtreme( DEBUG_LEVEL_VERY_VERBOSE, " read : CTR: %11u, local: %17" PRIu64 "\n",
+                         cycle_timer, local_time);
+     debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                       "  ctr   : 0x%08X %11"PRIu64" (%03us %04ucy %04uticks)\n",
++                       "  ctr   : 0x%08X %11" PRIu64 " (%03us %04ucy %04uticks)\n",
+                        (uint32_t)cycle_timer, (uint64_t)cycle_timer_ticks,
+                        (unsigned int)TICKS_TO_SECS( (uint64_t)cycle_timer_ticks ),
+@@ -352,5 +352,5 @@
+         ffado_microsecs_t now = Util::SystemTimeSource::getCurrentTimeAsUsecs();
+         int sleep_time = m_sleep_until - now;
+-        debugOutput( DEBUG_LEVEL_ULTRA_VERBOSE, "(%p) Sleep until %"PRId64"/%f (now: %"PRId64", diff=%d) ...\n",
++        debugOutput( DEBUG_LEVEL_ULTRA_VERBOSE, "(%p) Sleep until %" PRId64 "/%f (now: %" PRId64 ", diff=%d) ...\n",
+                     this, m_sleep_until, m_next_time_usecs, now, sleep_time);
+         #endif
+@@ -403,5 +403,5 @@
+         if(not_good) {
+             debugOutput(DEBUG_LEVEL_VERBOSE, 
+-                        "(%p) have to retry CTR read, diff unrealistic: diff: %"PRId64", max: +/- %u (try: %d) %"PRId64"\n", 
++                        "(%p) have to retry CTR read, diff unrealistic: diff: %" PRId64 ", max: +/- %u (try: %d) %" PRId64 "\n", 
+                         this, err_ticks, 1*TICKS_PER_CYCLE, ntries, expected_ticks);
+             // sleep half a cycle to make sure the hardware moved on
+@@ -432,8 +432,8 @@
+     }
+ 
+-    debugOutputExtreme( DEBUG_LEVEL_ULTRA_VERBOSE, " read : CTR: %11u, local: %17"PRIu64"\n",
++    debugOutputExtreme( DEBUG_LEVEL_ULTRA_VERBOSE, " read : CTR: %11u, local: %17" PRIu64 "\n",
+                         cycle_timer, local_time);
+     debugOutputExtreme(DEBUG_LEVEL_ULTRA_VERBOSE,
+-                       "  ctr   : 0x%08X %11"PRIu64" (%03us %04ucy %04uticks)\n",
++                       "  ctr   : 0x%08X %11" PRIu64 " (%03us %04ucy %04uticks)\n",
+                        (uint32_t)cycle_timer, (uint64_t)cycle_timer_ticks,
+                        (unsigned int)TICKS_TO_SECS( (uint64_t)cycle_timer_ticks ),
+@@ -449,5 +449,5 @@
+     } else if (diff_ticks > m_ticks_per_update * 20) {
+         debugOutput(DEBUG_LEVEL_VERBOSE,
+-                    "re-init dll due to too large tick diff: %"PRId64" >> %f\n",
++                    "re-init dll due to too large tick diff: %" PRId64 " >> %f\n",
+                     diff_ticks, (float)(m_ticks_per_update * 20));
+         if(!initDLL()) {
+@@ -475,5 +475,5 @@
+             diff_ticks_corr = diff_ticks - ticks_late;
+             debugOutputExtreme(DEBUG_LEVEL_ULTRA_VERBOSE,
+-                               "diff_ticks_corr=%"PRId64", diff_ticks = %"PRId64", ticks_late = %"PRId64"\n",
++                               "diff_ticks_corr=%" PRId64 ", diff_ticks = %" PRId64 ", ticks_late = %" PRId64 "\n",
+                                diff_ticks_corr, diff_ticks, ticks_late);
+         } else {
+@@ -486,5 +486,5 @@
+         // makes no sense if not running realtime
+         if(m_realtime && usecs_late > 1000) {
+-            debugOutput(DEBUG_LEVEL_VERBOSE, "Rather late wakeup: %"PRId64" usecs\n", usecs_late);
++            debugOutput(DEBUG_LEVEL_VERBOSE, "Rather late wakeup: %" PRId64 " usecs\n", usecs_late);
+         }
+         #endif
+@@ -539,11 +539,11 @@
+ 
+         debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE, 
+-                           " usecs: current: %f next: %f usecs_late=%"PRId64" ticks_late=%"PRId64"\n",
++                           " usecs: current: %f next: %f usecs_late=%" PRId64 " ticks_late=%" PRId64 "\n",
+                            m_current_time_usecs, m_next_time_usecs, usecs_late, ticks_late);
+         debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                           " ticks: current: %f next: %f diff=%"PRId64"\n",
++                           " ticks: current: %f next: %f diff=%" PRId64 "\n",
+                            m_current_time_ticks, m_next_time_ticks, diff_ticks);
+         debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                           " ticks: current: %011"PRIu64" (%03us %04ucy %04uticks)\n",
++                           " ticks: current: %011" PRIu64 " (%03us %04ucy %04uticks)\n",
+                            (uint64_t)m_current_time_ticks,
+                            (unsigned int)TICKS_TO_SECS( (uint64_t)m_current_time_ticks ),
+@@ -551,5 +551,5 @@
+                            (unsigned int)TICKS_TO_OFFSET( (uint64_t)m_current_time_ticks ) );
+         debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                           " ticks: next   : %011"PRIu64" (%03us %04ucy %04uticks)\n",
++                           " ticks: next   : %011" PRIu64 " (%03us %04ucy %04uticks)\n",
+                            (uint64_t)m_next_time_ticks,
+                            (unsigned int)TICKS_TO_SECS( (uint64_t)m_next_time_ticks ),
+@@ -558,5 +558,5 @@
+ 
+         debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                           " state: local: %11"PRIu64", dll_e2: %f, rate: %f\n",
++                           " state: local: %11" PRIu64 ", dll_e2: %f, rate: %f\n",
+                            local_time, m_dll_e2, getRate());
+     }
+@@ -602,5 +602,5 @@
+     }
+     int32_t ctr_diff = cycle_timer_ticks-dll_time;
+-    debugOutput(DEBUG_LEVEL_ULTRA_VERBOSE, "(%p) CTR DIFF: HW %010"PRIu64" - DLL %010u = %010d (%s)\n", 
++    debugOutput(DEBUG_LEVEL_ULTRA_VERBOSE, "(%p) CTR DIFF: HW %010" PRIu64 " - DLL %010u = %010d (%s)\n", 
+                 this, cycle_timer_ticks, dll_time, ctr_diff, (ctr_diff>0?"lag":"lead"));
+ #endif
+@@ -805,5 +805,5 @@
+         if (diffTicks(cycle_timer_ticks, m_cycle_timer_ticks_prev) < 0) {
+             debugOutput( DEBUG_LEVEL_VERY_VERBOSE,
+-                        "non-monotonic CTR (try %02d): %"PRIu64" -> %"PRIu64"\n",
++                        "non-monotonic CTR (try %02d): %" PRIu64 " -> %" PRIu64 "\n",
+                         maxtries, m_cycle_timer_ticks_prev, cycle_timer_ticks);
+             debugOutput( DEBUG_LEVEL_VERY_VERBOSE,
+@@ -811,5 +811,5 @@
+                         m_cycle_timer_prev, *cycle_timer);
+             debugOutput( DEBUG_LEVEL_VERY_VERBOSE,
+-                        " current: %011"PRIu64" (%03us %04ucy %04uticks)\n",
++                        " current: %011" PRIu64 " (%03us %04ucy %04uticks)\n",
+                         cycle_timer_ticks,
+                         (unsigned int)TICKS_TO_SECS( cycle_timer_ticks ),
+@@ -817,5 +817,5 @@
+                         (unsigned int)TICKS_TO_OFFSET( cycle_timer_ticks ) );
+             debugOutput( DEBUG_LEVEL_VERY_VERBOSE,
+-                        " prev   : %011"PRIu64" (%03us %04ucy %04uticks)\n",
++                        " prev   : %011" PRIu64 " (%03us %04ucy %04uticks)\n",
+                         m_cycle_timer_ticks_prev,
+                         (unsigned int)TICKS_TO_SECS( m_cycle_timer_ticks_prev ),
+Index: trunk/libffado/src/libieee1394/cycletimer.h
+===================================================================
+--- trunk/libffado/src/libieee1394/cycletimer.h (revision 1763)
++++ trunk/libffado/src/libieee1394/cycletimer.h (revision 2651)
+@@ -95,5 +95,5 @@
+ #ifdef DEBUG
+         if (x >= TICKS_PER_SECOND * 128L) {
+-            debugWarning("insufficient wrapping: %"PRIu64"\n",x);
++            debugWarning("insufficient wrapping: %" PRIu64 "\n",x);
+         }
+ #endif
+@@ -118,5 +118,5 @@
+ #ifdef DEBUG
+         if (x < 0) {
+-            debugWarning("insufficient wrapping: %"PRId64"\n",x);
++            debugWarning("insufficient wrapping: %" PRId64 "\n",x);
+         }
+ #endif
+@@ -145,8 +145,8 @@
+ #ifdef DEBUG
+         if (x >= (int64_t)(TICKS_PER_SECOND * 128L)) {
+-            debugWarning("insufficient wrapping (max): %"PRIu64"\n",x);
++            debugWarning("insufficient wrapping (max): %" PRIu64 "\n",x);
+         }
+         if (x < 0) {
+-            debugWarning("insufficient wrapping (min): %"PRId64"\n",x);
++            debugWarning("insufficient wrapping (min): %" PRId64 "\n",x);
+         }
+ #endif
+@@ -249,5 +249,5 @@
+     if(diff > max || diff < -max) {
+         debugWarning("difference does not make any sense\n");
+-        debugWarning("diff=%"PRId64" max=%"PRId64"\n", diff, max);
++        debugWarning("diff=%" PRId64 " max=%" PRId64 "\n", diff, max);
+         
+     }
+@@ -302,5 +302,5 @@
+     uint64_t timestamp;
+ 
+-    debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE, "SYT=%"PRIX64" CY=%u CTR=%08"PRIX64"\n",
++    debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE, "SYT=%" PRIX64 " CY=%u CTR=%08" PRIX64 "\n",
+                        syt_timestamp, rcv_cycle, ctr_now);
+ 
+@@ -313,5 +313,5 @@
+     int diff_cycles = diffCycles(cc_cycles, rcv_cycle);
+     if (diff_cycles<0) {
+-        debugWarning("current cycle timer not ahead of receive cycle: rcv: %u / cc: %"PRIu64" (%d)\n",
++        debugWarning("current cycle timer not ahead of receive cycle: rcv: %u / cc: %" PRIu64 " (%d)\n",
+                         rcv_cycle, cc_cycles, diff_cycles);
+     }
+@@ -351,5 +351,5 @@
+     } else {
+         debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                           "Detected wraparound: %u + %"PRId64" = %"PRId64"\n",
++                           "Detected wraparound: %u + %" PRId64 " = %" PRId64 "\n",
+                            rcv_cycle, delta_cycles, new_cycles);
+ 
+@@ -372,5 +372,5 @@
+         if(( TICKS_TO_CYCLE_TIMER(timestamp) & 0xFFFF) != syt_timestamp) {
+             debugWarning("back-converted timestamp not equal to SYT\n");
+-            debugWarning("TS=%011"PRIu64" TSC=%08"PRIX64" SYT=%04"PRIX64"\n",
++            debugWarning("TS=%011" PRIu64 " TSC=%08" PRIX64 " SYT=%04" PRIX64 "\n",
+                   timestamp, TICKS_TO_CYCLE_TIMER(timestamp), syt_timestamp);
+         }
+@@ -391,5 +391,5 @@
+     uint64_t timestamp;
+ 
+-    debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE, "SYT=%04"PRIX64" RCV_CTR=%08X\n",
++    debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE, "SYT=%04" PRIX64 " RCV_CTR=%08X\n",
+                        syt_timestamp, rcv_ctr);
+ 
+@@ -433,5 +433,5 @@
+         if(( TICKS_TO_CYCLE_TIMER(timestamp) & 0xFFFF) != syt_timestamp) {
+             debugWarning("back-converted timestamp not equal to SYT\n");
+-            debugWarning("TS=%011"PRIu64" TSC=%08"PRIX64" SYT=%04"PRIX64"\n",
++            debugWarning("TS=%011" PRIu64 " TSC=%08" PRIX64 " SYT=%04" PRIX64 "\n",
+                   timestamp, TICKS_TO_CYCLE_TIMER(timestamp), syt_timestamp);
+         }
+@@ -457,5 +457,5 @@
+     uint64_t timestamp;
+ 
+-    debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE, "SYT=%08"PRIX64" CY=%04X CTR=%08"PRIX64"\n",
++    debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE, "SYT=%08" PRIX64 " CY=%04X CTR=%08" PRIX64 "\n",
+                        syt_timestamp, xmt_cycle, ctr_now);
+ 
+@@ -467,5 +467,5 @@
+     int diff_cycles = diffCycles(xmt_cycle, cc_cycles);
+     if (diff_cycles<0) {
+-        debugWarning("xmit cycle not ahead of current cycle: xmt: %u / cc: %"PRIu64" (%d)\n",
++        debugWarning("xmit cycle not ahead of current cycle: xmt: %u / cc: %" PRIu64 " (%d)\n",
+                         xmt_cycle, cc_cycles, diff_cycles);
+     }
+@@ -505,5 +505,5 @@
+     } else {
+         debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                           "Detected wraparound: %u + %"PRId64" = %"PRId64"\n",
++                           "Detected wraparound: %u + %" PRId64 " = %" PRId64 "\n",
+                            xmt_cycle, delta_cycles, new_cycles);
+ 
+@@ -526,5 +526,5 @@
+         if(( TICKS_TO_CYCLE_TIMER(timestamp) & 0xFFFF) != syt_timestamp) {
+             debugWarning("back-converted timestamp not equal to SYT\n");
+-            debugWarning("TS=%011"PRIu64" TSC=%08"PRIX64" SYT=%04"PRIX64"\n",
++            debugWarning("TS=%011" PRIu64 " TSC=%08" PRIX64 " SYT=%04" PRIX64 "\n",
+                   timestamp, TICKS_TO_CYCLE_TIMER(timestamp), syt_timestamp);
+         }
+Index: trunk/libffado/src/libieee1394/ieee1394service.cpp
+===================================================================
+--- trunk/libffado/src/libieee1394/ieee1394service.cpp (revision 2419)
++++ trunk/libffado/src/libieee1394/ieee1394service.cpp (revision 2651)
+@@ -137,9 +137,9 @@
+           ++it )
+     {
+-        debugOutput(DEBUG_LEVEL_VERBOSE, "Unregistering ARM handler for 0x%016"PRIX64"\n", (*it)->getStart());
++        debugOutput(DEBUG_LEVEL_VERBOSE, "Unregistering ARM handler for 0x%016" PRIX64 "\n", (*it)->getStart());
+         if(m_armHelperNormal) {
+             int err = raw1394_arm_unregister(m_armHelperNormal->get1394Handle(), (*it)->getStart());
+             if (err) {
+-                debugError(" Failed to unregister ARM handler for 0x%016"PRIX64"\n", (*it)->getStart());
++                debugError(" Failed to unregister ARM handler for 0x%016" PRIX64 "\n", (*it)->getStart());
+                 debugError(" Error: %s\n", strerror(errno));
+             }
+@@ -604,5 +604,5 @@
+         #ifdef DEBUG
+         debugOutput(DEBUG_LEVEL_VERY_VERBOSE,
+-            "read: node 0x%hX, addr = 0x%016"PRIX64", length = %zd\n",
++            "read: node 0x%hX, addr = 0x%016" PRIX64 ", length = %zd\n",
+             nodeId, addr, length);
+         printBuffer( DEBUG_LEVEL_VERY_VERBOSE, length, buffer );
+@@ -613,5 +613,5 @@
+         #ifdef DEBUG
+         debugOutput(DEBUG_LEVEL_VERBOSE,
+-                    "raw1394_read failed: node 0x%hX, addr = 0x%016"PRIX64", length = %zd\n",
++                    "raw1394_read failed: node 0x%hX, addr = 0x%016" PRIX64 ", length = %zd\n",
+                     nodeId, addr, length);
+         #endif
+@@ -659,5 +659,5 @@
+ 
+     #ifdef DEBUG
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"write: node 0x%hX, addr = 0x%016"PRIX64", length = %zd\n",
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"write: node 0x%hX, addr = 0x%016" PRIX64 ", length = %zd\n",
+                 nodeId, addr, length);
+     printBuffer( DEBUG_LEVEL_VERY_VERBOSE, length, data );
+@@ -696,7 +696,7 @@
+     }
+     #ifdef DEBUG
+-    debugOutput(DEBUG_LEVEL_VERBOSE,"lockCompareSwap64: node 0x%X, addr = 0x%016"PRIX64"\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE,"lockCompareSwap64: node 0x%X, addr = 0x%016" PRIX64 "\n",
+                 nodeId, addr);
+-    debugOutput(DEBUG_LEVEL_VERBOSE,"  if (*(addr)==0x%016"PRIX64") *(addr)=0x%016"PRIX64"\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE,"  if (*(addr)==0x%016" PRIX64 ") *(addr)=0x%016" PRIX64 "\n",
+                 compare_value, swap_value);
+     fb_octlet_t buffer;
+@@ -704,5 +704,5 @@
+         debugWarning("Could not read register\n");
+     } else {
+-        debugOutput(DEBUG_LEVEL_VERBOSE,"before = 0x%016"PRIX64"\n", buffer);
++        debugOutput(DEBUG_LEVEL_VERBOSE,"before = 0x%016" PRIX64 "\n", buffer);
+     }
+     #endif
+@@ -728,5 +728,5 @@
+         debugWarning("Could not read register\n");
+     } else {
+-        debugOutput(DEBUG_LEVEL_VERBOSE,"after = 0x%016"PRIX64"\n", buffer);
++        debugOutput(DEBUG_LEVEL_VERBOSE,"after = 0x%016" PRIX64 "\n", buffer);
+     }
+     #endif
+@@ -1122,5 +1122,5 @@
+ bool Ieee1394Service::registerARMHandler(ARMHandler *h) {
+     debugOutput(DEBUG_LEVEL_VERBOSE,
+-                "Registering ARM handler (%p) for 0x%016"PRIX64", length %zu\n",
++                "Registering ARM handler (%p) for 0x%016" PRIX64 ", length %zu\n",
+                 h, h->getStart(), h->getLength());
+ 
+@@ -1132,5 +1132,5 @@
+                                    h->getClientTransactions());
+     if (err) {
+-        debugError("Failed to register ARM handler for 0x%016"PRIX64"\n", h->getStart());
++        debugError("Failed to register ARM handler for 0x%016" PRIX64 "\n", h->getStart());
+         debugError(" Error: %s\n", strerror(errno));
+         return false;
+@@ -1141,5 +1141,5 @@
+ 
+ bool Ieee1394Service::unregisterARMHandler( ARMHandler *h ) {
+-    debugOutput(DEBUG_LEVEL_VERBOSE, "Unregistering ARM handler (%p) for 0x%016"PRIX64"\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE, "Unregistering ARM handler (%p) for 0x%016" PRIX64 "\n",
+         h, h->getStart());
+ 
+@@ -1173,5 +1173,5 @@
+ nodeaddr_t Ieee1394Service::findFreeARMBlock( nodeaddr_t start, size_t length, size_t step ) {
+     debugOutput(DEBUG_LEVEL_VERBOSE,
+-                "Finding free ARM block of %zd bytes, from 0x%016"PRIX64" in steps of %zd bytes\n",
++                "Finding free ARM block of %zd bytes, from 0x%016" PRIX64 " in steps of %zd bytes\n",
+                 length, start, step);
+ 
+@@ -1185,9 +1185,9 @@
+ 
+         if (err) {
+-            debugOutput(DEBUG_LEVEL_VERBOSE, " -> cannot use 0x%016"PRIX64"\n", start);
++            debugOutput(DEBUG_LEVEL_VERBOSE, " -> cannot use 0x%016" PRIX64 "\n", start);
+             debugError("    Error: %s\n", strerror(errno));
+             start += step;
+         } else {
+-            debugOutput(DEBUG_LEVEL_VERBOSE, " -> use 0x%016"PRIX64"\n", start);
++            debugOutput(DEBUG_LEVEL_VERBOSE, " -> use 0x%016" PRIX64 "\n", start);
+             err = raw1394_arm_unregister(m_handle, start);
+             if (err) {
+@@ -1238,5 +1238,5 @@
+             raw1394_arm_response_t arm_resp = arm_req_resp->response;
+ 
+-            debugOutput(DEBUG_LEVEL_VERBOSE,"ARM handler for address 0x%016"PRIX64" called\n",
++            debugOutput(DEBUG_LEVEL_VERBOSE,"ARM handler for address 0x%016" PRIX64 " called\n",
+                 (*it)->getStart());
+             debugOutput(DEBUG_LEVEL_VERBOSE," request type   : 0x%02X\n", request_type);
+@@ -1634,5 +1634,5 @@
+     debugOutput( DEBUG_LEVEL_VERBOSE, " CycleTimerHelper: %p, IsoManager: %p, WatchDog: %p\n",
+                  m_pCTRHelper, m_pIsoManager, m_pWatchdog );
+-    debugOutput( DEBUG_LEVEL_VERBOSE, " Time: %011"PRIu64" (%03us %04ucy %04uticks)\n",
++    debugOutput( DEBUG_LEVEL_VERBOSE, " Time: %011" PRIu64 " (%03us %04ucy %04uticks)\n",
+                 ctr,
+                 (unsigned int)TICKS_TO_SECS( ctr ),
+Index: trunk/libffado/src/libieee1394/configrom.cpp
+===================================================================
+--- trunk/libffado/src/libieee1394/configrom.cpp (revision 2194)
++++ trunk/libffado/src/libieee1394/configrom.cpp (revision 2651)
+@@ -528,5 +528,5 @@
+ {
+     debugOutput( DEBUG_LEVEL_VERBOSE, 
+-                 "Checking for updated node id for device with GUID 0x%016"PRIX64"...\n",
++                 "Checking for updated node id for device with GUID 0x%016" PRIX64 "...\n",
+                  getGuid());
+ 
+@@ -559,5 +559,5 @@
+ 
+         debugOutput( DEBUG_LEVEL_VERBOSE,
+-                        " Node has GUID 0x%016"PRIX64"\n",
++                        " Node has GUID 0x%016" PRIX64 "\n",
+                         guid);
+ 
+@@ -566,5 +566,5 @@
+             if ( nodeId != getNodeId() ) {
+                 debugOutput( DEBUG_LEVEL_VERBOSE,
+-                             "Device with GUID 0x%016"PRIX64" changed node id "
++                             "Device with GUID 0x%016" PRIX64 " changed node id "
+                              "from %d to %d\n",
+                              getGuid(),
+@@ -574,5 +574,5 @@
+             } else {
+                 debugOutput( DEBUG_LEVEL_VERBOSE,
+-                             "Device with GUID 0x%016"PRIX64" kept node id %d\n",
++                             "Device with GUID 0x%016" PRIX64 " kept node id %d\n",
+                              getGuid(),
+                              getNodeId());
+@@ -591,5 +591,5 @@
+ 
+     debugOutput( DEBUG_LEVEL_VERBOSE,
+-                 "Device with GUID 0x%016"PRIX64" could not be found on "
++                 "Device with GUID 0x%016" PRIX64 " could not be found on "
+                  "the bus anymore (removed?)\n",
+                  getGuid() );
+@@ -604,5 +604,5 @@
+     debugOutput(DEBUG_LEVEL_NORMAL, "Config ROM\n" );
+     debugOutput(DEBUG_LEVEL_NORMAL, "\tCurrent Node Id:\t%d\n",       getNodeId() );
+-    debugOutput(DEBUG_LEVEL_NORMAL, "\tGUID:\t\t\t0x%016"PRIX64"\n",       getGuid());
++    debugOutput(DEBUG_LEVEL_NORMAL, "\tGUID:\t\t\t0x%016" PRIX64 "\n",       getGuid());
+     debugOutput(DEBUG_LEVEL_NORMAL, "\tVendor Name:\t\t%s\n",         getVendorName().c_str() );
+     debugOutput(DEBUG_LEVEL_NORMAL, "\tModel Name:\t\t%s\n",          getModelName().c_str() );
+@@ -625,5 +625,5 @@
+     printMessage("Config ROM\n" );
+     printMessage("\tCurrent Node Id:\t%d\n",       getNodeId() );
+-    printMessage("\tGUID:\t\t\t0x%016"PRIX64"\n",       getGuid());
++    printMessage("\tGUID:\t\t\t0x%016" PRIX64 "\n",       getGuid());
+     printMessage("\tVendor Name:\t\t%s\n",         getVendorName().c_str() );
+     printMessage("\tModel Name:\t\t%s\n",          getModelName().c_str() );
+Index: trunk/libffado/src/libieee1394/IsoHandlerManager.cpp
+===================================================================
+--- trunk/libffado/src/libieee1394/IsoHandlerManager.cpp (revision 2593)
++++ trunk/libffado/src/libieee1394/IsoHandlerManager.cpp (revision 2651)
+@@ -346,9 +346,9 @@
+ 
+         debugOutputExtreme(DEBUG_LEVEL_VERBOSE,
+-                           "(%p, %s) check handler %d: diff = %"PRId64", max = %"PRId64", now: %08X, last: %08X\n",
++                           "(%p, %s) check handler %d: diff = %" PRId64 ", max = %" PRId64 ", now: %08X, last: %08X\n",
+                            this, (m_handlerType == IsoHandler::eHT_Transmit? "Transmit": "Receive"), 
+                            i, measured_diff_ticks, max_diff_ticks, ctr_at_poll_return, last_packet_seen);
+         if(measured_diff_ticks > max_diff_ticks) {
+-            debugWarning("(%p, %s) Handler died: now: %08X, last: %08X, diff: %"PRId64" (max: %"PRId64")\n",
++            debugWarning("(%p, %s) Handler died: now: %08X, last: %08X, diff: %" PRId64 " (max: %" PRId64 ")\n",
+                          this, (m_handlerType == IsoHandler::eHT_Transmit? "Transmit": "Receive"),
+                          ctr_at_poll_return, last_packet_seen, measured_diff_ticks, max_diff_ticks);
+@@ -439,5 +439,5 @@
+             debugError("(%p) sem_timedwait error (result=%d errno=EINVAL)\n", 
+                         this, result);
+-            debugError("(%p) timeout_nsec=%lld ts.sec=%"PRId64" ts.nsec=%"PRId64"\n", 
++            debugError("(%p) timeout_nsec=%lld ts.sec=%" PRId64 " ts.nsec=%" PRId64 "\n", 
+                        this, m_activity_wait_timeout_nsec, 
+ 		       (int64_t)ts.tv_sec, (int64_t)ts.tv_nsec);
+@@ -446,5 +446,5 @@
+             debugError("(%p) sem_timedwait error (result=%d errno=%d)\n", 
+                         this, result, errno);
+-            debugError("(%p) timeout_nsec=%lld ts.sec=%"PRId64" ts.nsec=%"PRId64"\n", 
++            debugError("(%p) timeout_nsec=%lld ts.sec=%" PRId64 " ts.nsec=%" PRId64 "\n", 
+                        this, m_activity_wait_timeout_nsec,
+ 		       (int64_t)ts.tv_sec, (int64_t)ts.tv_nsec);
+@@ -1593,5 +1593,5 @@
+     if((pkt_ctr & ~0x0FFFL) != pkt_ctr_ref) {
+         debugWarning("reconstructed CTR counter discrepancy\n");
+-        debugWarning(" ingredients: %X, %X, %X, %X, %X, %d, %ld, %ld, %"PRId64"\n",
++        debugWarning(" ingredients: %X, %X, %X, %X, %X, %d, %ld, %ld, %" PRId64 "\n",
+                      cycle, pkt_ctr_ref, pkt_ctr, 
+ 		     now, m_last_now, now_secs_ref, 
+@@ -1599,5 +1599,5 @@
+ 		     (long int)CYCLE_TIMER_GET_SECS(m_last_now),
+ 		     tmp);
+-        debugWarning(" diffcy = %"PRId64" \n", diff_cycles);
++        debugWarning(" diffcy = %" PRId64 " \n", diff_cycles);
+     }
+     #endif
+@@ -1678,5 +1678,5 @@
+         if(((pkt_ctr & ~0x0FFFL) != pkt_ctr_ref) && (m_packets > m_buf_packets)) {
+             debugWarning("reconstructed CTR counter discrepancy\n");
+-            debugWarning(" ingredients: %X, %X, %X, %X, %X, %d, %ld, %ld, %"PRId64"\n",
++            debugWarning(" ingredients: %X, %X, %X, %X, %X, %d, %ld, %ld, %" PRId64 "\n",
+                         cycle, pkt_ctr_ref, pkt_ctr,
+ 			 now, m_last_now, now_secs_ref, 
+@@ -1684,5 +1684,5 @@
+ 			 (long int)CYCLE_TIMER_GET_SECS(m_last_now), 
+ 			 tmp);
+-            debugWarning(" diffcy = %"PRId64" \n", diff_cycles);
++            debugWarning(" diffcy = %" PRId64 " \n", diff_cycles);
+         }
+         #endif
+Index: trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.cpp
+===================================================================
+--- trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.cpp (revision 2574)
++++ trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.cpp (revision 2651)
+@@ -228,5 +228,5 @@
+             // we are too late
+             debugOutput(DEBUG_LEVEL_VERBOSE,
+-                        "Too late: CY=%04u, TC=%04u, CUT=%04d, TSP=%011"PRIu64" (%04u)\n",
++                        "Too late: CY=%04u, TC=%04u, CUT=%04d, TSP=%011" PRIu64 " (%04u)\n",
+                         cycle,
+                         transmit_at_cycle, cycles_until_transmit,
+@@ -266,5 +266,5 @@
+         {
+             debugOutput ( DEBUG_LEVEL_VERY_VERBOSE,
+-                        "Too early: CY=%04u, TC=%04u, CUT=%04d, TST=%011"PRIu64" (%04u), TSP=%011"PRIu64" (%04u)\n",
++                        "Too early: CY=%04u, TC=%04u, CUT=%04d, TST=%011" PRIu64 " (%04u), TSP=%011" PRIu64 " (%04u)\n",
+                         cycle,
+                         transmit_at_cycle, cycles_until_transmit,
+@@ -275,5 +275,5 @@
+             {
+                 debugOutput ( DEBUG_LEVEL_VERY_VERBOSE,
+-                            "Way too early: CY=%04u, TC=%04u, CUT=%04d, TST=%011"PRIu64" (%04u), TSP=%011"PRIu64" (%04u)\n",
++                            "Way too early: CY=%04u, TC=%04u, CUT=%04d, TST=%011" PRIu64 " (%04u), TSP=%011" PRIu64 " (%04u)\n",
+                             cycle,
+                             transmit_at_cycle, cycles_until_transmit,
+@@ -342,5 +342,5 @@
+     uint32_t pkt_ctr )
+ {
+-    debugOutput ( DEBUG_LEVEL_VERY_VERBOSE, "XMIT EMPTY: CY=%04lu, TSP=%011"PRIu64" (%04u)\n",
++    debugOutput ( DEBUG_LEVEL_VERY_VERBOSE, "XMIT EMPTY: CY=%04lu, TSP=%011" PRIu64 " (%04u)\n",
+                 CYCLE_TIMER_GET_CYCLES(pkt_ctr), m_last_timestamp, 
+                 ( unsigned int ) TICKS_TO_CYCLES ( m_last_timestamp ) );
+@@ -427,5 +427,5 @@
+     unsigned int cycle = CYCLE_TIMER_GET_CYCLES(pkt_ctr);
+ 
+-    debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "XMIT SILENT: CY=%04u, TSP=%011"PRIu64" (%04u)\n",
++    debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "XMIT SILENT: CY=%04u, TSP=%011" PRIu64 " (%04u)\n",
+                  cycle, m_last_timestamp,
+                  ( unsigned int ) TICKS_TO_CYCLES ( m_last_timestamp ) );
+Index: trunk/libffado/src/libstreaming/rme/RmeReceiveStreamProcessor.cpp
+===================================================================
+--- trunk/libffado/src/libstreaming/rme/RmeReceiveStreamProcessor.cpp (revision 2574)
++++ trunk/libffado/src/libstreaming/rme/RmeReceiveStreamProcessor.cpp (revision 2651)
+@@ -232,5 +232,5 @@
+     #ifdef DEBUG
+     if(isRunning()) {
+-        debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"STMP: %"PRIu64"ticks | tpf=%f\n",
++        debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"STMP: %" PRIu64 "ticks | tpf=%f\n",
+             m_last_timestamp, getTicksPerFrame());
+     }
+Index: trunk/libffado/src/libstreaming/amdtp-oxford/AmdtpOxfordReceiveStreamProcessor.cpp
+===================================================================
+--- trunk/libffado/src/libstreaming/amdtp-oxford/AmdtpOxfordReceiveStreamProcessor.cpp (revision 1945)
++++ trunk/libffado/src/libstreaming/amdtp-oxford/AmdtpOxfordReceiveStreamProcessor.cpp (revision 2651)
+@@ -194,5 +194,5 @@
+ 
+             debugOutput(DEBUG_LEVEL_VERY_VERBOSE,
+-                        "Generated TSP: %16"PRIu64" %"PRId64" %d %d\n", 
++                        "Generated TSP: %16" PRIu64 " %" PRId64 " %d %d\n", 
+                         m_next_packet_timestamp,
+                         m_next_packet_timestamp-m_last_timestamp,
+Index: trunk/libffado/src/libstreaming/motu/MotuTransmitStreamProcessor.cpp
+===================================================================
+--- trunk/libffado/src/libstreaming/motu/MotuTransmitStreamProcessor.cpp (revision 2532)
++++ trunk/libffado/src/libstreaming/motu/MotuTransmitStreamProcessor.cpp (revision 2651)
+@@ -229,5 +229,5 @@
+             // we are too late
+             debugOutput(DEBUG_LEVEL_VERBOSE,
+-                        "Too late: CY=%04u, TC=%04u, CUT=%04d, TSP=%011"PRIu64" (%04u)\n",
++                        "Too late: CY=%04u, TC=%04u, CUT=%04d, TSP=%011" PRIu64 " (%04u)\n",
+                         cycle,
+                         transmit_at_cycle, cycles_until_transmit,
+@@ -260,5 +260,5 @@
+         {
+             debugOutput ( DEBUG_LEVEL_VERY_VERBOSE,
+-                        "Too early: CY=%04u, TC=%04u, CUT=%04d, TST=%011"PRIu64" (%04u), TSP=%011"PRIu64" (%04u)\n",
++                        "Too early: CY=%04u, TC=%04u, CUT=%04d, TST=%011" PRIu64 " (%04u), TSP=%011" PRIu64 " (%04u)\n",
+                         cycle,
+                         transmit_at_cycle, cycles_until_transmit,
+@@ -269,5 +269,5 @@
+             {
+                 debugOutput ( DEBUG_LEVEL_VERY_VERBOSE,
+-                            "Way too early: CY=%04u, TC=%04u, CUT=%04d, TST=%011"PRIu64" (%04u), TSP=%011"PRIu64" (%04u)\n",
++                            "Way too early: CY=%04u, TC=%04u, CUT=%04d, TST=%011" PRIu64 " (%04u), TSP=%011" PRIu64 " (%04u)\n",
+                             cycle,
+                             transmit_at_cycle, cycles_until_transmit,
+@@ -378,5 +378,5 @@
+     uint32_t pkt_ctr )
+ {
+-    debugOutput ( DEBUG_LEVEL_VERY_VERBOSE, "XMIT EMPTY: CY=%04d, TSP=%011"PRIu64" (%04u)\n",
++    debugOutput ( DEBUG_LEVEL_VERY_VERBOSE, "XMIT EMPTY: CY=%04d, TSP=%011" PRIu64 " (%04u)\n",
+                 (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr), m_last_timestamp, 
+                 ( unsigned int ) TICKS_TO_CYCLES ( m_last_timestamp ) );
+@@ -408,5 +408,5 @@
+     unsigned int cycle = CYCLE_TIMER_GET_CYCLES(pkt_ctr);
+ 
+-    debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "XMIT SILENT: CY=%04u, TSP=%011"PRIu64" (%04u)\n",
++    debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "XMIT SILENT: CY=%04u, TSP=%011" PRIu64 " (%04u)\n",
+                  cycle, m_last_timestamp,
+                  ( unsigned int ) TICKS_TO_CYCLES ( m_last_timestamp ) );
+Index: trunk/libffado/src/libstreaming/motu/MotuReceiveStreamProcessor.cpp
+===================================================================
+--- trunk/libffado/src/libstreaming/motu/MotuReceiveStreamProcessor.cpp (revision 2532)
++++ trunk/libffado/src/libstreaming/motu/MotuReceiveStreamProcessor.cpp (revision 2651)
+@@ -237,5 +237,5 @@
+     #ifdef DEBUG
+     if(isRunning()) {
+-        debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"STMP: %"PRIu64"ticks | tpf=%f\n",
++        debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"STMP: %" PRIu64 "ticks | tpf=%f\n",
+             m_last_timestamp, getTicksPerFrame());
+     }
+Index: trunk/libffado/src/libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp
+===================================================================
+--- trunk/libffado/src/libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp (revision 2574)
++++ trunk/libffado/src/libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp (revision 2651)
+@@ -202,5 +202,5 @@
+             // we are too late
+             debugOutput(DEBUG_LEVEL_VERBOSE,
+-                        "Too late: CY=%04d, TC=%04u, CUT=%04d, TSP=%011"PRIu64" (%04u)\n",
++                        "Too late: CY=%04d, TC=%04u, CUT=%04d, TSP=%011" PRIu64 " (%04u)\n",
+                         (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr),
+                         transmit_at_cycle, cycles_until_transmit,
+@@ -231,5 +231,5 @@
+             // for timestamp tracing
+             debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                               "XMIT PKT: TSP= %011"PRIu64" (%04u) (%04u) (%04u)\n",
++                               "XMIT PKT: TSP= %011" PRIu64 " (%04u) (%04u) (%04u)\n",
+                                presentation_time,
+                                (unsigned int)CYCLE_TIMER_GET_CYCLES(pkt_ctr),
+@@ -241,5 +241,5 @@
+         {
+             debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                               "Too early: CY=%04u, TC=%04u, CUT=%04d, TST=%011"PRIu64" (%04u), TSP=%011"PRId64" (%04u)\n",
++                               "Too early: CY=%04u, TC=%04u, CUT=%04d, TST=%011" PRIu64 " (%04u), TSP=%011" PRId64 " (%04u)\n",
+                                (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr),
+                                transmit_at_cycle, cycles_until_transmit,
+@@ -250,5 +250,5 @@
+             {
+                 debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                                   "Way too early: CY=%04u, TC=%04u, CUT=%04d, TST=%011"PRIu64" (%04u), TSP=%011"PRId64"(%04u)\n",
++                                   "Way too early: CY=%04u, TC=%04u, CUT=%04d, TST=%011" PRIu64 " (%04u), TSP=%011" PRId64 "(%04u)\n",
+                                    (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr),
+                                    transmit_at_cycle, cycles_until_transmit,
+@@ -271,5 +271,5 @@
+     {
+         debugOutputExtreme(DEBUG_LEVEL_VERBOSE,
+-                           "XMIT DATA: TSP= %011"PRIu64" (%04u)\n",
++                           "XMIT DATA: TSP= %011" PRIu64 " (%04u)\n",
+                            m_last_timestamp,
+                            (unsigned int)TICKS_TO_CYCLES(m_last_timestamp));
+@@ -303,5 +303,5 @@
+     struct iec61883_packet *packet = ( struct iec61883_packet * ) data;
+     debugOutputExtreme(DEBUG_LEVEL_ULTRA_VERBOSE,
+-                       "XMIT SILENT (cy %04d): TSP=%011"PRIu64" (%04u)\n",
++                       "XMIT SILENT (cy %04d): TSP=%011" PRIu64 " (%04u)\n",
+                        (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr), m_last_timestamp,
+                        (unsigned int)TICKS_TO_CYCLES(m_last_timestamp));
+@@ -341,5 +341,5 @@
+     struct iec61883_packet *packet = ( struct iec61883_packet * ) data;
+     debugOutputExtreme(DEBUG_LEVEL_ULTRA_VERBOSE,
+-                       "XMIT EMPTY (cy %04d): TSP=%011"PRIu64" (%04u)\n",
++                       "XMIT EMPTY (cy %04d): TSP=%011" PRIu64 " (%04u)\n",
+                        (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr), m_last_timestamp,
+                        (unsigned int)TICKS_TO_CYCLES(m_last_timestamp) );
+Index: trunk/libffado/src/libstreaming/StreamProcessorManager.cpp
+===================================================================
+--- trunk/libffado/src/libstreaming/StreamProcessorManager.cpp (revision 2524)
++++ trunk/libffado/src/libstreaming/StreamProcessorManager.cpp (revision 2651)
+@@ -199,5 +199,5 @@
+             debugError("(%p) sem_[timed]wait error (result=%d errno=EINVAL)\n", 
+                         this, result);
+-            debugError("(%p) timeout_nsec=%"PRId64" ts.sec=%"PRId64" ts.nsec=%"PRId64"\n", 
++            debugError("(%p) timeout_nsec=%" PRId64 " ts.sec=%" PRId64 " ts.nsec=%" PRId64 "\n", 
+                        this, m_activity_wait_timeout_nsec,
+ 		       (int64_t)ts.tv_sec, (int64_t)ts.tv_nsec);
+@@ -206,5 +206,5 @@
+             debugError("(%p) sem_[timed]wait error (result=%d errno=%d)\n", 
+                         this, result, errno);
+-            debugError("(%p) timeout_nsec=%"PRId64" ts.sec=%"PRId64" ts.nsec=%"PRId64"\n", 
++            debugError("(%p) timeout_nsec=%" PRId64 " ts.sec=%" PRId64 " ts.nsec=%" PRId64 "\n", 
+                        this, m_activity_wait_timeout_nsec, 
+ 		       (int64_t)ts.tv_sec, (int64_t)ts.tv_nsec);
+@@ -636,6 +636,6 @@
+         #if DEBUG_EXTREME_ENABLE
+         int64_t now = Util::SystemTimeSource::getCurrentTime();
+-        debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "CTR  pred: %"PRId64", syncdelay: %"PRId64", diff: %"PRId64"\n", ticks_at_period, ticks_at_period_margin, ticks_at_period_margin-ticks_at_period );
+-        debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "PREWAIT  pred: %"PRId64", now: %"PRId64", wait: %"PRId64"\n", pred_system_time_at_xfer, now, pred_system_time_at_xfer-now );
++        debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "CTR  pred: %" PRId64 ", syncdelay: %" PRId64 ", diff: %" PRId64 "\n", ticks_at_period, ticks_at_period_margin, ticks_at_period_margin-ticks_at_period );
++        debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "PREWAIT  pred: %" PRId64 ", now: %" PRId64 ", wait: %" PRId64 "\n", pred_system_time_at_xfer, now, pred_system_time_at_xfer-now );
+         #endif
+     
+@@ -645,5 +645,5 @@
+         #if DEBUG_EXTREME_ENABLE
+         now = Util::SystemTimeSource::getCurrentTime();
+-        debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "POSTWAIT pred: %"PRId64", now: %"PRId64", excess: %"PRId64"\n", pred_system_time_at_xfer, now, now-pred_system_time_at_xfer );
++        debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "POSTWAIT pred: %" PRId64 ", now: %" PRId64 ", excess: %" PRId64 "\n", pred_system_time_at_xfer, now, now-pred_system_time_at_xfer );
+         #endif
+     }
+@@ -666,5 +666,5 @@
+     // figure out where we are now
+     uint64_t time_of_first_sample = m_SyncSource->getTimeAtPeriod();
+-    debugOutput( DEBUG_LEVEL_VERBOSE, " sync at TS=%011"PRIu64" (%03us %04uc %04ut)...\n", 
++    debugOutput( DEBUG_LEVEL_VERBOSE, " sync at TS=%011" PRIu64 " (%03us %04uc %04ut)...\n", 
+         time_of_first_sample,
+         (unsigned int)TICKS_TO_SECS(time_of_first_sample),
+@@ -683,8 +683,8 @@
+     time_of_first_sample = addTicks(time_of_first_sample,
+                                     time_for_startup_ticks);
+-    debugOutput( DEBUG_LEVEL_VERBOSE, "  add %d frames (%011"PRIu64" ticks)...\n", 
++    debugOutput( DEBUG_LEVEL_VERBOSE, "  add %d frames (%011" PRIu64 " ticks)...\n", 
+         time_for_startup_frames, time_for_startup_ticks);
+ 
+-    debugOutput( DEBUG_LEVEL_VERBOSE, "  => first sample at TS=%011"PRIu64" (%03us %04uc %04ut)...\n", 
++    debugOutput( DEBUG_LEVEL_VERBOSE, "  => first sample at TS=%011" PRIu64 " (%03us %04uc %04ut)...\n", 
+         time_of_first_sample,
+         (unsigned int)TICKS_TO_SECS(time_of_first_sample),
+@@ -699,10 +699,10 @@
+     uint64_t time_to_start_recv = substractTicks(time_of_first_sample,
+                                                  prestart_cycles_for_recv * TICKS_PER_CYCLE);
+-    debugOutput( DEBUG_LEVEL_VERBOSE, "  => xmit starts at  TS=%011"PRIu64" (%03us %04uc %04ut)...\n", 
++    debugOutput( DEBUG_LEVEL_VERBOSE, "  => xmit starts at  TS=%011" PRIu64 " (%03us %04uc %04ut)...\n", 
+         time_to_start_xmit,
+         (unsigned int)TICKS_TO_SECS(time_to_start_xmit),
+         (unsigned int)TICKS_TO_CYCLES(time_to_start_xmit),
+         (unsigned int)TICKS_TO_OFFSET(time_to_start_xmit));
+-    debugOutput( DEBUG_LEVEL_VERBOSE, "  => recv starts at  TS=%011"PRIu64" (%03us %04uc %04ut)...\n", 
++    debugOutput( DEBUG_LEVEL_VERBOSE, "  => recv starts at  TS=%011" PRIu64 " (%03us %04uc %04ut)...\n", 
+         time_to_start_recv,
+         (unsigned int)TICKS_TO_SECS(time_to_start_recv),
+@@ -756,5 +756,5 @@
+         signed int fc;
+         (*it)->getBufferHeadTimestamp ( &ts, &fc );
+-        debugOutput( DEBUG_LEVEL_VERBOSE, " transmit buffer tail %010"PRId64" => head TS %010"PRIu64", fc=%d...\n",
++        debugOutput( DEBUG_LEVEL_VERBOSE, " transmit buffer tail %010" PRId64 " => head TS %010" PRIu64 ", fc=%d...\n",
+                     time_of_first_sample, (uint64_t)ts, fc);
+     }
+@@ -786,5 +786,5 @@
+     }
+     if(!m_SyncSource->scheduleStartRunning(time_to_start_sync)) {
+-        debugError("m_SyncSource->scheduleStartRunning(%11"PRIu64") failed\n", time_to_start_sync);
++        debugError("m_SyncSource->scheduleStartRunning(%11" PRIu64 ") failed\n", time_to_start_sync);
+         return false;
+     }
+@@ -796,5 +796,5 @@
+         if(*it != m_SyncSource) {
+             if(!(*it)->scheduleStartRunning(time_to_start_recv)) {
+-                debugError("%p->scheduleStartRunning(%11"PRIu64") failed\n", *it, time_to_start_recv);
++                debugError("%p->scheduleStartRunning(%11" PRIu64 ") failed\n", *it, time_to_start_recv);
+                 return false;
+             }
+@@ -806,5 +806,5 @@
+         if(*it != m_SyncSource) {
+             if(!(*it)->scheduleStartRunning(time_to_start_xmit)) {
+-                debugError("%p->scheduleStartRunning(%11"PRIu64") failed\n", *it, time_to_start_xmit);
++                debugError("%p->scheduleStartRunning(%11" PRIu64 ") failed\n", *it, time_to_start_xmit);
+                 return false;
+             }
+@@ -839,5 +839,5 @@
+     #endif
+ 
+-    debugOutput( DEBUG_LEVEL_VERBOSE, "  initial time of transfer %010"PRId64", rate %f...\n",
++    debugOutput( DEBUG_LEVEL_VERBOSE, "  initial time of transfer %010" PRId64 ", rate %f...\n",
+                 m_time_of_transfer, rate);
+ 
+@@ -858,5 +858,5 @@
+ 
+     int64_t transmit_tail_timestamp = addTicks(m_time_of_transfer, delay_in_ticks);
+-    debugOutput( DEBUG_LEVEL_VERBOSE, "  preset transmit tail TS %010"PRId64", rate %f...\n",
++    debugOutput( DEBUG_LEVEL_VERBOSE, "  preset transmit tail TS %010" PRId64 ", rate %f...\n",
+                 transmit_tail_timestamp, rate);
+ 
+@@ -869,5 +869,5 @@
+         signed int fc;
+         (*it)->getBufferHeadTimestamp ( &ts, &fc );
+-        debugOutput( DEBUG_LEVEL_VERBOSE, "   => transmit head TS %010"PRId64", fc=%d...\n",
++        debugOutput( DEBUG_LEVEL_VERBOSE, "   => transmit head TS %010" PRId64 ", fc=%d...\n",
+                     (uint64_t)ts, fc);
+     }
+@@ -926,5 +926,5 @@
+                 StreamProcessor *s = m_ReceiveProcessors.at(i);
+                 diff = diffTicks(m_SyncSource->getTimeAtPeriod(), s->getTimeAtPeriod());
+-                debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "  offset between SyncSP %p and SP %p is %"PRId64" ticks...\n", 
++                debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "  offset between SyncSP %p and SP %p is %" PRId64 " ticks...\n", 
+                     m_SyncSource, s, diff);
+                 if ( nb_sync_runs == periods_per_align_try ) {
+@@ -948,5 +948,5 @@
+             diff_between_streams[i] /= periods_per_align_try;
+             diff_between_streams_frames[i] = (int)roundf(diff_between_streams[i] / s->getTicksPerFrame());
+-            debugOutput( DEBUG_LEVEL_VERBOSE, "   avg offset between SyncSP %p and SP %p is %"PRId64" ticks, %d frames...\n", 
++            debugOutput( DEBUG_LEVEL_VERBOSE, "   avg offset between SyncSP %p and SP %p is %" PRId64 " ticks, %d frames...\n", 
+                 m_SyncSource, s, diff_between_streams[i], diff_between_streams_frames[i]);
+ 
+@@ -1230,6 +1230,6 @@
+     #if DEBUG_EXTREME_ENABLE
+     int64_t now = Util::SystemTimeSource::getCurrentTime();
+-    debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "CTR  pred: %"PRId64", syncdelay: %"PRId64", diff: %"PRId64"\n", ticks_at_period, ticks_at_period_margin, ticks_at_period_margin-ticks_at_period );
+-    debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "PREWAIT  pred: %"PRId64", now: %"PRId64", wait: %"PRId64"\n", pred_system_time_at_xfer, now, pred_system_time_at_xfer-now );
++    debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "CTR  pred: %" PRId64 ", syncdelay: %" PRId64 ", diff: %" PRId64 "\n", ticks_at_period, ticks_at_period_margin, ticks_at_period_margin-ticks_at_period );
++    debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "PREWAIT  pred: %" PRId64 ", now: %" PRId64 ", wait: %" PRId64 "\n", pred_system_time_at_xfer, now, pred_system_time_at_xfer-now );
+     #endif
+ 
+@@ -1239,5 +1239,5 @@
+     #if DEBUG_EXTREME_ENABLE
+     now = Util::SystemTimeSource::getCurrentTime();
+-    debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "POSTWAIT pred: %"PRId64", now: %"PRId64", excess: %"PRId64"\n", pred_system_time_at_xfer, now, now-pred_system_time_at_xfer );
++    debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "POSTWAIT pred: %" PRId64 ", now: %" PRId64 ", excess: %" PRId64 "\n", pred_system_time_at_xfer, now, now-pred_system_time_at_xfer );
+     #endif
+ 
+@@ -1369,5 +1369,5 @@
+     // so 50 ticks = 10%, which is a rather large jitter value.
+     if(diff-ticks_per_period > m_max_diff_ticks || diff-ticks_per_period < -m_max_diff_ticks) {
+-        debugOutput(DEBUG_LEVEL_VERBOSE, "rather large TSP difference TS=%011"PRIu64" => TS=%011"PRIu64" (%d, nom %d)\n",
++        debugOutput(DEBUG_LEVEL_VERBOSE, "rather large TSP difference TS=%011" PRIu64 " => TS=%011" PRIu64 " (%d, nom %d)\n",
+                                             m_time_of_transfer2, m_time_of_transfer, diff, ticks_per_period);
+     }
+@@ -1376,5 +1376,5 @@
+ 
+     debugOutputExtreme(DEBUG_LEVEL_VERBOSE,
+-                        "transfer period %d at %"PRIu64" ticks...\n",
++                        "transfer period %d at %" PRIu64 " ticks...\n",
+                         m_nbperiods, m_time_of_transfer);
+ 
+@@ -1392,5 +1392,5 @@
+     }
+     debugOutputExtreme( DEBUG_LEVEL_VERY_VERBOSE, 
+-                        "XF at %011"PRIu64" ticks, RBF=%d, XBF=%d, SUM=%d...\n",
++                        "XF at %011" PRIu64 " ticks, RBF=%d, XBF=%d, SUM=%d...\n",
+                         m_time_of_transfer, rcv_bf, xmt_bf, rcv_bf+xmt_bf);
+     #endif
+@@ -1467,5 +1467,5 @@
+     if(m_SyncSource == NULL) return false;
+     debugOutputExtreme( DEBUG_LEVEL_VERY_VERBOSE,
+-        "transfer(%d) at TS=%011"PRIu64" (%03us %04uc %04ut)...\n", 
++        "transfer(%d) at TS=%011" PRIu64 " (%03us %04uc %04ut)...\n", 
+         t, m_time_of_transfer,
+         (unsigned int)TICKS_TO_SECS(m_time_of_transfer),
+@@ -1481,5 +1481,5 @@
+                 ++it ) {
+             if(!(*it)->getFrames(m_period, m_time_of_transfer)) {
+-                    debugWarning("could not getFrames(%u, %11"PRIu64") from stream processor (%p)\n",
++                    debugWarning("could not getFrames(%u, %11" PRIu64 ") from stream processor (%p)\n",
+                             m_period, m_time_of_transfer,*it);
+                 retval &= false; // buffer underrun
+@@ -1504,5 +1504,5 @@
+ 
+             if(!(*it)->putFrames(m_period, transmit_timestamp)) {
+-                debugWarning("could not putFrames(%u,%"PRIu64") to stream processor (%p)\n",
++                debugWarning("could not putFrames(%u,%" PRIu64 ") to stream processor (%p)\n",
+                         m_period, transmit_timestamp, *it);
+                 retval &= false; // buffer underrun
+@@ -1545,5 +1545,5 @@
+     if(m_SyncSource == NULL) return false;
+     debugOutput( DEBUG_LEVEL_VERY_VERBOSE,
+-        "transferSilence(%d) at TS=%011"PRIu64" (%03us %04uc %04ut)...\n", 
++        "transferSilence(%d) at TS=%011" PRIu64 " (%03us %04uc %04ut)...\n", 
+         t, m_time_of_transfer,
+         (unsigned int)TICKS_TO_SECS(m_time_of_transfer),
+@@ -1559,5 +1559,5 @@
+                 ++it ) {
+             if(!(*it)->dropFrames(m_period, m_time_of_transfer)) {
+-                    debugWarning("could not dropFrames(%u, %11"PRIu64") from stream processor (%p)\n",
++                    debugWarning("could not dropFrames(%u, %11" PRIu64 ") from stream processor (%p)\n",
+                             m_period, m_time_of_transfer,*it);
+                 retval &= false; // buffer underrun
+@@ -1582,5 +1582,5 @@
+ 
+             if(!(*it)->putSilenceFrames(m_period, transmit_timestamp)) {
+-                debugWarning("could not putSilenceFrames(%u,%"PRIu64") to stream processor (%p)\n",
++                debugWarning("could not putSilenceFrames(%u,%" PRIu64 ") to stream processor (%p)\n",
+                         m_period, transmit_timestamp, *it);
+                 retval &= false; // buffer underrun
+Index: trunk/libffado/src/libstreaming/generic/StreamProcessor.cpp
+===================================================================
+--- trunk/libffado/src/libstreaming/generic/StreamProcessor.cpp (revision 2593)
++++ trunk/libffado/src/libstreaming/generic/StreamProcessor.cpp (revision 2651)
+@@ -304,5 +304,5 @@
+         m_data_buffer->getBufferTailTimestamp(&ts,&fc);
+     
+-        debugOutput(DEBUG_LEVEL_VERY_VERBOSE, "=> NPD="TIMESTAMP_FORMAT_SPEC", LTS="TIMESTAMP_FORMAT_SPEC", FC=%5u, TPF=%f\n",
++        debugOutput(DEBUG_LEVEL_VERY_VERBOSE, "=> NPD=" TIMESTAMP_FORMAT_SPEC ", LTS=" TIMESTAMP_FORMAT_SPEC ", FC=%5u, TPF=%f\n",
+             next_period_boundary, ts, fc, getTicksPerFrame()
+             );
+@@ -317,5 +317,5 @@
+         m_data_buffer->getBufferTailTimestamp(&ts,&fc);
+     
+-        debugOutput(DEBUG_LEVEL_VERY_VERBOSE, "=> NPD="TIMESTAMP_FORMAT_SPEC", LTS="TIMESTAMP_FORMAT_SPEC", FC=%5u, TPF=%f\n",
++        debugOutput(DEBUG_LEVEL_VERY_VERBOSE, "=> NPD=" TIMESTAMP_FORMAT_SPEC ", LTS=" TIMESTAMP_FORMAT_SPEC ", FC=%5u, TPF=%f\n",
+             next_period_boundary, ts, fc, getTicksPerFrame()
+             );
+@@ -465,5 +465,5 @@
+         if (m_last_timestamp > 0 && m_last_timestamp2 > 0) {
+             int64_t tsp_diff = diffTicks(m_last_timestamp, m_last_timestamp2);
+-            debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "TSP diff: %"PRId64"\n", tsp_diff);
++            debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "TSP diff: %" PRId64 "\n", tsp_diff);
+             double tsp_diff_d = tsp_diff;
+             double fs_syt = 1.0/tsp_diff_d;
+@@ -487,5 +487,5 @@
+                 if(diff-ticks_per_packet > m_max_diff_ticks || diff-ticks_per_packet < -m_max_diff_ticks) {
+                     debugOutput(DEBUG_LEVEL_VERBOSE,
+-                                "cy %04d rather large TSP difference TS=%011"PRIu64" => TS=%011"PRIu64" (%d, nom %d)\n",
++                                "cy %04d rather large TSP difference TS=%011" PRIu64 " => TS=%011" PRIu64 " (%d, nom %d)\n",
+                                 (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr), m_last_timestamp2,
+                                 m_last_timestamp, diff, ticks_per_packet);
+@@ -498,5 +498,5 @@
+                     diff = diffTicks(last_timestamp_fixed, m_last_timestamp2);
+                     if(diff-ticks_per_packet < 50 && diff-ticks_per_packet > -50) {
+-                        debugWarning("cy %04d rather large TSP difference TS=%011"PRIu64" => TS=%011"PRIu64" (%d, nom %d)\n",
++                        debugWarning("cy %04d rather large TSP difference TS=%011" PRIu64 " => TS=%011" PRIu64 " (%d, nom %d)\n",
+                                     (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr), m_last_timestamp2,
+                                     m_last_timestamp, diff, ticks_per_packet);
+@@ -508,5 +508,5 @@
+                         diff = diffTicks(last_timestamp_fixed, m_last_timestamp2);
+                         if(diff-ticks_per_packet < 50 && diff-ticks_per_packet > -50) {
+-                            debugWarning("cy %04d rather large TSP difference TS=%011"PRIu64" => TS=%011"PRIu64" (%d, nom %d)\n",
++                            debugWarning("cy %04d rather large TSP difference TS=%011" PRIu64 " => TS=%011" PRIu64 " (%d, nom %d)\n",
+                                         (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr), m_last_timestamp2,
+                                         m_last_timestamp, diff, ticks_per_packet);
+@@ -517,5 +517,5 @@
+                 }
+                 debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                                "%04u %011"PRIu64" %011"PRIu64" %d %d\n",
++                                "%04u %011" PRIu64 " %011" PRIu64 " %d %d\n",
+                                 (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr),
+                                 m_last_timestamp2, m_last_timestamp, 
+@@ -525,5 +525,5 @@
+ 
+         debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                          "RECV: CY=%04u TS=%011"PRIu64"\n",
++                          "RECV: CY=%04u TS=%011" PRIu64 "\n",
+                           (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr),
+                           m_last_timestamp);
+@@ -694,5 +694,5 @@
+         if (result == eCRV_Packet) {
+             debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                               "XMIT SILENT: CY=%04u TS=%011"PRIu64"\n",
++                               "XMIT SILENT: CY=%04u TS=%011" PRIu64 "\n",
+                                (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr), m_last_timestamp);
+ 
+@@ -745,5 +745,5 @@
+         if (result == eCRV_Packet || result == eCRV_Defer) {
+             debugOutputExtreme(DEBUG_LEVEL_VERBOSE,
+-                               "XMIT: CY=%04u TS=%011"PRIu64"\n",
++                               "XMIT: CY=%04u TS=%011" PRIu64 "\n",
+                                (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr), m_last_timestamp);
+ 
+@@ -782,5 +782,5 @@
+             if (m_last_timestamp > 0 && m_last_timestamp2 > 0) {
+                 int64_t tsp_diff = diffTicks(m_last_timestamp, m_last_timestamp2);
+-                debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "TSP diff: %"PRId64"\n", tsp_diff);
++                debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "TSP diff: %" PRId64 "\n", tsp_diff);
+                 double tsp_diff_d = tsp_diff;
+                 double fs_syt = 1.0/tsp_diff_d;
+@@ -791,5 +791,5 @@
+                 debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "Nom fs: %12f, Instantanous fs: %12f, diff: %12f (%12f)\n",
+                            fs_nom, fs_syt, fs_diff, fs_diff_norm);
+-//                 debugOutput(DEBUG_LEVEL_VERBOSE, "Diff fs: %12f, m_last_timestamp: %011"PRIu64", m_last_timestamp2: %011"PRIu64"\n",
++//                 debugOutput(DEBUG_LEVEL_VERBOSE, "Diff fs: %12f, m_last_timestamp: %011" PRIu64 ", m_last_timestamp2: %011" PRIu64 "\n",
+ //                            fs_diff, m_last_timestamp, m_last_timestamp2);
+                 if (fs_diff_norm > m_max_fs_diff_norm || fs_diff_norm < -m_max_fs_diff_norm) {
+@@ -805,10 +805,10 @@
+                 if(diff-ticks_per_packet > m_max_diff_ticks || diff-ticks_per_packet < -m_max_diff_ticks) {
+                     debugOutput(DEBUG_LEVEL_VERBOSE,
+-                                "cy %04d, rather large TSP difference TS=%011"PRIu64" => TS=%011"PRIu64" (%d, nom %d)\n",
++                                "cy %04d, rather large TSP difference TS=%011" PRIu64 " => TS=%011" PRIu64 " (%d, nom %d)\n",
+                                 (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr), m_last_timestamp2,
+                                 m_last_timestamp, diff, ticks_per_packet);
+                 }
+                 debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                                "%04d %011"PRIu64" %011"PRIu64" %d %d\n",
++                                "%04d %011" PRIu64 " %011" PRIu64 " %d %d\n",
+                                 (int)CYCLE_TIMER_GET_CYCLES(pkt_ctr), m_last_timestamp2,
+                                 m_last_timestamp, diff, ticks_per_packet);
+@@ -903,5 +903,5 @@
+     bool result;
+     debugOutputExtreme( DEBUG_LEVEL_VERBOSE,
+-                        "(%p, %s) getFrames(%d, %11"PRIu64")\n",
++                        "(%p, %s) getFrames(%d, %11" PRIu64 ")\n",
+                         this, getTypeString(), nbframes, ts);
+     assert( getType() == ePT_Receive );
+@@ -934,13 +934,13 @@
+     lag_frames = (((float)lag_ticks) / srate);
+     debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                       "stream (%p): drifts %6d ticks = %10.5f frames (rate=%10.5f), %"PRId64", %"PRIu64", %d\n",
++                       "stream (%p): drifts %6d ticks = %10.5f frames (rate=%10.5f), %" PRId64 ", %" PRIu64 ", %d\n",
+                        this, lag_ticks, lag_frames, srate, ts, ts_expected, fc);
+     if (lag_frames >= 1.0) {
+         // the stream lags
+-        debugOutput(DEBUG_LEVEL_VERBOSE, "stream (%p): lags  with %6d ticks = %10.5f frames (rate=%10.5f), %"PRId64", %"PRIu64", %d\n",
++        debugOutput(DEBUG_LEVEL_VERBOSE, "stream (%p): lags  with %6d ticks = %10.5f frames (rate=%10.5f), %" PRId64 ", %" PRIu64 ", %d\n",
+                       this, lag_ticks, lag_frames, srate, ts, ts_expected, fc);
+     } else if (lag_frames <= -1.0) {
+         // the stream leads
+-        debugOutput(DEBUG_LEVEL_VERBOSE, "stream (%p): leads with %6d ticks = %10.5f frames (rate=%10.5f), %"PRId64", %"PRIu64", %d\n",
++        debugOutput(DEBUG_LEVEL_VERBOSE, "stream (%p): leads with %6d ticks = %10.5f frames (rate=%10.5f), %" PRId64 ", %" PRIu64 ", %d\n",
+                       this, lag_ticks, lag_frames, srate, ts, ts_expected, fc);
+     }
+@@ -956,5 +956,5 @@
+ {
+     debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                       "stream (%p): dry run %d frames (@ ts=%"PRId64")\n",
++                       "stream (%p): dry run %d frames (@ ts=%" PRId64 ")\n",
+                        this, nbframes, ts);
+     // dry run on this side means that we put silence in all enabled ports
+@@ -967,5 +967,5 @@
+ {
+     bool result;
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE, "StreamProcessor::dropFrames(%d, %"PRId64")\n", nbframes, ts);
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE, "StreamProcessor::dropFrames(%d, %" PRId64 ")\n", nbframes, ts);
+     result = m_data_buffer->dropFrames(nbframes);
+     SIGNAL_ACTIVITY_ISO_RECV;
+@@ -977,5 +977,5 @@
+     bool result;
+     debugOutputExtreme( DEBUG_LEVEL_VERBOSE,
+-                        "(%p, %s) putFrames(%d, %11"PRIu64")\n",
++                        "(%p, %s) putFrames(%d, %11" PRIu64 ")\n",
+                         this, getTypeString(), nbframes, ts);
+     assert( getType() == ePT_Transmit );
+@@ -990,10 +990,10 @@
+ {
+     debugOutputExtreme(DEBUG_LEVEL_ULTRA_VERBOSE,
+-                       "StreamProcessor::putFramesWet(%d, %"PRIu64")\n",
++                       "StreamProcessor::putFramesWet(%d, %" PRIu64 ")\n",
+                        nbframes, ts);
+     // transfer the data
+     m_data_buffer->blockProcessWriteFrames(nbframes, ts);
+     debugOutputExtreme(DEBUG_LEVEL_ULTRA_VERBOSE,
+-                       " New timestamp: %"PRIu64"\n", ts);
++                       " New timestamp: %" PRIu64 "\n", ts);
+     return true; // FIXME: what about failure?
+ }
+@@ -1003,5 +1003,5 @@
+ {
+     debugOutputExtreme(DEBUG_LEVEL_ULTRA_VERBOSE,
+-                       "StreamProcessor::putFramesDry(%d, %"PRIu64")\n",
++                       "StreamProcessor::putFramesDry(%d, %" PRIu64 ")\n",
+                        nbframes, ts);
+     // do nothing
+@@ -1013,5 +1013,5 @@
+ {
+     debugOutput(DEBUG_LEVEL_VERY_VERBOSE,
+-                       "StreamProcessor::putSilenceFrames(%d, %"PRIu64")\n",
++                       "StreamProcessor::putSilenceFrames(%d, %" PRIu64 ")\n",
+                        nbframes, ts);
+ 
+@@ -1233,10 +1233,10 @@
+     #ifdef DEBUG
+     uint64_t now = m_1394service.getCycleTimerTicks();
+-    debugOutput(DEBUG_LEVEL_VERBOSE,"  Now                   : %011"PRIu64" (%03us %04uc %04ut)\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE,"  Now                   : %011" PRIu64 " (%03us %04uc %04ut)\n",
+                           now,
+                           (unsigned int)TICKS_TO_SECS(now),
+                           (unsigned int)TICKS_TO_CYCLES(now),
+                           (unsigned int)TICKS_TO_OFFSET(now));
+-    debugOutput(DEBUG_LEVEL_VERBOSE,"  Start at              : %011"PRIu64" (%03us %04uc %04ut)\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE,"  Start at              : %011" PRIu64 " (%03us %04uc %04ut)\n",
+                           tx,
+                           (unsigned int)TICKS_TO_SECS(tx),
+@@ -1279,10 +1279,10 @@
+     #ifdef DEBUG
+     uint64_t now = m_1394service.getCycleTimerTicks();
+-    debugOutput(DEBUG_LEVEL_VERBOSE,"  Now                   : %011"PRIu64" (%03us %04uc %04ut)\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE,"  Now                   : %011" PRIu64 " (%03us %04uc %04ut)\n",
+                           now,
+                           (unsigned int)TICKS_TO_SECS(now),
+                           (unsigned int)TICKS_TO_CYCLES(now),
+                           (unsigned int)TICKS_TO_OFFSET(now));
+-    debugOutput(DEBUG_LEVEL_VERBOSE,"  Start at              : %011"PRIu64" (%03us %04uc %04ut)\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE,"  Start at              : %011" PRIu64 " (%03us %04uc %04ut)\n",
+                           tx,
+                           (unsigned int)TICKS_TO_SECS(tx),
+@@ -1303,10 +1303,10 @@
+     #ifdef DEBUG
+     uint64_t now = m_1394service.getCycleTimerTicks();
+-    debugOutput(DEBUG_LEVEL_VERBOSE,"  Now                   : %011"PRIu64" (%03us %04uc %04ut)\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE,"  Now                   : %011" PRIu64 " (%03us %04uc %04ut)\n",
+                           now,
+                           (unsigned int)TICKS_TO_SECS(now),
+                           (unsigned int)TICKS_TO_CYCLES(now),
+                           (unsigned int)TICKS_TO_OFFSET(now));
+-    debugOutput(DEBUG_LEVEL_VERBOSE,"  Stop at              : %011"PRIu64" (%03us %04uc %04ut)\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE,"  Stop at              : %011" PRIu64 " (%03us %04uc %04ut)\n",
+                           tx,
+                           (unsigned int)TICKS_TO_SECS(tx),
+@@ -1328,10 +1328,10 @@
+     #ifdef DEBUG
+     uint64_t now = m_1394service.getCycleTimerTicks();
+-    debugOutput(DEBUG_LEVEL_VERBOSE,"  Now                   : %011"PRIu64" (%03us %04uc %04ut)\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE,"  Now                   : %011" PRIu64 " (%03us %04uc %04ut)\n",
+                           now,
+                           (unsigned int)TICKS_TO_SECS(now),
+                           (unsigned int)TICKS_TO_CYCLES(now),
+                           (unsigned int)TICKS_TO_OFFSET(now));
+-    debugOutput(DEBUG_LEVEL_VERBOSE,"  Stop at              : %011"PRIu64" (%03us %04uc %04ut)\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE,"  Stop at              : %011" PRIu64 " (%03us %04uc %04ut)\n",
+                           tx,
+                           (unsigned int)TICKS_TO_SECS(tx),
+@@ -1953,5 +1953,5 @@
+     m_IsoHandlerManager.dumpInfoForStream(this);
+     uint64_t now = m_1394service.getCycleTimerTicks();
+-    debugOutputShort( DEBUG_LEVEL_NORMAL, "  Now                   : %011"PRIu64" (%03us %04uc %04ut)\n",
++    debugOutputShort( DEBUG_LEVEL_NORMAL, "  Now                   : %011" PRIu64 " (%03us %04uc %04ut)\n",
+                         now,
+                         (unsigned int)TICKS_TO_SECS(now),
+Index: trunk/libffado/src/rme/fireface_flash.cpp
+===================================================================
+--- trunk/libffado/src/rme/fireface_flash.cpp (revision 2574)
++++ trunk/libffado/src/rme/fireface_flash.cpp (revision 2651)
+@@ -581,13 +581,13 @@
+ 
+     i = read_flash(addr, (quadlet_t *)(vbuf), RME_FF_FLASH_MIXER_ARRAY_SIZE/4);
+-    debugOutput(DEBUG_LEVEL_VERBOSE, "read_flash(%"PRId64") returned %d\n", addr, i);
++    debugOutput(DEBUG_LEVEL_VERBOSE, "read_flash(%" PRId64 ") returned %d\n", addr, i);
+ 
+     addr += RME_FF_FLASH_MIXER_ARRAY_SIZE;
+     i = read_flash(addr, (quadlet_t *)(pbuf), RME_FF_FLASH_MIXER_ARRAY_SIZE/4);
+-    debugOutput(DEBUG_LEVEL_VERBOSE, "read_flash(%"PRId64") returned %d\n", addr, i);
++    debugOutput(DEBUG_LEVEL_VERBOSE, "read_flash(%" PRId64 ") returned %d\n", addr, i);
+ 
+     addr += RME_FF_FLASH_MIXER_ARRAY_SIZE;
+     i = read_flash(addr, (quadlet_t *)obuf, RME_FF_FLASH_SECTOR_SIZE_QUADS);
+-    debugOutput(DEBUG_LEVEL_VERBOSE, "read_flash(%"PRId64") returned %d\n", addr, i);
++    debugOutput(DEBUG_LEVEL_VERBOSE, "read_flash(%" PRId64 ") returned %d\n", addr, i);
+ 
+     for (out=0; out<nch/2; out++) {
+@@ -665,5 +665,5 @@
+         }
+         i = write_flash(addr, shadow, RME_FF800_FLASH_MIXER_SHADOW_SIZE/4);
+-        debugOutput(DEBUG_LEVEL_VERBOSE, "write_flash(%"PRId64") returned %d\n", addr, i);
++        debugOutput(DEBUG_LEVEL_VERBOSE, "write_flash(%" PRId64 ") returned %d\n", addr, i);
+         addr = RME_FF800_FLASH_MIXER_VOLUME_ADDR;
+     }
+@@ -694,13 +694,13 @@
+ 
+     i = write_flash(addr, (quadlet_t *)(vbuf), RME_FF_FLASH_MIXER_ARRAY_SIZE/4);
+-    debugOutput(DEBUG_LEVEL_VERBOSE, "write_flash(%"PRId64") returned %d\n", addr, i);
++    debugOutput(DEBUG_LEVEL_VERBOSE, "write_flash(%" PRId64 ") returned %d\n", addr, i);
+ 
+     addr += RME_FF_FLASH_MIXER_ARRAY_SIZE;
+     i = write_flash(addr, (quadlet_t *)(pbuf), RME_FF_FLASH_MIXER_ARRAY_SIZE/4);
+-    debugOutput(DEBUG_LEVEL_VERBOSE, "write_flash(%"PRId64") returned %d\n", addr, i);
++    debugOutput(DEBUG_LEVEL_VERBOSE, "write_flash(%" PRId64 ") returned %d\n", addr, i);
+ 
+     addr += RME_FF_FLASH_MIXER_ARRAY_SIZE;
+     i = write_flash(addr, (quadlet_t *)obuf, RME_FF_FLASH_SECTOR_SIZE_QUADS);
+-    debugOutput(DEBUG_LEVEL_VERBOSE, "write_flash(%"PRId64") returned %d\n", addr, i);
++    debugOutput(DEBUG_LEVEL_VERBOSE, "write_flash(%" PRId64 ") returned %d\n", addr, i);
+ 
+     return 0;
+Index: trunk/libffado/src/rme/fireface_hw.cpp
+===================================================================
+--- trunk/libffado/src/rme/fireface_hw.cpp (revision 2639)
++++ trunk/libffado/src/rme/fireface_hw.cpp (revision 2651)
+@@ -894,5 +894,5 @@
+         }
+ 
+-debugOutput(DEBUG_LEVEL_VERBOSE, "start 0x%016"PRIx64" data: %08x\n", addr, data);
++debugOutput(DEBUG_LEVEL_VERBOSE, "start 0x%016" PRIx64 " data: %08x\n", addr, data);
+         ret = writeRegister(addr, data);
+ debugOutput(DEBUG_LEVEL_VERBOSE, "  ret=%d\n", ret);
+Index: trunk/libffado/src/rme/rme_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/rme/rme_avdevice.cpp (revision 2635)
++++ trunk/libffado/src/rme/rme_avdevice.cpp (revision 2651)
+@@ -1177,5 +1177,5 @@
+     quadlet = 0;
+     if (get1394Service().read(0xffc0 | getNodeId(), reg, 1, &quadlet) <= 0) {
+-        debugError("Error doing RME read from register 0x%06"PRIx64"\n",reg);
++        debugError("Error doing RME read from register 0x%06" PRIx64 "\n",reg);
+     }
+     return ByteSwapFromDevice32(quadlet);
+@@ -1188,5 +1188,5 @@
+ 
+     if (get1394Service().read(0xffc0 | getNodeId(), reg, n_quads, buf) <= 0) {
+-        debugError("Error doing RME block read of %d quadlets from register 0x%06"PRIx64"\n",
++        debugError("Error doing RME block read of %d quadlets from register 0x%06" PRIx64 "\n",
+             n_quads, reg);
+         return -1;
+@@ -1206,5 +1206,5 @@
+     if (get1394Service().write(0xffc0 | getNodeId(), reg, 1, &data) <= 0) {
+         err = 1;
+-        debugError("Error doing RME write to register 0x%06"PRIx64"\n",reg);
++        debugError("Error doing RME write to register 0x%06" PRIx64 "\n",reg);
+     }
+ 
+@@ -1227,5 +1227,5 @@
+     if (get1394Service().write(0xffc0 | getNodeId(), reg, n_quads, data) <= 0) {
+         err = 1;
+-        debugError("Error doing RME block write of %d quadlets to register 0x%06"PRIx64"\n",
++        debugError("Error doing RME block write of %d quadlets to register 0x%06" PRIx64 "\n",
+           n_quads, reg);
+     }
+Index: trunk/libffado/src/DeviceStringParser.cpp
+===================================================================
+--- trunk/libffado/src/DeviceStringParser.cpp (revision 2342)
++++ trunk/libffado/src/DeviceStringParser.cpp (revision 2651)
+@@ -202,5 +202,5 @@
+         case eGUID:
+             retval = m_guid && (m_guid == x.m_guid);
+-            debugOutput(DEBUG_LEVEL_VERY_VERBOSE, "eGUID 0x%016"PRIX64" == 0x%016"PRIX64"? %d\n",
++            debugOutput(DEBUG_LEVEL_VERY_VERBOSE, "eGUID 0x%016" PRIX64 " == 0x%016" PRIX64 "? %d\n",
+                         m_guid, x.m_guid, retval);
+             return retval;
+@@ -224,5 +224,5 @@
+         case eGUID:
+             debugOutput(DEBUG_LEVEL_INFO, "type: eGUID\n");
+-            debugOutput(DEBUG_LEVEL_INFO, " GUID: %016"PRIX64"\n", m_guid);
++            debugOutput(DEBUG_LEVEL_INFO, " GUID: %016" PRIX64 "\n", m_guid);
+             break;
+         case eInvalid:
+Index: trunk/libffado/src/motu/motu_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/motu/motu_avdevice.cpp (revision 2574)
++++ trunk/libffado/src/motu/motu_avdevice.cpp (revision 2651)
+@@ -1987,5 +1987,5 @@
+     // Note: 1394Service::read() expects a physical ID, not the node id
+     if (get1394Service().read(0xffc0 | getNodeId(), reg, 1, &quadlet) <= 0) {
+-        debugError("Error doing motu read from register 0x%012"PRId64"\n",reg);
++        debugError("Error doing motu read from register 0x%012" PRId64 "\n",reg);
+     }
+ 
+@@ -2003,5 +2003,5 @@
+ 
+     if (get1394Service().read(0xffc0 | getNodeId(), reg, n_quads, buf) <= 0) {
+-        debugError("Error doing motu block read of %d quadlets from register 0x%"PRIx64"\n", n_quads, reg);
++        debugError("Error doing motu block read of %d quadlets from register 0x%" PRIx64 "\n", n_quads, reg);
+         return -1;
+     }
+@@ -2029,5 +2029,5 @@
+     if (get1394Service().write(0xffc0 | getNodeId(), reg, 1, &data) <= 0) {
+         err = 1;
+-        debugError("Error doing motu write to register 0x%012"PRIx64"\n",reg);
++        debugError("Error doing motu write to register 0x%012" PRIx64 "\n",reg);
+     }
+ 
+@@ -2050,5 +2050,5 @@
+     if (get1394Service().write(0xffc0 | getNodeId(), reg, n_quads, data) <= 0) {
+         ret = -1;
+-        debugError("Error doing motu block write of %d quadlets to register 0x%"PRId64"\n", n_quads, reg);
++        debugError("Error doing motu block write of %d quadlets to register 0x%" PRId64 "\n", n_quads, reg);
+     }
+     return ret;
+Index: trunk/libffado/src/debugmodule/debugmodule.cpp
+===================================================================
+--- trunk/libffado/src/debugmodule/debugmodule.cpp (revision 2517)
++++ trunk/libffado/src/debugmodule/debugmodule.cpp (revision 2651)
+@@ -188,5 +188,5 @@
+     int chars_written=0;
+     int retval=0;
+-    retval = snprintf(msg, MB_BUFFERSIZE, "%011"PRIu64": %s (%s)[%4u] %s: ", 
++    retval = snprintf(msg, MB_BUFFERSIZE, "%011" PRIu64 ": %s (%s)[%4u] %s: ", 
+                       ts_usec, getPreSequence( level ),
+                       fname,  line,  function );
+Index: trunk/libffado/src/dice/dice_eap.cpp
+===================================================================
+--- trunk/libffado/src/dice/dice_eap.cpp (revision 2473)
++++ trunk/libffado/src/dice/dice_eap.cpp (revision 2651)
+@@ -1119,5 +1119,5 @@
+     // out-of-range check
+     if(length > maxlen) {
+-        debugError("requested length too large: %zd > %"PRIu64"\n", length, maxlen);
++        debugError("requested length too large: %zd > %" PRIu64 "\n", length, maxlen);
+         return DICE_INVALID_OFFSET;
+     }
+Index: trunk/libffado/src/dice/dice_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/dice/dice_avdevice.cpp (revision 2597)
++++ trunk/libffado/src/dice/dice_avdevice.cpp (revision 2651)
+@@ -461,5 +461,5 @@
+     readGlobalReg(DICE_REGISTER_GLOBAL_CLOCKCAPABILITIES, &clock_caps);
+     uint16_t clocks_supported = (clock_caps >> 16) & 0xFFFF;
+-    debugOutput(DEBUG_LEVEL_VERBOSE," Clock caps: 0x%08"PRIX32", supported=0x%04X\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE," Clock caps: 0x%08" PRIX32 ", supported=0x%04X\n",
+                                     clock_caps, clocks_supported);
+ 
+@@ -467,5 +467,5 @@
+     readGlobalReg(DICE_REGISTER_GLOBAL_CLOCK_SELECT, &clock_select);
+     byte_t clock_selected = (clock_select) & 0xFF;
+-    debugOutput(DEBUG_LEVEL_VERBOSE," Clock select: 0x%08"PRIX32", selected=0x%04X\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE," Clock select: 0x%08" PRIX32 ", selected=0x%04X\n",
+                                     clock_select, clock_selected);
+     quadlet_t extended_status;
+@@ -474,5 +474,5 @@
+     uint16_t clock_status = (extended_status) & 0xFFFF;
+     uint16_t clock_slipping = (extended_status >> 16) & 0xFFFF;
+-    debugOutput(DEBUG_LEVEL_VERBOSE," Clock status: 0x%08"PRIX32", status=0x%04X, slip=0x%04X\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE," Clock status: 0x%08" PRIX32 ", status=0x%04X, slip=0x%04X\n",
+                                     extended_status, clock_status, clock_slipping);
+     #endif
+@@ -625,5 +625,5 @@
+     readGlobalReg(DICE_REGISTER_GLOBAL_CLOCKCAPABILITIES, &clock_caps);
+     uint16_t clocks_supported = (clock_caps >> 16) & 0xFFFF;
+-    debugOutput(DEBUG_LEVEL_VERBOSE," Clock caps: 0x%08"PRIX32", supported=0x%04X\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE," Clock caps: 0x%08" PRIX32 ", supported=0x%04X\n",
+                                     clock_caps, clocks_supported);
+ 
+@@ -631,5 +631,5 @@
+     readGlobalReg(DICE_REGISTER_GLOBAL_CLOCK_SELECT, &clock_select);
+     byte_t id = (clock_select) & 0xFF;
+-    debugOutput(DEBUG_LEVEL_VERBOSE," Clock select: 0x%08"PRIX32", selected=0x%04X\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE," Clock select: 0x%08" PRIX32 ", selected=0x%04X\n",
+                                     clock_select, id);
+     quadlet_t extended_status;
+@@ -638,5 +638,5 @@
+     uint16_t clock_status = (extended_status) & 0xFFFF;
+     uint16_t clock_slipping = (extended_status >> 16) & 0xFFFF;
+-    debugOutput(DEBUG_LEVEL_VERBOSE," Clock status: 0x%08"PRIX32", status=0x%04X, slip=0x%04X\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE," Clock status: 0x%08" PRIX32 ", status=0x%04X, slip=0x%04X\n",
+                                     extended_status, clock_status, clock_slipping);
+     #endif
+@@ -723,8 +723,8 @@
+ 
+     readGlobalRegBlock(DICE_REGISTER_GLOBAL_OWNER, reinterpret_cast<fb_quadlet_t *>(&tmp_octlet), sizeof(fb_octlet_t));
+-    printMessage("  Owner            : 0x%016"PRIX64"\n",tmp_octlet);
++    printMessage("  Owner            : 0x%016" PRIX64 "\n",tmp_octlet);
+ 
+     readGlobalReg(DICE_REGISTER_GLOBAL_NOTIFICATION, &tmp_quadlet);
+-    printMessage("  Notification     : 0x%08"PRIX32"\n",tmp_quadlet);
++    printMessage("  Notification     : 0x%08" PRIX32 "\n",tmp_quadlet);
+ 
+     readGlobalReg(DICE_REGISTER_GLOBAL_NOTIFICATION, &tmp_quadlet);
+@@ -744,14 +744,14 @@
+ 
+     readGlobalReg(DICE_REGISTER_GLOBAL_EXTENDED_STATUS, &tmp_quadlet);
+-    printMessage("  Extended Status  : 0x%08"PRIX32"\n", tmp_quadlet);
++    printMessage("  Extended Status  : 0x%08" PRIX32 "\n", tmp_quadlet);
+ 
+     readGlobalReg(DICE_REGISTER_GLOBAL_SAMPLE_RATE, &tmp_quadlet);
+-    printMessage("  Samplerate       : 0x%08"PRIX32" (%"PRIu32")\n", tmp_quadlet, tmp_quadlet);
++    printMessage("  Samplerate       : 0x%08" PRIX32 " (%" PRIu32 ")\n", tmp_quadlet, tmp_quadlet);
+ 
+     readGlobalRegBlock(DICE_REGISTER_GLOBAL_VERSION, reinterpret_cast<fb_quadlet_t *>(&tmp_quadlet), sizeof(fb_quadlet_t));
+-    printMessage("  Version          : 0x%08"PRIX32"\n", tmp_quadlet);
++    printMessage("  Version          : 0x%08" PRIX32 "\n", tmp_quadlet);
+     
+     readGlobalReg(DICE_REGISTER_GLOBAL_VERSION, &tmp_quadlet);
+-    printMessage("  Version          : 0x%08"PRIX32" (%u.%u.%u.%u)\n",
++    printMessage("  Version          : 0x%08" PRIX32 " (%u.%u.%u.%u)\n",
+         tmp_quadlet,
+         DICE_DRIVER_SPEC_VERSION_NUMBER_GET_A(tmp_quadlet),
+@@ -762,5 +762,5 @@
+ 
+     readGlobalReg(DICE_REGISTER_GLOBAL_CLOCKCAPABILITIES, &tmp_quadlet);
+-    printMessage("  Clock caps       : 0x%08"PRIX32"\n", tmp_quadlet);
++    printMessage("  Clock caps       : 0x%08" PRIX32 "\n", tmp_quadlet);
+ 
+     stringlist names=getClockSourceNameString();
+@@ -790,7 +790,7 @@
+ 
+         readTxReg(i, DICE_REGISTER_TX_AC3_CAPABILITIES_BASE, &tmp_quadlet);
+-        printMessage("   AC3 caps          : 0x%08"PRIX32"\n", tmp_quadlet);
++        printMessage("   AC3 caps          : 0x%08" PRIX32 "\n", tmp_quadlet);
+         readTxReg(i, DICE_REGISTER_TX_AC3_ENABLE_BASE, &tmp_quadlet);
+-        printMessage("   AC3 enable        : 0x%08"PRIX32"\n", tmp_quadlet);
++        printMessage("   AC3 enable        : 0x%08" PRIX32 "\n", tmp_quadlet);
+ 
+         stringlist channel_names=getTxNameString(i);
+@@ -820,7 +820,7 @@
+ 
+         readRxReg(i, DICE_REGISTER_RX_AC3_CAPABILITIES_BASE, &tmp_quadlet);
+-        printMessage("   AC3 caps          : 0x%08"PRIX32"\n", tmp_quadlet);
++        printMessage("   AC3 caps          : 0x%08" PRIX32 "\n", tmp_quadlet);
+         readRxReg(i, DICE_REGISTER_RX_AC3_ENABLE_BASE, &tmp_quadlet);
+-        printMessage("   AC3 enable        : 0x%08"PRIX32"\n", tmp_quadlet);
++        printMessage("   AC3 enable        : 0x%08" PRIX32 "\n", tmp_quadlet);
+ 
+         stringlist channel_names = getRxNameString(i);
+@@ -1193,5 +1193,5 @@
+     
+         if (result != DICE_OWNER_NO_OWNER && result != swap_value) {
+-            debugWarning("Unexpected GLOBAL_OWNER register value: 0x%016"PRIX64"\n", result);
++            debugWarning("Unexpected GLOBAL_OWNER register value: 0x%016" PRIX64 "\n", result);
+             fprintf(stderr, "Could not register ourselves as owner of %s.\n", getNickname().c_str());
+             fprintf(stderr, "If the snd-dice kernel driver is present, "
+@@ -1379,5 +1379,5 @@
+             }
+             if(reg_isoch != 0xFFFFFFFFUL) {
+-                debugWarning("ISO_CHANNEL register != 0xFFFFFFFF (=0x%08"PRIX32") for A%s %d\n", reg_isoch, dir, n);
++                debugWarning("ISO_CHANNEL register != 0xFFFFFFFF (=0x%08" PRIX32 ") for A%s %d\n", reg_isoch, dir, n);
+                 /* The ISO channel has already been registered, probably
+                  * because the device was running before and jackd just
+@@ -1396,5 +1396,5 @@
+                 // ask the IRM to use this channel
+                 if (get1394Service().allocateFixedIsoChannelGeneric(reg_isoch,p->getMaxPacketSize()) < 0) {
+-                    debugError("Cannot allocate iso channel (0x%08"PRIX32") for ATX %d\n", reg_isoch, n); 
++                    debugError("Cannot allocate iso channel (0x%08" PRIX32 ") for ATX %d\n", reg_isoch, n); 
+                 }
+ #endif
+@@ -1424,5 +1424,5 @@
+             }
+             if(reg_isoch != isochannel) {
+-                debugError("ISO_CHANNEL register != 0x%08"PRIX32" (=0x%08"PRIX32") for A%s %d\n", isochannel, reg_isoch, dir, n);
++                debugError("ISO_CHANNEL register != 0x%08" PRIX32 " (=0x%08" PRIX32 ") for A%s %d\n", isochannel, reg_isoch, dir, n);
+                 return false;
+             }
+@@ -1738,8 +1738,8 @@
+ bool
+ Device::readReg(fb_nodeaddr_t offset, fb_quadlet_t *result) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Reading base register offset 0x%08"PRIX64"\n", offset);
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Reading base register offset 0x%08" PRIX64 "\n", offset);
+ 
+     if(offset >= DICE_INVALID_OFFSET) {
+-        debugError("invalid offset: 0x%016"PRIX64"\n", offset);
++        debugError("invalid offset: 0x%016" PRIX64 "\n", offset);
+         return false;
+     }
+@@ -1749,5 +1749,5 @@
+ 
+     if(!get1394Service().read_quadlet( nodeId, addr, result ) ) {
+-        debugError("Could not read from node 0x%04X addr 0x%12"PRIX64"\n", nodeId, addr);
++        debugError("Could not read from node 0x%04X addr 0x%12" PRIX64 "\n", nodeId, addr);
+         return false;
+     }
+@@ -1755,5 +1755,5 @@
+     *result = CondSwapFromBus32(*result);
+ 
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Read result: 0x%08"PRIX32"\n", *result);
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Read result: 0x%08" PRIX32 "\n", *result);
+ 
+     return true;
+@@ -1762,9 +1762,9 @@
+ bool
+ Device::writeReg(fb_nodeaddr_t offset, fb_quadlet_t data) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing base register offset 0x%08"PRIX64", data: 0x%08"PRIX32"\n",
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing base register offset 0x%08" PRIX64 ", data: 0x%08" PRIX32 "\n",
+         offset, data);
+ 
+     if(offset >= DICE_INVALID_OFFSET) {
+-        debugError("invalid offset: 0x%012"PRIX64"\n", offset);
++        debugError("invalid offset: 0x%012" PRIX64 "\n", offset);
+         return false;
+     }
+@@ -1774,5 +1774,5 @@
+ 
+     if(!get1394Service().write_quadlet( nodeId, addr, CondSwapToBus32(data) ) ) {
+-        debugError("Could not write to node 0x%04X addr 0x%12"PRIX64"\n", nodeId, addr);
++        debugError("Could not write to node 0x%04X addr 0x%12" PRIX64 "\n", nodeId, addr);
+         return false;
+     }
+@@ -1783,10 +1783,10 @@
+ Device::readRegBlock(fb_nodeaddr_t offset, fb_quadlet_t *data, size_t length) {
+     debugOutput(DEBUG_LEVEL_VERBOSE,
+-                "Reading base register offset 0x%08"PRIX64", length %zd, to %p\n",
++                "Reading base register offset 0x%08" PRIX64 ", length %zd, to %p\n",
+                 offset, length, data);
+     const int blocksize_quads = 512/4;
+ 
+     if(offset >= DICE_INVALID_OFFSET) {
+-        debugError("invalid offset: 0x%012"PRIX64"\n", offset);
++        debugError("invalid offset: 0x%012" PRIX64 "\n", offset);
+         return false;
+     }
+@@ -1801,5 +1801,5 @@
+         fb_quadlet_t *curr_data = data + quads_done;
+         int quads_todo = length_quads - quads_done;
+-        debugOutput(DEBUG_LEVEL_VERBOSE, "reading addr: 0x%012"PRIX64", %d quads to %p\n", curr_addr, quads_todo, curr_data);
++        debugOutput(DEBUG_LEVEL_VERBOSE, "reading addr: 0x%012" PRIX64 ", %d quads to %p\n", curr_addr, quads_todo, curr_data);
+         
+         if (quads_todo > blocksize_quads) {
+@@ -1814,5 +1814,5 @@
+ 
+         if(!get1394Service().read( nodeId, curr_addr, quads_todo, curr_data ) ) {
+-            debugError("Could not read %d quadlets from node 0x%04X addr 0x%012"PRIX64"\n", quads_todo, nodeId, curr_addr);
++            debugError("Could not read %d quadlets from node 0x%04X addr 0x%012" PRIX64 "\n", quads_todo, nodeId, curr_addr);
+             return false;
+         }
+@@ -1826,10 +1826,10 @@
+ bool
+ Device::writeRegBlock(fb_nodeaddr_t offset, fb_quadlet_t *data, size_t length) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing base register offset 0x%08"PRIX64", length: %zd\n",
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing base register offset 0x%08" PRIX64 ", length: %zd\n",
+         offset, length);
+     const int blocksize_quads = 512/4;
+ 
+     if(offset >= DICE_INVALID_OFFSET) {
+-        debugError("invalid offset: 0x%012"PRIX64"\n", offset);
++        debugError("invalid offset: 0x%012" PRIX64 "\n", offset);
+         return false;
+     }
+@@ -1858,5 +1858,5 @@
+ 
+         if(!get1394Service().write( nodeId, addr, quads_todo, curr_data ) ) {
+-            debugError("Could not write %d quadlets to node 0x%04X addr 0x%012"PRIX64"\n", quads_todo, nodeId, curr_addr);
++            debugError("Could not write %d quadlets to node 0x%04X addr 0x%012" PRIX64 "\n", quads_todo, nodeId, curr_addr);
+             return false;
+         }
+@@ -1869,5 +1869,5 @@
+ bool
+ Device::readGlobalReg(fb_nodeaddr_t offset, fb_quadlet_t *result) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Reading global register offset 0x%04"PRIX64"\n", offset);
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Reading global register offset 0x%04" PRIX64 "\n", offset);
+ 
+     fb_nodeaddr_t offset_gl = globalOffsetGen(offset, sizeof(fb_quadlet_t));
+@@ -1877,5 +1877,5 @@
+ bool
+ Device::writeGlobalReg(fb_nodeaddr_t offset, fb_quadlet_t data) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing global register offset 0x%08"PRIX64", data: 0x%08"PRIX32"\n",
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing global register offset 0x%08" PRIX64 ", data: 0x%08" PRIX32 "\n",
+         offset, data);
+ 
+@@ -1886,5 +1886,5 @@
+ bool
+ Device::readGlobalRegBlock(fb_nodeaddr_t offset, fb_quadlet_t *data, size_t length) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Reading global register block offset 0x%04"PRIX64", length %zd bytes\n",
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Reading global register block offset 0x%04" PRIX64 ", length %zd bytes\n",
+         offset, length);
+ 
+@@ -1895,5 +1895,5 @@
+ bool
+ Device::writeGlobalRegBlock(fb_nodeaddr_t offset, fb_quadlet_t *data, size_t length) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing global register block offset 0x%04"PRIX64", length: %zd bytes\n",
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing global register block offset 0x%04" PRIX64 ", length: %zd bytes\n",
+         offset, length);
+ 
+@@ -1913,5 +1913,5 @@
+     // out-of-range check
+     if(offset+length > m_global_reg_offset+m_global_reg_size) {
+-        debugError("register offset+length too large: 0x%04"PRIX64"\n", offset + length);
++        debugError("register offset+length too large: 0x%04" PRIX64 "\n", offset + length);
+         return DICE_INVALID_OFFSET;
+     }
+@@ -1922,5 +1922,5 @@
+ bool
+ Device::readTxReg(unsigned int i, fb_nodeaddr_t offset, fb_quadlet_t *result) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE, "Reading tx %d register offset 0x%04"PRIX64"\n", i, offset);
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE, "Reading tx %d register offset 0x%04" PRIX64 "\n", i, offset);
+ 
+     fb_nodeaddr_t offset_tx = txOffsetGen(i, offset, sizeof(fb_quadlet_t));
+@@ -1930,5 +1930,5 @@
+ bool
+ Device::writeTxReg(unsigned int i, fb_nodeaddr_t offset, fb_quadlet_t data) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing tx %d register offset 0x%08"PRIX64", data: 0x%08"PRIX32"\n",
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing tx %d register offset 0x%08" PRIX64 ", data: 0x%08" PRIX32 "\n",
+         i, offset, data);
+ 
+@@ -1939,5 +1939,5 @@
+ bool
+ Device::readTxRegBlock(unsigned int i, fb_nodeaddr_t offset, fb_quadlet_t *data, size_t length) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Reading rx register block offset 0x%04"PRIX64", length: %zd bytes\n",
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Reading rx register block offset 0x%04" PRIX64 ", length: %zd bytes\n",
+         offset, length);
+ 
+@@ -1948,5 +1948,5 @@
+ bool
+ Device::writeTxRegBlock(unsigned int i, fb_nodeaddr_t offset, fb_quadlet_t *data, size_t length) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing rx register block offset 0x%04"PRIX64", length: %zd bytes\n",
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing rx register block offset 0x%04" PRIX64 ", length: %zd bytes\n",
+         offset, length);
+ 
+@@ -1980,5 +1980,5 @@
+     // out-of-range check
+     if(offset_tx + length > m_tx_reg_offset+4+m_tx_reg_size*m_nb_tx) {
+-        debugError("register offset+length too large: 0x%04"PRIX64"\n", offset_tx + length);
++        debugError("register offset+length too large: 0x%04" PRIX64 "\n", offset_tx + length);
+         return DICE_INVALID_OFFSET;
+     }
+@@ -1989,5 +1989,5 @@
+ bool
+ Device::readRxReg(unsigned int i, fb_nodeaddr_t offset, fb_quadlet_t *result) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Reading rx %d register offset 0x%04"PRIX64"\n", i, offset);
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Reading rx %d register offset 0x%04" PRIX64 "\n", i, offset);
+ 
+     fb_nodeaddr_t offset_rx=rxOffsetGen(i, offset, sizeof(fb_quadlet_t));
+@@ -1997,5 +1997,5 @@
+ bool
+ Device::writeRxReg(unsigned int i, fb_nodeaddr_t offset, fb_quadlet_t data) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing rx register offset 0x%08"PRIX64", data: 0x%08"PRIX32"\n",
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing rx register offset 0x%08" PRIX64 ", data: 0x%08" PRIX32 "\n",
+         offset, data);
+ 
+@@ -2006,5 +2006,5 @@
+ bool
+ Device::readRxRegBlock(unsigned int i, fb_nodeaddr_t offset, fb_quadlet_t *data, size_t length) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Reading rx register block offset 0x%04"PRIX64", length: %zd bytes\n",
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Reading rx register block offset 0x%04" PRIX64 ", length: %zd bytes\n",
+         offset, length);
+ 
+@@ -2015,5 +2015,5 @@
+ bool
+ Device::writeRxRegBlock(unsigned int i, fb_nodeaddr_t offset, fb_quadlet_t *data, size_t length) {
+-    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing rx register block offset 0x%04"PRIX64", length: %zd bytes\n",
++    debugOutput(DEBUG_LEVEL_VERY_VERBOSE,"Writing rx register block offset 0x%04" PRIX64 ", length: %zd bytes\n",
+         offset, length);
+ 
+@@ -2047,5 +2047,5 @@
+     // out-of-range check
+     if(offset_rx + length > m_rx_reg_offset+4+m_rx_reg_size*m_nb_rx) {
+-        debugError("register offset+length too large: 0x%04"PRIX64"\n", offset_rx + length);
++        debugError("register offset+length too large: 0x%04" PRIX64 "\n", offset_rx + length);
+         return DICE_INVALID_OFFSET;
+     }
+Index: trunk/libffado/src/libutil/StreamStatistics.cpp
+===================================================================
+--- trunk/libffado/src/libutil/StreamStatistics.cpp (revision 1763)
++++ trunk/libffado/src/libutil/StreamStatistics.cpp (revision 2651)
+@@ -55,5 +55,5 @@
+ void StreamStatistics::dumpInfo() {
+     debugOutputShort( DEBUG_LEVEL_VERBOSE, 
+-                      "--- Stats for %s: min=%"PRId64" avg=%f max=%"PRId64" cnt=%"PRId64" sum=%"PRId64"\n",
++                      "--- Stats for %s: min=%" PRId64 " avg=%f max=%" PRId64 " cnt=%" PRId64 " sum=%" PRId64 "\n",
+                       m_name.c_str(), m_min, m_average, m_max, m_count, m_sum);
+     debugOutputShort( DEBUG_LEVEL_VERBOSE, "    Signal stats\n");
+Index: trunk/libffado/src/libutil/SystemTimeSource.cpp
+===================================================================
+--- trunk/libffado/src/libutil/SystemTimeSource.cpp (revision 2186)
++++ trunk/libffado/src/libutil/SystemTimeSource.cpp (revision 2651)
+@@ -97,5 +97,5 @@
+         ts.tv_nsec = (wake_at_usec % (1000000LL)) * 1000LL;
+         debugOutputExtreme(DEBUG_LEVEL_VERBOSE,
+-                       "clock_nanosleep until %"PRId64" sec, %"PRId64" nanosec\n",
++                       "clock_nanosleep until %" PRId64 " sec, %" PRId64 " nanosec\n",
+                        (int64_t)ts.tv_sec, (int64_t)ts.tv_nsec);
+         int err = clock_nanosleep(clock_id, TIMER_ABSTIME, &ts, NULL);
+Index: trunk/libffado/src/libutil/TimestampedBuffer.cpp
+===================================================================
+--- trunk/libffado/src/libutil/TimestampedBuffer.cpp (revision 2629)
++++ trunk/libffado/src/libutil/TimestampedBuffer.cpp (revision 2651)
+@@ -212,5 +212,5 @@
+     debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+                        "for (%p) "
+-                       "NTS="TIMESTAMP_FORMAT_SPEC", DLL2=%f, RATE=%f\n",
++                       "NTS=" TIMESTAMP_FORMAT_SPEC ", DLL2=%f, RATE=%f\n",
+                        this, m_buffer_next_tail_timestamp, m_dll_e2, getRate());
+ }
+@@ -247,5 +247,5 @@
+     if (fabsf(m_nominal_rate - rate)>(m_nominal_rate*0.1)) {
+         debugWarning("(%p) rate (%10.5f) more that 10%% off nominal "
+-                     "(rate=%10.5f, diff="TIMESTAMP_FORMAT_SPEC", update_period=%d)\n",
++                     "(rate=%10.5f, diff=" TIMESTAMP_FORMAT_SPEC ", update_period=%d)\n",
+                      this, rate,m_nominal_rate,diff, m_update_period);
+ 
+@@ -373,5 +373,5 @@
+                                     m_nominal_rate);
+ 
+-    debugOutput(DEBUG_LEVEL_VERBOSE," wrapping at "TIMESTAMP_FORMAT_SPEC"\n",m_wrap_at);
++    debugOutput(DEBUG_LEVEL_VERBOSE," wrapping at " TIMESTAMP_FORMAT_SPEC "\n",m_wrap_at);
+ 
+     assert(m_buffer_size);
+@@ -619,5 +619,5 @@
+ bool TimestampedBuffer::blockProcessWriteFrames(unsigned int nbframes, ffado_timestamp_t ts) {
+     debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                       "(%p) Writing %u frames for ts "TIMESTAMP_FORMAT_SPEC"\n",
++                       "(%p) Writing %u frames for ts " TIMESTAMP_FORMAT_SPEC "\n",
+                        this, nbframes, ts);
+     int xrun;
+@@ -845,8 +845,8 @@
+ #ifdef DEBUG
+     if (new_timestamp >= m_wrap_at) {
+-        debugWarning("timestamp not wrapped: "TIMESTAMP_FORMAT_SPEC"\n",new_timestamp);
++        debugWarning("timestamp not wrapped: " TIMESTAMP_FORMAT_SPEC "\n",new_timestamp);
+     }
+     if ((ts >= m_wrap_at) || (ts < 0 )) {
+-        debugWarning("ts not wrapped correctly: "TIMESTAMP_FORMAT_SPEC"\n",ts);
++        debugWarning("ts not wrapped correctly: " TIMESTAMP_FORMAT_SPEC "\n",ts);
+     }
+ #endif
+@@ -862,6 +862,6 @@
+ 
+     debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                       "for (%p) to "TIMESTAMP_FORMAT_SPEC" => "TIMESTAMP_FORMAT_SPEC", "
+-                       "NTS="TIMESTAMP_FORMAT_SPEC", DLL2=%f, RATE=%f\n",
++                       "for (%p) to " TIMESTAMP_FORMAT_SPEC " => " TIMESTAMP_FORMAT_SPEC ", "
++                       "NTS=" TIMESTAMP_FORMAT_SPEC ", DLL2=%f, RATE=%f\n",
+                        this, new_timestamp, ts, m_buffer_next_tail_timestamp, m_dll_e2, getRate());
+ }
+@@ -883,5 +883,5 @@
+ #ifdef DEBUG
+     if (new_timestamp >= m_wrap_at) {
+-        debugWarning("timestamp not wrapped: "TIMESTAMP_FORMAT_SPEC"\n", new_timestamp);
++        debugWarning("timestamp not wrapped: " TIMESTAMP_FORMAT_SPEC "\n", new_timestamp);
+     }
+ #endif
+@@ -908,6 +908,6 @@
+ 
+     debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                       "for (%p) to "TIMESTAMP_FORMAT_SPEC" => "TIMESTAMP_FORMAT_SPEC", "
+-                       "NTS="TIMESTAMP_FORMAT_SPEC", DLL2=%f, RATE=%f\n",
++                       "for (%p) to " TIMESTAMP_FORMAT_SPEC " => " TIMESTAMP_FORMAT_SPEC ", "
++                       "NTS=" TIMESTAMP_FORMAT_SPEC ", DLL2=%f, RATE=%f\n",
+                        this, new_timestamp, ts, m_buffer_next_tail_timestamp, m_dll_e2, getRate());
+ }
+@@ -1052,22 +1052,22 @@
+                        nbframes, m_update_period);
+     debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                       " tail TS: "TIMESTAMP_FORMAT_SPEC", next tail TS: "TIMESTAMP_FORMAT_SPEC"\n", 
++                       " tail TS: " TIMESTAMP_FORMAT_SPEC ", next tail TS: " TIMESTAMP_FORMAT_SPEC "\n", 
+                        m_buffer_tail_timestamp, m_buffer_next_tail_timestamp);
+     debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                       " new TS: "TIMESTAMP_FORMAT_SPEC", diff: "TIMESTAMP_FORMAT_SPEC"\n", 
++                       " new TS: " TIMESTAMP_FORMAT_SPEC ", diff: " TIMESTAMP_FORMAT_SPEC "\n", 
+                        new_timestamp, diff);
+ 
+     if (diff > max_abs_diff) {
+         //debugShowBackLogLines(100);
+-        debugWarning("(%p) difference rather large (+): diff="TIMESTAMP_FORMAT_SPEC", max="TIMESTAMP_FORMAT_SPEC", "TIMESTAMP_FORMAT_SPEC", "TIMESTAMP_FORMAT_SPEC"\n",
++        debugWarning("(%p) difference rather large (+): diff=" TIMESTAMP_FORMAT_SPEC ", max=" TIMESTAMP_FORMAT_SPEC ", " TIMESTAMP_FORMAT_SPEC ", " TIMESTAMP_FORMAT_SPEC "\n",
+             this, diff, max_abs_diff, new_timestamp, m_buffer_next_tail_timestamp);
+     } else if (diff < -max_abs_diff) {
+         //debugShowBackLogLines(100);
+-        debugWarning("(%p) difference rather large (-): diff="TIMESTAMP_FORMAT_SPEC", max="TIMESTAMP_FORMAT_SPEC", "TIMESTAMP_FORMAT_SPEC", "TIMESTAMP_FORMAT_SPEC"\n",
++        debugWarning("(%p) difference rather large (-): diff=" TIMESTAMP_FORMAT_SPEC ", max=" TIMESTAMP_FORMAT_SPEC ", " TIMESTAMP_FORMAT_SPEC ", " TIMESTAMP_FORMAT_SPEC "\n",
+             this, diff, -max_abs_diff, new_timestamp, m_buffer_next_tail_timestamp);
+     }
+ 
+     debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                       "(%p): diff="TIMESTAMP_FORMAT_SPEC" ",
++                       "(%p): diff=" TIMESTAMP_FORMAT_SPEC " ",
+                        this, diff);
+ #endif
+@@ -1075,8 +1075,8 @@
+     double err = diff;
+     debugOutputShortExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                            "diff2="TIMESTAMP_FORMAT_SPEC" err=%f\n",
++                            "diff2=" TIMESTAMP_FORMAT_SPEC " err=%f\n",
+                             diff, err);
+     debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                       "B: FC=%10u, TS="TIMESTAMP_FORMAT_SPEC", NTS="TIMESTAMP_FORMAT_SPEC"\n",
++                       "B: FC=%10u, TS=" TIMESTAMP_FORMAT_SPEC ", NTS=" TIMESTAMP_FORMAT_SPEC "\n",
+                        m_framecounter, m_buffer_tail_timestamp, m_buffer_next_tail_timestamp);
+ 
+@@ -1089,5 +1089,5 @@
+     if (m_buffer_next_tail_timestamp >= m_wrap_at) {
+         debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                           "Unwrapping next tail timestamp: "TIMESTAMP_FORMAT_SPEC"",
++                           "Unwrapping next tail timestamp: " TIMESTAMP_FORMAT_SPEC "",
+                            m_buffer_next_tail_timestamp);
+ 
+@@ -1095,5 +1095,5 @@
+ 
+         debugOutputShortExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                                " => "TIMESTAMP_FORMAT_SPEC"\n",
++                                " => " TIMESTAMP_FORMAT_SPEC "\n",
+                                 m_buffer_next_tail_timestamp);
+ 
+@@ -1103,22 +1103,22 @@
+ 
+     debugOutputExtreme(DEBUG_LEVEL_VERY_VERBOSE,
+-                       "A: TS="TIMESTAMP_FORMAT_SPEC", NTS="TIMESTAMP_FORMAT_SPEC", DLLe2=%f, RATE=%f\n",
++                       "A: TS=" TIMESTAMP_FORMAT_SPEC ", NTS=" TIMESTAMP_FORMAT_SPEC ", DLLe2=%f, RATE=%f\n",
+                        m_buffer_tail_timestamp, m_buffer_next_tail_timestamp, m_dll_e2, m_current_rate);
+ 
+ 
+     if(m_buffer_tail_timestamp>=m_wrap_at) {
+-        debugError("Wrapping failed for m_buffer_tail_timestamp! "TIMESTAMP_FORMAT_SPEC"\n",m_buffer_tail_timestamp);
+-        debugOutput(DEBUG_LEVEL_VERY_VERBOSE, " IN="TIMESTAMP_FORMAT_SPEC", TS="TIMESTAMP_FORMAT_SPEC", NTS="TIMESTAMP_FORMAT_SPEC"\n",
++        debugError("Wrapping failed for m_buffer_tail_timestamp! " TIMESTAMP_FORMAT_SPEC "\n",m_buffer_tail_timestamp);
++        debugOutput(DEBUG_LEVEL_VERY_VERBOSE, " IN=" TIMESTAMP_FORMAT_SPEC ", TS=" TIMESTAMP_FORMAT_SPEC ", NTS=" TIMESTAMP_FORMAT_SPEC "\n",
+                     new_timestamp, m_buffer_tail_timestamp, m_buffer_next_tail_timestamp);
+ 
+     }
+     if(m_buffer_next_tail_timestamp>=m_wrap_at) {
+-        debugError("Wrapping failed for m_buffer_next_tail_timestamp! "TIMESTAMP_FORMAT_SPEC"\n",m_buffer_next_tail_timestamp);
+-        debugOutput(DEBUG_LEVEL_VERY_VERBOSE, " IN="TIMESTAMP_FORMAT_SPEC", TS="TIMESTAMP_FORMAT_SPEC", NTS="TIMESTAMP_FORMAT_SPEC"\n",
++        debugError("Wrapping failed for m_buffer_next_tail_timestamp! " TIMESTAMP_FORMAT_SPEC "\n",m_buffer_next_tail_timestamp);
++        debugOutput(DEBUG_LEVEL_VERY_VERBOSE, " IN=" TIMESTAMP_FORMAT_SPEC ", TS=" TIMESTAMP_FORMAT_SPEC ", NTS=" TIMESTAMP_FORMAT_SPEC "\n",
+                     new_timestamp, m_buffer_tail_timestamp, m_buffer_next_tail_timestamp);
+     }
+     
+     if(m_buffer_tail_timestamp==m_buffer_next_tail_timestamp) {
+-        debugError("Current and next timestamps are equal: "TIMESTAMP_FORMAT_SPEC" "TIMESTAMP_FORMAT_SPEC"\n",
++        debugError("Current and next timestamps are equal: " TIMESTAMP_FORMAT_SPEC " " TIMESTAMP_FORMAT_SPEC "\n",
+                    m_buffer_tail_timestamp,m_buffer_next_tail_timestamp);
+     }
+@@ -1146,8 +1146,8 @@
+     debugOutputShort( DEBUG_LEVEL_NORMAL, "  TimestampedBuffer (%p): %04d frames, %04d events\n",
+                                           this, m_framecounter, getBufferFill());
+-    debugOutputShort( DEBUG_LEVEL_NORMAL, "   Timestamps           : head: "TIMESTAMP_FORMAT_SPEC", Tail: "TIMESTAMP_FORMAT_SPEC", Next tail: "TIMESTAMP_FORMAT_SPEC"\n",
++    debugOutputShort( DEBUG_LEVEL_NORMAL, "   Timestamps           : head: " TIMESTAMP_FORMAT_SPEC ", Tail: " TIMESTAMP_FORMAT_SPEC ", Next tail: " TIMESTAMP_FORMAT_SPEC "\n",
+                                           ts_head, m_buffer_tail_timestamp, m_buffer_next_tail_timestamp);
+ #ifdef DEBUG
+-    debugOutputShort( DEBUG_LEVEL_NORMAL, "    Head - Tail         : "TIMESTAMP_FORMAT_SPEC" (%f frames)\n", diff, diff/m_dll_e2*m_update_period);
++    debugOutputShort( DEBUG_LEVEL_NORMAL, "    Head - Tail         : " TIMESTAMP_FORMAT_SPEC " (%f frames)\n", diff, diff/m_dll_e2*m_update_period);
+ #endif
+     debugOutputShort( DEBUG_LEVEL_NORMAL, "   DLL Rate             : %f (%f)\n", m_dll_e2, m_dll_e2/m_update_period);
+Index: trunk/libffado/src/libutil/Configuration.cpp
+===================================================================
+--- trunk/libffado/src/libutil/Configuration.cpp (revision 2450)
++++ trunk/libffado/src/libutil/Configuration.cpp (revision 2651)
+@@ -190,5 +190,5 @@
+             int64_t i = s;
+             debugOutput(DEBUG_LEVEL_NORMAL,
+-                        "  %s%s = %"PRId64" (0x%016"PRIX64")\n",
++                        "  %s%s = %" PRId64 " (0x%016" PRIX64 ")\n",
+                         prefix.c_str(), s.getName(), i, i);
+         }
+@@ -259,5 +259,5 @@
+         if(t == Setting::TypeInt64) {
+             ref = *s;
+-            debugOutput(DEBUG_LEVEL_VERY_VERBOSE, "path '%s' has value %"PRId64"\n", path.c_str(), ref);
++            debugOutput(DEBUG_LEVEL_VERY_VERBOSE, "path '%s' has value %" PRId64 "\n", path.c_str(), ref);
+             return true;
+         } else {
+Index: trunk/libffado/src/genericavc/stanton/scs.cpp
+===================================================================
+--- trunk/libffado/src/genericavc/stanton/scs.cpp (revision 2163)
++++ trunk/libffado/src/genericavc/stanton/scs.cpp (revision 2651)
+@@ -72,5 +72,5 @@
+     // read the current value present in the register, i.e. read-ping
+     if(!readRegBlock(addr, (quadlet_t *)cmdBuffer, 1) ) {
+-        debugError("Could not read from addr 0x%012"PRIX64"\n",  addr);
++        debugError("Could not read from addr 0x%012" PRIX64 "\n",  addr);
+     } else {
+         int version = cmdBuffer[0] & 0xFFFF;
+@@ -87,5 +87,5 @@
+     // execute the command
+     if(!writeRegBlock(addr, (quadlet_t *)cmdBuffer, 1)) {
+-        debugError("Could not write to addr 0x%012"PRIX64"\n",  addr);
++        debugError("Could not write to addr 0x%012" PRIX64 "\n",  addr);
+     } else {
+         debugOutput(DEBUG_LEVEL_VERBOSE, "Write Ping succeeded\n");
+@@ -129,5 +129,5 @@
+     // execute the command
+     if(!writeRegBlock(addr, (quadlet_t *)cmdBuffer, 2)) {
+-        debugError("Could not write to addr 0x%012"PRIX64"\n", addr);
++        debugError("Could not write to addr 0x%012" PRIX64 "\n", addr);
+         return false;
+     }
+@@ -143,5 +143,5 @@
+     // execute the command
+     if(!writeRegBlock(addr, (quadlet_t *)cmdBuffer, 2)) {
+-        debugError("Could not write to addr 0x%012"PRIX64"\n", addr);
++        debugError("Could not write to addr 0x%012" PRIX64 "\n", addr);
+         return false;
+     }
+@@ -173,5 +173,5 @@
+     // execute the command
+     if(!writeRegBlock(addr, (quadlet_t *)cmdBuffer, len_quadlets)) {
+-        debugError("Could not write to addr 0x%012"PRIX64"\n", addr);
++        debugError("Could not write to addr 0x%012" PRIX64 "\n", addr);
+         return false;
+     }
+@@ -181,5 +181,5 @@
+ bool
+ ScsDevice::readRegBlock(fb_nodeaddr_t addr, fb_quadlet_t *data, size_t length_quads, size_t blocksize_quads) {
+-    debugOutput(DEBUG_LEVEL_VERBOSE,"Reading register 0x%016"PRIX64", length %zd quadlets, to %p\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE,"Reading register 0x%016" PRIX64 ", length %zd quadlets, to %p\n",
+         addr, length_quads, data);
+ 
+@@ -200,7 +200,7 @@
+         #endif
+ 
+-        debugOutput(DEBUG_LEVEL_VERBOSE, "reading addr: 0x%016"PRIX64", %d quads to %p\n", curr_addr, quads_todo, curr_data);
++        debugOutput(DEBUG_LEVEL_VERBOSE, "reading addr: 0x%016" PRIX64 ", %d quads to %p\n", curr_addr, quads_todo, curr_data);
+         if(!get1394Service().read( nodeId, curr_addr, quads_todo, curr_data ) ) {
+-            debugError("Could not read %d quadlets from node 0x%04X addr 0x%012"PRIX64"\n", quads_todo, nodeId, curr_addr);
++            debugError("Could not read %d quadlets from node 0x%04X addr 0x%012" PRIX64 "\n", quads_todo, nodeId, curr_addr);
+             return false;
+         }
+@@ -215,5 +215,5 @@
+ ScsDevice::writeRegBlock(fb_nodeaddr_t addr, fb_quadlet_t *data, size_t length_quads, size_t blocksize_quads) {
+     debugOutput(DEBUG_LEVEL_VERY_VERBOSE,
+-                "Writing register 0x%016"PRIX64", length: %zd quadlets, from %p\n",
++                "Writing register 0x%016" PRIX64 ", length: %zd quadlets, from %p\n",
+                 addr, length_quads, data);
+ 
+@@ -238,7 +238,7 @@
+         #endif
+ 
+-        debugOutput(DEBUG_LEVEL_VERBOSE, "writing addr: 0x%016"PRIX64", %d quads from %p\n", curr_addr, quads_todo, curr_data);
++        debugOutput(DEBUG_LEVEL_VERBOSE, "writing addr: 0x%016" PRIX64 ", %d quads from %p\n", curr_addr, quads_todo, curr_data);
+         if(!get1394Service().write( nodeId, addr, quads_todo, curr_data ) ) {
+-            debugError("Could not write %d quadlets to node 0x%04X addr 0x%012"PRIX64"\n", quads_todo, nodeId, curr_addr);
++            debugError("Could not write %d quadlets to node 0x%04X addr 0x%012" PRIX64 "\n", quads_todo, nodeId, curr_addr);
+             return false;
+         }
+Index: trunk/libffado/src/bebob/bebob_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/bebob/bebob_avdevice.cpp (revision 2491)
++++ trunk/libffado/src/bebob/bebob_avdevice.cpp (revision 2651)
+@@ -836,5 +836,5 @@
+ 
+     char* configId;
+-    asprintf(&configId, "%016"PRIx64"", getConfigurationId() );
++    asprintf(&configId, "%016" PRIx64 "", getConfigurationId() );
+     if ( !configId ) {
+         debugError( "could not create id string\n" );
+@@ -912,5 +912,5 @@
+     // come up with an unique file name for the current settings
+     char* configId;
+-    asprintf(&configId, "%016"PRIx64"", BeBoB::Device::getConfigurationId() );
++    asprintf(&configId, "%016" PRIx64 "", BeBoB::Device::getConfigurationId() );
+     if ( !configId ) {
+         debugError( "Could not create id string\n" );
+Index: trunk/libffado/src/bebob/focusrite/focusrite_generic.cpp
+===================================================================
+--- trunk/libffado/src/bebob/focusrite/focusrite_generic.cpp (revision 1763)
++++ trunk/libffado/src/bebob/focusrite/focusrite_generic.cpp (revision 2651)
+@@ -69,5 +69,5 @@
+     if(m_cmd_time_interval && (m_earliest_next_cmd_time > now)) {
+         ffado_microsecs_t wait = m_earliest_next_cmd_time - now;
+-        debugOutput( DEBUG_LEVEL_VERBOSE, "Rate control... %"PRIu64"\n", wait );
++        debugOutput( DEBUG_LEVEL_VERBOSE, "Rate control... %" PRIu64 "\n", wait );
+         Util::SystemTimeSource::SleepUsecRelative(wait);
+     }
+@@ -94,5 +94,5 @@
+     if(m_cmd_time_interval && (m_earliest_next_cmd_time > now)) {
+         ffado_microsecs_t wait = m_earliest_next_cmd_time - now;
+-        debugOutput( DEBUG_LEVEL_VERBOSE, "Rate control... %"PRIu64"\n", wait );
++        debugOutput( DEBUG_LEVEL_VERBOSE, "Rate control... %" PRIu64 "\n", wait );
+         Util::SystemTimeSource::SleepUsecRelative(wait);
+     }
+@@ -169,5 +169,5 @@
+ 
+     if(!get1394Service().write_quadlet( nodeId, addr, CondSwapToBus32(data) ) ) {
+-        debugError("Could not write to node 0x%04X addr 0x%012"PRIX64"\n", nodeId, addr);
++        debugError("Could not write to node 0x%04X addr 0x%012" PRIX64 "\n", nodeId, addr);
+         return false;
+     }
+@@ -185,5 +185,5 @@
+ 
+     if(!get1394Service().read_quadlet( nodeId, addr, &result ) ) {
+-        debugError("Could not read from node 0x%04X addr 0x%012"PRIX64"\n", nodeId, addr);
++        debugError("Could not read from node 0x%04X addr 0x%012" PRIX64 "\n", nodeId, addr);
+         return false;
+     }
+@@ -385,5 +385,5 @@
+ RegisterControl::setValue(uint64_t addr, uint64_t v)
+ {
+-    debugOutput(DEBUG_LEVEL_VERBOSE, "setValue for addr %"PRIu64" to %"PRIu64"\n",
++    debugOutput(DEBUG_LEVEL_VERBOSE, "setValue for addr %" PRIu64 " to %" PRIu64 "\n",
+                                      addr, v);
+ 
+@@ -403,5 +403,5 @@
+         return 0;
+     } else {
+-        debugOutput(DEBUG_LEVEL_VERBOSE, "getValue for %"PRIu64" = %u\n", 
++        debugOutput(DEBUG_LEVEL_VERBOSE, "getValue for %" PRIu64 " = %u\n", 
+                                          addr, val);
+         return val;
+Index: trunk/libffado/src/bebob/focusrite/focusrite_saffire.cpp
+===================================================================
+--- trunk/libffado/src/bebob/focusrite/focusrite_saffire.cpp (revision 1763)
++++ trunk/libffado/src/bebob/focusrite/focusrite_saffire.cpp (revision 2651)
+@@ -48,9 +48,9 @@
+     if(config.getValueForDeviceSetting(getConfigRom().getNodeVendorId(), getConfigRom().getModelId(), "cmd_interval_time", delaytime)) {
+         m_cmd_time_interval = delaytime;
+-        debugOutput( DEBUG_LEVEL_VERBOSE, "Setting command interval time to %"PRIu64"\n",
++        debugOutput( DEBUG_LEVEL_VERBOSE, "Setting command interval time to %" PRIu64 "\n",
+                      m_cmd_time_interval );
+     } else {
+         m_cmd_time_interval = 10000;
+-        debugOutput( DEBUG_LEVEL_VERBOSE, "No command interval time setting found, defaulting to %"PRIu64"\n",
++        debugOutput( DEBUG_LEVEL_VERBOSE, "No command interval time setting found, defaulting to %" PRIu64 "\n",
+                      m_cmd_time_interval );
+     }
+Index: trunk/libffado/src/fireworks/efc/efc_cmds_hardware.cpp
+===================================================================
+--- trunk/libffado/src/fireworks/efc/efc_cmds_hardware.cpp (revision 2514)
++++ trunk/libffado/src/fireworks/efc/efc_cmds_hardware.cpp (revision 2651)
+@@ -127,5 +127,5 @@
+     debugOutput(DEBUG_LEVEL_NORMAL, "EFC HW CAPS info:\n");
+     debugOutput(DEBUG_LEVEL_NORMAL, " Flags   : 0x%08X\n", m_flags);
+-    debugOutput(DEBUG_LEVEL_NORMAL, " GUID    : %016"PRIX64"\n", m_guid);
++    debugOutput(DEBUG_LEVEL_NORMAL, " GUID    : %016" PRIX64 "\n", m_guid);
+     debugOutput(DEBUG_LEVEL_NORMAL, " HwType  : 0x%08X\n", m_type);
+     debugOutput(DEBUG_LEVEL_NORMAL, " Version : %u\n", m_version);
+Index: trunk/libffado/tests/test-bufferops.cpp
+===================================================================
+--- trunk/libffado/tests/test-bufferops.cpp (revision 1763)
++++ trunk/libffado/tests/test-bufferops.cpp (revision 2651)
+@@ -88,5 +88,5 @@
+         byteSwapToBus(buffer_1, nb_quadlets);
+         elapsed = Util::SystemTimeSource::getCurrentTimeAsUsecs() - start;
+-        printMessage( " took %"PRI_FFADO_MICROSECS_T"usec...\n", elapsed);
++        printMessage( " took %" PRI_FFADO_MICROSECS_T "usec...\n", elapsed);
+         
+     }
+@@ -156,5 +156,5 @@
+         convertFromInt24AndLabelAsMBLA(buffer_1, nb_quadlets);
+         elapsed = Util::SystemTimeSource::getCurrentTimeAsUsecs() - start;
+-        printMessage( " took %"PRI_FFADO_MICROSECS_T"usec...\n", elapsed);
++        printMessage( " took %" PRI_FFADO_MICROSECS_T "usec...\n", elapsed);
+     }
+ 
+@@ -238,5 +238,5 @@
+         convertFromFloatAndLabelAsMBLA(buffer_1, nb_quadlets);
+         elapsed = Util::SystemTimeSource::getCurrentTimeAsUsecs() - start;
+-        printMessage( " took %"PRI_FFADO_MICROSECS_T"usec...\n", elapsed);
++        printMessage( " took %" PRI_FFADO_MICROSECS_T "usec...\n", elapsed);
+     }
+ 
+Index: trunk/libffado/tests/test-timestampedbuffer.cpp
+===================================================================
+--- trunk/libffado/tests/test-timestampedbuffer.cpp (revision 1763)
++++ trunk/libffado/tests/test-timestampedbuffer.cpp (revision 2651)
+@@ -346,5 +346,5 @@
+ 
+                 if (timestamp != ts_head) {
+-                    debugError(" cycle %4u error: %011"PRIu64" != %011"PRIu64"\n",
++                    debugError(" cycle %4u error: %011" PRIu64 " != %011" PRIu64 "\n",
+                                cycle, timestamp, ts_head);
+                     pass=false;
+@@ -419,5 +419,5 @@
+ 
+             debugOutput(DEBUG_LEVEL_NORMAL,
+-                        "Simulating cycle %d @ time=%011"PRIu64", diff=%"PRId64"\n",
++                        "Simulating cycle %d @ time=%011" PRIu64 ", diff=%" PRId64 "\n",
+                         cycle, time, diff);
+ 
+@@ -436,8 +436,8 @@
+                 ts_tail=(uint64_t)ts_tail_tmp;
+                 debugOutput(DEBUG_LEVEL_NORMAL,
+-                        " TS after write: HEAD: %011"PRIu64", FC=%04u\n",
++                        " TS after write: HEAD: %011" PRIu64 ", FC=%04u\n",
+                         ts_head,fc_head);
+                 debugOutput(DEBUG_LEVEL_NORMAL,
+-                        "                 TAIL: %011"PRIu64", FC=%04u\n",
++                        "                 TAIL: %011" PRIu64 ", FC=%04u\n",
+                         ts_tail,fc_tail);
+ 
+@@ -451,8 +451,8 @@
+                 ts_tail=(uint64_t)ts_tail_tmp;
+                 debugOutput(DEBUG_LEVEL_NORMAL,
+-                        " TS after write: HEAD: %011"PRIu64", FC=%04u\n",
++                        " TS after write: HEAD: %011" PRIu64 ", FC=%04u\n",
+                         ts_head,fc_head);
+                 debugOutput(DEBUG_LEVEL_NORMAL,
+-                        "                 TAIL: %011"PRIu64", FC=%04u\n",
++                        "                 TAIL: %011" PRIu64 ", FC=%04u\n",
+                         ts_tail,fc_tail);
+ 
+@@ -526,5 +526,5 @@
+ 
+             debugOutput(DEBUG_LEVEL_NORMAL,
+-                        "Simulating cycle %d @ time=%011"PRIu64", diff=%"PRId64"\n",
++                        "Simulating cycle %d @ time=%011" PRIu64 ", diff=%" PRId64 "\n",
+                         cycle, time, diff);
+ 
+@@ -543,8 +543,8 @@
+                 ts_tail=(uint64_t)ts_tail_tmp;
+                 debugOutput(DEBUG_LEVEL_NORMAL,
+-                        " TS after write: HEAD: %011"PRIu64", FC=%04u\n",
++                        " TS after write: HEAD: %011" PRIu64 ", FC=%04u\n",
+                         ts_head,fc_head);
+                 debugOutput(DEBUG_LEVEL_NORMAL,
+-                        "                 TAIL: %011"PRIu64", FC=%04u\n",
++                        "                 TAIL: %011" PRIu64 ", FC=%04u\n",
+                         ts_tail,fc_tail);
+ 
+@@ -561,8 +561,8 @@
+                     ts_tail=(uint64_t)ts_tail_tmp;
+                     debugOutput(DEBUG_LEVEL_NORMAL,
+-                            " TS after read: HEAD: %011"PRIu64", FC=%04u\n",
++                            " TS after read: HEAD: %011" PRIu64 ", FC=%04u\n",
+                             ts_head,fc_head);
+                     debugOutput(DEBUG_LEVEL_NORMAL,
+-                            "                TAIL: %011"PRIu64", FC=%04u\n",
++                            "                TAIL: %011" PRIu64 ", FC=%04u\n",
+                             ts_tail,fc_tail);
+                 }
+Index: trunk/libffado/tests/test-ieee1394service.cpp
+===================================================================
+--- trunk/libffado/tests/test-ieee1394service.cpp (revision 2587)
++++ trunk/libffado/tests/test-ieee1394service.cpp (revision 2651)
+@@ -164,5 +164,5 @@
+     }
+     debugOutput ( DEBUG_LEVEL_VERY_VERBOSE,
+-                "(%p) Cycle timer: %011"PRIu64" (%03us %04ucy %04uticks)\n",
++                "(%p) Cycle timer: %011" PRIu64 " (%03us %04ucy %04uticks)\n",
+                 this, ctr,
+                 (unsigned int)TICKS_TO_SECS( ctr ),
+@@ -170,5 +170,5 @@
+                 (unsigned int)TICKS_TO_OFFSET( ctr ) );
+     debugOutput ( DEBUG_LEVEL_VERY_VERBOSE,
+-                "(%p)    from DLL: %011"PRIu64" (%03us %04ucy %04uticks)\n",
++                "(%p)    from DLL: %011" PRIu64 " (%03us %04ucy %04uticks)\n",
+                 this, ctr_dll,
+                 (unsigned int)TICKS_TO_SECS( ctr_dll ),
+@@ -199,11 +199,11 @@
+     }
+     debugOutput ( DEBUG_LEVEL_VERY_VERBOSE,
+-                "(%p)       diff: %s%011"PRIu64" (%03us %04ucy %04uticks)\n", this,
++                "(%p)       diff: %s%011" PRIu64 " (%03us %04ucy %04uticks)\n", this,
+                 ((int64_t)abs_diff==diff?" ":"-"), abs_diff, (unsigned int)TICKS_TO_SECS( abs_diff ),
+                 (unsigned int)TICKS_TO_CYCLES( abs_diff ), (unsigned int)TICKS_TO_OFFSET( abs_diff ) );
+     if (abs_diff > DIFF_CONSIDERED_LARGE) {
+-        debugWarning("(%p) Alert, large diff: %"PRId64"\n", this, diff);
+-        debugOutput ( DEBUG_LEVEL_NORMAL,
+-                    "(%p)  Cycle timer: %011"PRIu64" (%03us %04ucy %04uticks)\n",
++        debugWarning("(%p) Alert, large diff: %" PRId64 "\n", this, diff);
++        debugOutput ( DEBUG_LEVEL_NORMAL,
++                    "(%p)  Cycle timer: %011" PRIu64 " (%03us %04ucy %04uticks)\n",
+                     this, ctr,
+                     (unsigned int)TICKS_TO_SECS( ctr ),
+@@ -211,5 +211,5 @@
+                     (unsigned int)TICKS_TO_OFFSET( ctr ) );
+         debugOutput ( DEBUG_LEVEL_NORMAL,
+-                    "(%p)   from DLL: %011"PRIu64" (%03us %04ucy %04uticks)\n",
++                    "(%p)   from DLL: %011" PRIu64 " (%03us %04ucy %04uticks)\n",
+                     this, ctr_dll,
+                     (unsigned int)TICKS_TO_SECS( ctr_dll ),
+@@ -220,8 +220,8 @@
+     diff = diffTicks(ctr, ctr_prev);
+     if (diff < 0) {
+-        debugWarning("(%p) Alert, non-monotonic ctr (direct): %"PRId64" - %"PRId64" = %"PRId64"\n",
++        debugWarning("(%p) Alert, non-monotonic ctr (direct): %" PRId64 " - %" PRId64 " = %" PRId64 "\n",
+                      this, ctr, ctr_prev, diff);
+         debugOutput ( DEBUG_LEVEL_NORMAL,
+-                    "(%p)  Cycle timer now : %011"PRIu64" (%03us %04ucy %04uticks)\n",
++                    "(%p)  Cycle timer now : %011" PRIu64 " (%03us %04ucy %04uticks)\n",
+                     this, ctr,
+                     (unsigned int)TICKS_TO_SECS( ctr ),
+@@ -229,5 +229,5 @@
+                     (unsigned int)TICKS_TO_OFFSET( ctr ) );
+         debugOutput ( DEBUG_LEVEL_NORMAL,
+-                    "(%p)  Cycle timer prev: %011"PRIu64" (%03us %04ucy %04uticks)\n",
++                    "(%p)  Cycle timer prev: %011" PRIu64 " (%03us %04ucy %04uticks)\n",
+                     this, ctr_prev,
+                     (unsigned int)TICKS_TO_SECS( ctr_prev ),
+@@ -237,8 +237,8 @@
+     diff = diffTicks(ctr_dll, ctr_dll_prev);
+     if (diff < 0) {
+-        debugWarning("(%p) Alert, non-monotonic ctr (dll): %"PRId64" - %"PRId64" = %"PRId64"\n",
++        debugWarning("(%p) Alert, non-monotonic ctr (dll): %" PRId64 " - %" PRId64 " = %" PRId64 "\n",
+                      this, ctr_dll, ctr_dll_prev, diff);
+         debugOutput ( DEBUG_LEVEL_NORMAL,
+-                    "(%p)  Cycle timer now : %011"PRIu64" (%03us %04ucy %04uticks)\n",
++                    "(%p)  Cycle timer now : %011" PRIu64 " (%03us %04ucy %04uticks)\n",
+                     this, ctr_dll,
+                     (unsigned int)TICKS_TO_SECS( ctr_dll ),
+@@ -246,5 +246,5 @@
+                     (unsigned int)TICKS_TO_OFFSET( ctr_dll ) );
+         debugOutput ( DEBUG_LEVEL_NORMAL,
+-                    "(%p)  Cycle timer prev: %011"PRIu64" (%03us %04ucy %04uticks)\n",
++                    "(%p)  Cycle timer prev: %011" PRIu64 " (%03us %04ucy %04uticks)\n",
+                     this, ctr_dll_prev,
+                     (unsigned int)TICKS_TO_SECS( ctr_dll_prev ),
+@@ -267,5 +267,5 @@
+                     (unsigned int)CYCLE_TIMER_GET_OFFSET( tmp_orig ) );
+         debugOutput ( DEBUG_LEVEL_VERY_VERBOSE,
+-                    "(%p) TICKS: %011"PRIu32" (%03us %04ucy %04uticks)\n",
++                    "(%p) TICKS: %011" PRIu32 " (%03us %04ucy %04uticks)\n",
+                     this, tmp_ticks,
+                     (unsigned int)TICKS_TO_SECS( tmp_ticks ),
+Index: trunk/libffado/tests/test-ffado.cpp
+===================================================================
+--- trunk/libffado/tests/test-ffado.cpp (revision 2587)
++++ trunk/libffado/tests/test-ffado.cpp (revision 2651)
+@@ -510,5 +510,5 @@
+         uint64_t result_rcv = sytRecvToFullTicks(syt_timestamp, rcv_cycle, ctr_now);
+         uint64_t result_xmt = sytXmitToFullTicks(syt_timestamp, rcv_cycle, ctr_now);
+-        printf("RCV: 0x%010"PRIX64" %010"PRIu64"  XMT: 0x%010"PRIX64" %010"PRIu64" CTR: %010"PRIu64"\n",
++        printf("RCV: 0x%010" PRIX64 " %010" PRIu64 "  XMT: 0x%010" PRIX64 " %010" PRIu64 " CTR: %010" PRIu64 "\n",
+                result_rcv, result_rcv, result_xmt, result_xmt, CYCLE_TIMER_TO_TICKS(ctr_now));
+ 
+Index: trunk/libffado/tests/test-focusrite.cpp
+===================================================================
+--- trunk/libffado/tests/test-focusrite.cpp (revision 2587)
++++ trunk/libffado/tests/test-focusrite.cpp (revision 2651)
+@@ -185,5 +185,5 @@
+             }
+             if (!retval) {
+-                debugError( " read from %16"PRIX64" failed (id: %d)\n", addr, id);
++                debugError( " read from %16" PRIX64 " failed (id: %d)\n", addr, id);
+             } else {
+                 value = CondSwapFromBus32(value);
+Index: trunk/libffado/tests/systemtests/gen-loadpulses.cpp
+===================================================================
+--- trunk/libffado/tests/systemtests/gen-loadpulses.cpp (revision 1763)
++++ trunk/libffado/tests/systemtests/gen-loadpulses.cpp (revision 2651)
+@@ -188,10 +188,10 @@
+         int64_t usecs_late = toc - sleep_time;
+         if(usecs_late > 1000) {
+-            debugWarning("late wakeup: %"PRId64" usecs\n", usecs_late);
++            debugWarning("late wakeup: %" PRId64 " usecs\n", usecs_late);
+         }
+ 
+         // try and detect lockup ()
+         if(usecs_late > 100000) {
+-            debugWarning("very late wakeup: %"PRId64" usecs\n", usecs_late);
++            debugWarning("very late wakeup: %" PRId64 " usecs\n", usecs_late);
+             // force exit, since this is a loop out of control
+             run=0;
+Index: trunk/libffado/tests/systemtests/test-sysload.cpp
+===================================================================
+--- trunk/libffado/tests/systemtests/test-sysload.cpp (revision 1763)
++++ trunk/libffado/tests/systemtests/test-sysload.cpp (revision 2651)
+@@ -190,10 +190,10 @@
+         int64_t usecs_late = toc - sleep_time;
+         if(usecs_late > 1000) {
+-            debugWarning("late wakeup: %"PRId64" usecs\n", usecs_late);
++            debugWarning("late wakeup: %" PRId64 " usecs\n", usecs_late);
+         }
+ 
+         // try and detect lockup ()
+         if(usecs_late > 100000) {
+-            debugWarning("very late wakeup: %"PRId64" usecs\n", usecs_late);
++            debugWarning("very late wakeup: %" PRId64 " usecs\n", usecs_late);
+             // force exit, since this is a loop out of control
+             run=0;
+Index: trunk/libffado/tests/systemtests/test-clock_nanosleep.cpp
+===================================================================
+--- trunk/libffado/tests/systemtests/test-clock_nanosleep.cpp (revision 1763)
++++ trunk/libffado/tests/systemtests/test-clock_nanosleep.cpp (revision 2651)
+@@ -70,5 +70,5 @@
+     ts.tv_nsec = (wake_at_usec % (1000000LL)) * 1000LL;
+     debugOutput(DEBUG_LEVEL_VERBOSE,
+-                "clock_nanosleep until %"PRId64" sec, %"PRId64" nanosec\n",
++                "clock_nanosleep until %" PRId64 " sec, %" PRId64 " nanosec\n",
+                 (int64_t)ts.tv_sec, (int64_t)ts.tv_nsec);
+     int err = clock_nanosleep(CLOCK_REALTIME, TIMER_ABSTIME, &ts, NULL);
+@@ -107,5 +107,5 @@
+         
+         debugOutput(DEBUG_LEVEL_VERBOSE,
+-                    "cuckoo from %p at %012"PRI_FFADO_MICROSECS_T"\n",
++                    "cuckoo from %p at %012" PRI_FFADO_MICROSECS_T "\n",
+                     obj, getCurrentTimeAsUsecs());
+         
+Index: trunk/libffado/support/firmware/fireworks-downloader.cpp
+===================================================================
+--- trunk/libffado/support/firmware/fireworks-downloader.cpp (revision 2413)
++++ trunk/libffado/support/firmware/fireworks-downloader.cpp (revision 2651)
+@@ -215,5 +215,5 @@
+ 
+     if (node_id < 0) {
+-        printMessage("Could not find device with GUID 0x%016"PRIX64"\n", guid);
++        printMessage("Could not find device with GUID 0x%016" PRIX64 "\n", guid);
+         return -1;
+     }
+Index: trunk/libffado/support/dbus/controlserver.cpp
+===================================================================
+--- trunk/libffado/support/dbus/controlserver.cpp (revision 2574)
++++ trunk/libffado/support/dbus/controlserver.cpp (revision 2651)
+@@ -626,5 +626,5 @@
+ {
+     uint64_t val = m_Slave.getValue(addr);
+-    debugOutput( DEBUG_LEVEL_VERBOSE, "getValue(%"PRId64") => %"PRId64"\n", addr, val );
++    debugOutput( DEBUG_LEVEL_VERBOSE, "getValue(%" PRId64 ") => %" PRId64 "\n", addr, val );
+     return val;
+ }
diff --git a/libffado-diff-trunk-from-r2690-to-r2691.diff b/libffado-diff-trunk-from-r2690-to-r2691.diff
new file mode 100644
index 0000000..3c1ff26
--- /dev/null
+++ b/libffado-diff-trunk-from-r2690-to-r2691.diff
@@ -0,0 +1,1137 @@
+Index: trunk/libffado/src/ffadodevice.cpp
+===================================================================
+--- trunk/libffado/src/ffadodevice.cpp (revision 2019)
++++ trunk/libffado/src/ffadodevice.cpp (revision 2691)
+@@ -41,5 +41,5 @@
+ IMPL_DEBUG_MODULE( FFADODevice, FFADODevice, DEBUG_LEVEL_NORMAL );
+ 
+-FFADODevice::FFADODevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ) )
++FFADODevice::FFADODevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ) )
+     : Control::Container(&d)
+     , m_pConfigRom( configRom )
+@@ -100,5 +100,5 @@
+ 
+ FFADODevice *
+-FFADODevice::createDevice(std::auto_ptr<ConfigRom>( x ))
++FFADODevice::createDevice(ffado_smartptr<ConfigRom>( x ))
+ {
+     // re-implement this!!
+Index: trunk/libffado/src/devicemanager.h
+===================================================================
+--- trunk/libffado/src/devicemanager.h (revision 2078)
++++ trunk/libffado/src/devicemanager.h (revision 2691)
+@@ -149,5 +149,5 @@
+     FFADODevice* getDriverForDevice( ConfigRom *configRom,
+                                      int id );
+-    FFADODevice* getSlaveDriver( std::auto_ptr<ConfigRom>( configRom ) );
++    FFADODevice* getSlaveDriver( ffado_smartptr<ConfigRom>( configRom ) );
+ 
+     void busresetHandler(Ieee1394Service &);
+Index: trunk/libffado/src/rme/rme_avdevice.h
+===================================================================
+--- trunk/libffado/src/rme/rme_avdevice.h (revision 2663)
++++ trunk/libffado/src/rme/rme_avdevice.h (revision 2691)
+@@ -79,5 +79,5 @@
+ 
+     Device( DeviceManager& d,
+-               std::auto_ptr<ConfigRom>( configRom ));
++               ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~Device();
+ 
+@@ -87,5 +87,5 @@
+     static bool probe( Util::Configuration& c, ConfigRom& configRom, bool generic = false );
+     static FFADODevice * createDevice( DeviceManager& d,
+-                                        std::auto_ptr<ConfigRom>( configRom ));
++                                        ffado_smartptr<ConfigRom>( configRom ));
+     static int getConfigurationId( );
+     virtual bool discover();
+Index: trunk/libffado/src/rme/rme_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/rme/rme_avdevice.cpp (revision 2663)
++++ trunk/libffado/src/rme/rme_avdevice.cpp (revision 2691)
+@@ -59,5 +59,5 @@
+ 
+ Device::Device( DeviceManager& d,
+-                      std::auto_ptr<ConfigRom>( configRom ))
++                      ffado_smartptr<ConfigRom>( configRom ))
+     : FFADODevice( d, configRom )
+     , m_rme_model( RME_MODEL_NONE )
+@@ -372,5 +372,5 @@
+ 
+ FFADODevice *
+-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+ {
+     return new Device(d, configRom );
+Index: trunk/libffado/src/motu/motu_avdevice.h
+===================================================================
+--- trunk/libffado/src/motu/motu_avdevice.h (revision 2502)
++++ trunk/libffado/src/motu/motu_avdevice.h (revision 2691)
+@@ -381,5 +381,5 @@
+ public:
+ 
+-    MotuDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ) );
++    MotuDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ) );
+     virtual ~MotuDevice();
+ 
+@@ -388,5 +388,5 @@
+ 
+     static bool probe( Util::Configuration&, ConfigRom& configRom, bool generic = false );
+-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     static int getConfigurationId( );
+     virtual bool discover();
+Index: trunk/libffado/src/motu/motu_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/motu/motu_avdevice.cpp (revision 2651)
++++ trunk/libffado/src/motu/motu_avdevice.cpp (revision 2691)
+@@ -316,5 +316,5 @@
+ };
+ 
+-MotuDevice::MotuDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++MotuDevice::MotuDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+     : FFADODevice( d, configRom )
+     , m_motu_model( MOTU_MODEL_NONE )
+@@ -383,5 +383,5 @@
+ 
+ FFADODevice *
+-MotuDevice::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++MotuDevice::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+ {
+     return new MotuDevice(d, configRom);
+Index: trunk/libffado/src/ffadodevice.h
+===================================================================
+--- trunk/libffado/src/ffadodevice.h (revision 2587)
++++ trunk/libffado/src/ffadodevice.h (revision 2691)
+@@ -36,4 +36,11 @@
+ #include <vector>
+ #include <string>
++
++// Prefer shared_ptr over auto_ptr if it is available
++#if __cplusplus >= 201103L
++#define ffado_smartptr std::shared_ptr
++#else
++#define ffado_smartptr std::auto_ptr
++#endif
+ 
+ class DeviceManager;
+@@ -61,5 +68,5 @@
+ {
+ public:
+-    FFADODevice( DeviceManager&, std::auto_ptr< ConfigRom >( configRom ) );
++    FFADODevice( DeviceManager&, ffado_smartptr< ConfigRom >( configRom ) );
+ 
+     virtual ~FFADODevice();
+@@ -129,5 +136,5 @@
+      * @return a new instance of the AvDevice type, NULL when unsuccessful
+      */
+-    static FFADODevice * createDevice( std::auto_ptr<ConfigRom>( x ));
++    static FFADODevice * createDevice( ffado_smartptr<ConfigRom>( x ));
+ 
+     /**
+@@ -481,5 +488,5 @@
+         {return m_pDeviceManager;};
+ private:
+-    std::auto_ptr<ConfigRom>( m_pConfigRom );
++    ffado_smartptr<ConfigRom>( m_pConfigRom );
+     DeviceManager& m_pDeviceManager;
+     Control::Container* m_genericContainer;
+Index: trunk/libffado/src/metrichalo/mh_avdevice.h
+===================================================================
+--- trunk/libffado/src/metrichalo/mh_avdevice.h (revision 1543)
++++ trunk/libffado/src/metrichalo/mh_avdevice.h (revision 2691)
+@@ -41,10 +41,10 @@
+ public:
+     Device( DeviceManager& d,
+-                std::auto_ptr<ConfigRom>( configRom ));
++                ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~Device();
+ 
+     static bool probe( Util::Configuration& c, ConfigRom& configRom, bool generic = false );
+     static FFADODevice * createDevice( DeviceManager& d,
+-                                       std::auto_ptr<ConfigRom>( configRom ));
++                                       ffado_smartptr<ConfigRom>( configRom ));
+     static int getConfigurationId();
+     virtual bool discover();
+Index: trunk/libffado/src/metrichalo/mh_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/metrichalo/mh_avdevice.cpp (revision 1543)
++++ trunk/libffado/src/metrichalo/mh_avdevice.cpp (revision 2691)
+@@ -47,5 +47,5 @@
+ 
+ Device::Device( DeviceManager& d,
+-                        std::auto_ptr<ConfigRom>( configRom ))
++                        ffado_smartptr<ConfigRom>( configRom ))
+     : FFADODevice( d, configRom )
+ {
+@@ -76,5 +76,5 @@
+ FFADODevice *
+ Device::createDevice( DeviceManager& d,
+-                          std::auto_ptr<ConfigRom>( configRom ))
++                          ffado_smartptr<ConfigRom>( configRom ))
+ {
+     return new Device(d, configRom );
+Index: trunk/libffado/src/oxford/oxford_device.cpp
+===================================================================
+--- trunk/libffado/src/oxford/oxford_device.cpp (revision 1543)
++++ trunk/libffado/src/oxford/oxford_device.cpp (revision 2691)
+@@ -45,5 +45,5 @@
+ namespace Oxford {
+ 
+-Device::Device(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++Device::Device(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+     : GenericAVC::Device( d, configRom)
+ {
+@@ -121,5 +121,5 @@
+ 
+ FFADODevice *
+-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+ {
+     unsigned int vendorId = configRom->getNodeVendorId();
+Index: trunk/libffado/src/oxford/oxford_device.h
+===================================================================
+--- trunk/libffado/src/oxford/oxford_device.h (revision 1543)
++++ trunk/libffado/src/oxford/oxford_device.h (revision 2691)
+@@ -40,9 +40,9 @@
+ 
+ public:
+-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ) );
++    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ) );
+     virtual ~Device();
+ 
+     static bool probe( Util::Configuration&, ConfigRom& configRom, bool generic = false );
+-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual bool discover();
+ 
+Index: trunk/libffado/src/dice/dice_avdevice.h
+===================================================================
+--- trunk/libffado/src/dice/dice_avdevice.h (revision 2430)
++++ trunk/libffado/src/dice/dice_avdevice.h (revision 2691)
+@@ -69,10 +69,10 @@
+ public:
+     /// constructor
+-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     /// destructor
+     ~Device();
+ 
+     static bool probe( Util::Configuration& c, ConfigRom& configRom, bool generic = false );
+-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual bool discover();
+ 
+Index: trunk/libffado/src/dice/focusrite/saffire_56.h
+===================================================================
+--- trunk/libffado/src/dice/focusrite/saffire_56.h (revision 2580)
++++ trunk/libffado/src/dice/focusrite/saffire_56.h (revision 2691)
+@@ -90,5 +90,5 @@
+ public:
+     Saffire56( DeviceManager& d,
+-                  std::auto_ptr<ConfigRom>( configRom ));
++                  ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~Saffire56();
+ 
+Index: trunk/libffado/src/dice/focusrite/saffire_pro40.cpp
+===================================================================
+--- trunk/libffado/src/dice/focusrite/saffire_pro40.cpp (revision 2547)
++++ trunk/libffado/src/dice/focusrite/saffire_pro40.cpp (revision 2691)
+@@ -479,5 +479,5 @@
+ */
+ SaffirePro40::SaffirePro40( DeviceManager& d,
+-                                        std::auto_ptr<ConfigRom>( configRom ))
++                                        ffado_smartptr<ConfigRom>( configRom ))
+     : Dice::Device( d , configRom)
+ {
+Index: trunk/libffado/src/dice/focusrite/saffire_pro14.cpp
+===================================================================
+--- trunk/libffado/src/dice/focusrite/saffire_pro14.cpp (revision 2431)
++++ trunk/libffado/src/dice/focusrite/saffire_pro14.cpp (revision 2691)
+@@ -356,5 +356,5 @@
+ */
+ SaffirePro14::SaffirePro14( DeviceManager& d,
+-                                        std::auto_ptr<ConfigRom>( configRom ))
++                                        ffado_smartptr<ConfigRom>( configRom ))
+     : Dice::Device( d , configRom)
+ {
+Index: trunk/libffado/src/dice/focusrite/saffire_pro24.cpp
+===================================================================
+--- trunk/libffado/src/dice/focusrite/saffire_pro24.cpp (revision 2598)
++++ trunk/libffado/src/dice/focusrite/saffire_pro24.cpp (revision 2691)
+@@ -408,5 +408,5 @@
+ 
+ SaffirePro24::SaffirePro24( DeviceManager& d,
+-                            std::auto_ptr<ConfigRom>( configRom ))
++                            ffado_smartptr<ConfigRom>( configRom ))
+     : Dice::Device(d , configRom)
+ {
+Index: trunk/libffado/src/dice/focusrite/saffire_pro26.cpp
+===================================================================
+--- trunk/libffado/src/dice/focusrite/saffire_pro26.cpp (revision 2606)
++++ trunk/libffado/src/dice/focusrite/saffire_pro26.cpp (revision 2691)
+@@ -358,5 +358,5 @@
+ 
+ SaffirePro26::SaffirePro26( DeviceManager& d,
+-                            std::auto_ptr<ConfigRom>( configRom ))
++                            ffado_smartptr<ConfigRom>( configRom ))
+     : Dice::Device(d , configRom)
+ {
+Index: trunk/libffado/src/dice/focusrite/saffire_pro40.h
+===================================================================
+--- trunk/libffado/src/dice/focusrite/saffire_pro40.h (revision 2547)
++++ trunk/libffado/src/dice/focusrite/saffire_pro40.h (revision 2691)
+@@ -85,5 +85,5 @@
+ public:
+     SaffirePro40( DeviceManager& d,
+-                  std::auto_ptr<ConfigRom>( configRom ));
++                  ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~SaffirePro40();
+ 
+Index: trunk/libffado/src/dice/focusrite/saffire_56.cpp
+===================================================================
+--- trunk/libffado/src/dice/focusrite/saffire_56.cpp (revision 2580)
++++ trunk/libffado/src/dice/focusrite/saffire_56.cpp (revision 2691)
+@@ -502,5 +502,5 @@
+ */
+ Saffire56::Saffire56( DeviceManager& d,
+-                                        std::auto_ptr<ConfigRom>( configRom ))
++                                        ffado_smartptr<ConfigRom>( configRom ))
+     : Dice::Device( d , configRom)
+ {
+Index: trunk/libffado/src/dice/focusrite/saffire_pro14.h
+===================================================================
+--- trunk/libffado/src/dice/focusrite/saffire_pro14.h (revision 2431)
++++ trunk/libffado/src/dice/focusrite/saffire_pro14.h (revision 2691)
+@@ -93,5 +93,5 @@
+ public:
+     SaffirePro14( DeviceManager& d,
+-                  std::auto_ptr<ConfigRom>( configRom ));
++                  ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~SaffirePro14();
+ 
+Index: trunk/libffado/src/dice/focusrite/saffire_pro24.h
+===================================================================
+--- trunk/libffado/src/dice/focusrite/saffire_pro24.h (revision 2431)
++++ trunk/libffado/src/dice/focusrite/saffire_pro24.h (revision 2691)
+@@ -92,5 +92,5 @@
+ public:
+     SaffirePro24( DeviceManager& d,
+-                  std::auto_ptr<ConfigRom>( configRom ));
++                  ffado_smartptr<ConfigRom>( configRom ));
+     ~SaffirePro24();
+ 
+Index: trunk/libffado/src/dice/focusrite/saffire_pro26.h
+===================================================================
+--- trunk/libffado/src/dice/focusrite/saffire_pro26.h (revision 2590)
++++ trunk/libffado/src/dice/focusrite/saffire_pro26.h (revision 2691)
+@@ -80,5 +80,5 @@
+ public:
+     SaffirePro26( DeviceManager& d,
+-                  std::auto_ptr<ConfigRom>( configRom ));
++                  ffado_smartptr<ConfigRom>( configRom ));
+     ~SaffirePro26();
+ 
+Index: trunk/libffado/src/dice/dice_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/dice/dice_avdevice.cpp (revision 2651)
++++ trunk/libffado/src/dice/dice_avdevice.cpp (revision 2691)
+@@ -61,5 +61,5 @@
+ namespace Dice {
+ 
+-Device::Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++Device::Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+     : FFADODevice( d, configRom )
+     , m_eap( NULL )
+@@ -126,5 +126,5 @@
+ 
+ FFADODevice *
+-Device::createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++Device::createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+ {
+     unsigned int vendorId = configRom->getNodeVendorId();
+Index: trunk/libffado/src/dice/maudio/profire_2626.cpp
+===================================================================
+--- trunk/libffado/src/dice/maudio/profire_2626.cpp (revision 2433)
++++ trunk/libffado/src/dice/maudio/profire_2626.cpp (revision 2691)
+@@ -363,5 +363,5 @@
+   Device
+ */
+-Profire2626::Profire2626( DeviceManager& d, std::auto_ptr<ConfigRom>(configRom))
++Profire2626::Profire2626( DeviceManager& d, ffado_smartptr<ConfigRom>(configRom))
+     : Dice::Device( d, configRom)
+ {
+Index: trunk/libffado/src/dice/maudio/profire_2626.h
+===================================================================
+--- trunk/libffado/src/dice/maudio/profire_2626.h (revision 2433)
++++ trunk/libffado/src/dice/maudio/profire_2626.h (revision 2691)
+@@ -44,5 +44,5 @@
+ public:
+     Profire2626( DeviceManager& d,
+-                  std::auto_ptr<ConfigRom>( configRom ));
++                  ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~Profire2626();
+ 
+Index: trunk/libffado/src/dice/presonus/firestudio_tube.h
+===================================================================
+--- trunk/libffado/src/dice/presonus/firestudio_tube.h (revision 2251)
++++ trunk/libffado/src/dice/presonus/firestudio_tube.h (revision 2691)
+@@ -37,5 +37,5 @@
+ public:
+     FirestudioTube( DeviceManager& d,
+-                  std::auto_ptr<ConfigRom>( configRom ));
++                  ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~FirestudioTube();
+ 
+Index: trunk/libffado/src/dice/presonus/firestudio_project.cpp
+===================================================================
+--- trunk/libffado/src/dice/presonus/firestudio_project.cpp (revision 2257)
++++ trunk/libffado/src/dice/presonus/firestudio_project.cpp (revision 2691)
+@@ -155,5 +155,5 @@
+ */
+ FirestudioProject::FirestudioProject( DeviceManager& d,
+-                                    std::auto_ptr<ConfigRom>( configRom ))
++                                    ffado_smartptr<ConfigRom>( configRom ))
+     : Dice::Device( d , configRom)
+ {
+Index: trunk/libffado/src/dice/presonus/firestudio_mobile.cpp
+===================================================================
+--- trunk/libffado/src/dice/presonus/firestudio_mobile.cpp (revision 2578)
++++ trunk/libffado/src/dice/presonus/firestudio_mobile.cpp (revision 2691)
+@@ -154,5 +154,5 @@
+ */
+ FirestudioMobile::FirestudioMobile( DeviceManager& d,
+-                                    std::auto_ptr<ConfigRom>( configRom ))
++                                    ffado_smartptr<ConfigRom>( configRom ))
+     : Dice::Device( d , configRom)
+ {
+Index: trunk/libffado/src/dice/presonus/firestudio_project.h
+===================================================================
+--- trunk/libffado/src/dice/presonus/firestudio_project.h (revision 2257)
++++ trunk/libffado/src/dice/presonus/firestudio_project.h (revision 2691)
+@@ -37,5 +37,5 @@
+ public:
+     FirestudioProject( DeviceManager& d,
+-                  std::auto_ptr<ConfigRom>( configRom ));
++                  ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~FirestudioProject();
+ 
+Index: trunk/libffado/src/dice/presonus/firestudio_mobile.h
+===================================================================
+--- trunk/libffado/src/dice/presonus/firestudio_mobile.h (revision 2578)
++++ trunk/libffado/src/dice/presonus/firestudio_mobile.h (revision 2691)
+@@ -38,5 +38,5 @@
+ public:
+     FirestudioMobile( DeviceManager& d,
+-                  std::auto_ptr<ConfigRom>( configRom ));
++                  ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~FirestudioMobile();
+ 
+Index: trunk/libffado/src/dice/presonus/firestudio_tube.cpp
+===================================================================
+--- trunk/libffado/src/dice/presonus/firestudio_tube.cpp (revision 2251)
++++ trunk/libffado/src/dice/presonus/firestudio_tube.cpp (revision 2691)
+@@ -143,5 +143,5 @@
+ */
+ FirestudioTube::FirestudioTube( DeviceManager& d,
+-                                    std::auto_ptr<ConfigRom>( configRom ))
++                                    ffado_smartptr<ConfigRom>( configRom ))
+     : Dice::Device( d , configRom)
+ {
+Index: trunk/libffado/src/digidesign/digidesign_avdevice.h
+===================================================================
+--- trunk/libffado/src/digidesign/digidesign_avdevice.h (revision 1964)
++++ trunk/libffado/src/digidesign/digidesign_avdevice.h (revision 2691)
+@@ -51,5 +51,5 @@
+ 
+     Device( DeviceManager& d,
+-               std::auto_ptr<ConfigRom>( configRom ));
++               ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~Device();
+ 
+@@ -59,5 +59,5 @@
+     static bool probe( Util::Configuration& c, ConfigRom& configRom, bool generic = false );
+     static FFADODevice * createDevice( DeviceManager& d,
+-                                        std::auto_ptr<ConfigRom>( configRom ));
++                                        ffado_smartptr<ConfigRom>( configRom ));
+     static int getConfigurationId( );
+     virtual bool discover();
+Index: trunk/libffado/src/digidesign/digidesign_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/digidesign/digidesign_avdevice.cpp (revision 1964)
++++ trunk/libffado/src/digidesign/digidesign_avdevice.cpp (revision 2691)
+@@ -52,5 +52,5 @@
+ 
+ Device::Device( DeviceManager& d,
+-                      std::auto_ptr<ConfigRom>( configRom ))
++                      ffado_smartptr<ConfigRom>( configRom ))
+     : FFADODevice( d, configRom )
+     , m_digidesign_model( DIGIDESIGN_MODEL_NONE )
+@@ -125,5 +125,5 @@
+ 
+ FFADODevice *
+-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+ {
+     return new Device(d, configRom );
+Index: trunk/libffado/src/genericavc/avc_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/genericavc/avc_avdevice.cpp (revision 1791)
++++ trunk/libffado/src/genericavc/avc_avdevice.cpp (revision 2691)
+@@ -52,5 +52,5 @@
+ IMPL_DEBUG_MODULE( Device, Device, DEBUG_LEVEL_NORMAL );
+ 
+-Device::Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++Device::Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+     : FFADODevice( d, configRom )
+ {
+@@ -109,5 +109,5 @@
+ 
+ FFADODevice *
+-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+ {
+     unsigned int vendorId = configRom->getNodeVendorId();
+Index: trunk/libffado/src/genericavc/avc_avdevice.h
+===================================================================
+--- trunk/libffado/src/genericavc/avc_avdevice.h (revision 1543)
++++ trunk/libffado/src/genericavc/avc_avdevice.h (revision 2691)
+@@ -48,10 +48,10 @@
+ class Device : public FFADODevice, public AVC::Unit {
+ public:
+-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~Device();
+ 
+     static bool probe( Util::Configuration&, ConfigRom& configRom, bool generic = false );
+     virtual bool discover();
+-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+ 
+     virtual bool serialize( std::string basePath, Util::IOSerialize& ser ) const;
+Index: trunk/libffado/src/genericavc/stanton/scs.cpp
+===================================================================
+--- trunk/libffado/src/genericavc/stanton/scs.cpp (revision 2651)
++++ trunk/libffado/src/genericavc/stanton/scs.cpp (revision 2691)
+@@ -34,5 +34,5 @@
+ 
+ ScsDevice::ScsDevice( DeviceManager& d,
+-                      std::auto_ptr<ConfigRom>( configRom ))
++                      ffado_smartptr<ConfigRom>( configRom ))
+ : GenericAVC::Device( d , configRom)
+ , m_hss1394handler( NULL )
+Index: trunk/libffado/src/genericavc/stanton/scs.h
+===================================================================
+--- trunk/libffado/src/genericavc/stanton/scs.h (revision 1550)
++++ trunk/libffado/src/genericavc/stanton/scs.h (revision 2691)
+@@ -71,5 +71,5 @@
+ public:
+     ScsDevice( DeviceManager& d,
+-               std::auto_ptr<ConfigRom>( configRom ));
++               ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~ScsDevice();
+ 
+Index: trunk/libffado/src/bebob/esi/quatafire610.cpp
+===================================================================
+--- trunk/libffado/src/bebob/esi/quatafire610.cpp (revision 1543)
++++ trunk/libffado/src/bebob/esi/quatafire610.cpp (revision 2691)
+@@ -29,5 +29,5 @@
+ namespace ESI {
+ 
+-QuataFireDevice::QuataFireDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++QuataFireDevice::QuataFireDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+     : BeBoB::Device( d, configRom)
+ {
+Index: trunk/libffado/src/bebob/esi/quatafire610.h
+===================================================================
+--- trunk/libffado/src/bebob/esi/quatafire610.h (revision 1543)
++++ trunk/libffado/src/bebob/esi/quatafire610.h (revision 2691)
+@@ -34,5 +34,5 @@
+ 
+ public:
+-    QuataFireDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    QuataFireDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~QuataFireDevice();
+ 
+Index: trunk/libffado/src/bebob/mackie/onyxmixer.cpp
+===================================================================
+--- trunk/libffado/src/bebob/mackie/onyxmixer.cpp (revision 1543)
++++ trunk/libffado/src/bebob/mackie/onyxmixer.cpp (revision 2691)
+@@ -29,5 +29,5 @@
+ namespace Mackie {
+ 
+-OnyxMixerDevice::OnyxMixerDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++OnyxMixerDevice::OnyxMixerDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+     : BeBoB::Device( d, configRom)
+ {
+Index: trunk/libffado/src/bebob/mackie/onyxmixer.h
+===================================================================
+--- trunk/libffado/src/bebob/mackie/onyxmixer.h (revision 1543)
++++ trunk/libffado/src/bebob/mackie/onyxmixer.h (revision 2691)
+@@ -34,5 +34,5 @@
+ 
+ public:
+-    OnyxMixerDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    OnyxMixerDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~OnyxMixerDevice();
+ 
+Index: trunk/libffado/src/bebob/bebob_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/bebob/bebob_avdevice.cpp (revision 2671)
++++ trunk/libffado/src/bebob/bebob_avdevice.cpp (revision 2691)
+@@ -65,5 +65,5 @@
+ namespace BeBoB {
+ 
+-Device::Device( DeviceManager& d, std::auto_ptr< ConfigRom >( configRom ) )
++Device::Device( DeviceManager& d, ffado_smartptr< ConfigRom >( configRom ) )
+     : GenericAVC::Device( d, configRom )
+     , m_last_discovery_config_id ( 0xFFFFFFFFFFFFFFFFLLU )
+@@ -131,5 +131,5 @@
+ 
+ FFADODevice *
+-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+ {
+     unsigned int vendorId = configRom->getNodeVendorId();
+Index: trunk/libffado/src/bebob/yamaha/yamaha_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/bebob/yamaha/yamaha_avdevice.cpp (revision 2439)
++++ trunk/libffado/src/bebob/yamaha/yamaha_avdevice.cpp (revision 2691)
+@@ -29,5 +29,5 @@
+ namespace Yamaha {
+ 
+-GoDevice::GoDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++GoDevice::GoDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+     : BeBoB::Device( d, configRom)
+ {
+Index: trunk/libffado/src/bebob/yamaha/yamaha_avdevice.h
+===================================================================
+--- trunk/libffado/src/bebob/yamaha/yamaha_avdevice.h (revision 2439)
++++ trunk/libffado/src/bebob/yamaha/yamaha_avdevice.h (revision 2691)
+@@ -35,5 +35,5 @@
+ class GoDevice : public BeBoB::Device {
+ public:
+-    GoDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    GoDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~GoDevice();
+ 
+Index: trunk/libffado/src/bebob/focusrite/focusrite_generic.cpp
+===================================================================
+--- trunk/libffado/src/bebob/focusrite/focusrite_generic.cpp (revision 2651)
++++ trunk/libffado/src/bebob/focusrite/focusrite_generic.cpp (revision 2691)
+@@ -30,5 +30,5 @@
+ namespace Focusrite {
+ 
+-FocusriteDevice::FocusriteDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++FocusriteDevice::FocusriteDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+     : BeBoB::Device( d, configRom)
+     , m_cmd_time_interval( 0 )
+Index: trunk/libffado/src/bebob/focusrite/focusrite_saffire.cpp
+===================================================================
+--- trunk/libffado/src/bebob/focusrite/focusrite_saffire.cpp (revision 2651)
++++ trunk/libffado/src/bebob/focusrite/focusrite_saffire.cpp (revision 2691)
+@@ -30,5 +30,5 @@
+ namespace Focusrite {
+ 
+-SaffireDevice::SaffireDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++SaffireDevice::SaffireDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+     : FocusriteDevice( d, configRom)
+     , m_MixerContainer( NULL )
+Index: trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.cpp
+===================================================================
+--- trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.cpp (revision 2413)
++++ trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.cpp (revision 2691)
+@@ -34,5 +34,5 @@
+ namespace Focusrite {
+ 
+-SaffireProDevice::SaffireProDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++SaffireProDevice::SaffireProDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+     : FocusriteDevice( d, configRom )
+     , m_MixerContainer( NULL )
+Index: trunk/libffado/src/bebob/focusrite/focusrite_generic.h
+===================================================================
+--- trunk/libffado/src/bebob/focusrite/focusrite_generic.h (revision 1742)
++++ trunk/libffado/src/bebob/focusrite/focusrite_generic.h (revision 2691)
+@@ -227,5 +227,5 @@
+ class FocusriteDevice : public BeBoB::Device {
+ public:
+-    FocusriteDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    FocusriteDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~FocusriteDevice() {};
+ 
+Index: trunk/libffado/src/bebob/focusrite/focusrite_saffire.h
+===================================================================
+--- trunk/libffado/src/bebob/focusrite/focusrite_saffire.h (revision 1498)
++++ trunk/libffado/src/bebob/focusrite/focusrite_saffire.h (revision 2691)
+@@ -270,5 +270,5 @@
+ class SaffireDevice : public FocusriteDevice {
+ public:
+-    SaffireDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    SaffireDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~SaffireDevice() {};
+ 
+Index: trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.h
+===================================================================
+--- trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.h (revision 1498)
++++ trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.h (revision 2691)
+@@ -357,5 +357,5 @@
+ 
+ public:
+-    SaffireProDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    SaffireProDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~SaffireProDevice();
+ 
+Index: trunk/libffado/src/bebob/bebob_avdevice.h
+===================================================================
+--- trunk/libffado/src/bebob/bebob_avdevice.h (revision 2443)
++++ trunk/libffado/src/bebob/bebob_avdevice.h (revision 2691)
+@@ -61,5 +61,5 @@
+ class Device : public GenericAVC::Device {
+ public:
+-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~Device();
+ 
+@@ -69,5 +69,5 @@
+     virtual bool discover();
+ 
+-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+ 
+     virtual AVC::Subunit* createSubunit(AVC::Unit& unit,
+Index: trunk/libffado/src/bebob/terratec/terratec_device.cpp
+===================================================================
+--- trunk/libffado/src/bebob/terratec/terratec_device.cpp (revision 1763)
++++ trunk/libffado/src/bebob/terratec/terratec_device.cpp (revision 2691)
+@@ -29,5 +29,5 @@
+ namespace Terratec {
+ 
+-Phase88Device::Phase88Device(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++Phase88Device::Phase88Device(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+     : BeBoB::Device( d, configRom)
+ {
+Index: trunk/libffado/src/bebob/terratec/terratec_device.h
+===================================================================
+--- trunk/libffado/src/bebob/terratec/terratec_device.h (revision 1763)
++++ trunk/libffado/src/bebob/terratec/terratec_device.h (revision 2691)
+@@ -34,5 +34,5 @@
+ class Phase88Device : public BeBoB::Device {
+ public:
+-    Phase88Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    Phase88Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~Phase88Device();
+ 
+Index: trunk/libffado/src/bebob/template/vendor_device.h
+===================================================================
+--- trunk/libffado/src/bebob/template/vendor_device.h (revision 1543)
++++ trunk/libffado/src/bebob/template/vendor_device.h (revision 2691)
+@@ -35,5 +35,5 @@
+ public:
+     VendorDevice( Ieee1394Service& ieee1394Service,
+-              std::auto_ptr<ConfigRom>( configRom ));
++              ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~VendorDevice();
+ 
+Index: trunk/libffado/src/bebob/template/vendor_device.cpp
+===================================================================
+--- trunk/libffado/src/bebob/template/vendor_device.cpp (revision 1543)
++++ trunk/libffado/src/bebob/template/vendor_device.cpp (revision 2691)
+@@ -28,5 +28,5 @@
+ 
+ VendorDevice::VendorDevice( Ieee1394Service& ieee1394Service,
+-                            std::auto_ptr<ConfigRom>( configRom ))
++                            ffado_smartptr<ConfigRom>( configRom ))
+     : BeBoB::Device( ieee1394Service, configRom)
+ {
+Index: trunk/libffado/src/bebob/bebob_dl_mgr.cpp
+===================================================================
+--- trunk/libffado/src/bebob/bebob_dl_mgr.cpp (revision 2587)
++++ trunk/libffado/src/bebob/bebob_dl_mgr.cpp (revision 2691)
+@@ -242,5 +242,5 @@
+ 
+     printf( "parse BCD file\n" );
+-    std::auto_ptr<BCD> bcd = std::auto_ptr<BCD>( new BCD( filename ) );
++    ffado_smartptr<BCD> bcd = ffado_smartptr<BCD>( new BCD( filename ) );
+     if ( !bcd.get() ) {
+         debugError( "downloadFirmware: Could not open or parse BCD '%s'\n",
+@@ -305,5 +305,5 @@
+ 
+     printf( "parse BCD file\n" );
+-    std::auto_ptr<BCD> bcd = std::auto_ptr<BCD>( new BCD( filename ) );
++    ffado_smartptr<BCD> bcd = ffado_smartptr<BCD>( new BCD( filename ) );
+     if ( !bcd.get() ) {
+         debugError( "downloadCnE: Could not open or parse BCD '%s'\n",
+Index: trunk/libffado/src/bebob/edirol/edirol_fa66.cpp
+===================================================================
+--- trunk/libffado/src/bebob/edirol/edirol_fa66.cpp (revision 1543)
++++ trunk/libffado/src/bebob/edirol/edirol_fa66.cpp (revision 2691)
+@@ -28,5 +28,5 @@
+ 
+ EdirolFa66Device::EdirolFa66Device( DeviceManager& d,
+-                                      std::auto_ptr<ConfigRom>( configRom ))
++                                      ffado_smartptr<ConfigRom>( configRom ))
+     : BeBoB::Device( d , configRom)
+ {
+Index: trunk/libffado/src/bebob/edirol/edirol_fa66.h
+===================================================================
+--- trunk/libffado/src/bebob/edirol/edirol_fa66.h (revision 1543)
++++ trunk/libffado/src/bebob/edirol/edirol_fa66.h (revision 2691)
+@@ -33,5 +33,5 @@
+ public:
+     EdirolFa66Device( DeviceManager& d,
+-                       std::auto_ptr<ConfigRom>( configRom ));
++                       ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~EdirolFa66Device();
+ 
+Index: trunk/libffado/src/bebob/edirol/edirol_fa101.cpp
+===================================================================
+--- trunk/libffado/src/bebob/edirol/edirol_fa101.cpp (revision 1543)
++++ trunk/libffado/src/bebob/edirol/edirol_fa101.cpp (revision 2691)
+@@ -28,5 +28,5 @@
+ 
+ EdirolFa101Device::EdirolFa101Device( DeviceManager& d,
+-                                      std::auto_ptr<ConfigRom>( configRom ))
++                                      ffado_smartptr<ConfigRom>( configRom ))
+     : BeBoB::Device( d , configRom)
+ {
+Index: trunk/libffado/src/bebob/edirol/edirol_fa101.h
+===================================================================
+--- trunk/libffado/src/bebob/edirol/edirol_fa101.h (revision 1543)
++++ trunk/libffado/src/bebob/edirol/edirol_fa101.h (revision 2691)
+@@ -33,5 +33,5 @@
+ public:
+     EdirolFa101Device( DeviceManager& d,
+-                       std::auto_ptr<ConfigRom>( configRom ));
++                       ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~EdirolFa101Device();
+ 
+Index: trunk/libffado/src/bebob/maudio/normal_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/bebob/maudio/normal_avdevice.cpp (revision 2490)
++++ trunk/libffado/src/bebob/maudio/normal_avdevice.cpp (revision 2691)
+@@ -29,5 +29,5 @@
+ namespace Normal {
+ 
+-Device::Device(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ),
++Device::Device(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ),
+                            unsigned int modelId)
+     : BeBoB::Device( d, configRom)
+Index: trunk/libffado/src/bebob/maudio/normal_avdevice.h
+===================================================================
+--- trunk/libffado/src/bebob/maudio/normal_avdevice.h (revision 2490)
++++ trunk/libffado/src/bebob/maudio/normal_avdevice.h (revision 2691)
+@@ -43,5 +43,5 @@
+ class Device : public BeBoB::Device {
+ public:
+-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ),
++    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ),
+                   unsigned int modelId);
+     virtual ~Device();
+Index: trunk/libffado/src/bebob/maudio/special_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/bebob/maudio/special_avdevice.cpp (revision 2529)
++++ trunk/libffado/src/bebob/maudio/special_avdevice.cpp (revision 2691)
+@@ -36,5 +36,5 @@
+ namespace Special {
+ 
+-Device::Device(DeviceManager& d, std::auto_ptr<ConfigRom>(configRom))
++Device::Device(DeviceManager& d, ffado_smartptr<ConfigRom>(configRom))
+     : BeBoB::Device(d, configRom)
+ {
+Index: trunk/libffado/src/bebob/maudio/special_avdevice.h
+===================================================================
+--- trunk/libffado/src/bebob/maudio/special_avdevice.h (revision 2491)
++++ trunk/libffado/src/bebob/maudio/special_avdevice.h (revision 2691)
+@@ -141,5 +141,5 @@
+ {
+ public:
+-    Device(DeviceManager& d, std::auto_ptr<ConfigRom>(configRom));
++    Device(DeviceManager& d, ffado_smartptr<ConfigRom>(configRom));
+     virtual ~Device() {};
+     virtual void showDevice();
+Index: trunk/libffado/src/bebob/presonus/inspire1394_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/bebob/presonus/inspire1394_avdevice.cpp (revision 2489)
++++ trunk/libffado/src/bebob/presonus/inspire1394_avdevice.cpp (revision 2691)
+@@ -105,5 +105,5 @@
+ }
+ 
+-Device::Device(DeviceManager& d, std::auto_ptr<ConfigRom>(configRom))
++Device::Device(DeviceManager& d, ffado_smartptr<ConfigRom>(configRom))
+     : BeBoB::Device( d, configRom )
+ {
+Index: trunk/libffado/src/bebob/presonus/firebox_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/bebob/presonus/firebox_avdevice.cpp (revision 2489)
++++ trunk/libffado/src/bebob/presonus/firebox_avdevice.cpp (revision 2691)
+@@ -29,5 +29,5 @@
+ namespace Firebox {
+ 
+-Device::Device(DeviceManager& d, std::auto_ptr<ConfigRom>(configRom))
++Device::Device(DeviceManager& d, ffado_smartptr<ConfigRom>(configRom))
+     : BeBoB::Device( d, configRom)
+ {
+Index: trunk/libffado/src/bebob/presonus/inspire1394_avdevice.h
+===================================================================
+--- trunk/libffado/src/bebob/presonus/inspire1394_avdevice.h (revision 2489)
++++ trunk/libffado/src/bebob/presonus/inspire1394_avdevice.h (revision 2691)
+@@ -45,5 +45,5 @@
+ class Device : public BeBoB::Device {
+ public:
+-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~Device();
+ 
+Index: trunk/libffado/src/bebob/presonus/firebox_avdevice.h
+===================================================================
+--- trunk/libffado/src/bebob/presonus/firebox_avdevice.h (revision 2489)
++++ trunk/libffado/src/bebob/presonus/firebox_avdevice.h (revision 2691)
+@@ -36,5 +36,5 @@
+ class Device : public BeBoB::Device {
+ public:
+-	Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++	Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~Device();
+ 
+Index: trunk/libffado/src/devicemanager.cpp
+===================================================================
+--- trunk/libffado/src/devicemanager.cpp (revision 2450)
++++ trunk/libffado/src/devicemanager.cpp (revision 2691)
+@@ -710,6 +710,6 @@
+         debugOutput( DEBUG_LEVEL_VERBOSE, "Starting in slave mode on node %d...\n", nodeId );
+ 
+-        std::auto_ptr<ConfigRom> configRom =
+-            std::auto_ptr<ConfigRom>( new ConfigRom( *portService,
++        ffado_smartptr<ConfigRom> configRom =
++            ffado_smartptr<ConfigRom>( new ConfigRom( *portService,
+                                                      nodeId ) );
+         if ( !configRom->initialize() ) {
+@@ -1032,5 +1032,5 @@
+     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying BeBoB...\n" );
+     if ( BeBoB::Device::probe( getConfiguration(), *configRom, generic ) ) {
+-        return BeBoB::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
++        return BeBoB::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
+     }
+ #endif
+@@ -1039,5 +1039,5 @@
+     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying ECHO Audio FireWorks...\n" );
+     if ( FireWorks::Device::probe( getConfiguration(), *configRom, generic ) ) {
+-        return FireWorks::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
++        return FireWorks::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
+     }
+ #endif
+@@ -1046,5 +1046,5 @@
+     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying Oxford FW90x...\n" );
+     if ( Oxford::Device::probe( getConfiguration(), *configRom, generic ) ) {
+-        return Oxford::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
++        return Oxford::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
+     }
+ #endif
+@@ -1054,5 +1054,5 @@
+     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying Generic AV/C...\n" );
+     if ( GenericAVC::Device::probe( getConfiguration(), *configRom, generic ) ) {
+-        return GenericAVC::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
++        return GenericAVC::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
+     }
+ #endif
+@@ -1061,5 +1061,5 @@
+     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying Motu...\n" );
+     if ( Motu::MotuDevice::probe( getConfiguration(), *configRom, generic ) ) {
+-        return Motu::MotuDevice::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
++        return Motu::MotuDevice::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
+     }
+ #endif
+@@ -1068,5 +1068,5 @@
+     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying Dice...\n" );
+     if ( Dice::Device::probe( getConfiguration(), *configRom, generic ) ) {
+-        return Dice::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
++        return Dice::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
+     }
+ #endif
+@@ -1075,5 +1075,5 @@
+     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying Metric Halo...\n" );
+     if ( MetricHalo::Device::probe( getConfiguration(), *configRom, generic ) ) {
+-        return MetricHalo::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
++        return MetricHalo::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
+     }
+ #endif
+@@ -1082,5 +1082,5 @@
+     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying RME...\n" );
+     if ( Rme::Device::probe( getConfiguration(), *configRom, generic ) ) {
+-        return Rme::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
++        return Rme::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
+     }
+ #endif
+@@ -1089,5 +1089,5 @@
+     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying Bounce...\n" );
+     if ( Bounce::Device::probe( getConfiguration(), *configRom, generic ) ) {
+-        return Bounce::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
++        return Bounce::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
+     }
+ #endif
+@@ -1120,9 +1120,9 @@
+ 
+ FFADODevice*
+-DeviceManager::getSlaveDriver( std::auto_ptr<ConfigRom>( configRom ) )
++DeviceManager::getSlaveDriver( ffado_smartptr<ConfigRom>( configRom ) )
+ {
+ #ifdef ENABLE_BOUNCE
+     if ( Bounce::SlaveDevice::probe( getConfiguration(), *configRom, false ) ) {
+-        return Bounce::SlaveDevice::createDevice(  *this, std::auto_ptr<ConfigRom>( configRom ) );
++        return Bounce::SlaveDevice::createDevice(  *this, ffado_smartptr<ConfigRom>( configRom ) );
+     }
+ #endif
+Index: trunk/libffado/src/bounce/bounce_slave_avdevice.h
+===================================================================
+--- trunk/libffado/src/bounce/bounce_slave_avdevice.h (revision 1550)
++++ trunk/libffado/src/bounce/bounce_slave_avdevice.h (revision 2691)
+@@ -45,9 +45,9 @@
+ public:
+ 
+-    SlaveDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ) );
++    SlaveDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ) );
+     virtual ~SlaveDevice();
+ 
+     static bool probe( Util::Configuration&, ConfigRom& configRom, bool generic = false );
+-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+ 
+     bool discover();
+Index: trunk/libffado/src/bounce/bounce_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/bounce/bounce_avdevice.cpp (revision 1805)
++++ trunk/libffado/src/bounce/bounce_avdevice.cpp (revision 2691)
+@@ -43,5 +43,5 @@
+ namespace Bounce {
+ 
+-Device::Device( DeviceManager& d, std::auto_ptr< ConfigRom >( configRom ) )
++Device::Device( DeviceManager& d, ffado_smartptr< ConfigRom >( configRom ) )
+     : FFADODevice( d, configRom )
+     , m_samplerate (44100)
+@@ -75,5 +75,5 @@
+ 
+ FFADODevice *
+-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+ {
+     return new Device(d, configRom );
+Index: trunk/libffado/src/bounce/bounce_avdevice.h
+===================================================================
+--- trunk/libffado/src/bounce/bounce_avdevice.h (revision 1550)
++++ trunk/libffado/src/bounce/bounce_avdevice.h (revision 2691)
+@@ -65,9 +65,9 @@
+     class BounceNotifier;
+ public:
+-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~Device();
+ 
+     static bool probe( Util::Configuration&, ConfigRom& configRom, bool generic = false );
+-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual bool discover();
+ 
+Index: trunk/libffado/src/bounce/bounce_slave_avdevice.cpp
+===================================================================
+--- trunk/libffado/src/bounce/bounce_slave_avdevice.cpp (revision 1805)
++++ trunk/libffado/src/bounce/bounce_slave_avdevice.cpp (revision 2691)
+@@ -38,5 +38,5 @@
+ namespace Bounce {
+ 
+-SlaveDevice::SlaveDevice( DeviceManager& d, std::auto_ptr< ConfigRom >( configRom ) )
++SlaveDevice::SlaveDevice( DeviceManager& d, ffado_smartptr< ConfigRom >( configRom ) )
+     : Device( d, configRom )
+ {
+@@ -56,5 +56,5 @@
+ 
+ FFADODevice *
+-SlaveDevice::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++SlaveDevice::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+ {
+     return new SlaveDevice(d, configRom );
+Index: trunk/libffado/src/fireworks/fireworks_device.h
+===================================================================
+--- trunk/libffado/src/fireworks/fireworks_device.h (revision 2519)
++++ trunk/libffado/src/fireworks/fireworks_device.h (revision 2691)
+@@ -50,9 +50,9 @@
+     
+ public:
+-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ) );
++    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ) );
+     virtual ~Device();
+     
+     static bool probe( Util::Configuration&, ConfigRom& configRom, bool generic = false );
+-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual bool discover();
+ 
+Index: trunk/libffado/src/fireworks/audiofire/audiofire_device.cpp
+===================================================================
+--- trunk/libffado/src/fireworks/audiofire/audiofire_device.cpp (revision 864)
++++ trunk/libffado/src/fireworks/audiofire/audiofire_device.cpp (revision 2691)
+@@ -30,5 +30,5 @@
+ namespace ECHO {
+ 
+-AudioFire::AudioFire( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++AudioFire::AudioFire( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+     : FireWorks::Device( d, configRom)
+ {
+Index: trunk/libffado/src/fireworks/audiofire/audiofire_device.h
+===================================================================
+--- trunk/libffado/src/fireworks/audiofire/audiofire_device.h (revision 864)
++++ trunk/libffado/src/fireworks/audiofire/audiofire_device.h (revision 2691)
+@@ -35,5 +35,5 @@
+ 
+ public:
+-    AudioFire( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
++    AudioFire( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
+     virtual ~AudioFire();
+ 
+Index: trunk/libffado/src/fireworks/fireworks_device.cpp
+===================================================================
+--- trunk/libffado/src/fireworks/fireworks_device.cpp (revision 2599)
++++ trunk/libffado/src/fireworks/fireworks_device.cpp (revision 2691)
+@@ -50,5 +50,5 @@
+ namespace FireWorks {
+ 
+-Device::Device(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++Device::Device(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+     : GenericAVC::Device( d, configRom)
+     , m_poll_lock( new Util::PosixMutex("DEVPOLL") )
+@@ -183,5 +183,5 @@
+ 
+ FFADODevice *
+-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
++Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
+ {
+     unsigned int vendorId = configRom->getNodeVendorId();
+Index: trunk/libffado/tests/scan-devreg.cpp
+===================================================================
+--- trunk/libffado/tests/scan-devreg.cpp (revision 2587)
++++ trunk/libffado/tests/scan-devreg.cpp (revision 2691)
+@@ -29,4 +29,5 @@
+ 
+ #include "debugmodule/debugmodule.h"
++#include "ffadodevice.h"   // Needed for ffado_smartptr
+ 
+ #include "libieee1394/configrom.h"
+@@ -231,6 +232,6 @@
+         }
+         for (fb_nodeid_t node = n1; node < n2; node++) {
+-            std::auto_ptr<ConfigRom> configRom =
+-                std::auto_ptr<ConfigRom>( new ConfigRom(*tmp1394, node));
++            ffado_smartptr<ConfigRom> configRom =
++                ffado_smartptr<ConfigRom>( new ConfigRom(*tmp1394, node));
+             if (!configRom->initialize()) {
+                 continue;
+Index: trunk/libffado/support/firmware/fireworks-downloader.cpp
+===================================================================
+--- trunk/libffado/support/firmware/fireworks-downloader.cpp (revision 2651)
++++ trunk/libffado/support/firmware/fireworks-downloader.cpp (revision 2691)
+@@ -245,5 +245,5 @@
+ 
+     DeviceManager d = DeviceManager();
+-    Device *dev = new Device(d, std::auto_ptr<ConfigRom>(configRom) );
++    Device *dev = new Device(d, ffado_smartptr<ConfigRom>(configRom) );
+     if (dev == NULL) {
+         printMessage("Could not create FireWorks::Device\n");
diff --git a/libffado-diff-trunk-from-r2705-to-r2706.diff b/libffado-diff-trunk-from-r2705-to-r2706.diff
new file mode 100644
index 0000000..cc182c6
--- /dev/null
+++ b/libffado-diff-trunk-from-r2705-to-r2706.diff
@@ -0,0 +1,10 @@
+Index: trunk/libffado/src/libutil/PosixMessageQueue.cpp
+===================================================================
+--- trunk/libffado/src/libutil/PosixMessageQueue.cpp (revision 2171)
++++ trunk/libffado/src/libutil/PosixMessageQueue.cpp (revision 2706)
+@@ -31,4 +31,5 @@
+ #include <string.h>
+ #include <poll.h>
++#include <signal.h>
+ 
+ #define MQ_INVALID_ID ((mqd_t) -1)
diff --git a/libffado-diff-trunk-from-r2706-to-r2707.diff b/libffado-diff-trunk-from-r2706-to-r2707.diff
new file mode 100644
index 0000000..b1ffa0b
--- /dev/null
+++ b/libffado-diff-trunk-from-r2706-to-r2707.diff
@@ -0,0 +1,11 @@
+Index: trunk/libffado/src/bebob/bebob_dl_mgr.cpp
+===================================================================
+--- trunk/libffado/src/bebob/bebob_dl_mgr.cpp (revision 2691)
++++ trunk/libffado/src/bebob/bebob_dl_mgr.cpp (revision 2707)
+@@ -33,4 +33,6 @@
+ 
+ #include "libutil/ByteSwap.h"
++
++#include "ffadodevice.h"
+ 
+ #include <cstdio>
diff --git a/libffado.spec b/libffado.spec
index 48aff5e..1d0c6f4 100644
--- a/libffado.spec
+++ b/libffado.spec
@@ -1,7 +1,7 @@
 Summary:        Free firewire audio driver library
 Name:           libffado
 Version:        2.3.0
-Release:        5%{?dist}
+Release:        6%{?dist}
 # src/libutil/float_cast.h is LGPLv2+.
 # The rest is (GPLv2 or GPLv3)
 License:        LGPLv2+ and (GPLv2 or GPLv3)
@@ -15,9 +15,23 @@ Source9:        libffado-snapshot.sh
 # We want the documentation for the library API only, not for the entire source:
 # http://subversion.ffado.org/ticket/293
 Patch0:         libffado-api-doc-only.patch
-Patch2:         libffado-gcc6.patch
+Patch1:         libffado-gcc6.patch
 # http://subversion.ffado.org/changeset/2673
-Patch3:         libffado-derefptr.patch
+Patch2:         libffado-derefptr.patch
+# Various backports from the trunk to fix compilation warnings/errors
+# C++11 missing space between literal and string macro
+# http://subversion.ffado.org/changeset/2651
+Patch3:         libffado-diff-trunk-from-r2650-to-r2651.diff
+# std::auto_ptr deprecated
+# http://subversion.ffado.org/changeset/2691
+# http://subversion.ffado.org/changeset/2707
+Patch4:         libffado-diff-trunk-from-r2690-to-r2691.diff
+Patch5:         libffado-diff-trunk-from-r2706-to-r2707.diff
+# SIGEV_THREAD not declared
+# http://subversion.ffado.org/changeset/2706
+Patch6:         libffado-diff-trunk-from-r2705-to-r2706.diff
+# MIPS support. RHBZ#1366701
+Patch7:         libffado-MIPS.patch
 
 BuildRequires:  alsa-lib-devel
 BuildRequires:  dbus-c++-devel
@@ -72,8 +86,13 @@ Applications and utilities for use with libffado.
 %prep
 %setup -q
 %patch0 -p1 -b .api.doc.only
-%patch2 -p1 -b .gcc6
-%patch3 -p1 -b .derefptr
+%patch1 -p1 -b .gcc6
+%patch2 -p1 -b .derefptr
+%patch3 -p2 -b .string
+%patch4 -p2 -b .auto_ptr
+%patch5 -p2 -b .auto_ptr2
+%patch6 -p2 -b .signal_h
+%patch7 -p1 -b .MIPS
 
 # We don't want to install all tests
 sed -i '/Install/d' tests/{,*/}SConscript
@@ -144,6 +163,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 
 
 %changelog
+* Thu Aug 10 2017 Orcan Ogetbil <oget[dot]fedora[at]gmail[dot]com> - 2.3.0-6
+- Fix FTBFS on F27
+- Backported fixes from trunk for various compilation warnings
+- MIPS support RHBZ#1366701
+
 * Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.0-5
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild