From 23f1a8d48e671efbaf7ff25d29dd1ac9a5723e72 Mon Sep 17 00:00:00 2001 From: Ed Date: Tue, 9 Jan 2024 13:02:57 +0000 Subject: [PATCH] Fix race condition when changing SR when audio got misaligned --- lib_xua/src/core/audiohub/xua_audiohub.xc | 1 + lib_xua/src/core/clocking/clockgen.xc | 1 + 2 files changed, 2 insertions(+) diff --git a/lib_xua/src/core/audiohub/xua_audiohub.xc b/lib_xua/src/core/audiohub/xua_audiohub.xc index c6d53cfc..9388cbf2 100755 --- a/lib_xua/src/core/audiohub/xua_audiohub.xc +++ b/lib_xua/src/core/audiohub/xua_audiohub.xc @@ -805,6 +805,7 @@ void XUA_AudioHub(chanend ?c_aud, clock ?clk_audio_mclk, clock ?clk_audio_bclk, /* Notify clockgen of new mCLk */ c_mclk_change <: mClk; c_mclk_change <: curFreq; + c_mclk_change :> int _; /* Acknowledge when clocks all setup */ #endif } diff --git a/lib_xua/src/core/clocking/clockgen.xc b/lib_xua/src/core/clocking/clockgen.xc index da5f2711..14517439 100644 --- a/lib_xua/src/core/clocking/clockgen.xc +++ b/lib_xua/src/core/clocking/clockgen.xc @@ -556,6 +556,7 @@ void clockGen ( streaming chanend ?c_spdif_rx, InitSWPLL(sw_pll, selected_mclk_rate); reset_sw_pll_pfd = 1; printstr("swpll int'd\n"); + c_mclk_change <: 0; /* Acknowledge to hold off starting audio until done */ #endif break; #endif