From f52aaeba8e5b4ddc9a4a9285e0e4a779c4ab8f0d Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Tue, 16 Jul 2013 17:12:41 +0100 Subject: [PATCH] Fixed issued with outover flow when CHAN_BUFF_CTRL enabled --- module_usb_audio/usb_buffer/decouple.xc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/module_usb_audio/usb_buffer/decouple.xc b/module_usb_audio/usb_buffer/decouple.xc index 94e9ace9..71e3de3f 100644 --- a/module_usb_audio/usb_buffer/decouple.xc +++ b/module_usb_audio/usb_buffer/decouple.xc @@ -644,18 +644,23 @@ void decouple(chanend c_mix_out, int tmp; #ifdef CHAN_BUFF_CTRL - inuchar(c_buf_ctrl); + if(!outOverflow) + { + /* Need to keep polling in overflow case */ + inuchar(c_buf_ctrl); + } #endif if (!isnull(c_clk_int)) { check_for_interrupt(c_clk_int); } - + { asm("#decouple-default"); /* Check for freq change or other update */ + GET_SHARED_GLOBAL(tmp, g_freqChange_flag); if (tmp == SET_SAMPLE_FREQ) { @@ -857,7 +862,6 @@ void decouple(chanend c_mix_out, } #endif - #ifdef INPUT { /* Check if buffer() has sent a packet to host - uses shared mem flag to save chanends */