From c7d0449a1f561658614d06c36aabcc8e430521d6 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Wed, 22 May 2024 13:12:17 +0100 Subject: [PATCH 1/2] Fix trap on XS3A based devices when moving to DSD mode --- CHANGELOG.rst | 21 ++++++++++----------- lib_xua/src/core/ports/audioports.xc | 5 ++++- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 3d6e5199..3ae78cc5 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -4,20 +4,19 @@ lib_xua Change Log UNRELEASED ---------- - * FIXED: Device fails to enumerate when ADAT and S/PDIF transmit are enabled - * FIXED: Update software PLL at the correct rate for ADAT SMUX + * ADDED: MIDI unit and subsystem tests * CHANGED: Enable only the minimum number of ADAT input formats based for the supported sample frequencies + * CHANGED: Enabling ADAT tx enables different channel count interface alts, based on sample + rate + * CHANGED: Input audio buffer size and the condition to come out of underflow modified to + to fix buffer underflow in some configurations + * FIXED: Device fails to enumerate when ADAT and S/PDIF transmit are enabled + * FIXED: Update software PLL at the correct rate for ADAT S/MUX * FIXED: Incorrect internal input EP count for input only devices - * ADDED: MIDI unit and subsystem tests - * FIXED: ADAT Tx called too frequently - * CHANGED: ADAT Tx presents different channel count interfaces based on sample - rate - * CHANGED: aud_to_host buffer size and the condition to come out of underflow - in decoupler to fix buffer underflow seen in ADAT tests - * FIXED: Initialise SMUX based on DEFAULT_FREQ in clockgen - * FIXED: Update g_numUsbChan_Out to the number of channels for the selected - interface when receiving a set interface request over EP0 + * FIXED: Samples transferred to ADAT tx too frequently in TDM mode + * FIXED: S/MUX not initialised to a value based on DEFAULT_FREQ in clockgen + * FIXED: Trap when moving to DSD mode on XS3A based devices 4.0.0 ----- diff --git a/lib_xua/src/core/ports/audioports.xc b/lib_xua/src/core/ports/audioports.xc index fac58cbc..f9fcfe25 100644 --- a/lib_xua/src/core/ports/audioports.xc +++ b/lib_xua/src/core/ports/audioports.xc @@ -36,7 +36,10 @@ void ConfigAudioPorts( #ifdef __XS3A__ /* Increase drive strength of clock ports to 8mA */ asm volatile ("setc res[%0], %1" :: "r" (p_bclk), "r" (0x200006)); - asm volatile ("setc res[%0], %1" :: "r" (p_lrclk), "r" (0x200006)); + if(!isnull(p_lrclk)) + { + asm volatile ("setc res[%0], %1" :: "r" (p_lrclk), "r" (0x200006)); + } #endif /* Note this call to stop_clock() will pause forever if the port clocking the clock-block is not low. From 974ede7aab94a73b4689f3ade0d6ce0629e52f84 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Thu, 23 May 2024 09:53:30 +0100 Subject: [PATCH 2/2] Updated copyright date --- lib_xua/src/core/ports/audioports.xc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_xua/src/core/ports/audioports.xc b/lib_xua/src/core/ports/audioports.xc index f9fcfe25..3f5fb57a 100644 --- a/lib_xua/src/core/ports/audioports.xc +++ b/lib_xua/src/core/ports/audioports.xc @@ -1,4 +1,4 @@ -// Copyright 2011-2023 XMOS LIMITED. +// Copyright 2011-2024 XMOS LIMITED. // This Software is subject to the terms of the XMOS Public Licence: Version 1. #include #include