From 68faab7ed2891d6402bdedeaaba700c8a1bd7238 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Fri, 20 Nov 2015 13:46:33 +0000 Subject: [PATCH] Attempt to fix up FS mode for new feedback system - still not operational. --- module_usb_audio/usb_buffer/usb_buffer.xc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/module_usb_audio/usb_buffer/usb_buffer.xc b/module_usb_audio/usb_buffer/usb_buffer.xc index 01c4ddde..0797cb9b 100644 --- a/module_usb_audio/usb_buffer/usb_buffer.xc +++ b/module_usb_audio/usb_buffer/usb_buffer.xc @@ -415,6 +415,8 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in, unsigned usb_speed; GET_SHARED_GLOBAL(usb_speed, g_curUsbSpeed); + + #if 0 unsigned mask = MASK_16_13; /* Original feedback implementation */ @@ -477,10 +479,15 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in, * Average over 128 SOFs - 128 x 3072 = 0x60000. */ + unsigned long long feedbackMul = 64ULL; + + if(usb_speed != XUD_SPEED_HS) + feedbackMul = 16ULL; + /* Number of MCLK ticks in this SOF period (E.g = 125 * 24.576 = 3072) */ int count = (int) ((short)(u_tmp - lastClock)); - unsigned long long full_result = count *64ULL * sampleFreq; + unsigned long long full_result = count * feedbackMul * sampleFreq; clockcounter += full_result; @@ -516,7 +523,7 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in, } else { - (fb_clocks, unsigned[])[0] = clocks>>2; + (fb_clocks, unsigned[])[0] = clocks>>1; } } #ifdef FB_TOLERANCE_TEST