Merge pull request #395 from xross/fix/394

Fix trap on XS3A based devices when moving to DSD mode
This commit is contained in:
Ross Owen
2024-05-24 12:16:55 +01:00
committed by GitHub
2 changed files with 15 additions and 13 deletions

View File

@@ -4,20 +4,19 @@ lib_xua Change Log
UNRELEASED UNRELEASED
---------- ----------
* FIXED: Device fails to enumerate when ADAT and S/PDIF transmit are enabled * ADDED: MIDI unit and subsystem tests
* FIXED: Update software PLL at the correct rate for ADAT SMUX
* CHANGED: Enable only the minimum number of ADAT input formats based for the * CHANGED: Enable only the minimum number of ADAT input formats based for the
supported sample frequencies supported sample frequencies
* FIXED: Incorrect internal input EP count for input only devices * CHANGED: Enabling ADAT tx enables different channel count interface alts, based on sample
* ADDED: MIDI unit and subsystem tests
* FIXED: ADAT Tx called too frequently
* CHANGED: ADAT Tx presents different channel count interfaces based on sample
rate rate
* CHANGED: aud_to_host buffer size and the condition to come out of underflow * CHANGED: Input audio buffer size and the condition to come out of underflow modified to
in decoupler to fix buffer underflow seen in ADAT tests to fix buffer underflow in some configurations
* FIXED: Initialise SMUX based on DEFAULT_FREQ in clockgen * FIXED: Device fails to enumerate when ADAT and S/PDIF transmit are enabled
* FIXED: Update g_numUsbChan_Out to the number of channels for the selected * FIXED: Update software PLL at the correct rate for ADAT S/MUX
interface when receiving a set interface request over EP0 * FIXED: Incorrect internal input EP count for input only devices
* 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 4.0.0
----- -----

View File

@@ -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. // This Software is subject to the terms of the XMOS Public Licence: Version 1.
#include <xs1.h> #include <xs1.h>
#include <platform.h> #include <platform.h>
@@ -36,7 +36,10 @@ void ConfigAudioPorts(
#ifdef __XS3A__ #ifdef __XS3A__
/* Increase drive strength of clock ports to 8mA */ /* 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_bclk), "r" (0x200006));
if(!isnull(p_lrclk))
{
asm volatile ("setc res[%0], %1" :: "r" (p_lrclk), "r" (0x200006)); asm volatile ("setc res[%0], %1" :: "r" (p_lrclk), "r" (0x200006));
}
#endif #endif
/* Note this call to stop_clock() will pause forever if the port clocking the clock-block is not low. /* Note this call to stop_clock() will pause forever if the port clocking the clock-block is not low.