Quick fix to borderline I2S timing issue

The initial receive on c_pdm_pcm channel ensures the mic array
decimator timing requirements are met when running configurations that
use the up and down-samplers.

However it appears to make the I2S timing very marginal, as subsequent
reads from the c_pdm_pcm channel will block for longer.
This commit is contained in:
Sam Chesney
2017-03-01 17:07:59 +00:00
parent af5760f120
commit 6eed769d90

View File

@@ -20,6 +20,7 @@
#include "xua_audio.h" #include "xua_audio.h"
#include "audioports.h" #include "audioports.h"
#include "audiohw.h" #include "audiohw.h"
#include "mic_array_conf.h"
#ifdef SPDIF_TX #ifdef SPDIF_TX
#include "SpdifTransmit.h" #include "SpdifTransmit.h"
#endif #endif
@@ -521,7 +522,7 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out,
#endif /* (AUD_TO_USB_RATIO > 1) */ #endif /* (AUD_TO_USB_RATIO > 1) */
#if (NUM_PDM_MICS > 0) #if ((DEBUG_MIC_ARRAY == 1) && (NUM_PDM_MICS > 0))
/* Get initial samples from PDM->PCM converter to avoid stalling the decimators */ /* Get initial samples from PDM->PCM converter to avoid stalling the decimators */
c_pdm_pcm <: 1; c_pdm_pcm <: 1;
master master
@@ -532,7 +533,7 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out,
c_pdm_pcm :> samplesIn[readBuffNo][i]; c_pdm_pcm :> samplesIn[readBuffNo][i];
} }
} }
#endif // (NUM_PDM_MICS > 0) #endif // ((DEBUG_MIC_ARRAY == 1) && (NUM_PDM_MICS > 0))
UserBufferManagementInit(i_audMan); UserBufferManagementInit(i_audMan);