From 0afb61385d3be9820a34d202f39b178441fbd183 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Fri, 15 Jul 2016 15:13:39 +0100 Subject: [PATCH] Bug 17473: Input volume disabled breaks going into DFU mode --- CHANGELOG.rst | 1 + module_usb_audio/usb_buffer/usb_buffer.xc | 7 ++++--- module_usb_audio/warnings.xc | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 2b0f65b2..ff725aeb 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -3,6 +3,7 @@ sc_usb_audio Change Log 6.19.0 ------ + - RESOLVED: SPDIF_TX_INDEX not defined build warning only emitted when SPDIF_TX defined 6.18.1 ------ diff --git a/module_usb_audio/usb_buffer/usb_buffer.xc b/module_usb_audio/usb_buffer/usb_buffer.xc index 274af50b..72b85491 100644 --- a/module_usb_audio/usb_buffer/usb_buffer.xc +++ b/module_usb_audio/usb_buffer/usb_buffer.xc @@ -307,11 +307,12 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in, if(cmd == SET_SAMPLE_FREQ) { - sampleFreq = inuint(c_aud_ctl); + unsigned receivedSampleFreq = inuint(c_aud_ctl); /* Don't update things for DFU command.. */ - if(sampleFreq != AUDIO_STOP_FOR_DFU) + if(receivedSampleFreq != AUDIO_STOP_FOR_DFU) { + sampleFreq = receivedSampleFreq; #ifdef FB_TOLERANCE_TEST expected_fb = ((sampleFreq * 0x2000) / frameTime); #endif @@ -341,7 +342,7 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in, /* Ideally we want to wait for handshake (and pass back up) here. But we cannot keep this * core locked, it must stay responsive to packets (MIDI etc) and SOFs. So, set a flag and check for * handshake elsewhere */ - SET_SHARED_GLOBAL(g_freqChange_sampFreq, sampleFreq); + SET_SHARED_GLOBAL(g_freqChange_sampFreq, receivedSampleFreq); } else if(cmd == SET_STREAM_FORMAT_IN) { diff --git a/module_usb_audio/warnings.xc b/module_usb_audio/warnings.xc index 5cbab76f..10b859ac 100644 --- a/module_usb_audio/warnings.xc +++ b/module_usb_audio/warnings.xc @@ -19,9 +19,11 @@ Warnings relating to configuration defines located in this XC source file rather #warning MAX_FREQ not defined. Using 192000 #endif +#ifdef SPDIF_TX #ifndef SPDIF_TX_INDEX #warning SPDIF_TX_INDEX not defined! Using 0 #endif +#endif #ifndef VENDOR_STR #warning VENDOR_STR not defined. Using "XMOS"