Fix trap on XS3A based devices when moving to DSD mode

This commit is contained in:
Ross Owen
2024-05-22 13:12:17 +01:00
parent f401831766
commit c7d0449a1f
2 changed files with 14 additions and 12 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

@@ -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.