diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 089353f6..b463ac43 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,12 @@ lib_xua Change Log ================== +0.1.4 +----- + + * RESOLVED: Zero length input packets generated before enumeration causing + I2S timing pushout at startup + 0.1.3 ----- diff --git a/lib_xua/module_build_info b/lib_xua/module_build_info index 7a2a5148..14f0c1cb 100644 --- a/lib_xua/module_build_info +++ b/lib_xua/module_build_info @@ -13,7 +13,7 @@ MODULE_XCC_FLAGS = $(XCC_FLAGS) -O3 -DREF_CLK_FREQ=100 -fasm-linenum -fcomment-a OPTIONAL_HEADERS += xua_conf.h -VERSION = 0.1.3 +VERSION = 0.1.4 DEPENDENT_MODULES = lib_logging(>=2.1.0) lib_xud(>=0.1.0) diff --git a/lib_xua/src/core/buffer/ep/ep_buffer.xc b/lib_xua/src/core/buffer/ep/ep_buffer.xc index 2c4698c0..433fc475 100644 --- a/lib_xua/src/core/buffer/ep/ep_buffer.xc +++ b/lib_xua/src/core/buffer/ep/ep_buffer.xc @@ -1,4 +1,4 @@ -// Copyright (c) 2011-2018, XMOS Ltd, All rights reserved +// Copyright (c) 2011-2020, XMOS Ltd, All rights reserved #ifndef NO_USB #include #include @@ -38,8 +38,9 @@ extern unsigned int g_curSamFreqMultiplier; #endif -/* Global var for speed. Related to feedback. Used by input stream to determine IN packet size */ -unsigned g_speed; +/* Initialise so we get a sensible packet size until we start properly calculating feedback in the SoF case */ +/* Without this, zero size packets fill the input FIFO and take time to clear out when feedback starts */ +unsigned g_speed = (AUDIO_CLASS == 2) ? (DEFAULT_FREQ/8000) << 16 : (DEFAULT_FREQ/1000) << 16; unsigned g_freqChange = 0; unsigned feedbackValid = 0;