[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/driver/audio/src/v1/inc/afe.h b/mcu/driver/audio/src/v1/inc/afe.h
new file mode 100644
index 0000000..4d5ecaf
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/afe.h
@@ -0,0 +1,426 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * afe.c
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * Audio Front End
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *------------------------------------------------------------------------------
+ * $Revision: 1.21 $
+ * $Modtime: Jul 08 2005 16:31:52 $
+ * $Log: //mtkvs01/vmdata/Maui_sw/archives/mcu/l1audio/afe.h-arc $
+ *
+ * 12 19 2017 thomas.chen
+ * [MOLY00296986] [Build warning removal]fix warning
+ * .
+ *
+ * 11 09 2017 thomas.chen
+ * [MOLY00288616] Remove DisableInterrupt API
+ * .
+ *
+ * 09 27 2017 thomas.chen
+ * [MOLY00279366] Fix 9295M build error
+ * .
+ *
+ * 08 25 2017 ting-ni.chen
+ * [MOLY00273782] [Sylvia] [MT6771] bringup chip define
+ * [Sylvia][MT6771] bringup chip define
+ *
+ * 06 09 2017 sungshen.wu
+ * [MOLY00245550] [Zion] Bringup Check in
+ * .Zion check in
+ *
+ * 05 14 2017 ys.hsieh
+ * [MOLY00249046] [MT6763]add speech hw dvt audio command patch
+ *
+ * Bianco DVT for audiocommand
+ *
+ * 03 01 2017 sheila.chen
+ * [MOLY00209193] [93MD] speech driver
+ * clean marked code.
+ * refator the gain control (BT)
+ * fix bug: the debug info size should be 16.
+ * common parameter default value location change
+ *
+ * 02 24 2017 sheila.chen
+ * [MOLY00209193] [93MD] speech driver
+ * remove backup and restore function in AFE.
+ *
+ * 02 24 2017 sheila.chen
+ * [MOLY00209193] [93MD] speech driver
+ * rewrite digital gain control.
+ *
+ * 02 13 2017 sheila.chen
+ * [MOLY00209193] [93MD] speech driver
+ * remove afe setrefresh and related code.
+ * remove mute speaker which is only using in audio path
+ *
+ * 02 13 2017 sheila.chen
+ * [MOLY00209193] [93MD] speech driver
+ * remove unused toneLoopback
+ *
+ * 02 08 2017 sheila.chen
+ * [MOLY00209193] [93MD] speech driver
+ * remove unused media functions.
+ *
+ * 01 26 2017 sheila.chen
+ * [MOLY00209193] [93MD] speech driver
+ * revise afe driver.
+ *
+ * 01 26 2017 sheila.chen
+ * [MOLY00209193] [93MD] speech driver
+ * revise afe driver.
+ *
+ * 11 09 2016 thomas.chen
+ * [MOLY00212357] 93 SpeechDriver Checkin
+ * .
+ *
+ * 03 30 2016 thomas.chen
+ * [MOLY00171812] fix UMOLYA BuildError
+ * .
+ *
+ * 02 04 2016 fu-shing.ju
+ * [MOLY00120200] 6291Plus development
+ * Fix MSBB issue.
+ *
+ * 10 07 2015 fu-shing.ju
+ * [MOLY00120200] 6291Plus development
+ * Add Data_Sync_Barrier() for 6292.
+ *
+ * 08 17 2015 fu-shing.ju
+ * [MOLY00120200] 6291Plus development
+ * Add ELBRUS chip option.
+ *
+ * 06 11 2015 thomas.chen
+ * [MOLY00120543] Jade PreBuild
+ * .
+ *
+ * 02 03 2015 fu-shing.ju
+ * [MOLY00091627] TK6291 development
+ * Sync Audio driver with MOLY TRUNK W15.05.P1.
+ *
+ * 04 07 2014 sheila.chen
+ * [MOLY00061869] [UMoly] check-in
+ * add TK6291 chip
+ *
+ * 01 28 2014 sheila.chen
+ * [MOLY00050441] [MT6595 Bring-Up] speech related code
+ * DVT test cases check in
+ *
+ * 01 15 2014 sheila.chen
+ * [MOLY00050441] [MT6595 Bring-Up] speech related code
+ * [ROME] add DVT setting
+ *
+ * 01 07 2014 sheila.chen
+ * [MOLY00050441] [MT6595 Bring-Up] speech related code
+ * Merging //MOLY/Development_BRANCHES/MT6595E1_BRING_UP_DEV/mcu/driver/audio/...
+ * to //MOLY/TRUNK/MOLY/mcu/driver/audio/...
+ *
+ * 12 26 2013 sheila.chen
+ * [MOLY00050441] [MT6595 Bring-Up] speech related code
+ * Fix bug, MDAFE hw register is 32 bit instead of 16 bit
+ *
+ * 12 10 2013 lanus.chao
+ * [MOLY00046252] Add MT6595 chip option
+ * .
+ *
+ * 12 09 2013 lanus.chao
+ * [MOLY00046252] Add MT6595 chip option
+ * .
+ *
+ * 08 21 2013 sheila.chen
+ * [MOLY00031287] [MT6592][MT6571] Chip back prepare
+ * add MT6592/MT6571 chip options
+ *
+ * 08 16 2013 sheila.chen
+ * [MOLY00011218] [MT6290] Code modification
+ * remove unused code
+ *
+ * 08 13 2013 sheila.chen
+ * [MOLY00011218] [MT6290] Code modification
+ * move register backup by chip
+ *
+ * 08 05 2013 sheila.chen
+ * [MOLY00011218] [MT6290] Code modification
+ * remove unused afe code
+ *
+ * 05 14 2013 sheila.chen
+ * [MOLY00022118] [Volunteer Patch] DRC2.0 (MagiLoudness) Integration
+ * DRC 2.0 modification
+ *
+ * 03 01 2013 sheila.chen
+ * [MOLY00011218] [MT6290] Code modification
+ * Fix Build error for MT6290
+ *
+ * 01 16 2013 sheila.chen
+ * [MOLY00008869] [Need Patch][Build Error] WR8 build error for MT6582_L1S(DEFAULT)
+ * Fix Build Error
+ *
+ * 01 07 2013 sheila.chen
+ * [MOLY00008234] [MT6572] Integration
+ * MT6572 bring up
+ *
+ * 12 25 2012 sheila.chen
+ * [MOLY00000112] [MT6583] Pre-integration
+ * wbBT
+ *
+ * 12 18 2012 sheila.chen
+ * [MOLY00000112] [MT6583] Pre-integration
+ * Set Mode Modification
+ *
+ * 11 01 2012 sheila.chen
+ * [MOLY00000112] [MT6583] Pre-integration
+ * 1. Sidetone update
+ *
+ * 2. digital gain setting (AGC, DL volume)
+ *
+ * 3. FIX AFE setting to privent too many noise
+ *
+ * 4. Fix PCM MSB, LSB mapping mismatch
+ * 5. Turn on enhancement
+ * 6. Add Acroustic loopback code
+ *
+ * 09 26 2012 sheila.chen
+ * [MOLY00000112] [MT6583] Pre-integration
+ * Chip Rename to MT6589
+ * Remove unused AFE functions
+ * Phase in phone call usage
+ *
+ * 09 20 2012 sheila.chen
+ * [MOLY00000112] [MT6583] Pre-integration
+ * add compile option for analog AFE
+ *
+ * 09 17 2012 sheila.chen
+ * [MOLY00000112] [MT6583] Pre-integration
+ * 83 phone call prepare, warning removal
+ *
+ * 08 21 2012 dior.lin
+ * [MOLY00002430] Modify for MD2G wakeup by Audio
+ * Modify for MD2G wakeup by Audio.
+ *
+ * 08 17 2012 kh.hung
+ * [MOLY00002243] Fix cross category header inclusion
+ * Remove l1d_reg.h.
+ *
+ * 07 27 2012 sheila.chen
+ * [MOLY00000112] [MT6583] Pre-integration
+ * Fix build warning.
+ *
+ * 07 25 2012 sheila.chen
+ * [MOLY00000112] [MT6583] Pre-integration
+ * Phase in PCMNWAY, param AM manager with 2 parameter, and recording.
+ *
+ * 06 08 2012 kh.hung
+ * removed!
+ * .
+ *
+ * 05 16 2012 jy.huang
+ * removed!
+ * .
+ *
+ * 05 16 2012 jy.huang
+ * removed!
+ * .
+ *
+ * 05 14 2012 jy.huang
+ * removed!
+ * .
+ *
+ * 11 29 2011 lanus.chao
+ * removed!
+ * .
+ *
+ *
+ *******************************************************************************/
+#ifndef AFE_H
+#define AFE_H
+
+/*
+============================================================================================================
+------------------------------------------------------------------------------------------------------------
+|| Chapter: INCLUDE FILES
+------------------------------------------------------------------------------------------------------------
+============================================================================================================
+*/
+
+#include "kal_general_types.h"
+#include "kal_public_api.h"
+#include "reg_base.h"
+#include "kal_trace.h"
+#include "l1audio_trace_utmd.h"
+#include "l1sp_trc.h"
+#include "audcoeff_default.h"
+#include "afe_def.h"
+#include "dcl.h"
+#include "us_timer.h"
+#include "speech_def.h"
+
+
+
+/*
+============================================================================================================
+------------------------------------------------------------------------------------------------------------
+|| Chapter: Data Types and Structures
+------------------------------------------------------------------------------------------------------------
+============================================================================================================
+*/
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#if (defined(MT6295M) || defined(__MD95__))
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#else
+/* under construction !*/
+#endif
+/* under construction !*/
+#endif
+
+//=============================================================================================
+// Section: Structure AFE_STRUCT_T (afe main structure)
+//=============================================================================================
+typedef struct {
+
+ // kal_uint16 aud_id;
+
+ kal_bool loopback;
+ kal_bool afe_init;
+ kal_uint8 voice8kMode;
+
+
+ //for 65nm clock gating, digital AFE register backup
+ // RegBackup regbak;
+
+
+} AFE_STRUCT_T;
+
+typedef struct {
+
+ kal_uint32 afe_conn0;
+
+} AFE_RG_STRUCT_T;
+
+/*
+============================================================================================================
+------------------------------------------------------------------------------------------------------------
+|| Chapter: Special Configurations for Specific Usage
+------------------------------------------------------------------------------------------------------------
+============================================================================================================
+*/
+
+//=============================================================================================
+// Section: Debug and Unit Test Configuration
+//=============================================================================================
+//#define __AFE_DEBUG__
+#ifdef __AFE_DEBUG__
+ #define afe_prompt_trace kal_prompt_trace
+
+static kal_char * _aszAfeState[] =
+{
+ "AFE_STATE_OFF",
+ "AFE_STATE_ON",
+ "AFE_STATE_IDLE_OFF",
+ "AFE_STATE_CLASS_D_OFF"
+};
+
+#else
+ #define afe_prompt_trace(...)
+#endif
+
+
+
+/*
+============================================================================================================
+------------------------------------------------------------------------------------------------------------
+|| Chapter: DEFINITION OF DATA TYPES
+------------------------------------------------------------------------------------------------------------
+============================================================================================================
+*/
+
+
+//=============================================================================================
+// Section: External Variables and Functions
+//=============================================================================================
+extern AFE_STRUCT_T afe;
+extern AFE_RG_STRUCT_T afeRG;
+
+/*
+============================================================================================================
+------------------------------------------------------------------------------------------------------------
+|| Chapter: Function Prototypes
+------------------------------------------------------------------------------------------------------------
+============================================================================================================
+*/
+
+void AFE_Init( void );
+
+
+void AFE_DELAY(uint16 delay);
+
+
+void AFE_Chip_Init( void );
+
+
+void AFE_TurnOnLoopback( void );
+void AFE_TurnOffLoopback( void );
+
+kal_uint8 AFE_GetVoice8KMode(void);
+void AFE_SetVoice8KMode(kal_uint8 mode);
+void AFE_SetConn0(kal_uint32 val);
+#endif //AFE_H
diff --git a/mcu/driver/audio/src/v1/inc/afe_def.h b/mcu/driver/audio/src/v1/inc/afe_def.h
new file mode 100644
index 0000000..5d9b333
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/afe_def.h
@@ -0,0 +1,262 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2011
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * afe_def.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file defines all the AFE registers used in audio module.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef __AFE_DEF_H
+#define __AFE_DEF_H
+
+/*
+============================================================================================================
+------------------------------------------------------------------------------------------------------------
+|| Chapter: INCLUDE FILES
+------------------------------------------------------------------------------------------------------------
+============================================================================================================
+*/
+#include "kal_public_api.h"
+#include "reg_base.h"
+#include "l1audio.h"
+
+#include "am.h"
+
+
+/*
+============================================================================================================
+------------------------------------------------------------------------------------------------------------
+|| Chapter: Register Definitions
+------------------------------------------------------------------------------------------------------------
+============================================================================================================
+*/
+
+#define AFE_base (AFE_BASE)
+
+//=============================================================================================
+// Sections: Register Audio Front End Hardware Control Register
+//=============================================================================================
+#define AFE_VMCU_CON ((APBADDR)(AFE_base+0x0000)) /* AFE Voice MCU Control Register */
+#define AFE_VMCU_CON1 ((APBADDR)(AFE_base+0x000C)) /* AFE Voice Analog Circuit Control Register 1 */
+
+#define AFE_PCM_CON0 ((APBADDR32)(AFE_base+0x0014)) /* AFE PCM Interface Control Register 0 */
+
+#define AFE_AMCU_CON0 ((APBADDR)(AFE_base+0x0020)) /* AFE Audio MCU Control Register 0 */
+#define AFE_AMCU_CON1 ((APBADDR)(AFE_base+0x0024)) /* AFE Audio Control Register 1 */
+
+#define AFE_IRQ_CON1 ((APBADDR32)(AFE_base+0x0034)) /* IRQ mode setting */
+
+#define AFE_MCU_CON0 ((APBADDR32)(AFE_base+0x0080)) /* MD AFE control Register 0 */
+#define AFE_MCU_CON1 ((APBADDR32)(AFE_base+0x0084)) /* MD AFE control Register 1 */
+#define AFE_CONN0 ((APBADDR32)(AFE_base+0x00A0)) /* MD AFE connection control Register 1 */
+
+
+#define USIP_CLK_ENABLE ((APBADDR)(SPEECHDSP_CONFIG_BASE+0x0000)) /* Power Down Disable 2 Register */
+#define USIP_CLK_DISABLE ((APBADDR)(SPEECHDSP_CONFIG_BASE+0x0004)) /* Power Down Enable 2 Register */
+
+
+/*
+============================================================================================================
+------------------------------------------------------------------------------------------------------------
+|| Chapter: Function Prototypes
+------------------------------------------------------------------------------------------------------------
+============================================================================================================
+*/
+void AFE_TurnOn8K(void);
+void AFE_TurnOff8K(void);
+
+// void AFE_RegisterBackup(void);
+#endif //__AFE_DEF_H
+
diff --git a/mcu/driver/audio/src/v1/inc/am.h b/mcu/driver/audio/src/v1/inc/am.h
new file mode 100644
index 0000000..44f9a50
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/am.h
@@ -0,0 +1,341 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * afe.c
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * Audio Manager
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *******************************************************************************/
+#ifndef AM_H
+#define AM_H
+
+#include "l1aud_common_def.h"
+#include "sal_def.h"
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef enum{
+ AM_RECORD_NONE = 0,
+ AM_RECORD_8K,
+ AM_RECORD_16K
+}AM_RECORD_FORMAT;
+
+void AM_Init( void );
+void AM_SetDSP2GReset(bool v);
+//bool AM_AudioManager( bool handover,uint16 speech_mode, int8 sub_channel );
+//void AM_AudioManager_OS_Tick( void );
+void AM_FlushQFunction( void );
+void AM_FillSilencePattern( volatile uint16 *addr, uint16 info, uint16 speech_mode );
+void AM_FillSilencePatternInBuffer( uint16 *buffer, uint16 speech_mode );
+uint16 AM_GetSpeechPatternLength( uint8 speech_mode );
+bool AM_CodecMode_IsLegal(uint8 codec_mode);
+void AM_SpeechOn(uint32 rat_mode, uint32 extraInfo);
+void AM_SpeechOff( uint32 info );
+bool AM_IsSpeechOn( void );
+void AM_SetDAIMode ( uint8 mode );
+bool AM_IsDAIMode( void );
+#if defined(_SPE_ENH_MD_PARSE_)
+void AM_WriteFirCoeffs( const int16 *in_coeff, const int16 *out_coeff );
+void AM_WriteWbFirCoeffs( const int16 wb_in_coeff[90], const int16 wb_out_coeff[90] );
+void AM_WriteSWbFirCoeffs( const int16 swb_in_coeff[90], const int16 swb_out_coeff[90] );
+void AM_WriteWbIirCoeffs( const int16 wb_in_coeff[42], const int16 wb_out_coeff[42],const int16 wb_Mic1_coeff[20],const int16 wb_Mic2_coeff[20] );
+void AM_WriteIirCoeffs( const int16 in_coeff[42], const int16 out_coeff[42],const int16 Mic1_coeff[20],const int16 Mic2_coeff[20] );
+void AM_WriteSWbIirCoeffs( const int16 swb_in_coeff[42], const int16 swb_out_coeff[42],const int16 swb_Mic1_coeff[20],const int16 swb_Mic2_coeff[20] );
+#endif
+void AM_VMRecordOn( void );
+void AM_VMRecordOff( void );
+
+void AM_KeyToneOn( void );
+void AM_KeyToneOff( void );
+void AM_ToneOn( void );
+void AM_ToneOff( void );
+void Set_Reset_Enh_Status(uint8 status);
+uint8 Get_Reset_Enh_Status(void);
+
+
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+uint32 AM_GetRecordFormat(void);
+typedef enum{
+ AM_PCM8KREC_APP_TYPE_PCMREC = 0,
+ AM_PCM8KREC_APP_TYPE_VMEPL,
+}AM_PCM8KREC_APP_TYPE;
+
+void AM_PCM8K_RecordOn( AM_PCM8KREC_APP_TYPE appType, uint8 dlPos );
+void AM_PCM8K_RecordOff( bool wait, AM_PCM8KREC_APP_TYPE appType );
+void AM_PCM16K_RecordOn( uint8 dlPos ); /*PCM16K recording support 6219 and latter version*/
+void AM_PCM16K_RecordOff( bool wait );
+void AM_RAMP_DONE(void);
+#if 0
+/* under construction !*/
+/* under construction !*/
+#endif
+// bool AM_IsULSpeechMuted( void );
+void AM_Mute_UL_EnhResult_Speech(bool mute);
+void AM_Mute_UL_Source_Speech(bool mute);
+void AM_Mute_UL_Codec_Speech( bool mute );
+void AM_Mute_UL_POS_EN_Speech( bool mute );
+void AM_Mute_DL_8K_Speech( bool mute );
+void AM_Mute_DL_Speech_Traffic( bool mute );
+void AM_Mute_DL_PRE_PcmMixer( bool mute );
+
+// PCMNWAY function inside AM
+typedef enum {
+ AM_PCMEX_TYPE_DEDICATION = 0, // under call
+// AM_PCMEX_TYPE_IDLE_WO_ENH, // without call, voice path, no enhancement
+ AM_PCMEX_TYPE_IDLE, // without call, speech quality like, with enhancement
+#if 0
+/* under construction !*/
+/* under construction !*/
+#endif
+ AM_PCMEX_TYPE_DACA_DEDICATION, // data card under call (speech on)
+ AM_PCMEX_TYPE_DACA_IDLE_WO_ENH, // data card without call, voice path, no enhancement
+ AM_PCMEX_TYPE_DACA_IDLE, // data card without call, speech quality like, with enhancement
+
+ AM_PCMEX_TYPE_UNDEF = 0xffff,
+} AM_PCMEX_TYPE;
+
+void AM_PCM_EX_On( AM_PCMEX_TYPE type, uint32 cfg_ptr);
+void AM_PCM_EX_Off( AM_PCMEX_TYPE type, uint32 cfg_ptr);
+bool AM_IsVoIPOn( void );
+bool AM_IsConflictState( void );
+bool AM_IsKeyToneOn( void );
+bool AM_IsToneOn( void );
+bool AM_IsVoiceOn( void );
+
+// PCM router control function
+void AM_PcmRouter_On(uint32 extraInfo);
+void AM_PcmRouter_Off(void);
+
+// [Phase out] PCM path control functions, defualt is 16k PCM, so we don't need to open it.
+// void AM_PCM_Mode_Off(void);
+// void AM_PCM_Mode_On(kal_uint16 data);
+// kal_bool AM_IsPcmModeOn( void );
+
+// Bluetooth earphone control functions
+void AM_BluetoothOn( uint8 bt_mode);
+void AM_BluetoothOff( void );
+bool AM_IsBluetoothOn( void );
+bool AM_IsBTCordlessMode( void );
+
+// Sound effect control functions
+void AM_SND_PlaybackOn( void );
+void AM_SND_PlaybackOff( bool wait );
+
+// Functions for modem loopback test
+void AM_SetLoopBackTest( bool enable );
+bool AM_IsLoopBackTest( void );
+
+// void AM_EnableToneLoopBackFlag( kal_bool param );
+
+// network information
+void AM_SetSpeechMode( uint16 speech_mode, int8 sub_channel );
+uint16 AM_GetSpeechMode(void);
+bool AM_IsSpeechWB( void );
+uint32 AM_GetNetworkRate( void );
+
+// InterRAT
+void AM_InterRAT_3G_to_2G( void );
+void AM_InterRAT_4G_to_2G();
+void AM_InterRAT_C2K_to_2G();
+void AM_InterRAT_Standby_to_2G();
+
+void AM_InterRAT_2G_to_3G( kal_uint32 codec );
+void AM_InterRAT_4G_to_3G(uint32 codec);
+void AM_InterRAT_C2K_to_3G(uint32 codec);
+void AM_3G_INTRARAT(kal_uint32 codec);
+
+void AM_InterRAT_2G_to_4G(uint32 codec);
+void AM_InterRAT_3G_to_4G(uint32 codec);
+void AM_InterRAT_C2K_to_4G(uint32 codec);
+void AM_4G_INTRARAT(kal_uint32 codec, uint32 is_4G_handover);
+kal_bool AM_Is_4G();
+
+
+void AM_InterRAT_2G_to_C2K(uint32 codec);
+void AM_InterRAT_3G_to_C2K(uint32 codec);
+void AM_InterRAT_4G_to_C2K(uint32 codec);
+void AM_C2K_IntraRAT(uint32 codec);
+//block filter run time switch function, used in sp_enhance.c
+// void AM_SwitchCompFilter( kal_uint16 par );
+//block filter turn on/off
+// void AM_TurnOnBlockFilter( void );
+// void AM_TurnOffBlockFilter( void );
+
+bool AM_IsAmInSpeechState( void );
+
+
+bool AM_IsDataCardOn( void );
+
+// sw digital gain related
+// void AM_DSP_SetAudioDigitalGain(kal_uint16 digitalVol);
+// kal_uint16 AM_DSP_GetAudioDigitalGain(void);
+void AM_DSP_SetSpeechDigitalGain(kal_uint16 digitalVol);
+kal_uint16 AM_DSP_GetSpeechDigitalGain(void);
+void AM_DSP_SetSpeechUplinkSwAgcGain(kal_uint16 digitalVol);
+kal_uint16 AM_GetSpeechEnhRefDigitalGain(void);
+void AM_DSP_SetSpeechEnhRefDigitalGain(kal_uint16 digitalVol);
+
+// dsp filter/enhancement parameter/coefficient related
+void AM_SetNotchFilterParam(int16 *param);
+void AM_DSP_WriteNotchFilterParam(void);
+
+int16 AM_IsAudioPlaybackOn( void );
+void AM_SetBlockMED( uint32 RAT, bool b, uint32 pos );
+void AM_Set2GCodecInfo(uint16 speech_mode, int8 sub_channel);
+#endif
+
+
diff --git a/mcu/driver/audio/src/v1/inc/amr_table.h b/mcu/driver/audio/src/v1/inc/amr_table.h
new file mode 100644
index 0000000..4469b50
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/amr_table.h
@@ -0,0 +1,102 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * amr_table.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * Various tables for AMR and AMR-WB speech codec.
+ *
+ * Author:
+ * -------
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef __AMR_TABLE_H
+#define __AMR_TABLE_H
+
+extern const kal_uint8* tblAMROrder[8];
+
+/* These tables will be reference by MPEG4 module */
+extern const kal_uint16 lenSpeechBitsAMR[9];
+extern const kal_uint16 lenSpeechBitsAMR_WB[10];
+
+/* input: Frame Type defined in AMR frame structure */
+/* output: Speech Codec Mode defined in SHERIF */
+extern const kal_uint8 FTtoSCM_AMR[8];
+extern const kal_uint16 AMR_get_tab[16]; /* bits order of SHERIF */
+extern const kal_uint16 AMR_ord_tab[16]; /* bits order of AMR file */
+extern const kal_uint8 AMR_frame_length[9];
+
+extern const kal_uint16* tblAMR_WBOrder[9];
+extern const kal_uint8 FTtoSCM_AMR_WB[9];
+extern const kal_uint8 AWB_frame_length[10];
+
+#endif
+
+
diff --git a/mcu/driver/audio/src/v1/inc/apAudSysConfig.h b/mcu/driver/audio/src/v1/inc/apAudSysConfig.h
new file mode 100644
index 0000000..a001961
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/apAudSysConfig.h
@@ -0,0 +1,9 @@
+
+#ifndef _AP_AUD_SYS_CONFIG_H
+#define _AP_AUD_SYS_CONFIG_H
+
+
+void ApAudSys_config(void);
+
+#endif //_AP_AUD_SYS_CONFIG_H
+
diff --git a/mcu/driver/audio/src/v1/inc/audio_def.h b/mcu/driver/audio/src/v1/inc/audio_def.h
new file mode 100644
index 0000000..0da17a3
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/audio_def.h
@@ -0,0 +1,284 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2011
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * audio_def.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file defines all the audio registers used in audio module.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+#ifndef __AUDIO_DEF_H
+#define __AUDIO_DEF_H
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#ifndef RINGBUFFER_T
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif /* RINGBUFFER_T */
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+/* under construction !*/
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+#endif //__AUDIO_DEF_H
+
diff --git a/mcu/driver/audio/src/v1/inc/audio_dsp_d2c_def.h b/mcu/driver/audio/src/v1/inc/audio_dsp_d2c_def.h
new file mode 100644
index 0000000..5dd3acc
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/audio_dsp_d2c_def.h
@@ -0,0 +1,310 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2011
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * audio_dsp_d2c_def.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file defines all the D2M used in audio module.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef __AUD_DSP_D2C_DEF__
+#define __AUD_DSP_D2C_DEF__
+
+#include "sal_def.h"
+
+
+
+
+ #define IO4567_D2C_ID_SPEECH_BASE 1 //1~30
+ #define IO4567_D2C_ID_AUDIO_BASE 31 //31~60
+ #define IO4567_D2C_ID_OTHER_BASE 61 //61~63
+
+ //Speech
+ #define DP_D2C_SPEECH_UL_ID (IO4567_D2C_ID_SPEECH_BASE+0 ) // mapping to SpeechDSP DP_D2C_SPEECH_UL_ID interrupt which must be consistent with SpeechDSP's setting(D2C_Status_80.h)
+ #define DP_D2C_SPEECH_DL_ID (IO4567_D2C_ID_SPEECH_BASE+1 ) // mapping to SpeechDSP DP_D2C_SPEECH_DL_ID interrupt which must be consistent with SpeechDSP's setting(D2C_Status_80.h)
+
+ /* Speech Driver Mapping which can be changed. It is independent of SpeechDSP's setting(D2C_Status_80.h) */
+ #define DP_D2C_INT_MAPPING_BASIC (IO4567_D2C_ID_SPEECH_BASE+5 )
+
+ #define DP_D2C_PCM_REC_INT (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_REC_PCM ) // idle or TCH pcm record
+ #define DP_D2C_VM_REC_INT (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_REC_VM ) // idle or TCH vm record
+ #define DP_D2C_VMEPL_REC_INT (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_REC_EPL ) // idle or TCH VM EPL record
+
+ #define DP_D2C_3G_DONE_UL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_3G_UL ) // 3G Call UL
+ #define DP_D2C_3G_DONE_DL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_3G_DL ) // 3G Call DL
+
+ #define DP_D2C_4G_AMR_DONE_UL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_4G_UL ) // 4G Call UL AMR
+ #define DP_D2C_4G_AMR_DONE_DL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_4G_DL ) // 4G Call DL AMR
+
+ #define DP_D2C_4G_PCM_DONE_UL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_EXTCOD_UL ) // 4G Call UL PCM
+ #define DP_D2C_4G_PCM_DONE_DL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_EXTCOD_DL ) // 4G Call DL PCM
+
+ #define DP_D2C_4G_AAMPLUS (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_4G_AAMPLUS ) // 4G AAM Plus
+
+ #define D2C_SOUND_EFFECT_INT_ID_DL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_BGS_DL) // Background Sound, org DL+UL(MT6589, MT6280), new UL (MT6572, MT6582)
+ #define D2C_SOUND_EFFECT_INT_ID_UL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_BGS_UL) // Background Sound, new UL (MT6572, MT6582)
+ #define D2C_AUDIO_VIA_BT_ID (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_AVBT ) // Audio via BT
+ #define DP_D2C_PCM_EX_DL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_PNW_DL ) // PCMNWAY for DL
+ #define DP_D2C_PCM_EX_UL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_PNW_UL ) // PCMNWAY for UL
+ #define DP_D2C_DACA_REQ_DL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_DACA_DL ) // DATACARD for DL
+ #define DP_D2C_DACA_REQ_UL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_DACA_UL ) // DATACARD for UL
+ #define DP_D2C_RAMP_DONE_INT_ID (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_RAMP_DONE ) // RAMP DONE
+ #define DP_D2C_MIXER2_DL_ID (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_MIXER2_DL ) // MIXER2 DL
+ #define DP_D2C_VOICE_QUALITY_ID (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_DMF ) // noice quality notify
+ #define DP_D2C_MIXER3_UL_ID (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_MIXER3 ) // MIXER3 for telephonyTX
+
+ #define DP_D2C_4G_AAM (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_4G_AAM ) // 4G Call UL AMR
+ //C2K
+ #define DP_D2C_C2K_DONE_UL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_C2K_UL )
+ #define DP_D2C_C2K_DONE_DL (DP_D2C_INT_MAPPING_BASIC+SAL_DSPINT_PRIO_C2K_DL )
+
+
+ //Audio
+ #define DP_D2C_WT_INT (IO4567_D2C_ID_AUDIO_BASE+0) //0x0013 // WT to MCU interrupt
+ #define DP_D2C_PCMROUNT_INT (IO4567_D2C_ID_AUDIO_BASE+1) //0xABCD // PCMRount to MCU interrupt
+ #define DP_D2C_MP3_INT (IO4567_D2C_ID_AUDIO_BASE+2) //0x1111 // MP3 to MCU interrupt
+ #define DP_D2C_AAC_CT_INT (IO4567_D2C_ID_AUDIO_BASE+3) //0x2222 // AAC, AACPLUS, AACPS, BSAC to MCU interrupt
+ #define DP_D2C_WMA_INT (IO4567_D2C_ID_AUDIO_BASE+4) //0x3333 // WMA to MCU interrupt
+ #define DP_D2C_AWB_PLUS_INT (IO4567_D2C_ID_AUDIO_BASE+5) //0xBBBB // AWB PLUS to MCU interrupt
+ #define DP_D2C_AUDLP_ERR_INT (IO4567_D2C_ID_AUDIO_BASE+6) //0xEECC
+ #define DP_D2C_AVSYNC_A2V_INT (IO4567_D2C_ID_AUDIO_BASE+7) //0x1234 // AVSync to MCU interrupt
+ #define DP_D2C_SBC_INT (IO4567_D2C_ID_AUDIO_BASE+8) //0xA4BC
+ #define DP_D2C_I2S_REC_INT (IO4567_D2C_ID_AUDIO_BASE+9) //0x1414
+ #define DP_D2C_COOK_INT (IO4567_D2C_ID_AUDIO_BASE+10) //0x1313 // COOK, D2C interrupt
+ //Other
+ #define D2C_INT6_MAGIC (IO4567_D2C_ID_OTHER_BASE+0) //0xDD66
+ #define D2C_DSP_DEAD_INT_ID (IO4567_D2C_ID_OTHER_BASE+1) //0xDD44
+ #define D2C_MPU_ERROR (IO4567_D2C_ID_OTHER_BASE+2) //0x002A
+ #define BT_CVSD_HISR_MAGIC_NO (0x2537) //For BT CVSD, used in cvsd driver
+
+
+/* -------------------------------------------------------------------------- */
+/* Old DSP to MCU interrupt magic number definition rename */
+/* -------------------------------------------------------------------------- */
+ #define DP_D2C_3G DP_D2C_3G_DONE
+ #define DP_D2C_PCM_P DP_D2C_WAV_REQ
+ // #define DP_D2C_PCM_R DP_D2C_WAV_REC_REQ // unused
+
+ /* refactoring
+#if defined(MT6280)
+ #define DP_D2C_PCM_EX_UL DP_D2C_CTM_VOIP_REQ_UL
+ #define DP_D2C_PCM_EX_DL DP_D2C_CTM_VOIP_REQ_DL
+#else
+ #define DP_D2C_PCM_EX DP_D2C_CTM_VOIP_REQ
+#endif
+ */
+
+ // #define DP_D2C_PCM_TCH_R D2C_UL_DL_PCM_REC_INT_ID // unused
+ #define DP_D2C_WAV_REC D2C_WAV_REC_REQ_ID
+ #define DP_D2C_ADAPT_VOL D2C_RINI_ID
+
+ #define DP_D2C_WT DP_D2C_WT_INT
+ #define DP_D2C_PCM_RUT DP_D2C_PCMROUNT_INT
+ #define DP_D2C_DAF DP_D2C_MP3_INT
+ #define DP_D2C_AAC DP_D2C_AAC_CT_INT
+ #define DP_D2C_WMA DP_D2C_WMA_INT
+ #define DP_D2C_AWBPLUS DP_D2C_AWB_PLUS_INT
+ #define DP_D2C_AVSYNC DP_D2C_AVSYNC_A2V_INT
+ #define DP_D2C_I2S_REC DP_D2C_I2S_REC_INT
+ #define DP_D2C_COOK DP_D2C_COOK_INT
+ #define D2C_MAGIC_NO_SBC DP_D2C_SBC_INT
+ #define D2C_AUDIO_VIA_8KBT_ID D2C_AUDIO_VIA_BT_ID
+ #define SND_EFFECT_MAGIC_NO D2C_SOUND_EFFECT_INT_ID
+
+#endif //__AUD_DSP_D2C_DEF__
+
+
diff --git a/mcu/driver/audio/src/v1/inc/audio_em_struct.h b/mcu/driver/audio/src/v1/inc/audio_em_struct.h
new file mode 100644
index 0000000..927b07a
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/audio_em_struct.h
@@ -0,0 +1,231 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2008
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * aud_custom_exp.h
+ *
+ * Project:
+ * --------
+ * DUMA
+ *
+ * Description:
+ * ------------
+ * This file is the header of audio customization related function or definition.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by CC/CQ. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * $Revision:$
+ * $Modtime:$
+ * $Log:$
+ *
+ * 10 24 2016 sheila.chen
+ * [MOLY00209193] [93MD] speech driver
+ * Remove old historys.
+ *
+ * 02 03 2015 fu-shing.ju
+ * [MOLY00091627] TK6291 development
+ * Sync Audio driver with MOLY TRUNK W15.05.P1.
+ *
+ * 02 12 2014 sheila.chen
+ * [MOLY00050441] [MT6595 Bring-Up] speech related code
+ * 95 ENH Basic
+ *
+ * Merging
+ *
+ * //MOLY_CBr/sheila.chen/MOLY_95It/mcu/driver/audio/src/...
+ *
+ * to //MOLY/TRUNK/MOLY/mcu/driver/audio/src/...
+ *
+ * 05 22 2013 sheila.chen
+ * [MOLY00023100] [Volunteer Patch][[MP Feature Patch Back] [Vibration Speaker] Speech HAL part (make 2-in1, 3-in-1 difference)
+ * 3-in-1 speaker modification. (to indicate 2-in-1 or 3-in-1)
+ *
+ * 05 03 2013 sheila.chen
+ * [MOLY00008234] [MT6572/MT6582] Integration
+ * 3-in-1 speaker interface
+ *
+ * 03 08 2013 sheila.chen
+ * [MOLY00008234] [MT6572/MT6582] Integration
+ * Lenovo's new feature for MT6582 & MT657
+ *
+ * 11 21 2012 sheila.chen
+ * [MOLY00000112] [MT6583] Pre-integration
+ * Warming removal 3
+ *
+ * Fix CTM potential bug
+ *
+ * 10 15 2012 sheila.chen
+ * [MOLY00000112] [MT6583] Pre-integration
+ * 1. enable background sound
+ *
+ * 2. change WB em data structure
+ *
+ * 09 11 2012 sheila.chen
+ * [MOLY00000112] [MT6583] Pre-integration
+ * Sync Mode number
+ *
+ * 07 16 2012 sheila.chen
+ * NULL
+ * phase in 75+80.
+ *
+ * 06 27 2012 sheila.chen
+ * removed!
+ * Phase-in pcm2way
+ *
+ * 06 04 2012 sheila.chen
+ * removed!
+ * .
+ *
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by CC/CQ. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef AUDIO_CUSTOM_EXP_H
+#define AUDIO_CUSTOM_EXP_H
+
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct _AUDIO_VIBSPK_PARAMETER_STRUCT_
+{
+ short notch_filter_para[15];
+ bool is2In1Spk; // true for 2-in-1 speaker, false for 3-in-1 speaker.
+
+} AUDIO_VIBSPK_PARAMETER_STRUCT;
+
+typedef struct _AUDIO_NXP_SMARTPA_PARAMETER_STRUCT_
+{
+ bool isNxpFeatureOptOn;
+ short chip_delay_with_switch;
+ short mic_index; // bit wise definition ordered from main mic to reference mic. Only one bit is set!! bit 0: o17, bit 1: o18, bit 2: o23, bit 3: o24, bit 4: o25,
+
+} AUDIO_NXP_SMARTPA_PARAMETER_STRUCT;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+#endif
diff --git a/mcu/driver/audio/src/v1/inc/bgSnd.h b/mcu/driver/audio/src/v1/inc/bgSnd.h
new file mode 100644
index 0000000..44ef7e3
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/bgSnd.h
@@ -0,0 +1,54 @@
+
+#ifndef __BGSNG_H__
+#define __BGSNG_H__
+
+#define BGSND_RB_DEFAULT_THRESHOLD 640
+
+/*
+int32 BGSND_GetFreeSpace(void);
+void BGSND_WriteData(kal_uint8 *srcBuf, kal_int32 bufLen);
+
+void BGSND_ConfigULMixer(kal_bool bULSPHFlag, kal_int8 ULSNDGain );
+void BGSND_ConfigDLMixer(kal_bool bDLSPHFlag, kal_int8 DLSNDGain );
+void BGSND_Start(void (*bgSnd_hisrHandler)(void), void (*bgSnd_offHandler)(void), kal_uint8 ULGainLevel , kal_uint8 DLGainLevel);
+void BGSND_Stop(void);
+void BGSND_Close(void);
+void BGSND_INIT(void);
+*/
+
+typedef enum {
+ BGSND_DL_PROCESS = 0, //you cannot change the value since I use "1-type" to switch either.
+ BGSND_UL_PROCESS = 1,
+}BGSND_PROCESS_TYPE;
+
+
+typedef enum {
+ EXT_SRC_STATE_IDLE = 0,
+ EXT_SRC_STATE_RUN,
+ EXT_SRC_STATE_FLUSHING,
+ EXT_SRC_STATE_FLUSHING_OVER,
+ EXT_SRC_STATE_STOPPING,
+}EXT_SRC_STATE_TYPE;
+
+
+int32 EXT_BGSND_GetFreeSpace(uint32 id, BGSND_PROCESS_TYPE type);
+int32 EXT_BGSND_GetDataCount(uint32 id, BGSND_PROCESS_TYPE type);
+void EXT_BGSND_WriteSrcBuffer(uint32 id, kal_uint8 *srcBuf, kal_int32 bufLen, BGSND_PROCESS_TYPE type);
+void EXT_BGSND_WriteExtBuffer(uint32 id, int gain, BGSND_PROCESS_TYPE type);
+
+void EXT_BGSND_ConfigMixer(int id, kal_bool bSPHFlag, kal_int8 SNDGain, BGSND_PROCESS_TYPE type);
+uint32 EXT_BGSND_Start(void (*offHdr)(void),
+ void (*DLHisr)(void), //move data from src -> ext
+ void (*ULHisr)(void), //move data from src -> ext
+ kal_int8 DLSNDGain,
+ kal_int8 ULSNDGain
+ /*,
+ void (*EventHandler)(void)*/);
+void EXT_BGSND_Flush(uint32 id);
+void EXT_BGSND_Close(uint32 id);
+
+uint32 EXT_BGSND_init();
+
+EXT_SRC_STATE_TYPE EXT_BGSND_GetStatus(int id, BGSND_PROCESS_TYPE enULDL);
+
+#endif //__BGSNG_H__
\ No newline at end of file
diff --git a/mcu/driver/audio/src/v1/inc/bt_sco_drv.h b/mcu/driver/audio/src/v1/inc/bt_sco_drv.h
new file mode 100644
index 0000000..a62039f
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/bt_sco_drv.h
@@ -0,0 +1,374 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * BT_SCO_drv.h
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ * BT SCO driver header file
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef __BT_SCO_DRV_H
+#define __BT_SCO_DRV_H
+
+#include "l1aud_common_def.h"
+#include "reg_base.h"
+
+// PLC Interface
+/*
+extern kal_int32 g711plc_GetMemorySize(void);
+extern void g711plc_construct(void *lc);
+extern void g711plc_addtohistory(void *lc, kal_int16 *s);
+extern void g711plc_dofe(void *lc,kal_int16 *out);
+*/
+
+extern void g711plc_addtohistory_v2(void *lc, short *s, unsigned int dwBtEv3HalfBad);
+extern void g711plc_dofe_v2(void *lc, short *s, unsigned int dwBtEv3HalfBad);
+extern int g711plc_GetMemorySize_v2();
+extern int g711plc_construct_v2(void *lc, unsigned int dwFs);
+
+extern void CVSD_DownSample_Process(void *pHandle, short *pInSample, short *pOutSample, short *pTempBuffer, int iSourceSamples);
+extern int CVSD_DownSample_GetMemory(void);
+extern void *CVSD_DownSample_Init(char *pBuffer);
+extern void CVSD_UpSample_Process(void *pHandle, short *pInSample, short *pOutSample, short *pTempBuffer, int iSourceSamples);
+extern int CVSD_UpSample_GetMemory(void);
+extern void *CVSD_UpSample_Init(char *pBuffer);
+
+void BT_SCO_Loopback_OFF(void);
+void BT_SCO_Loopback_ON(kal_bool fDisableCodec, kal_bool fWideBand);
+kal_bool BT_SCO_IS_SPEECH_ON(void);
+void BT_SCO_SPEECH_OFF(void);
+void BT_SCO_SPEECH_ON(kal_bool fWideBand);
+void BT_SCO_Init(void);
+
+#if defined(__CVSD_CODEC_SUPPORT__)
+#define __MSBC_CODEC_SUPPORT__ 1
+
+// BT HW Register address
+//#define BTSRAM_base (0xA8080000) //defined in mcu/driver/sys_drv/regbase/inc/reg_base_mtxxxx.h
+//#define BTPKT_base (0xA8000000) //defined in mcu/driver/sys_drv/regbase/inc/reg_base_mtxxxx.h
+#if defined(MT6885)
+#define BTSRAM_base (BASE_MADDR_WCN_AHB_SLAVE + 0x00840000)
+#elif defined(MT6779)
+#define BTSRAM_base (BASE_MADDR_WCN_AHB_SLAVE + 0x00090000) //defined in mcu/driver/sys_drv/regbase/inc/reg_base_mtxxxx.h
+#else
+#define BTSRAM_base (BASE_MADDR_WCN_AHB_SLAVE + 0x00080000) //defined in mcu/driver/sys_drv/regbase/inc/reg_base_mtxxxx.h
+#endif
+
+#define BTPKT_base (BASE_MADDR_WCN_AHB_SLAVE) //defined in mcu/driver/sys_drv/regbase/inc/reg_base_mtxxxx.h
+
+#if defined(MT6885)
+#define BT_SCO_HW_REG_PACKET_R ((volatile kal_uint32*)(BTPKT_base+0x830140))
+#define BT_SCO_HW_REG_PACKET_W ((volatile kal_uint32*)(BTPKT_base+0x830144))
+#define BT_SCO_HW_REG_CONTROL ((volatile kal_uint32*)(BTPKT_base+0x830148))
+#elif (defined(MT6765) || defined(MT3967) || defined(MT6779) || defined(MT6785) || defined(MERCURY) || defined(MT6873) || defined(MT6853) || defined(MT6833) || defined(MT6877))
+#define BT_SCO_HW_REG_PACKET_R ((volatile kal_uint32*)(BTPKT_base+0x50140))
+#define BT_SCO_HW_REG_PACKET_W ((volatile kal_uint32*)(BTPKT_base+0x50144))
+#define BT_SCO_HW_REG_CONTROL ((volatile kal_uint32*)(BTPKT_base+0x50148))
+#else
+#define BT_SCO_HW_REG_PACKET_R ((volatile kal_uint32*)(BTPKT_base+0x0FD0))
+#define BT_SCO_HW_REG_PACKET_W ((volatile kal_uint32*)(BTPKT_base+0x0FD4))
+#define BT_SCO_HW_REG_CONTROL ((volatile kal_uint32*)(BTPKT_base+0x0FD8))
+#endif
+
+#endif
+#if defined(MT6752) // temp irq id,for MT6752 MD2
+ #if !defined (__MD1__)
+ #define IRQ_BT_CVSD_CODE 0
+ #endif
+#endif
+
+#define MSBC_BTSTREAM_FRAME_BYTE 57
+#define MSBC_PCM_FRAME_BYTE 240 //120 sample
+
+#define BT_SCO_PACKET_120 120
+#define BT_SCO_PACKET_180 180
+
+#define BT_CVSD_TX_NREADY (1<<21)
+#define BT_CVSD_RX_READY (1<<22)
+#define BT_CVSD_TX_UNDERFLOW (1<<23)
+#define BT_CVSD_RX_OVERFLOW (1<<24)
+#define BT_CVSD_Codec_id_1 (1<<25)
+#define BT_CVSD_Codec_id_2 (1<<26)
+#define BT_CVSD_INTERRUPT (1<<31)
+
+#define BT_CVSD_CLEAR (BT_CVSD_TX_NREADY | BT_CVSD_RX_READY | BT_CVSD_TX_UNDERFLOW | BT_CVSD_RX_OVERFLOW | BT_CVSD_INTERRUPT)
+#define BT_CVSD_Codec_id (BT_CVSD_Codec_id_1 | BT_CVSD_Codec_id_2) //00:init 01:cvsd 02:msbc
+
+
+//TX
+#define SCO_TX_ENCODE_SIZE (60 ) // 60 byte (60*8 samples)
+#define SCO_TX_PACKER_BUF_NUM (8 )
+#define SCO_TX_PACKET_MASK (0x7 )
+#define SCO_TX_PCM64K_BUF_SIZE (SCO_TX_ENCODE_SIZE*2*8 ) // 60 * 2 * 8 byte
+#define SCO_TX_RINGBUFFER_SIZE (320*9 ) // = 2880, should by multple of 320 and 360 and 240
+
+//RX
+#define SCO_RX_PLC_SIZE (30 )
+#define SCO_RX_PACKER_BUF_NUM (16 )
+#define SCO_RX_PACKET_MASK (0xF )
+#define SCO_RX_PCM64K_BUF_SIZE (SCO_RX_PLC_SIZE*2*8 )
+#define SCO_RX_PCM8K_BUF_SIZE (SCO_RX_PLC_SIZE*2 )
+#define SCO_RX_RINGBUFFER_SIZE (320*9 ) // = 2880, should by multple of 320 and 360 and 240
+
+#define SCORX_BT_CVSD_RX_PACKET_BUFFER_LEN (BT_CVSD_BLOCKSIZE * 6) // 360 byte
+
+#define NB_SPEECH_FRAME_SIZE 320 //BYTE
+#define WB_SPEECH_FRAME_SIZE 640 //BYTE
+
+typedef enum {
+ BT_SCO_STATE_IDLE=0,
+ BT_SCO_STATE_RUNNING,
+ BT_SCO_STATE_ENDING
+} BT_SCO_STATE;
+
+typedef enum {
+ BT_SCO_MODE_SPEECH,
+ BT_SCO_MODE_LOOPBACK_WITH_CODEC,
+ BT_SCO_MODE_LOOPBACK_WITHOUT_CODEC
+} BT_SCO_MODE;
+
+typedef enum {
+ BT_SCO_MOD_CVSD_ENCODE,
+ BT_SCO_MOD_CVSD_DECODE,
+ BT_SCO_MOD_PLC_NB,
+ BT_SCO_MOD_CVSD_TX_SRC,
+ BT_SCO_MOD_CVSD_RX_SRC,
+ BT_SCO_MOD_PCM_RINGBUF_TX,
+ BT_SCO_MOD_PCM_RINGBUF_RX,
+ BT_SCO_MOD_MSBC_DECODE,
+ BT_SCO_MOD_MSBC_ENCODE,
+ BT_SCO_MOD_PLC_WB
+} BT_SCO_MODULE;
+
+typedef enum {
+ BT_SCO_DIRECT_BT2ARM,
+ BT_SCO_DIRECT_ARM2BT
+} BT_SCO_DIRECT;
+
+typedef enum {
+ BT_SCO_CVSD_30 =0,
+ BT_SCO_CVSD_60 =1,
+ BT_SCO_CVSD_90 =2,
+ BT_SCO_CVSD_120=3,
+ BT_SCO_CVSD_10 =4,
+ BT_SCO_CVSD_20 =5,
+ BT_SCO_CVSD_MAX=6
+} BT_SCO_PACKET_LEN;
+
+typedef struct {
+ //handle
+ void *pSRCHandle;
+ void *pEncHandle;
+ AUD_RB_INFO RingBuffer;
+
+ //bitstream buffer
+ kal_uint8 PacketBuf[SCO_TX_PACKER_BUF_NUM][SCO_TX_ENCODE_SIZE];
+ kal_uint32 iPacket_w;
+ kal_uint32 iPacket_r;
+ kal_uint8 PcmBuf_64k[SCO_TX_PCM64K_BUF_SIZE];
+ kal_uint8 PcmBuf_Temp[SCO_TX_PCM64K_BUF_SIZE];
+ kal_uint32 uPcmBuf_w;
+ kal_bool fUnderflow;
+} BT_SCO_TX;
+
+typedef struct {
+ //handle
+ void *pDecHandle;
+ void *pPLCHandle;
+ void *pSRCHandle;
+
+ //bitstream buffer
+ kal_uint8 PacketBuf[SCO_RX_PACKER_BUF_NUM][SCO_RX_PLC_SIZE];
+ kal_bool PacketValid[SCO_RX_PACKER_BUF_NUM];
+ kal_uint32 iPacket_w;
+ kal_uint32 iPacket_r;
+
+ //temp buffer
+ kal_uint8 PcmBuf_64k[SCO_RX_PCM64K_BUF_SIZE];
+ kal_uint8 PcmBuf_Temp[SCO_RX_PCM64K_BUF_SIZE];
+ kal_uint8 PcmBuf_8k[SCO_RX_PCM8K_BUF_SIZE];
+ kal_uint32 uPcmBuf_r; //for PcmBuf_8k
+ AUD_RB_INFO RingBuffer;
+ kal_bool fOverflow;
+
+} BT_SCO_RX;
+
+#endif //__BT_SCO_DRV_H
+
diff --git a/mcu/driver/audio/src/v1/inc/ctm_drv.h b/mcu/driver/audio/src/v1/inc/ctm_drv.h
new file mode 100644
index 0000000..ac3ba42
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/ctm_drv.h
@@ -0,0 +1,203 @@
+/*******************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2001
+*
+*******************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * l1ctm.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+// l1ctm.h
+#ifndef __L1CTM_H
+#define __L1CTM_H
+#include "l1aud_common_def.h"
+
+typedef enum{
+ DIRECT_MODE,
+ FULL_MODE = 1,
+ VCO_MODE = 2,
+ HCO_MODE = 4
+} L1Ctm_Interface;
+
+typedef enum{
+ CTM_MO_SUCCESS,
+ CTM_MO_FAIL,
+ CTM_MT_DETECTED,
+ CTM_CHAR_SENT,
+ CTM_CHAR_RECEIVED,
+ CTM_TX_BURST_START,
+ CTM_TX_BURST_END
+} L1Ctm_Event;
+
+// Msg_Info Debug Message
+#define OPEN_CTM_REQUEST 1
+#define CLOSE_CTM_REQUEST 2
+#define UL_READ_PCM_FILE_REQUEST 3
+#define DL_READ_PCM_FILE_REQUEST 4
+#define DL_READ_BFI_FILE_REQUEST 5
+#define UL_IN_WRITE_FILE_REQUEST 6
+#define DL_IN_WRITE_FILE_REQUEST 7
+#define UL_OUT_WRITE_FILE_REQUEST 8
+#define DL_OUT_WRITE_FILE_REQUEST 9
+#define GENERAL_WRITE_FILE_REQUEST 10
+#define PUT_TEXT_TO_UL_CTM_BUF_REQUEST 11
+#define UL_CTM_BUF_DUMMY_READ_REQUEST 12
+
+#define DSP_REC_RX_BUF0_REQUEST 13
+#define DSP_REC_NB_RESULT0_REQUEST 14
+#define DSP_REC_FN_REQUEST 15
+#define DSP_REC_EQ_SO0_REQUEST 16
+
+#define START_NEGOTIATION_REQUEST 17
+
+#define DONE_WRITE_FILE_REQUEST 18
+
+
+// need to define CTM_Param
+typedef struct
+{
+ kal_int16 cprm_tone_demod_down_samp; // 1 (0, 1)
+} CTM_Param;
+
+typedef struct{
+ bool isRttOn;
+}RTT_Module;
+
+typedef void (*L1Ctm_Callback)(L1Ctm_Event , void*);
+typedef void (*L1Ctm_DebugCallback)(uint16 pos, uint16 *buffer, uint16 len, bool isDone);
+
+uint32 L1Ctm_GetMemReq(void);
+void L1Ctm_Open(L1Ctm_Interface a, L1Ctm_Callback handler, uint8 *buf, uint32 buf_len, L1Ctm_DebugCallback debugCallback);
+void L1Ctm_Close(void);
+void L1Ctm_Stop(void);
+uint32 L1Ctm_TxPutText(const uint8 *text, uint32 len, uint32 *left_space);
+uint32 L1Ctm_RxGetText(uint8 *text, uint32 len, uint32 *left_count);
+
+void RTT_UL_LEN_Queue_Init(void);
+void RTT_UL_LEN_Queue_Put(kal_uint16 len);
+kal_uint16 RTT_UL_LEN_Queue_Get(void);
+kal_bool RTT_UL_LEN_Queue_isEmpty(void);
+kal_bool RTT_UL_LEN_Queue_isFull(void);
+kal_uint16 RTT_UL_LEN_Queue_Size(void);
+void RTT_DL_LEN_Queue_Init(void);
+void RTT_DL_LEN_Queue_Put(kal_uint16 len);
+kal_uint16 RTT_DL_LEN_Queue_Get(void);
+kal_bool RTT_DL_LEN_Queue_isEmpty(void);
+kal_bool RTT_DL_LEN_Queue_isFull(void);
+kal_uint16 RTT_DL_LEN_Queue_Size(void);
+
+
+void RTT_UL_ID_Queue_Init(void);
+void RTT_UL_ID_Queue_Put(kal_uint8 id);
+kal_uint8 RTT_UL_ID_Queue_Get(void);
+kal_bool RTT_UL_ID_Queue_isEmpty(void);
+kal_bool RTT_UL_ID_Queue_isFull(void);
+kal_uint16 RTT_UL_ID_Queue_Size(void);
+void RTT_DL_ID_Queue_Init(void);
+void RTT_DL_ID_Queue_Put(kal_uint8 id);
+kal_uint8 RTT_DL_ID_Queue_Get(void);
+kal_bool RTT_DL_ID_Queue_isEmpty(void);
+kal_bool RTT_DL_ID_Queue_isFull(void);
+kal_uint16 RTT_DL_ID_Queue_Size(void);
+
+
+void TTY_LTE_PSR_UL_Queue_Init(void);
+kal_uint8 TTY_LTE_PSR_UL_Get(void);
+void TTY_LTE_PSR_UL_Put(kal_uint8 tty_char);
+kal_bool TTY_LTE_PSR_UL_isEmpty(void);
+kal_bool TTY_LTE_PSR_UL_isFull(void);
+kal_uint16 TTY_LTE_PSR_UL_Queue_Size(void);
+void TTY_LTE_PSR_DL_Queue_Init(void);
+void TTY_LTE_PSR_DL_Put(kal_uint8 tty_char);
+kal_uint8 TTY_LTE_PSR_DL_Get();
+kal_uint16 TTY_LTE_PSR_DL_Queue_Size(void);
+kal_bool TTY_LTE_PSR_DL_isEmpty(void);
+kal_bool TTY_LTE_PSR_DL_isFull(void);
+void TTY_LTE_PSR_DL_PutString(kal_uint8 call_id, kal_uint8 string[256], kal_uint16 length);
+kal_uint16 TTY_LTE_PSR_UL_GetString(kal_uint8 call_id, kal_uint8 *buf, kal_uint16 *length);
+kal_uint16 TTY_LTE_PSR_UL_GetChar(kal_uint8 call_id, kal_uint8 *buf);
+void SP_L4C_SetERTTSTR(kal_uint8 call_id, kal_uint8 string[256], kal_uint16 length);
+void SP_L4C_SendERTTSTR(kal_uint8 call_id);
+
+
+void L1Ctm_RTTOpen();
+void L1Ctm_RTTClose();
+bool getRttStatus();
+#endif
diff --git a/mcu/driver/audio/src/v1/inc/extcodec.h b/mcu/driver/audio/src/v1/inc/extcodec.h
new file mode 100644
index 0000000..e04eedb
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/extcodec.h
@@ -0,0 +1,141 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * extcodec.h
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ * EXTCODEC interface
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+#ifndef __EXTCODEC_H
+#define __EXTCODEC_H
+
+void Extcodec_Set_Delay(kal_uint32 delay);
+void Extcodec_Call_Open();
+void Extcodec_Call_Close();
+void Extcodec_Init();
+void Extcodec_hisr_ul_loopback(void *data);
+void Extcodec_hisr_dl_loopback(void *data);
+#endif
diff --git a/mcu/driver/audio/src/v1/inc/l1aud_common_def.h b/mcu/driver/audio/src/v1/inc/l1aud_common_def.h
new file mode 100644
index 0000000..6a3dab9
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/l1aud_common_def.h
@@ -0,0 +1,513 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2011
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * audio_def.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * The common definition used in audio module.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef __L1AUD_COMMON_DEF_H
+#define __L1AUD_COMMON_DEF_H
+
+#include "kal_public_api.h"
+#include "reg_base.h"
+//#define SHAREG2_base (0xA77A0000)//(L1_BASE_MADDR_SHARE_D1) //the same as L1_BASE_MADDR_SHARE_D1
+//#define DPRAM_CPU_base (0xA7400000)//(L1_BASE_MADDR_DM_IDMA) //FIXIT: the same as L1_BASE_MADDR_DM_IDMA
+//#define IDMA_base (0xA7200000)//(L1_BASE_MADDR_CM_IDMA) //FIXIT: the same as L1_BASE_MADDR_CM_IDMA
+
+//#if defined(__CDMA2000_RAT__)
+#define __C2K_SPEECH_SUPPORT__
+#define _C2K_DTX_SUPPORT_ (0)
+//#else
+//#define C2K_SDRV_DISABLE
+//#endif
+
+//#define __FAKE_C2K_LOOPBACK__
+//#define __FAKE_3G_LOOPBACK__
+
+#ifdef __FAKE_3G_LOOPBACK__
+#ifndef __CSHSPA_SUPPORT__
+#define __CSHSPA_SUPPORT__
+#endif
+#endif
+
+//#define SHARE_base (AFE_SHARED_REGISTER_BASE)
+
+typedef volatile unsigned short* DPRAMADDR;
+typedef volatile unsigned long* APBADDR32; /* APB addr is 32 bits */
+typedef volatile unsigned short* APBADDR; /* APB addr is 32 bits */
+
+//#define __VOLTE_SUPPORT__
+#define _SMR_SUPPORT_
+//#define __AAM_AUTO_TEST_SUPPORT__
+/*
+#define IDMA_LONG_ADDR ((APBADDR32)IDMA_LONG)
+#define IDMA_SHORT_ADDR ((DPRAMADDR)IDMA_SHORT)
+#define DSP_CM_ADDR(page,addr) ((APBADDR32)(IDMA_CM0+((page)<<16)+((addr)<<2)))
+#define DSP_PM_ADDR(page,addr) ((DPRAMADDR)(IDMA_PM0+((page)<<16)+((addr)<<1)))
+#define DSP_DM_ADDR(page,addr) ((DPRAMADDR)(IDMA_DM0+((page)<<16)+((addr)<<1)))*/
+
+#define AUD_1TICK(tick) (tick * ((KAL_TICKS_10_MSEC) >> 1)) /* New Tick Transfer 1tick */
+#define AUD_10TICK(tick) (tick * (KAL_TICKS_50_MSEC)) /* New Tick Transfer 10tick */
+
+
+/* -------------------------------------------------------------------------- */
+/* Data Type Definition */
+/* -------------------------------------------------------------------------- */
+#ifndef uint16
+typedef kal_uint16 uint16;
+typedef kal_int16 int16;
+typedef kal_uint32 uint32;
+typedef kal_int32 int32;
+typedef kal_uint8 uint8;
+typedef kal_int8 int8;
+typedef kal_bool bool;
+#define true (kal_bool)(1==1)
+#define false (kal_bool)(1==0)
+#endif
+
+/* -------------------------------------------------------------------------- */
+/* DSP Share Registers */
+/* -------------------------------------------------------------------------- */
+// #if defined(MT6280) || defined(MT6589)
+
+/* -------------------------------------------------------------------------- */
+/* Internal definition of audio module */
+/* -------------------------------------------------------------------------- */
+
+// no audio close delay, phase it out
+// #define AUDIO_CLOSE_DELAY 500 //500 ms, unit is 10ms
+
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+
+//change mcu and dsp share memory to internal memory, always define after MT6256
+// #if defined(MT6280) || defined(MT6589) || defined(MT6572)
+// #define _DSP_INTERSHAREMEM_EN_ // only using in audio, so phase it out
+#define L1AUDIO_IDMA_ALL_ADDRESS_MODE
+// #endif
+
+
+// For <65nm, dsp coefficients need to reload after sleep. This are always happen after 80, so remove the redundant
+#define __RELOAD_HW_COEFF__ (1)
+
+
+#define _MODEM_RESYNC_2G_
+
+
+#define _2G_DSP_SMR_SUPPORT_
+
+#if defined(__MD93__)
+#define _SPE_ENH_MD_PARSE_
+#else
+#define _SPE_ENH_DSP_PARSE_
+#endif
+
+
+
+#if defined(_2G_DSP_SMR_SUPPORT_)// Notice these , _MODEM_RESYNC_2G_ and _2G_DSP_SMR_SUPPORT_, are exclusive.
+#undef _MODEM_RESYNC_2G_
+#endif
+
+
+#define _MODEM_RESYNC_3G_
+#if defined(_MODEM_RESYNC_3G_)
+//3G FDD Modem Resync
+extern void UL1D_Speech_Resync_Reset_Time_Offset();
+extern kal_int16 UL1D_Speech_Resync_Get_Time_Offset();
+extern void UL1D_Speech_Resync_Update_Time_Offset(kal_bool direction);
+//3G TDD Modem Resync
+extern void TL1C_Reset_Time_Drift();
+extern kal_int16 TL1C_Get_Time_Drift();
+extern void TL1C_Update_Time_Drift(kal_bool direction);
+#endif
+/* -------------------------------------------------------------------------- */
+/* Assertion check */
+/* -------------------------------------------------------------------------- */
+#define ASSERT_REBOOT(st) EXT_ASSERT(st,0,0,0)
+#define DSP_DATA_CARD_INTERFACE_SUPPORT (defined(MT6280))
+
+
+/* -------------------------------------------------------------------------- */
+/* Internal Audio Definition */
+/* -------------------------------------------------------------------------- */
+#define __AUDIO_POWERON_RESET_DSP__
+
+
+#if defined(__HIF_CCCI_SUPPORT__)
+#define __CCCI_OVER_SDIO_SUPPORT__ //currently only MT6290
+#endif
+
+
+
+
+//Reduce VoLTE DL delay. Remove DL HISR.
+#define __REDUCE_VOLTE_DL_DELAY__
+//Modem Logging Feature Option
+#define __MODEM_LOGGING_SUPPORT__
+
+#if defined(__EVS_SUPPORT__)
+#define __EVS_CODEC_SUPPORT__
+#endif //#if defined(__EVS_SUPPORT__)
+
+#define SPH_DEBUGINFO (12)
+typedef enum {
+ SPH_DEBUGINFO12_BIT0 = 1<<0, //AWB+Switch
+ SPH_DEBUGINFO12_BIT1 = 1<<1, //g_bNeedExtraLog
+ SPH_DEBUGINFO12_BIT2 = 1<<2,
+ SPH_DEBUGINFO12_BIT3 = 1<<3,
+ SPH_DEBUGINFO12_BIT4 = 1<<4,
+ SPH_DEBUGINFO12_BIT5 = 1<<5,
+ SPH_DEBUGINFO12_BIT6 = 1<<6,
+ SPH_DEBUGINFO12_BIT7 = 1<<7,
+ SPH_DEBUGINFO12_BIT8 = 1<<8,
+ SPH_DEBUGINFO12_BIT9 = 1<<9,
+ SPH_DEBUGINFO12_BIT10 = 1<<10,
+ SPH_DEBUGINFO12_BIT11 = 1<<11,
+ SPH_DEBUGINFO12_BIT12 = 1<<12,
+ SPH_DEBUGINFO12_BIT13 = 1<<13,
+ SPH_DEBUGINFO12_BIT14 = 1<<14,
+ SPH_DEBUGINFO12_BIT15 = 1<<15,
+}SPH_DEBUGINFO12;
+
+#endif //__COMMON_DEF_H
diff --git a/mcu/driver/audio/src/v1/inc/l1audio_sph_trc.h b/mcu/driver/audio/src/v1/inc/l1audio_sph_trc.h
new file mode 100644
index 0000000..9e804dd
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/l1audio_sph_trc.h
@@ -0,0 +1,19 @@
+#ifndef _L1AUDIO_SPH_TRC_H
+#define _L1AUDIO_SPH_TRC_H
+
+#if !defined(GEN_FOR_PC)
+#if defined(__TST_MODULE__) || defined(__CUSTOM_RELEASE__)
+#endif /* TST Trace Defintion */
+#endif
+
+#define TRACE_GROUP_VM TRACE_GROUP_1
+#define TRACE_GROUP_EPL TRACE_GROUP_2
+#define TRACE_GROUP_REFMIC TRACE_GROUP_3
+#define TRACE_GROUP_ECHOREF TRACE_GROUP_4
+#define TRACE_GROUP_THIRDMIC TRACE_GROUP_5
+#define TRACE_GROUP_2NDECHOREF TRACE_GROUP_6
+
+#if !defined(GEN_FOR_PC)
+#include"l1audio_sph_trc_mod_l1audio_sph_srv_utmd.h"
+#endif
+#endif
diff --git a/mcu/driver/audio/src/v1/inc/l1audio_sph_trc_mod_l1audio_sph_srv_utmd.json b/mcu/driver/audio/src/v1/inc/l1audio_sph_trc_mod_l1audio_sph_srv_utmd.json
new file mode 100644
index 0000000..c65895e
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/l1audio_sph_trc_mod_l1audio_sph_srv_utmd.json
@@ -0,0 +1,96 @@
+{
+ "endGen": "-",
+ "legacyParameters": {},
+ "module": "MOD_L1AUDIO_SPH_SRV",
+ "startGen": "Legacy",
+ "traceClassDefs": [
+ {
+ "TRACE_INFO": {
+ "debugLevel": "Ultra-High",
+ "tag": [
+ "L1AUDIO_SPH_SRV",
+ "TRACE_INFO"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_WARNING": {
+ "debugLevel": "Low",
+ "tag": [
+ "L1AUDIO_SPH_SRV",
+ "TRACE_WARNING"
+ ],
+ "traceType": "DesignInfo"
+ }
+ },
+ {
+ "TRACE_ERROR": {
+ "debugLevel": "Ultra-High",
+ "tag": [
+ "L1AUDIO_SPH_SRV",
+ "TRACE_ERROR"
+ ],
+ "traceType": "DesignInfo"
+ }
+ },
+ {
+ "TRACE_FUNC": {
+ "debugLevel": "Medium",
+ "tag": [
+ "L1AUDIO_SPH_SRV",
+ "TRACE_FUNC"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_VM": {
+ "debugLevel": "High",
+ "tag": [
+ "L1AUDIO_SPH_SRV",
+ "L1AUDIO_SPH_SRV_VM",
+ "Sensitive"
+ ],
+ "traceType": "Public"
+ }
+ }
+ ],
+ "traceDefs": [
+ {
+ "VM_DATA": {
+ "format": "VM data",
+ "traceClass": "TRACE_VM"
+ }
+ },
+ {
+ "RECORD_LENGTH": {
+ "apiType": "index",
+ "format": "Recording VM length = %u bytes",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SET_EPL_PARA": {
+ "apiType": "index",
+ "format": "EPL common parameter0 is set to %d",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "EPL_PARA_ERROR": {
+ "apiType": "index",
+ "format": "Invalid EPL common parameter0",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "DEBUG_NUMBER": {
+ "format": "Debug number = %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ }
+ ],
+ "traceFamily": "PS",
+ "userModule": ""
+}
\ No newline at end of file
diff --git a/mcu/driver/audio/src/v1/inc/l1audio_voc_utmd.json b/mcu/driver/audio/src/v1/inc/l1audio_voc_utmd.json
new file mode 100644
index 0000000..88e4137
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/l1audio_voc_utmd.json
@@ -0,0 +1,39 @@
+{
+ "traceFamily": "L1",
+ "startGen": "97",
+ "endGen": "-",
+ "legacyParameters": {},
+ "module": "L1Audio_VoC",
+
+ "traceClassDefs": [
+ {
+ "TRACE_VM": {
+ "debugLevel": "Ultra-High",
+ "tag": [
+ "VM",
+ "ONLY"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_EPL": {
+ "debugLevel": "Low",
+ "tag": [
+ "VM",
+ "EPL"
+ ],
+ "traceType": "Public"
+ }
+ }
+ ],
+ "traceDefs": [
+ {
+ "VM_DEBUG_INFO": {
+ "format": "VM debug info[0] = %d",
+ "traceClass": "TRACE_VM"
+ }
+ }
+ ],
+ "userModule": ""
+}
\ No newline at end of file
diff --git a/mcu/driver/audio/src/v1/inc/l1sp_trc.h b/mcu/driver/audio/src/v1/inc/l1sp_trc.h
new file mode 100644
index 0000000..71d66fc
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/l1sp_trc.h
@@ -0,0 +1,30 @@
+#ifndef _L1SP_TRC_H
+#define _L1SP_TRC_H
+#ifndef GEN_FOR_PC
+ #ifndef _STACK_CONFIG_H
+ #error "stack_config.h should be included before l1sp_trc.h"
+ #endif
+#endif /* GEN_FOR_PC */
+#include "kal_trace.h"
+#ifndef _KAL_TRACE_H
+ #error "kal_trace.h should be included before nvram_trc.h"
+#endif
+#define TRACE_GROUP_DDLOAD TRACE_GROUP_1
+#define TRACE_GROUP_SND TRACE_GROUP_2
+#define TRACE_GROUP_AUD_PROCESS TRACE_GROUP_3
+#define TRACE_GROUP_SP_DEBUG TRACE_GROUP_5
+#define TRACE_GROUP_SP4G TRACE_GROUP_6
+#define TRACE_GROUP_SP3G TRACE_GROUP_8
+#define TRACE_GROUP_AUD_PLAYBACK TRACE_GROUP_9
+#define TRACE_GROUP_ECALL TRACE_GROUP_1
+#define TRACE_GROUP_AUD_MD2GCTRL TRACE_GROUP_1
+#define TRACE_GROUP_SCO TRACE_INFO
+#define TRACE_GROUP_SPLOG TRACE_INFO
+#if !defined(GEN_FOR_PC)
+#if defined(__TST_MODULE__) || defined(__CUSTOM_RELEASE__)
+#endif /* TST Trace Defintion */
+#endif
+#if !defined(GEN_FOR_PC)
+#include"l1sp_trc_mod_l1sp_utmd.h"
+#endif
+#endif // _L1SP_TRC_H
diff --git a/mcu/driver/audio/src/v1/inc/l1sp_trc_mod_l1sp_utmd.json b/mcu/driver/audio/src/v1/inc/l1sp_trc_mod_l1sp_utmd.json
new file mode 100644
index 0000000..60c2701
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/l1sp_trc_mod_l1sp_utmd.json
@@ -0,0 +1,6464 @@
+{
+ "endGen": "-",
+ "legacyParameters": {},
+ "module": "MOD_L1SP",
+ "startGen": "Legacy",
+ "traceClassDefs": [
+ {
+ "TRACE_INFO": {
+ "debugLevel": "Ultra-High",
+ "tag": [
+ "L1SP",
+ "TRACE_INFO"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_WARNING": {
+ "debugLevel": "Low",
+ "tag": [
+ "L1SP",
+ "TRACE_WARNING"
+ ],
+ "traceType": "DesignInfo"
+ }
+ },
+ {
+ "TRACE_FUNC": {
+ "debugLevel": "Medium",
+ "tag": [
+ "L1SP",
+ "TRACE_FUNC"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_STATE": {
+ "debugLevel": "Ultra-High",
+ "tag": [
+ "L1SP",
+ "TRACE_STATE"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_SP_PS": {
+ "debugLevel": "High",
+ "tag": [
+ "L1SP",
+ "L1SP_SP_PS"
+ ],
+ "traceType": "Public"
+ }
+ }
+ ],
+ "traceDefs": [
+ {
+ "AM_L_SP3G_UPDATEL1DSYNC": {
+ "format": "[SPH_L]sp3g_updateL1DSync_dummy timer_hisr_state_L=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_SP3G_UPDATEL1DSYNC_TIMER": {
+ "format": "[SPH_L]L1AL_Timer_L_HISR timer_hisr_state_L=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_2G_HANDOVER_SKIP": {
+ "format": "[SPH_L]cc_2G_Handover Skip %d %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_2G_HANDOVER_ENTER": {
+ "format": "[SPH_L]cc_2G_Handover Enter %d ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_2G_HANDOVER_LEAVE": {
+ "format": "[SPH_L]cc_2G_Handover Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_2G_CALLOPEN_ENTER": {
+ "format": "[SPH_L]cc_2G_Call_Open Enter %d ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_2G_CALLOPEN_LEAVE": {
+ "format": "[SPH_L]cc_2G_Call_Open Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_2G_CALLCLOSE_ENTER": {
+ "format": "[SPH_L]cc_2G_Call_Close Enter %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_2G_CALLCLOSE_LEAVE": {
+ "format": "[SPH_L]cc_2G_Call_Close Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_3G_CALLOPEN_ENTER": {
+ "format": "[SPH_L]cc_3G_Call_Open Enter delR=%d delW=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_3G_CALLOPEN_LEAVE": {
+ "format": "[SPH_L]cc_3G_Call_Open Leave delR=%d delW=%d P_to_L1_delay=%dms",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_3G_CALLCLOSE_ENTER": {
+ "format": "[SPH_L]cc_3G_Call_Close Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_3G_CALLCLOSE_LEAVE": {
+ "format": "[SPH_L]cc_3G_Call_Close Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_4G_CALLOPEN_ENTER": {
+ "format": "[SPH_L]cc_4G_Call_Open_temp Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_4G_CALLOPEN_ENTER_DBG": {
+ "format": "[DBG]cc_4G_Call_Open_temp Enter %d, delR=%d, delW=%d, u32CurTime64us=%d, u32CurTime64usLocal=%d, u32delay=%d, u32delaySample=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_DBG": {
+ "format": "[DBG]DACA_DBG %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_4G_CALLOPEN_LEAVE": {
+ "format": "[SPH_L]cc_4G_Call_Open_temp Leave delR=%d delW=%d P_to_L1_delay=%dms reset_type=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_4G_CALLCLOSE_ENTER": {
+ "format": "[SPH_L]cc_4G_Call_Close_temp Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_4G_CALLCLOSE_LEAVE": {
+ "format": "[SPH_L]cc_4G_Call_Close_temp Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_4G_GCALLOPEN_ENTER": {
+ "format": "[SPH_L]cc_4G_G_Codec_Call_Open_temp Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_4G_GCALLOPEN_LEAVE": {
+ "format": "[SPH_L]cc_4G_G_Codec_Call_Open_temp Leave delR=%d delW=%d P_to_L1_delay=%dms",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_4G_GCALLCLOSE_ENTER": {
+ "format": "[SPH_L]cc_4G_G_Codec_Call_Close_temp Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_4G_GCALLCLOSE_LEAVE": {
+ "format": "[SPH_L]cc_4G_G_Codec_Call_Close_temp Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_C2K_CALLOPEN_ENTER": {
+ "format": "[SPH_L]cc_C2K_Call_Open Enter so=%d dtx=%d delR=%d delW=%d delM=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_C2K_CALLOPEN_LEAVE": {
+ "format": "[SPH_L]cc_C2K_Call_Open Leave so=%d dtx=%d delR=%d delW=%d delM=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_C2K_CALLCLOSE_ENTER": {
+ "format": "[SPH_L]cc_C2K_Call_Close Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_C2K_CALLCLOSE_LEAVE": {
+ "format": "[SPH_L]cc_C2K_Call_Close Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_STANDBY_CALLOPEN_ENTER": {
+ "format": "[SPH_L]cc_STANDBY_Call_Open Enter codec=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_STANDBY_CALLOPEN_LEAVE": {
+ "format": "[SPH_L]cc_STANDBY_Call_Open Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_STANDBY_CALLCLOSE_ENTER": {
+ "format": "[SPH_L]cc_STANDBY_Call_Close Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_STANDBY_CALLCLOSE_LEAVE": {
+ "format": "[SPH_L]cc_STANDBY_Call_Close Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_SET_VBI_FOR_FSM_ENTER": {
+ "format": "[SPH_L]cc_Set VBI For FSM Enter: %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_SET_VBI_FOR_FSM_LEAVE": {
+ "format": "[SPH_L]cc_Set VBI For FSM Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_L1AUD_TASK_CLRBUF": {
+ "format": "[SPH_L]L1AUD_TASK_L clear internal buffer",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_L1AUD_TASK_P2L": {
+ "format": "[SPH_L]L1AUD_TASK_L receive a P2L event",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_L1AUD_TASK_P2L_DATA": {
+ "format": "[SPH_L]L1AUD_TASK_L receive a P2L data[%d] = %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_L1AUD_TASK_L2P_DATA": {
+ "format": "[SPH_L]L1AUD_TASK_L receive a L2P data[%d] = %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_L1AUD_TASK_L2P": {
+ "format": "[SPH_L]L1AUD_TASK_L set a L2P event",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_L1A_UPDATE_INFO_L": {
+ "apiType": "index",
+ "format": "[SPH_L] SP3G Update Info bitmap %d, val %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_4G_EVSCALLOPEN_ENTER": {
+ "format": "cc_4G_EVS_Codec_Call_Open_temp_L Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_4G_EVSCALLOPEN_LEAVE": {
+ "format": "cc_4G_EVS_Codec_Call_Open_temp_L Leave delR=%d delW=%d P_to_L1_delay=%dms resettype=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_4G_EVSCALLCLOSE_ENTER": {
+ "format": "cc_4G_EVS_Codec_Call_Close_temp_L Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AM_L_CC_4G_EVSCALLCLOSE_LEAVE": {
+ "format": "cc_4G_EVS_Codec_Call_Close_temp_L Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_PLAY": {
+ "format": "[DTMF]DTMF_MCU_Play, DTMF_SW.pHandle: 0x%X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_STOP": {
+ "format": "[DTMF]DTMF_MCU_Stop, DTMF_SW.pHandle: 0x%X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_STOP_AND_WAIT": {
+ "format": "[DTMF]DTMF_MCU_StopAndWait, DTMF_SW.pHandle: 0x%X, I: %d, IsAudioPlaying: %d, SoundRuning: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_DATA_REQUEST": {
+ "format": "[DTMF]DTMF_MCU_DataRequestCallback, DTMF_SW.pHandle: 0x%X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_GET_DATA_COUNT": {
+ "format": "[DTMF]DTMF_MCU_GetDataCount, uDataWord: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_READ_DATA_DONE": {
+ "format": "[DTMF]DTMF_MCU_ReadDataDone, uDataWord: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_GET_REAR_BUFFER": {
+ "format": "[DTMF]DTMF_MCU_GetReadBuffer, uDataWord: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_DESTROY": {
+ "format": "[DTMF]dtmf_mcu_Destroy, DTMF_SW.pHandle: 0x%X, fNewDTMF: %d, fEnding: %d, fForceStop: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_INIT": {
+ "format": "[DTMF]dtmf_mcu_Init, uSampleRate: %d, uPcmBufSize(byte): %d, uTotalBufferSize(byte): %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_PROCESS_ENTRY": {
+ "format": "[DTMF]dtmf_mcu_Process.entry, fNewDTMF: %d, fClearDTMF: %d, fEnding: %d, uBufLen(byte): %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_PROCESS_STATUS": {
+ "format": "[DTMF]dtmf_mcu_Process.status, fIsPlaying: %d, uCurrentData: %d, uFlushSilenceCount: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_NEWKEY": {
+ "format": "[DTMF]dtmf_mcu_ActivatNewKey, uCurIdx: %d, uCurrentDur: %d IsQTMF: %d, Freq: [%d] [%d] [%d] [%d]",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_NEWKEY_FORCE_END_2": {
+ "format": "[DTMF]dtmf_mcu_ActivatNewKey, Force stop: uPreIndex2: %d, uRemainDuration: %d, uTotalDuration:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_NEWKEY_FORCE_END_1": {
+ "format": "[DTMF]dtmf_mcu_ActivatNewKey, Reduce Dur: uPreIndex1: %d, uRemainDuration: %d, uTotalDuration:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_UPDATE_TONE_PREV_END": {
+ "format": "[DTMF]dtmf_mcu_UpdateTone, prev_end: uIndex: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_UPDATE_TONE_CURR_END": {
+ "format": "[DTMF]dtmf_mcu_UpdateTone, curr_end: uIndex: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_UPDATE_TONE_CURR_OFF": {
+ "format": "[DTMF]dtmf_mcu_UpdateTone, curr_off: uIndex: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_UPDATE_TONE_CURR_ON": {
+ "format": "[DTMF]dtmf_mcu_UpdateTone, curr_on : uIndex: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_UPDATE_TONE_RAMPDOWN": {
+ "format": "[DTMF]dtmf_mcu_UpdateTone, RAMPDOWN: uIndex: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_MCU_PROCESS_INTERNAL_ENTER": {
+ "format": "[dtmf_mcu_Process_Internal] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MCU_DTMF_MCU_PROCESS_INTERNAL_LEAVE": {
+ "format": "[dtmf_mcu_Process_Internal] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_AM_DSP_TurnOnC2KSDSP": {
+ "format": "[C2K][AM] C2K_AM_DSP_TurnOnC2KSDSP speech_modec=%X codec=%X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_AM_DSP_TurnOffC2KSDSP": {
+ "format": "[C2K][AM] C2K_AM_DSP_TurnOffC2KSDSP",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_SO_CONNECT": {
+ "format": "[C2K][SPH] SO_Connect codec=%X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_SO_CONNECT2": {
+ "format": "[C2K][SPH] SO_Connect(%d)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_SO_DISCON": {
+ "format": "[C2K][SPH] SO_Disconnect(%d)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_SO_DISCON_DONE": {
+ "format": "[C2K][SPH] SO_Disconnect_Done(%d)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_INTRARAT": {
+ "format": "[C2K][SPH] SO_INTRARAT(%d)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_SKIP_SO_CON_DONE": {
+ "format": "[C2K][SPH] Skip SO_Connect_Done(%d)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_RS_COD_PARSE": {
+ "format": "[C2K][SPH] RS=%d, Cod=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_CON_SSO_REQ": {
+ "format": "[C2K][SPH] Link connect SSO req, SO=%d, MaxRate=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_CON_SSO_REQ_REPEAT": {
+ "format": "[C2K][SPH] Link SSO req repeat",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_CON_SSO_DONE": {
+ "format": "[C2K][SPH] Link connect SSO done",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_DISCON_SSO_REQ": {
+ "format": "[C2K][SPH] Link disconnect SSO req",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_DISCON_SSO_REQ_REPEAT": {
+ "format": "[C2K][SPH] Link disconnect SSO req repeat",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_DISCON_SSO_DONE": {
+ "format": "[C2K][SPH] Link disconnect SSO done",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_COD_RDY": {
+ "format": "[C2K][SPH] Link cod ready, CodRdy=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_COD_CLOSE": {
+ "format": "[C2K][SPH] Link cod close, CodRdy=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_COD_DL_UNRDY": {
+ "format": "[C2K][SPH] Link cod DL unready",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_COD_UL_UNRDY": {
+ "format": "[C2K][SPH] Link cod UL unready",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_UL_UNSYNC": {
+ "format": "[C2K][SPH] Link UL unsync",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_LBK_DL": {
+ "format": "[C2K][SPH] Link lbk DL, Rate=%d, len=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_LBK_UL": {
+ "format": "[C2K][SPH] Link lbk UL, Rate=%d, len=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_COD_DL": {
+ "format": "[C2K][SPH] Cod_DL %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_COD_UL": {
+ "format": "[C2K][SPH] Cod_UL %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_RATE_DL": {
+ "format": "[C2K][SPH] rate_DL %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_RATE_UL": {
+ "format": "[C2K][SPH] rate_UL %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_HB_DL": {
+ "format": "[C2K][SPH] HB_DL %x %x %x %x %x %x %x %x %x %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "C2K_SPH_LINK_HB_UL": {
+ "format": "[C2K][SPH] HB_UL %x %x %x %x %x %x %x %x %x %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AFE_SWITCH_LOOPBACK": {
+ "apiType": "index",
+ "format": "AFE Switch Loopback %c",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "AFE_DIGI_GAIN": {
+ "format": "DP_VOL_OUT_PCM:%X, DP_EnhRefDigiGain_Setting:%X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AFE_SET_MIC_VOLUME": {
+ "apiType": "index",
+ "format": "AFE SetMicrophoneVolume: %d",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "AFE_SET_OUTPUT_VOLUME": {
+ "format": "AFE Set aud_func %X OutputVolume %d %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AFE_SET_LEVEL_VOLUME": {
+ "format": "AFE Set aud_func %X MaxAnalogGain %d , step %d, level %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AFE_SET_GIDI_GAIN": {
+ "apiType": "index",
+ "format": "AFE Set digital gain level %d, isForce=%d",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "AFE_SET_SPH_REF_GIDI_GAIN": {
+ "apiType": "index",
+ "format": "AFE Set speech enhancement reference digital gain %d",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "L1CTM_OPEN": {
+ "format": "Call L1Ctm_Open",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_CLOSE": {
+ "format": "Call L1Ctm_Close",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_SET_INTERFACE": {
+ "format": "Call L1Ctm_SetInterface",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_START_NEGOTIATION": {
+ "format": "Call L1Ctm_StartNegotiation",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_4G_PUT_UL": {
+ "format": "[4G TTY] put to UL Buffer %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_4G_GET_DL": {
+ "format": "[4G TTY] get from DL Buffer %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_TTY_LTE_UL_GET": {
+ "format": "[TTY_LTE_PSR_UL_Get] ch = %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_TTY_LTE_DL_GET": {
+ "format": "[TTY_LTE_PSR_DL_Get] ch = %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_TTY_LTE_UL_PUT": {
+ "format": "[TTY_LTE_PSR_UL_Put] ch = %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_TTY_LTE_DL_PUT": {
+ "format": "[TTY_LTE_PSR_DL_Put] ch = %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_TTY_LTE_UL_QUEUE_SIZE": {
+ "format": "[TTY_LTE_PSR_UL_Queue_Size] size = %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_TTY_LTE_DL_QUEUE_SIZE": {
+ "format": "[TTY_LTE_PSR_DL_Queue_Size] size = %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_TTY_MODE": {
+ "format": "[CTM] TTY mode = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_TX_PUT_TEXT": {
+ "format": "Call L1Ctm_TxPutText",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_RX_GET_TEXT": {
+ "format": "Call L1Ctm_RxGetText",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_IN_HISR_ENTER": {
+ "apiType": "index",
+ "format": "[l1ctm_in_hisr] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_IN_HISR_LEAVE": {
+ "apiType": "index",
+ "format": "[l1ctm_in_hisr] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_STOP_ENTER": {
+ "apiType": "index",
+ "format": "[L1Ctm_Stop] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_STOP_LEAVE": {
+ "apiType": "index",
+ "format": "[L1Ctm_Stop] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_FAR_END_CTM_DETECTED": {
+ "format": "L1Ctm far-end CTM detected",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_NEGOTIATION_SUCCESS": {
+ "format": "L1Ctm negotiation success",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_NEGOTIATION_FAIL": {
+ "format": "L1Ctm negotiation fail",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_DEMAND_CTM_ACK": {
+ "format": "L1Ctm is demanded to send CTM ACK",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_UL_SEND_IDLE_AS_ACK": {
+ "format": "L1CtmTx ul-path send IDLE as ACK",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_DL_DETECT_CTM_SYNC": {
+ "format": "L1Ctm dl-path detect CTM Sync",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_DL_CTM_BURST_END": {
+ "format": "L1Ctm dl-path detect CTM burst-end",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_UL_SEND_ENQUIRY_CHAR": {
+ "format": "L1Ctm ul-path send %d-time ENQUIRY char",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_UL_GET_DECODED_TTY_CHAR": {
+ "format": "L1Ctm ul-path get decoded TTY-char 0x%02X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_UL_SEND_CTM_CHAR": {
+ "format": "L1Ctm ul-path send CTM-char 0x%02X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_DL_GET_RECEIVED_CTM_CHAR": {
+ "format": "L1Ctm dl-path get received CTM-char 0x%02X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_DL_SEND_TTY_CHAR": {
+ "format": "L1Ctm dl-path send TTY-char 0x%02X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_REC_DIR_NO": {
+ "format": "L1Ctm record to dir REC_%02u",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_SAVE_DECODED_CHAR": {
+ "format": "L1Ctm dl-path save decoded char 0x%02X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_DEBUG_SHOW_SETTING1": {
+ "format": "[CTM Setting 6229] AEC, EES, ES (Address 0x1A0~0x1A2): %d,%d,%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_DEBUG_SHOW_SETTING2": {
+ "format": "[CTM Setting 6229] AMR codebook threshold=%d, gain=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_DEBUG_SHOW_SETTING3": {
+ "format": "[CTM Setting 6229] DSP_AFS/AHS_SP_BFI_THRESHOLD 0: %d,%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_DEBUG_SHOW_SETTING4": {
+ "format": "[CTM Setting 6229] DSP_AFS/AHS_SP_BFI_THRESHOLD 1: %d,%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_DEBUG_SHOW_SETTING5": {
+ "format": "[CTM Setting 6229] DSP_AFS/AHS_SP_BFI_THRESHOLD 2: %d,%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_DEBUG_SHOW_SETTING6": {
+ "format": "[CTM Setting 6229] DSP_AFS/AHS_SP_BFI_THRESHOLD 3: %d,%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_DEBUG_SHOW_SETTING7": {
+ "format": "[CTM Setting]: Audio Coefficient for input : %d, %d, %d, %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_DEBUG_SHOW_SETTING8": {
+ "format": "[CTM Setting]: Audio Coefficient for output: %d, %d, %d, %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_FAKE_COSIM": {
+ "format": "Turning on COSIM bit in DP_CTM_COSIM_CTRL",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_BUF_OVFLOW": {
+ "apiType": "index",
+ "format": "l1ctm buffer overflow",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "L1CTM_COSIM": {
+ "format": "Turning on COSIM bit in DP_CTM_COSIM_CTRL",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_BFI_INFO": {
+ "format": "l1ctm_in_hisr in cosim mode(buf_idx=%x, bfi_store_idx=%x, dsp_tch_bfi=%x, bfi flag=%x)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_HCO_MODE": {
+ "format": "Opening ctm in HCO mode.",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_VCO_MODE": {
+ "format": "Opening ctm in VCO mode.",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_COSIM_MODE": {
+ "format": "Opening CTM in cosim mode",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_NORMAL_MODE": {
+ "format": "Opening ctm in normal mode (no HCO/VCO).",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1CTM_OPEN_PARAM": {
+ "apiType": "index",
+ "format": "ctm param is not null, cprm_debug_flag=%x",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "SPC_BGSND_WRITEDATADONE_ENTER": {
+ "apiType": "index",
+ "format": "[spc_bgSnd_writeDataDone] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_BGSND_WRITEDATADONE_LEAVE": {
+ "apiType": "index",
+ "format": "[spc_bgSnd_writeDataDone] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_BGSND_REQUESTDATA_ENTER": {
+ "apiType": "index",
+ "format": "[spc_bgSnd_requestData] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_BGSND_REQUESTDATA_INFO": {
+ "apiType": "index",
+ "format": "[spc_bgSnd_requestData] bLen=%d BGSND_RB_DEFAULT_THRESHOLD=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_BGSND_REQUESTDATA_LEAVE": {
+ "apiType": "index",
+ "format": "[spc_bgSnd_requestData] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_BGSND_DLHDR_ENTER": {
+ "apiType": "index",
+ "format": "[spc_BGSND_DLHdr] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_BGSND_DLHDR_LEAVE": {
+ "apiType": "index",
+ "format": "[spc_BGSND_DLHdr] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_BGSNDSTART_ENTER": {
+ "apiType": "index",
+ "format": "[spc_BgSndStart] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_BGSNDSTART_LEAVE": {
+ "apiType": "index",
+ "format": "[spc_BgSndStart] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_BGSNDSTOP_ENTER": {
+ "apiType": "index",
+ "format": "[spc_BgSndStop] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_BGSNDSTOP_LEAVE": {
+ "apiType": "index",
+ "format": "[spc_BgSndStop] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_BGSNDCONFIG_ENTER": {
+ "apiType": "index",
+ "format": "[spc_BgSndConfig] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_BGSNDCONFIG_LEAVE": {
+ "apiType": "index",
+ "format": "[spc_BgSndConfig] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_INIT_ENTER": {
+ "format": "[DSP_BGSND_INIT] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_INIT_LEAVE": {
+ "format": "[DSP_BGSND_INIT] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_CONFIGMIXER_ENTER": {
+ "format": "[DSP_BGSND_ConfigMixer] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_CONFIGMIXER_BGSND_PROCESS_TYPE": {
+ "format": "[DSP_BGSND_ConfigMixer] BGSND_PROCESS_TYPE(0->DL, 1->UL)=%d flag:%d, gain:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_CONFIGMIXER_LEAVE": {
+ "format": "[DSP_BGSND_ConfigMixer] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_UPDATEMIXER_ENTER": {
+ "format": "[DSP_BGSND_UpdateMixer] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_UPDATEMIXER_LEAVE": {
+ "format": "[DSP_BGSND_UpdateMixer] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_STOP_ENTER": {
+ "apiType": "index",
+ "format": "[DSP_BGSND_Stop] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_STOP_LEAVE": {
+ "apiType": "index",
+ "format": "[DSP_BGSND_Stop] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_SHARED_HISR_DL_UL_ENTER": {
+ "format": "[DSP_BGSND_Shared_Hisr_DL_UL] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_SHARED_HISR_DL_UL_LEAVE": {
+ "format": "[DSP_BGSND_Shared_Hisr_DL_UL] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_HISR_ENTER": {
+ "format": "[DSP_BGSND_Hisr] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_HISR_BGSND_PROCESS_TYPE": {
+ "format": "[DSP_BGSND_Hisr] BGSND_PROCESS_TYPE(0->DL, 1->UL)=%d state=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_HISR": {
+ "format": "[DSP_BGSND_Hisr] %x %x %x %x %x %x %x %x %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_HISR_LEAVE": {
+ "format": "[DSP_BGSND_Hisr] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_START_ENTER": {
+ "apiType": "index",
+ "format": "[DSP_BGSND_Start] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DSP_BGSND_START_LEAVE": {
+ "apiType": "index",
+ "format": "[DSP_BGSND_Start] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_INIT_ENTER": {
+ "format": "[EXT_BGSND_init] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_INIT_LEAVE": {
+ "format": "[EXT_BGSND_init] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_START_ENTER": {
+ "format": "[EXT_BGSND_Start] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_START_DEBUG1": {
+ "format": "[EXT_BGSND_Start] debug1 i=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_START_DEBUG2": {
+ "format": "[EXT_BGSND_Start] debug2 i=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_START_SELECTED_SRC": {
+ "format": "[EXT_BGSND_Start] selected_src_id=%d num_src_used=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_START_DEBUG3": {
+ "format": "[EXT_BGSND_Start] debug3 i=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_START_DEBUG4": {
+ "format": "[EXT_BGSND_Start] debug4 i=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_START_DEBUG5": {
+ "format": "[EXT_BGSND_Start] debug5 i=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_START_LEAVE": {
+ "apiType": "index",
+ "format": "[EXT_BGSND_Start] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_FLUSH_ENTER": {
+ "format": "[EXT_BGSND_Flush] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_FLUSH_ID": {
+ "format": "[EXT_BGSND_Flush] id=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_FLUSH_STATE": {
+ "format": "[EXT_BGSND_Flush] state=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_FLUSH_LEAVE": {
+ "format": "[EXT_BGSND_Flush] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_CLOSE_ENTER": {
+ "format": "[EXT_BGSND_Close] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_CLOSE_SELECTED_SRC": {
+ "format": "[EXT_BGSND_Close] selected_src_id=%d num_src_used=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_CLOSE_LEAVE": {
+ "format": "[EXT_BGSND_Close] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_DLHISR_ENTER": {
+ "format": "[EXT_BGSND_DLHisr] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_DLHISR_LEAVE": {
+ "format": "[EXT_BGSND_DLHisr] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_ULHISR_ENTER": {
+ "format": "[EXT_BGSND_ULHisr] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_ULHISR_LEAVE": {
+ "format": "[EXT_BGSND_ULHisr] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_GETDATACOUNT_ENTER": {
+ "format": "[EXT_BGSND_GetDataCount] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_GETDATACOUNT_COUNT": {
+ "format": "[EXT_BGSND_GetDataCount] count=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_GETDATACOUNT_LEAVE": {
+ "format": "[EXT_BGSND_GetDataCount] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_HISR_ENTER": {
+ "format": "[EXT_BGSND_Hisr] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_HISR_BGSND_PROCESS_TYPE": {
+ "format": "[EXT_BGSND_Hisr] BGSND_PROCESS_TYPE(0->DL, 1->UL)=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_HISR_SELECTED_SRC": {
+ "format": "[EXT_BGSND_Hisr] selected_src_id=%d src_state=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_HISR_EXT_SRC_STATE_FLUSHING_OVER": {
+ "format": " [EXT_BGSND_Hisr] %d-th Src's BGSND_PROCESS_TYPE(0->DL, 1->UL)=%d EXT_SRC_STATE_FLUSHING_OVER",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_HISR_ENTER_SRC_OFFHDR": {
+ "format": " [EXT_BGSND_Hisr] Enter %d-th Src's OffHdr",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_HISR_LEAVE_SRC_OFFHDR": {
+ "format": " [EXT_BGSND_Hisr] Leave %d-th Src's OffHdr",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_HISR_FLUSH_SRC_OFFHDR_COMPLETELY": {
+ "format": " [EXT_BGSND_Hisr] Flush %d-th Src's OffHdr completely",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_HISR_WAIT_SRC_HDR_TO_FLUSH_COMPLETELY": {
+ "format": " [EXT_BGSND_Hisr] Wait %d-th Src's Hdr to flush completely",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_HISR_FLUSHING": {
+ "format": " [EXT_BGSND_Hisr] %d-th Src's BGSND_PROCESS_TYPE(0->DL, 1->UL)=%d is flushing with len=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_HISR_NOT_FLUSHING": {
+ "format": " [EXT_BGSND_Hisr] %d-th Src's BGSND_PROCESS_TYPE(0->DL, 1->UL)=%d is not flushing with state=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_HISR_HDR_IS_NOT_USED": {
+ "format": "[EXT_BGSND_Hisr] %d-th Src's Hdr is not used",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_HISR_LEAVE": {
+ "format": "[EXT_BGSND_Hisr] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "BGSND_DSP_BGSND_BUF_ADD": {
+ "format": "[BGSND] DSP_BGSND_Buf_Add id=%d src_len=%d type=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "BKGSND_DSP_BUF_ADD_BUF": {
+ "format": "[BKGSND]DSP_buf_add buf[%d]=%x DSP_DLBuffer[%d]=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITESRCBUFFER_ENTER": {
+ "format": "[EXT_BGSND_WriteSrcBuffer] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITESRCBUFFER_LEAVE": {
+ "format": "[EXT_BGSND_WriteSrcBuffer] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITEEXTBUFFER_ENTER": {
+ "format": "[EXT_BGSND_WriteExtBuffer] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITEEXTBUFFER_SELECTED_SRC": {
+ "format": "[EXT_BGSND_WriteExtBuffer] selected_src_id = %d BGSND_PROCESS_TYPE(0->DL, 1->UL)=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITEEXTBUFFER_FSPH": {
+ "format": "[EXT_BGSND_WriteExtBuffer] fSph=%d gain=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITEEXTBUFFER_COUNT": {
+ "format": "[EXT_BGSND_WriteExtBuffer] count=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITEEXTBUFFER_OVERFLOWS1": {
+ "format": "[EXT_BGSND_WriteExtBuffer] overflows1",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITEEXTBUFFER_FILLED_TO_DSP": {
+ "format": "[EXT_BGSND_WriteExtBuffer_%d] Filled %d word to DSP, bgSnd.bufRead=%d, bgSnd.bufWrite=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITEEXTBUFFER_OVERFLOWS2": {
+ "format": "[EXT_BGSND_WriteExtBuffer] overflows2",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITEEXTBUFFER_FILLED_TO_DSP_WITH_LAST_SAMPLE": {
+ "format": "[EXT_BGSND_WriteExtBuffer] Filled %d word to DSP with last sample %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITEEXTBUFFER_OVERFLOWS3": {
+ "format": "[EXT_BGSND_WriteExtBuffer] overflows3",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITEEXTBUFFER_SKIP_TO_DSP": {
+ "format": "[EXT_BGSND_WriteExtBuffer] skip fill %d word to DSP with silence pattern, state=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITEEXTBUFFER": {
+ "format": "[EXT_BGSND_WriteExtBuffer] %x %x %x %x %x %x %x %x %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_WRITEEXTBUFFER_LEAVE": {
+ "format": "[EXT_BGSND_WriteExtBuffer] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_GETFREESPACE_ENTER": {
+ "format": "[EXT_BGSND_GetFreeSpace] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_GETFREESPACE_INFO": {
+ "format": "[EXT_BGSND_GetFreeSpace] ## r = %d w = %d size = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_GETFREESPACE_LEAVE": {
+ "format": "[EXT_BGSND_GetFreeSpace] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_CONFIGMIXER_ENTER": {
+ "format": "[EXT_BGSND_ConfigMixer] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_CONFIGMIXER_BSPHFLAG": {
+ "format": "[EXT_BGSND_ConfigMixer] bSPHFlag=%d SNDGain=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "EXT_BGSND_CONFIGMIXER_LEAVE": {
+ "format": "[EXT_BGSND_ConfigMixer] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_DL_KT_PLAY_ENTER": {
+ "format": "[SP4G_PSR_DL_KT_Play] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_DL_KT_PLAY_LEAVE": {
+ "format": "[SP4G_PSR_DL_KT_Play] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_DL_KT_STOP_ENTER": {
+ "format": "[SP4G_PSR_DL_KT_Stop] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_DL_KT_STOP_LEAVE": {
+ "format": "[SP4G_PSR_DL_KT_Stop] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_DL_TONE_PLAY_ENTER": {
+ "format": "[SP4G_PSR_DL_Tone_Play] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_DL_TONE_PLAY_LEAVE": {
+ "format": "[SP4G_PSR_DL_Tone_Play] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_DL_TONE_STOP_ENTER": {
+ "format": "[SP4G_PSR_DL_Tone_Stop] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_DL_TONE_STOP_LEAVE": {
+ "format": "[SP4G_PSR_DL_Tone_Stop] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_UL_KT_PLAY_ENTER": {
+ "format": "[SP4G_PSR_UL_KT_Play] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_UL_KT_PLAY_LEAVE": {
+ "format": "[SP4G_PSR_UL_KT_Play] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_UL_KT_PLAY_SKIP": {
+ "format": "[SP4G_PSR_UL_KT_Play] Skip",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_UL_KT_STOP_ENTER": {
+ "format": "[SP4G_PSR_UL_KT_Stop] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_UL_KT_STOP_LEAVE": {
+ "format": "[SP4G_PSR_UL_KT_Stop] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_UL_KT_STOP_SKIP": {
+ "format": "[SP4G_PSR_UL_KT_Stop] Skip",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_UL_TONE_PLAY_ENTER": {
+ "format": "[SP4G_PSR_UL_Tone_Play] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_UL_TONE_PLAY_LEAVE": {
+ "format": "[SP4G_PSR_UL_Tone_Play] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_UL_TONE_PLAY_SKIP": {
+ "format": "[SP4G_PSR_UL_Tone_Play] Skip",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_UL_TONE_STOP_ENTER": {
+ "format": "[SP4G_PSR_UL_Tone_Stop] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_UL_TONE_STOP_LEAVE": {
+ "format": "[SP4G_PSR_UL_Tone_Stop] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP4G_PSR_UL_TONE_STOP_SKIP": {
+ "format": "[SP4G_PSR_UL_Tone_Stop] Skip",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VOLTE_BGSNDCLOSE_ENTER": {
+ "format": "[volte_BgSndClose] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VOLTE_BGSNDCLOSE_LEAVE": {
+ "format": "[volte_BgSndClose] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VOLTE_BGSND_CLOSEHANDLER_ENTER": {
+ "format": "[volte_bgSnd_closeHandler] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VOLTE_BGSND_CLOSEHANDLER_LEAVE": {
+ "format": "[volte_bgSnd_closeHandler] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VOLTE_BGSND_ULHDR_ENTER": {
+ "format": "[volte_BGSND_ULHdr] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VOLTE_BGSND_ULHDR_EXT_BGSND_WRITEEXTBUFFER": {
+ "format": "[volte_BGSND_ULHdr] EXT_BGSND_WriteExtBuffer",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VOLTE_BGSND_ULHDR_EXT_BGSND_WRITEEXTBUFFER_LAST_DATA": {
+ "format": "[volte_BGSND_ULHdr] EXT_BGSND_WriteExtBuffer last data",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VOLTE_BGSND_ULHDR_LEAVE": {
+ "format": "[volte_BGSND_ULHdr] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VOLTE_BGSND_ULHDR_NEED_SAMPLES": {
+ "format": "[volte_BGSND_ULHdr] we still need %d samples",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VOLTE_BGSND_ULHDR_NO_EXT_BGSND_WRITEEXTBUFFER": {
+ "format": "[volte_BGSND_ULHdr] No EXT_BGSND_WriteExtBuffer",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VOLTE_BGSND_ULHDR_TONECNT_REMAINS": {
+ "format": "[volte_BGSND_ULHdr] ToneCnt %d Remains %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_DSPTONE_UL_KT_PLAY_SKIP": {
+ "format": "[SP_DSPTone] SP_DSPTone_UL_KT_Play skip",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_DSPTONE_UL_KT_PLAY_START": {
+ "format": "[SP_DSPTone] SP_DSPTone_UL_KT_Play start freq1=%d freq2=%d duration=%d ulgain=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_DSPTONE_UL_KT_PLAY_LEAVE": {
+ "format": "[SP_DSPTone] SP_DSPTONE_UL_KT_Play leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_DSPTONE_UL_KT_STOP_SKIP": {
+ "format": "[SP_DSPTone] SP_DSPTone_UL_KT_Stop skip",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_DSPTONE_UL_KT_STOP_START": {
+ "format": "[SP_DSPTone] SP_DSPTone_UL_KT_Stop start",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_DSPTONE_UL_KT_STOP_LEAVE": {
+ "format": "[SP_DSPTone] SP_DSPTone_UL_KT_Stop leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_DSPTONE_DL_KT_PLAY_SKIP": {
+ "format": "[SP_DSPTone] SP_DSPTone_DL_KT_Play skip",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_DSPTONE_DL_KT_PLAY_START": {
+ "format": "[SP_DSPTone] SP_DSPTone_DL_KT_Play start freq1=%d freq2=%d duration=%d dlgain=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_DSPTONE_DL_KT_PLAY_LEAVE": {
+ "format": "[SP_DSPTone] SP_DSPTONE_DL_KT_Play leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_DSPTONE_DL_KT_STOP_SKIP": {
+ "format": "[SP_DSPTone] SP_DSPTone_DL_KT_Stop skip",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_DSPTONE_DL_KT_STOP_START": {
+ "format": "[SP_DSPTone] SP_DSPTone_DL_KT_Stop start",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_DSPTONE_DL_KT_STOP_LEAVE": {
+ "format": "[SP_DSPTone] SP_DSPTone_DL_KT_Stop leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SAL_4G_GSeriesCall_Open_CheckState_UL_DL": {
+ "format": "[SAL_4G_GSeriesCall_Open] I=%d SAL_PcmEx_CheckStateDL=%d SAL_PcmEx_CheckStateUL=%d is_ready=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SAL_4G_GSeriesCall_Open_CheckState": {
+ "format": "[SAL_4G_GSeriesCall_Open] SAL_PcmEx_CheckState OK",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AUDIO_SERVICE_DSP2MCU": {
+ "format": "DSP2MCU",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AUDIO_SERVICE_DSP2MCU_TASK4": {
+ "format": "DSP2MCU Task4",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AUDIO_SERVICE_DSP2MCU_TASK5": {
+ "format": "DSP2MCU Task5",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AUDIO_SERVICE_DSP2MCU_TASK6": {
+ "format": "DSP2MCU Task6",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AUDIO_SERVICE_DSP2MCU_TASK7_DSP_DIE": {
+ "format": "DSP2MCU Task7 DSP Die ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AUDIO_SERVICE_L1AUDIO_CONSOLE_HANDLER_VIO18_ON": {
+ "format": "l1audio_console_handler VIO18 ON",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "AUDIO_SERVICE_L1AUDIO_CONSOLE_HANDLER_VIO18_OFF": {
+ "format": "l1audio_console_handler VIO18 OFF",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "CVSD_BTSCO_HISR_ADDRESS": {
+ "format": "[CVSD]btsco_hisr address: W:%x, R:%x, status:%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "CVSD_BTSCO_CODEC_ID": {
+ "format": "[CVSD]fWideBand: %x, uCodec_id:%x, BT_SCO_HW_REG_CONTROL:%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "BTSCO_CVSD_MSBC_SWITCH": {
+ "format": "[SCO]msbc cvsd switch",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "CVSD_BT_SCO_ALLOC_CVSD_MEMORY": {
+ "format": "[CVSD]BT_SCO_Alloc_CVSD_Memory: uTotalMemory %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "CVSD_G711PLC_ADDTOHISTORY_COPY": {
+ "format": "[CVSD]\u0014g711plc_addtohistory copy: btsco.pRX->iPacket_r %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "CVSD_G711PLC_DOFE_COPY": {
+ "format": "[CVSD]\u0014g711plc_dofe copy: btsco.pRX->iPacket_r %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "CVSD_BT_SCO_ALLOC_MSBC_MEMORY": {
+ "format": "[CVSD]BT_SCO_Alloc_MSBC_Memory: uTotalMemory %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MSBC_INFO": {
+ "format": "[MSBC][%d][%d], index1: %d, valid: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MSBC_STATUS": {
+ "format": "[MSBC]status: %d,",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "CVSD_BTSCO_PROCESS_LOOPBACK": {
+ "format": "[CVSD]btsco_process_loopback, uInLen: %d, uOutLen: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "CVSD_BT_SCO_SPEECH_ON": {
+ "format": "[CVSD]BT_SCO_SPEECH_ON, uState: %d, fWideBand = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "CVSD_BT_SCO_SPEECH_OFF": {
+ "format": "[CVSD]BT_SCO_SPEECH_OFF, uState: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "CVSD_BT_SCO_LOOPBACK_ON": {
+ "format": "[CVSD]BT_SCO_Loopback_ON, fDisableCodec: %d, uState: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "CVSD_BT_SCO_LOOPBACK_OFF": {
+ "format": "[CVSD]BT_SCO_Loopback_OFF, uState: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "P4W_GETDATAFROMDSP": {
+ "format": "pcmEx_getDataFromDsp bufName=%d, addr=%x, length=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "P4W_WRITEDATATODSP": {
+ "format": "pcmEx_writeDataToDsp bufName=%d, addr=%x, length=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SND_DSP_BUFFER_INFO": {
+ "apiType": "index",
+ "format": "BGSND buf count:%d; dsp_buf_addr(toPtr): %x, dsp_buf_len: %d word",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SND_FILLBUFFER": {
+ "apiType": "index",
+ "format": "BGSND[%d] Filled %d word to DSP, bgSnd.bufRead=%d, bgSnd.bufWrite=%d",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "L1SND_PUT_SILENCE": {
+ "apiType": "index",
+ "format": "BGSND Filled %d word to DSP with silence pattern %x",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "L1SND_WRITE_DATA": {
+ "format": "[EXT_BGSND_WriteSrcBuffer_%d] selected_src_id=%d type=%d Write data %d word to buffer %d, bgSnd.bufRead=%d, bgSnd.bufWrite=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SND_STOP_FLUSH_COUNT": {
+ "apiType": "index",
+ "format": "BGSND Flush count: %d word",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "L1SND_STOP_FLUSH_LEAVE": {
+ "apiType": "index",
+ "format": "BGSND Flush Still Leave: %d word",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "L1SND_ENTER_BGSND_START": {
+ "format": "Enter BGSND_Start",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SND_ENTER_BGSND_STOP": {
+ "format": "Enter BGSND_Stop",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SND_ENTER_EVENT_HANDLER": {
+ "apiType": "index",
+ "format": "Enter bgsndEventHandler with state=%d",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "L1SND_CONFIG_ULMIXER": {
+ "format": "BGSND ConfigULMixer, flag:%d, gain:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SND_CONFIG_DLMIXER": {
+ "format": "BGSND ConfigDLMixer, flag:%d, gain:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SND_REENTER_HISR": {
+ "format": "SND re-enter HISR with isDlHisrCome=%d, isUlHisrCome=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPPS_PSR_EVS_LOOPBACK_UL_1": {
+ "apiType": "index",
+ "format": "PS EVS_loopback_ul",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PSR_EVS_LOOPBACK_UL_2": {
+ "apiType": "index",
+ "format": "PS EVS_loopback_ul %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PSR_EVS_LOOPBACK_DL_1": {
+ "apiType": "index",
+ "format": "PS EVS_loopback_dl",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PSR_EVS_LOOPBACK_DL_2": {
+ "apiType": "index",
+ "format": "PS EVS_loopback_dl %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PSR_G711_LOOPBACK": {
+ "apiType": "index",
+ "format": "SP4G_PSR_loopback_G711 %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PSR_DL_GSERIES_PUTSPEECHFRAME": {
+ "apiType": "index",
+ "format": "PS PSR_DL_GSeries_Put",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PSR_DL_GSERIES_PUTSPEECHFRAME_INFO": {
+ "apiType": "index",
+ "format": "PS PSR_DL_GSeries_Put: codec=%MSP4G_Codec(0x%x), encodebits=%02x%02x%02x%02x, bitlen=%x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_DL_HISR_SKIP": {
+ "apiType": "index",
+ "format": "PS DL_HISR SKIP %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_UL_HISR_SKIP": {
+ "apiType": "index",
+ "format": "PS UL_HISR SKIP %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_SETCODEC_IS_EQUAL": {
+ "apiType": "index",
+ "format": "PS SetCodec is equal %MSP4G_Codec(0x%x)",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PP5_1": {
+ "apiType": "index",
+ "format": "PS PP5.1 %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PP5_SP4G_RESET_FLAG_INFO": {
+ "apiType": "index",
+ "format": "PS PP5 reset_flag=%d dl_count=%d %d %d size=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PP6_SP4G_RESET_FLAG_INFO": {
+ "apiType": "index",
+ "format": "PS PP6 reset_flag=%d dl_count=%d %d %d size=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PSR_UL_EVS_GETSPEECHFRAME": {
+ "apiType": "index",
+ "format": "PS EVS PSR_UL_Get",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PSR_UL_SETFRAMETYPE1": {
+ "apiType": "index",
+ "format": "PS PSR_UL_SetFrameType with codec=%x, L1SP_GetState()=%d, is_g_codec=%x, is_EVS=%x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_SETCODEC": {
+ "apiType": "index",
+ "format": "PS SetCodec: in_codec_mode=%MSP4G_Codec(0x%x), real_codec_mode=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_SETCODEC0": {
+ "apiType": "index",
+ "format": "PS SetCodec: in_codec_mode=%MSP4G_Codec(0x%x)",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_SETCODEC_USE_EVS_IO_REPLACE_AWB_IN": {
+ "apiType": "index",
+ "format": "PS SetCodec: USE_EVS_IO_REPLACE_AWB in_codec_mode=0x%x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_SETCODEC_USE_EVS_IO_REPLACE_AWB_OUT": {
+ "apiType": "index",
+ "format": "PS SetCodec: USE_EVS_IO_REPLACE_AWB out_codec_mode=0x%x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_SETCODEC_SETFRAMETYPE1": {
+ "apiType": "index",
+ "format": "PS SetCodec1: %MSP4G_Codec(0x%x) 0x%x ftype=%MSP4G_Codec(0x%x), ul_intrarat=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_SETCODEC_SETFRAMETYPE2": {
+ "apiType": "index",
+ "format": "PS SetCodec2: %d %d ftype=%MSP4G_Codec(0x%x), ul_intrarat=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_SETCODEC_SETFRAMETYPE3": {
+ "apiType": "index",
+ "format": "PS SetCodec2: %d %d ftype=%MSP4G_Codec(0x%x), ul_intrarat=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_DEBUG_SPPS_SPEECH_INIT": {
+ "apiType": "index",
+ "format": "PS speech_init_codec = 0x%x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_UL_GETSPEECHFRAME_USE_EVS_IO_REPLACE_AWB": {
+ "apiType": "index",
+ "format": "PS UL_Get USE_EVS_IO_REPLACE_AWB",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_UL_GETSPEECHFRAME_USE_EVS_IO_REPLACE_AWB_LEN": {
+ "apiType": "index",
+ "format": "PS UL_Get USE_EVS_IO_REPLACE_AWB bit_len=%d, byte_len=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_DL_PUTSPEECHFRAME_USE_EVS_IO_REPLACE_AWB": {
+ "apiType": "index",
+ "format": "PS DL_Put USE_EVS_IO_REPLACE_AWB",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PSR_UL_GSERIES_GETSPEECHFRAME": {
+ "apiType": "index",
+ "format": "PS PSR_UL_GSeries_Get",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PSR_UL_GSERIES_GETSPEECHFRAME_INFO": {
+ "apiType": "index",
+ "format": "PS PSR_UL_GSeries_Get: codec=%MSP4G_Codec(0x%x), encodebits=%02x%02x%02x%02x, bitlen=%x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PSR_LINK_DEEST": {
+ "apiType": "index",
+ "format": "PS PSR_Link_Deest: spPS_rab_id=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_PSR_LINK_EST": {
+ "apiType": "index",
+ "format": "PS PSR_Link_Est: spPS_rab_id=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_RAB_DEEST": {
+ "apiType": "index",
+ "format": "PS notify RAB De-establish id=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_RAB_EST1": {
+ "apiType": "index",
+ "format": "PS Rab_Est: in_codec_mode=%MSP4G_Codec(0x%x), real_codec_mode=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_RAB_EST2": {
+ "apiType": "index",
+ "format": "PP Rab_Est: CSR notify RAB establish id=%x codec=%MSP4G_Codec(0x%x)",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_RAB_EST_USE_EVS_IO_REPLACE_AWB_IN": {
+ "apiType": "index",
+ "format": "PS Rab_Est: USE_EVS_IO_REPLACE_AWB in_codec_mode=%MSP4G_Codec(0x%x)",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_RAB_EST_USE_EVS_IO_REPLACE_AWB_OUT": {
+ "apiType": "index",
+ "format": "PS Rab_Est: USE_EVS_IO_REPLACE_AWB out_codec_mode=%MSP4G_Codec(0x%x)",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_REQUEST_UL_FRAME_TYPE": {
+ "apiType": "index",
+ "format": "PS set UL frame type %MSP4G_Codec(0x%x)",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SPPS_SET_DTX": {
+ "apiType": "index",
+ "format": "PS Set DTX %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_TX_SPEECH_GOOD": {
+ "apiType": "index",
+ "format": "PSCod hisr_ul SPEECH_GOOD",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_TX_SID_FIRST": {
+ "apiType": "index",
+ "format": "PSCod hisr_ul SID_FISRT",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_TX_SID_UPDATE": {
+ "apiType": "index",
+ "format": "PSCod hisr_ul SID_UPDATE",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_TX_NO_DATA": {
+ "apiType": "index",
+ "format": "PSCod hisr_ul NO_DATA",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_UL_SKIP_NOTIFY": {
+ "apiType": "index",
+ "format": "PSCod UL_SKIP_NOTIFY_PSR",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_UL_DELAY": {
+ "apiType": "index",
+ "format": "PSCod UL delay %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_DL_SKIP_NOTIFY": {
+ "apiType": "index",
+ "format": "PSCod DL_SKIP_NOTIFY_PSR",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_DL_DELAY": {
+ "apiType": "index",
+ "format": "PSCod DL delay %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_UL_SYNC_AM_4G_INTRARAT": {
+ "apiType": "index",
+ "format": "PSCod UL_Sync AM_INTRARAT",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_DL_FRM": {
+ "apiType": "index",
+ "format": "PSCod DL Frm NA",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_DL_PUT_SPEECH_FRAME_EVS": {
+ "apiType": "index",
+ "format": "PSCod DL sub_flow %d, frame_type %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_DL_PUT_SPEECH_FRAME_AMR": {
+ "apiType": "index",
+ "format": "PSCod DL sub_flow %d, frame_type %x, crc_status %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_RX_SID_FIRST": {
+ "apiType": "index",
+ "format": "PSCod RX SID FISRT",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_RX_SID_UPDATE": {
+ "apiType": "index",
+ "format": "PSCod RX SID UPDATE",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_RX_NO_DATA": {
+ "apiType": "index",
+ "format": "PSCod RX GET NO DATA FRAME",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_RX_LOST_DATA": {
+ "apiType": "index",
+ "format": "PSCod RX GET LOST DATA FRAME",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_UL_GET_SPEECH_FRAME": {
+ "apiType": "index",
+ "format": "PSCod UL GetSpFrame type %x, len %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_UL_BUFFER": {
+ "apiType": "index",
+ "format": "PSCodAMR UL cnt=%d,r=%d,w=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_CONVERT_SP4G_CODEC_AMR_AMRWB_TO_SPH_CODEC": {
+ "apiType": "index",
+ "format": "PSCodAMR convert_AMR_AMRWB_to_SPH_CODEC frame_type=%x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_UL_GETSPEECHFRAMESUB_1": {
+ "apiType": "index",
+ "format": "PSCodAMR UL_Get1 reset_flag=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_UL_GETSPEECHFRAMESUB_2": {
+ "apiType": "index",
+ "format": "PSCodAMR UL_Get2 reset_flag=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_UL_HISR_SKIP_AMR": {
+ "apiType": "index",
+ "format": "PSCodAMR UL_HISR SKIP AMR %d %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_DL_HISR_SKIP_AMR": {
+ "apiType": "index",
+ "format": "PSCodAMR DL_HISR SKIP AMR %d %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_HISR_UL_INVALID_CODEC_MODE": {
+ "apiType": "index",
+ "format": "PSCodAMR hisr_ul invalid UL codec mode %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_HISR_UL_AMR_NO_UPDATE_UL_BUFFER_1": {
+ "apiType": "index",
+ "format": "PSCodAMR hisr_ul no update UL buffer 1",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_HISR_UL_AMR_NO_UPDATE_UL_BUFFER_2": {
+ "apiType": "index",
+ "format": "PSCodAMR hisr_ul no update UL buffer 2",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_HISR_UL_DSP_NOT_READY": {
+ "apiType": "index",
+ "format": "PSCodAMR hisr_ul no ready, force using silence pattern DSP_Len=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_DEBUG_UL_BUFF": {
+ "apiType": "index",
+ "format": "PSCodAMR hisr_ul_buff %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_UL_SYNC_SP4G_HISR_DL_AMR_1_INFO": {
+ "apiType": "index",
+ "format": "PSCodAMR [UL_Sync]hisr_dl.1 ul_request_resync = %d reset_flag=%d ctime = %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_UL_SYNC_SP4G_HISR_DL_AMR_FORCED_NO_DATA": {
+ "apiType": "index",
+ "format": "PSCodAMR [UL_Sync]hisr_dl.2 forced no_data",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_PSR_DL_AMR_PUTSPEECHFRAME_RETURN": {
+ "apiType": "index",
+ "format": "PSCodAMR PSR_DL_Put: now is EVS codec, skip this data flow.",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_DL_BIT_TRUE": {
+ "apiType": "index",
+ "format": "PSCodAMR DL Type 0x%x, Frm %x %x %x %x %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_HIST_4G_SYNC": {
+ "apiType": "index",
+ "format": "PSCodAMR sync=%x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_PSR_DL_AMR_PUTSPEECHFRAME": {
+ "apiType": "index",
+ "format": "PSCodAMR PSR_DL_Put codec=%MSP4G_PSR_Codec(0x%x) frame_type=%MSP4G_Codec(0x%x) ul_codec_mode=0x%x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_PSR_DL_AMR_PUTSPEECHFRAME_G_SKIP": {
+ "apiType": "index",
+ "format": "PSCodAMR PSR_DL_Put: now is G codec, skip this data flow.",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_PSR_DL_AMR_PUTSPEECHFRAME_LOST_FRAME": {
+ "apiType": "index",
+ "format": "PSCodAMR PSR_DL_Put LOST_FRAME",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_HSPA_DL_PUT_SPEECH_FRAME": {
+ "apiType": "index",
+ "format": "PSCodAMR DL Put type %MSP4G_Codec(0x%x), CFN %d, crc %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_P0_RESET_FLAG_INFO": {
+ "apiType": "index",
+ "format": "PSCodAMR P0 reset_flag=%d dl_count=%d %d %d size=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_P1_RESET_FLAG_INFO": {
+ "apiType": "index",
+ "format": "PSCodAMR P1 reset_flag=%d dl_count=%d %d %d size=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_P2_RESET_FLAG_INFO": {
+ "apiType": "index",
+ "format": "PSCodAMR P2 reset_flag=%d dl_count=%d %d %d size=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_P3_RESET_FLAG_INFO": {
+ "apiType": "index",
+ "format": "PSCodAMR P3 reset_flag=%d dl_count=%d %d %d size=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_P4_RESET_FLAG_INFO": {
+ "apiType": "index",
+ "format": "PSCodAMR P4 reset_flag=%d dl_count=%d %d %d size=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_DL_DROP_FRAME": {
+ "apiType": "index",
+ "format": "PSCodAMR DL drop frame",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_DTX_NO_DATA": {
+ "format": "PSCodAMR DL_HISR INSERT NO DATA",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_DL_HISR_STATUS": {
+ "format": "PSCodAMR DL_HISR AMR = %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_BUFFER_STATUS": {
+ "format": "PSCodAMR DL_HISR r = %d, w = %d, num = %d, 1st byte = %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_RX_FORCE_NO_DATA_WHEN_CHANGE_BAND": {
+ "apiType": "index",
+ "format": "PSCodAMR DL_HISR Band Change, force NO_DATA",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_AMR_DEBUG_UL_GETSPEECHFRAME": {
+ "apiType": "index",
+ "format": "PSCodAMR UL_Get r_idx %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_RESET_FLAG_INFO": {
+ "apiType": "index",
+ "format": "PSCodEVS %d reset_flag=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_DECODER_PREPARE_PARAMETER": {
+ "apiType": "index",
+ "format": "PSCodEVS dec_prepare_parameter: EVS_network_request_bw=%d, EVS_capability_bw=%d, EVS_PCM_bw=%d EVS_HBLen=%d, EVS_BFI=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_ENCODER_PREPARE_PARAMETER1": {
+ "apiType": "index",
+ "format": "PSCodEVS enc_prepare_parameter1: EVS_network_request_bw=%d, EVS_capability_bw=%d, EVS_PCM_bw=%d codec=%MSP4G_Codec(0x%x), DTX=%d, EVS_CA_Par.enable=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL": {
+ "apiType": "index",
+ "format": "PSCodEVS UL_Event duration EVS_HISR_start",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_PCM_SIZE": {
+ "format": "PSCodEVS hisr_ul FD216 UL PCM size=%d, EVS_pcm_ul_rb_buf size=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_DROP_PCM": {
+ "format": "PSCodEVS hisr_ul drop EVS_pcm_ul_rb_buf PCM data",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_ENC_DONE": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_ul encoder done",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_ASSERT_ID": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_ul encoder EVS codec ID is wrong: 0x%x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_PROCESS_EVS_HB": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_ul process EVS HB",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_BIT_LEN": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_ul EVS HB bit_len: %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_PROCESS_AWB_HB": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_ul process AWB HB",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_PROCESS_AWB_HB_LEN": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_ul AWB HB byte len: %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_AWB_INVALID_CODEC_RATE": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_ul AWB invalid codec rate: 0x%x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_ENC_NOT_FINISH": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_ul encoder do not finish, dsp_len=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_ERROR": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_ul ERROR",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_DATA": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_ul DATA",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_MUTE": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_ul MUTE",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_UL_NON": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_ul NON",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_DL_ERROR": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_dl ERROR",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_DL_DATA": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_dl DATA",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_DL_MUTE": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_dl MUTE",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HISR_DL_NON": {
+ "apiType": "index",
+ "format": "PSCodEVS hisr_dl NON",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_UL_GETSPEECHFRAME": {
+ "apiType": "index",
+ "format": "PSCodEVS UL_Get Return",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_UL_GETSPEECHFRAME_EVS_HB_UL_RB_BUF_FREE_SPACE": {
+ "apiType": "index",
+ "format": "PSCodEVS UL_Get EVS_HB_ul_rb_buf free space=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_UL_GETSPEECHFRAME_HEADER_INFO": {
+ "apiType": "index",
+ "format": "PSCodEVS UL_Get header ID=%x codec=%MSP4G_Codec(0x%x) byte_len=%d bit_len=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_UL_GETSPEECHFRAME_EVS_HB_UL_RB_BUF_EMPTY": {
+ "apiType": "index",
+ "format": "PSCodEVS UL_Get EVS_HB_ul_rb_buf is empty",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_UL_GETSPEECHFRAME_INFO": {
+ "apiType": "index",
+ "format": "PSCodEVS UL_Get codec=%MSP4G_Codec(0x%x) bit_len=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_UL_GETSPEECHFRAME_MISMATCH_CODEC": {
+ "apiType": "index",
+ "format": "PSCodEVS UL_Get Mismatch codec %x %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_UL_GETSPEECHFRAME_INVALID_CODEC": {
+ "apiType": "index",
+ "format": "PSCodEVS UL_Get invalid ul_codec_mode: %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_UL_GETSPEECHFRAME_MERGE_3RAB_TO_IF1": {
+ "apiType": "index",
+ "format": "PSCodEVS UL_Get merge 3 R.A.B. to IF1",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_DL_PUTSPEECHFRAME_REORDERAWB_ENTER": {
+ "apiType": "index",
+ "format": "PSCodEVS DL_Put_ReorderAWB enter",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HSPA_DL_EVS_PUTSPEECHFRAME_UL_SYNC_1": {
+ "apiType": "index",
+ "format": "PSCodEVS DL_Put.1 ul_request_resync = %d reset_flag=%d ctime = %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HSPA_DL_EVS_PUTSPEECHFRAME_UL_SYNC_2_1": {
+ "apiType": "index",
+ "format": "PSCodEVS DL_Put.2-1 forced no_data",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_HSPA_DL_EVS_PUTSPEECHFRAME_UL_SYNC_2_2": {
+ "apiType": "index",
+ "format": "PSCodEVS DL_Put.2-2 forced no_data",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_PSR_DL_EVS_PUTSPEECHFRAME": {
+ "apiType": "index",
+ "format": "PSCodEVS PSR_DL_Put",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_PSR_DL_EVS_PUTSPEECHFRAME_RETURN": {
+ "apiType": "index",
+ "format": "PSCodEVS PSR_DL_Put: now is not EVS codec, skip this data flow.",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_EVS_PSR_DL_EVS_PUTSPEECHFRAME_DATA": {
+ "apiType": "index",
+ "format": "PSCodEVS PSR_DL_Put: CFN=%x codec=%x to %x, encodebits=%02x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_SET_G711PARAMETERS": {
+ "apiType": "index",
+ "format": "PSCodG Set_G711Parameters input dec_init_CNG_enable is out of range(0~1): %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_SET_G711PARAMETERS_OUT_OF_RANGE": {
+ "apiType": "index",
+ "format": "PSCodG Set_G711Parameters input law is out of range(1~2): %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_ENCODE_GETBUFFERSIZE": {
+ "apiType": "index",
+ "format": "PSCodG Enc GetBufferSize %d %d %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_GETBUFFERSIZE": {
+ "apiType": "index",
+ "format": "PSCodG Dec GetBufferSize %d %d %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_DL_EVENT": {
+ "apiType": "index",
+ "format": "PSCodG DL_Event %d-th ",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_DL_EVENT_CODEC": {
+ "apiType": "index",
+ "format": "PSCodG DL_Event codec=%MSP4G_Codec(0x%x) len=%d hdr.len=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_DL_EVENT_DECODED_GSERIES_DECODE_PROCESS": {
+ "apiType": "index",
+ "format": "PSCodG DL_Event Dec GSeries_Decode_Process result=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_DL_EVENT_DROP_PCM": {
+ "apiType": "index",
+ "format": "PSCodG DL_Event drop PCM",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_DL_EVENT_READHARDBIT_NO_SIZE": {
+ "apiType": "index",
+ "format": "PSCodG DL_Event ReadHardbit no size",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_INFO": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event %d-th codec=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_READPCM_NO_SIZE": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event ReadPCM no size",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_READPCM_SIZE": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event ReadPCM size=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_WRITE1": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event Write1 %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_WRITE2": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event Write2 %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_WRITE3": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event Write3 %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_CODEC_MISMATCH": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event codec %d %d mismatch",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_DROP1": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event drop1 %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_DROP2": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event drop2 %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_DROP2_SIZE_INFO": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event drop2 stream size is larger than %dbyte",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_DROP3": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event drop3 %d ",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_DROP_CODEC_MUTE_INFO": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event drop data, SP_is_codec_mute()=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_ENCODED_FREE_SIZE": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event Enc free_size=%d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_ENCODED_GSERIES_ENCODE_PROCESS": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event Enc GSeries_Encode_Process return=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_UL_EVENT_ENCODED_INFO": {
+ "apiType": "index",
+ "format": "PSCodG UL_Event Enc codec=%d size=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_PSR_GETFRAME": {
+ "apiType": "index",
+ "format": "PSCodG PSR_Get",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_PSR_GETFRAME2": {
+ "apiType": "index",
+ "format": "PSCodG PSR_Get: %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_PSR_GETFRAME_INFO": {
+ "apiType": "index",
+ "format": "PSCodG PSR_Get codec=%d len=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_PSR_GETFRAME_MISMATCH": {
+ "apiType": "index",
+ "format": "PSCodG PSR_Get Mismatch codec %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_PSR_GETFRAME_NODATA": {
+ "apiType": "index",
+ "format": "PSCodG PSR_Get NoData",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_PSR_GETFRAME_OK": {
+ "apiType": "index",
+ "format": "PSCodG PSR_Get Ok",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_PSR_PUTFRAME3": {
+ "apiType": "index",
+ "format": "PSCodG PSR_Put aud_dl_id %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_PSR_PUTFRAME4": {
+ "apiType": "index",
+ "format": "PSCodG PSR_Put codec=%d len=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_PSR_PUTFRAME_DROP": {
+ "apiType": "index",
+ "format": "PSCodG PSR_Put drop",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_PSR_PUTFRAME_DROP_SIZE_INFO": {
+ "apiType": "index",
+ "format": "PSCodG PSR_Put drop stream size is larger than %dbyte",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_PSR_PUTFRAME_MISMATCH": {
+ "apiType": "index",
+ "format": "PSCodG PSR_Put mismatch codec=%MSP4G_Codec(0x%x) %MSP4G_Codec(0x%x)",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_HISR_DL_INFO1": {
+ "apiType": "index",
+ "format": "PSCodG hisr_dl_g %x fsize=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_HISR_DL_INFO2": {
+ "apiType": "index",
+ "format": "PSCodG hisr_dl_g reset_flag=%d rab_state=%d codec_mute=%d sp4g_mode=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_HISR_DL_STATUS": {
+ "apiType": "index",
+ "format": "PSCodG hisr_dl_g %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_HISR_DL_NO_DATA": {
+ "apiType": "index",
+ "format": "PSCodG hisr_dl_g no data",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_HISR_UL": {
+ "apiType": "index",
+ "format": "PSCodG hisr_ul_g %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_HISR_UL_AUD_UL_ID": {
+ "apiType": "index",
+ "format": "PSCodG hisr_ul_g aud_ul_id %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_HISR_UL_DROP": {
+ "apiType": "index",
+ "format": "PSCodG hisr_ul_g drop",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_CODEC_G_HISR_UL_SIZE": {
+ "apiType": "index",
+ "format": "PSCodG hisr_ul_g size=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_RESYNC_TEST_1": {
+ "apiType": "index",
+ "format": "sub_aam_resync_test[Check] unexpected resync",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_RESYNC_TEST_2": {
+ "apiType": "index",
+ "format": "sub_aam_resync_test enter %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_RESYNC_TEST_3": {
+ "apiType": "index",
+ "format": "sub_aam_resync_test retry (%d)",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_RESYNC_TEST_4": {
+ "apiType": "index",
+ "format": "sub_aam_resync_test abandon %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_RESYNC_TEST_5": {
+ "apiType": "index",
+ "format": "sub_aam_resync_test stop",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_RESYNC_TEST_6": {
+ "apiType": "index",
+ "format": "sub_aam_resync_test testing %d %d %d %d idx %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_RESYNC_TEST_7": {
+ "apiType": "index",
+ "format": "aam_resync_test_start start1 aam_resync_test_idx=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_RESYNC_TEST_8": {
+ "apiType": "index",
+ "format": "aam_resync_test_start start2",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_RESYNC_TEST_9": {
+ "apiType": "index",
+ "format": "aam_resync_test_start start (skip)",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_FAKE_L2_INFO": {
+ "apiType": "index",
+ "format": "PSAAM FAKE L2 Info rx_p=%d tx_p=%d t2tx=%d t2rx=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_TRUE": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC True(%d) Start module=%d sph_l2_mode=%d l2_mode=%d sal_mode=%d %x %x %x %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_FAKE_0": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC Fake %x %x %x %x %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_FAKE_1": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC fake_offset %x %x %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_FAKE_2": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC fake tx_fake_offset %x fake_offset %x fake_t2nextTX %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_FAKE_3": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC fake time2nextTX %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_FAKE_4": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC fake time2nextTX_skip %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_FAKE_5": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC fake rx_fake_offset %x fake_offset %x fake_t2nextRX %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_FAKE_6": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC fake time2nextRX %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_FAKE_7": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC fake time2nextRX_skip %x",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_TIMING_INIT_INFO1": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC setting: UL_HISR2SR=%dms reset_drift=%dms",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_TIMING_UPDATE_INFO1": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC: emac tx=%d rx=%d t2tx=%d t2rx=%d issue_time=%d nmac tx=%d rx=%d t2tx=%d t2rx=%d issue_time=%d sal_mode=%d ul_margin=%d dl_margin=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_TIMING_UPDATE_INFO3": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC: t2nextSR=%d t2nextDRX=%d t2nextULHISR=%d t2nextDLHISR=%d sph_l2_mode=%d is_4g_lch_on=%d is_5g_lch_on=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_TIMING_UPDATE_INFO4_2": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC: selected_sph_l2_mode=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_TIMING_UPDATE_INFO5": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC: return with SPPS_is_trigger_mac_notify=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_TIMING_UPDATE_INFO6": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC: return with useless info(%d) TX_period=%d, time2nextTX=%d RX_period=%d, time2nextRX=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_VOLTE_CALLOFF": {
+ "apiType": "index",
+ "format": "PSAAM LTE_emac_volte_calloff at sub_SP4G_emac_timing_update",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_TIMING_UPDATE_1": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC1",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_TIMING_UPDATE_1_INFO": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC1: drx_period=%d sr_period=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_TIMING_UPDATE_1_INFO2": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC1: time_to_next_on=%x time_to_trig_sr=%x ctime=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_TIMING_UPDATE_1_OK": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC1: OK",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_TIMING_UPDATE_1_SKIP": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC1: skip",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_EMAC_TIMING_UPDATE_RETURN": {
+ "apiType": "index",
+ "format": "PSAAM LTE_EMAC: return l2_mode=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_GETSYNCDELAYRW_0": {
+ "apiType": "index",
+ "format": "PSAAM LTE_GetDelRW.0 %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_GETSYNCDELAYRW_1": {
+ "apiType": "index",
+ "format": "PSAAM LTE_GetDelRW.1 l2_mode= %d ctime = %d t2nextSR = %d t2nextDRX = %d t2nextULHISR = %d t2nextDLHISR = %d txperiod=%d rxperiod=%d time_emac_to_here= %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_GETSYNCDELAYRW_2": {
+ "apiType": "index",
+ "format": "PSAAM LTE_GetDelRW.2 sal_mode=%d time2nextSR = %d TX_period= %d time2nextDRX = %d RX_period= %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_GETSYNCDELAYRW_2_1": {
+ "apiType": "index",
+ "format": "PSAAM LTE_GetDelRW.2_1 offset_AAM = %d u16DelayR= %d u16DelayW = %d u16DelayM= %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_LTE_GETSYNCDELAYRW_2_2": {
+ "apiType": "index",
+ "format": "PSAAM LTE_GetDelRW.2_2 offset_AAM invalid",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_EXECUTE_LTE_ON": {
+ "apiType": "index",
+ "format": "PSAAM Execute_LTE_On",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_EXECUTE_LTE_OFF": {
+ "apiType": "index",
+ "format": "PSAAM Execute_LTE_Off",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_EXECUTE_LTE_RESYNC": {
+ "apiType": "index",
+ "format": "PSAAM Execute_LTE_Resync",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_CHECK_STATUS_LTE_0_INFO": {
+ "apiType": "index",
+ "format": "PSAAM CHK_STATUS_LTE.0 mac_notify %d codec_mute=%d SP4G_ul_resync_info_available=%d %d l2_mode=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_CHECK_STATUS_LTE_0_1_INFO": {
+ "apiType": "index",
+ "format": "PSAAM CHK_STATUS_LTE.0 %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_CHECK_STATUS_LTE_1_INFO": {
+ "apiType": "index",
+ "format": "PSAAM CHK_STATUS_LTE.1 t2nextSR=%d t2nextDRX = %d t2nextULHISR=%d t2nextDLHISR = %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_CHECK_STATUS_LTE_1_1_INFO": {
+ "apiType": "index",
+ "format": "PSAAM CHK_STATUS_LTE.1-1 Skip Resync",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_CHECK_STATUS_LTE_2_INFO": {
+ "apiType": "index",
+ "format": "PSAAM CHK_STATUS_LTE.2 time_emac_2_aamhisr = %d time_2_nextHISR = %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_CHECK_STATUS_LTE_2_1_INFO": {
+ "apiType": "index",
+ "format": "PSAAM CHK_STATUS_LTE.2-1 diff = %d diff_mod=%d diff_mod_2=%d tx_period_min = %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_CHECK_STATUS_LTE_2_2_INFO": {
+ "apiType": "index",
+ "format": "PSAAM CHK_STATUS_LTE.2-2 adjust diff_mod = %d with DRIFT_DSP2MCU_RESET = %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_CHECK_STATUS_LTE_3": {
+ "apiType": "index",
+ "format": "PSAAM CHK_STATUS_LTE.3 t_req_resync = %d ctime = %d tdiff_req_resync = %d, ul_req_resync = %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_CHECK_STATUS_LTE_4": {
+ "apiType": "index",
+ "format": "PSAAM CHK_STATUS_LTE.4 %d %d %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_CHECK_STATUS_LTE_5_1": {
+ "apiType": "index",
+ "format": "PSAAM CHK_STATUS_LTE.5-2 UL sync start(%d)",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_CHECK_STATUS_LTE_5_2": {
+ "apiType": "index",
+ "format": "PSAAM CHK_STATUS_LTE.5-3 UL sync skip(%d)",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_CHECK_STATUS_LTE_5_3": {
+ "apiType": "index",
+ "format": "PSAAM CHK_STATUS_LTE.5-3 UL sync SPPS_is_aligned",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_HISR_1": {
+ "apiType": "index",
+ "format": "PSAAM AAM_HISR is_ever_aligned = %d aam_result = %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_SMR_STATUS_1": {
+ "apiType": "index",
+ "format": "PSAAM LTE_SMR_STATUS.1 mac_notify %d codec_mute=%d SP4G_ul_resync_info_available=%d %d l2_mode=%d time[l2_mode][0]=%d ctime = %d t2nextSR = %d t2nextDRX = %d t2nextULHISR = %d t2nextDLHISR = %d txperiod=%d rxperiod=%d time_emac_to_here= %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_SMR_STATUS_2": {
+ "apiType": "index",
+ "format": "PSAAM LTE_SMR_STATUS.2 sal_mode=%d time2nextSR = %d TX_period= %d time2nextDRX = %d RX_period= %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_SMR_STATUS_2_1": {
+ "apiType": "index",
+ "format": "PSAAM LTE_SMR_STATUS.2_1 offset_AAM = %d u16DelayR= %d u16DelayW = %d u16DelayM= %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_SMR_STATUS_2_2": {
+ "apiType": "index",
+ "format": "PSAAM LTE_SMR_STATUS.2_2 offset_AAM invalid mac_notify %d codec_mute=%d SP4G_ul_resync_info_available=%d %d l2_mode=%d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_SMR_STATUS_3": {
+ "apiType": "index",
+ "format": "PSAAM LTE_SMR_STATUS.3 ul_req_resync = %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAM_SMR_STATUS_3_1": {
+ "apiType": "index",
+ "format": "PSAAM SMR sync start",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SILENCE_DETECTION_SET_ULFRAMETYPE": {
+ "apiType": "index",
+ "format": "Silence_Detec_set_ULType %d, %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SILENCE_DETECTION_SET_DLFRAMETYPE": {
+ "apiType": "index",
+ "format": "Silence_Detec_set_DLType %d, %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SILENCE_DETECTION_GET_STATUS0": {
+ "apiType": "index",
+ "format": "Silence_Detec_get_status 0",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SILENCE_DETECTION_GET_STATUS1": {
+ "apiType": "index",
+ "format": "Silence_Detec_get_status 1",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SILENCE_DETECTION_GET_STATUS2": {
+ "apiType": "index",
+ "format": "Silence_Detec_get_status 2",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SILENCE_DETECTION_GET_STATUS3": {
+ "apiType": "index",
+ "format": "Silence_Detec_get_status 3",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SILENCE_DETECTION_GET_STATUS4": {
+ "apiType": "index",
+ "format": "Silence_Detec_get_status 4",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SILENCE_DETECTION_GET_STATUS_INFO": {
+ "apiType": "index",
+ "format": "Silence_Detec_get_status %d, %d, %d, %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAMPLUS_ENABLE": {
+ "apiType": "index",
+ "format": "PSAAMPlus Enable",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAMPLUS_DISABLE": {
+ "apiType": "index",
+ "format": "PSAAMPlus Disable",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAMPLUS_TALK": {
+ "apiType": "index",
+ "format": "PSAAMPlus TALK",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAMPLUS_SILENCE_SID_FIRST": {
+ "apiType": "index",
+ "format": "PSAAMPlus SILENCE SID first",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_AAMPLUS_SILENCE_SID_UPDATE": {
+ "apiType": "index",
+ "format": "PSAAMPlus SILENCE SID update",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_DSP_OPT_TONEDETETASKINIT": {
+ "apiType": "index",
+ "format": "PSDspOpt_ToneDeteTaskInit",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_DSP_OPT_TONEDETEEXEC": {
+ "apiType": "index",
+ "format": "PSDspOpt_ToneDeteExec frame %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_PS_DSP_OPT_PATTERNDETECION": {
+ "apiType": "index",
+ "format": "PSDspOpt_PatternDetecion frame: %d",
+ "traceClass": "TRACE_SP_PS"
+ }
+ },
+ {
+ "SP_CC_L2P_Hdler": {
+ "format": "[SP_CC]SP_L2P_Hdlr %x %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_CC_L2P_Hdler_Err": {
+ "format": "[SP_CC]SP_L2P_Hdlr skip command: %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_CC_EVENT_HANDLER_ENTER": {
+ "format": "[SP_CC][event_handler] Enter event_id=%d param1=%d param2=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_CC_EVENT_HANDLER_LEAVE": {
+ "format": "[SP_CC][event_handler] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_CC_INVOKELCORE": {
+ "format": "[SP_CC]InvokeLCoreFunction %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_CC_INVOKELCORE_INFO": {
+ "format": "[SP_CC]InvokeLCoreFunction %d %d %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_CC_MSG_ID_AUDIO_L2P_SP3G_LOG_L1_INFO": {
+ "format": "[SP_CC]MSG_ID_AUDIO_L2P_SP3G_LOG_L1_INFO %x %x %x %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_CC_SP_L2P_HANDLER_SKIP_COMMAND": {
+ "format": "[SP_CC]SP_L2P_Handler skip command: %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_CHANGERAT_MODE": {
+ "format": "ChangeRAT_Mode %d %d %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_L4C_SETEVENT_ENTER": {
+ "format": "[SP_L4C_SetEvent] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_L4C_SETEVENT_LEAVE": {
+ "format": "[SP_L4C_SetEvent] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_M2M_HANDLER_SKIP_COMMAND": {
+ "format": "SP_M2M_Handler skip command: %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_SET_ISSTANDBYMODE": {
+ "apiType": "index",
+ "format": "L1SP_Set_isStandByMode: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_L4C_SKIP_NETWORKNOTIFICATION": {
+ "apiType": "index",
+ "format": "[SP_L4C_SetEvent] SKIP networknotification",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_EM_UPDATE_CODEC": {
+ "apiType": "index",
+ "format": "[SP_updateEmCodec] isEmCodecNotifyOff=%d, updateUL(%d)/updateDL(%d), voc=%d, l1sp.state=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPE_SETSPEECHENHANCEMENT_C_PARAM": {
+ "format": "[SPE]SetSpeechEnhancement,c_param 0~47",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPE_SETSPEECHENHANCEMENT_M_PARAM": {
+ "format": "[SPE]SetSpeechEnhancement,m_param 0~47",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPE_SETSPEECHENHANCEMENT_M_PARAM_WB": {
+ "format": "[SPE]SetSpeechEnhancement,m_param_wb 0~47",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPE_SETSPEECHENHANCEMENT1": {
+ "format": "[SPE]SetSpeechEnhancement, SAL_ENH_Dynamic_State_Set(SAL_ENH_DYN_DDL_SET) \u0014done ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPE_SETSPEECHENHANCEMENT2": {
+ "format": "[SPE]SetSpeechEnhancement, SPE_WaitSPEDynready(SAL_ENH_DYN_DDL_SET) \u0014done ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPE_SETSPEECHENHANCEMENT3": {
+ "format": "[SPE]SetSpeechEnhancement, SAL_ENH_Dynamic_State_Set ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPE_SETSPEECHENHANCEMENT4": {
+ "format": "[SPE]SetSpeechEnhancement, SAL_ENH_Dynamic_State_Set done ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPE_SETSPEECHENHANCEMENT_SPE_WAITSPEDYNREADY_DONE": {
+ "format": "[SPE]SetSpeechEnhancement, SPE_WaitSPEDynready done ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPE_SETDYNAMICPARTOMD_NOT_FIND": {
+ "format": "[SPE]SetDynamicPartoMD can't find the ID number: %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPE_SETDYNAMIC_SM": {
+ "format": "[SPE]SPE_SetDynamicStatemachine pos=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_SPE_SET_EMI_INFO": {
+ "format": "[SPC][SPE] Set EMI INFO , Status: %d, offset : 0x%x, Len : 0x%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_NOTIFY_NETWORK_STATUS": {
+ "apiType": "index",
+ "format": "[SPC]spc_notify_network_status %d %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_NOTIFY_NETWORK_STATUS_SKIP": {
+ "format": "[SPC]spc_notify_network_status skip %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_PRINTS": {
+ "format": "[SPC]prints: %x, %d, %x, %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_AUDIOTASK_WAIT_EL1_RF_INIT": {
+ "format": "[SPC]AudioTask Wait EL1 RF Init for %d tick(s). ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_EPOF_SPC_FORCEENDALLAPP_NOTIFY_AP": {
+ "format": "[SPC] [EPOF]Spc_ForceEndAllApp notify AP",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_RECEIVEDYNAMICPARAMETER": {
+ "format": " %MAUD_SPC_DYNAMIC_PARAM_MAGICNUM_T(size=%d), comeFrom:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_DMNR_HEADER": {
+ "format": " [SPC][SPE]DMNR Header Check : %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_RECEIVEDYNAMICPARAMETER2": {
+ "format": "[SPC][SPE]spc_ReceiveDynamicParameter,Mode=%x,SpeechIndex=%x,Version=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_EMI_SPEECH_INFO": {
+ "format": "[SPC][SPE] Cehck EMI Speech Info Structure, State=%x,param_usip_index = %x, param_usip_len = %x, param_shm_valid=%x,param_path=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_SPEECH_PAR_HEADER_FORMAT": {
+ "apiType": "index",
+ "format": "[SPC][SPE]Ceheck speech psr. header format,Data_Header=%x\u0014,Network=%x",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_EMI_COMMON_PAR": {
+ "format": "[SPC][SPE]Check EMI Par. Common par : 0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_EMI_DBG_PAR": {
+ "format": "[SPC][SPE]Check EMI Par. DBG par : 0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_NB_MODE_PAR": {
+ "format": "[SPC][SPE]Check NB mode par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_NB_FIR_IN_PAR": {
+ "format": "[SPC][SPE]Check NB FIR in par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_NB_FIR_OUT_PAR": {
+ "format": "[SPC][SPE]Check NB FIR out par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_NB_IIR_IN_PAR": {
+ "format": "[SPC][SPE]Check NB IIR in par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_NB_IIR_OUT_PAR": {
+ "format": "[SPC][SPE]Check NB IIR out par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_NB_MIC1_IIR_PAR": {
+ "format": "[SPC][SPE]Check NB MIC1 IIR par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_NB_MIC2_IIR_PAR": {
+ "format": "[SPC][SPE]Check NB MIC2 IIRpar [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_WB_MODE_PAR": {
+ "format": "[SPC][SPE]Check WB mode par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_WB_FIR_IN_PAR": {
+ "format": "[SPC][SPE]Check WB FIR in par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_WB_FIR_OUT_PAR": {
+ "format": "[SPC][SPE]Check WB FIR out par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_WB_IIR_IN_PAR": {
+ "format": "[SPC][SPE]Check WB IIR in par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_WB_IIR_OUT_PAR": {
+ "format": "[SPC][SPE]Check WB IIR out par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_WB_MIC1_IIR_PAR": {
+ "format": "[SPC][SPE]Check WB MIC1 IIR par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_WB_MIC2_IIR_PAR": {
+ "format": "[SPC][SPE]Check WB MIC2 IIRpar [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_SWB_MODE_PAR": {
+ "format": "[SPC][SPE]Check SWB mode par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_SWB_FIR_IN_PAR": {
+ "format": "[SPC][SPE]Check SWB FIR in par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_SWB_FIR_OUT_PAR": {
+ "format": "[SPC][SPE]Check SWB FIR out par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_SWB_IIR_IN_PAR": {
+ "format": "[SPC][SPE]Check SWB IIR in par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_SWB_IIR_OUT_PAR": {
+ "format": "[SPC][SPE]Check SWB IIR out par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_SWB_MIC1_IIR_PAR": {
+ "format": "[SPC][SPE]Check SWB MIC1 IIR par [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_CHECK_SWB_MIC2_IIR_PAR": {
+ "format": "[SPC][SPE]Check SWB MIC2 IIRpar [%x]: 0x%x,0x%x,0x%x,0x%x,0x%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPE_ASSERT_CHECK": {
+ "format": "[SPC][SPE]ASSERT!!, Par0:0x%x,Par1:0x%x,Par3:0x%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_CUST_DUMP_DROP": {
+ "apiType": "index",
+ "format": "[SPC][cust dump]drop a frame of dump",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "SPE_DSP_CHECK_NB_FIR_PAR": {
+ "format": "[SPE]Check FIR NB IN/OUT par, FIR NB IN[0]= 0x%x,[1]= 0x%x, FIR OUT PAR[0]=0x%x,[1]= 0x%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPE_DSP_CHECK_WB_FIR_PAR": {
+ "format": "[SPE]Check FIR WB IN/OUT par, FIR WB IN[0]= 0x%x,[1]= 0x%x, FIR OUT PAR[0]=0x%x,[1]= 0x%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPE_DSP_CHECK_SWB_FIR_PAR": {
+ "format": "[SPE]Check FIR SWB IN/OUT par, FIR SWB IN[0]= 0x%x,[1]= 0x%x, FIR OUT PAR[0]=0x%x,[1]= 0x%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DTMF_DSP_PLAYOFF_1": {
+ "format": "[TONEDRV][dtmf_dsp_PlayOff] 1",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DTMF_DSP_PLAYOFF_2": {
+ "format": "[TONEDRV][dtmf_dsp_PlayOff] 2",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DTMF_DSP_PLAYOFF_ENTER": {
+ "format": "[TONEDRV][dtmf_dsp_PlayOff] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DTMF_DSP_PLAYOFF_LEAVE": {
+ "format": "[TONEDRV][dtmf_dsp_PlayOff] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DTMF_DSP_PLAYON_1": {
+ "format": "[TONEDRV][dtmf_dsp_PlayOn] 1",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DTMF_DSP_PLAYON_2": {
+ "format": "[TONEDRV][dtmf_dsp_PlayOn] 2",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DTMF_DSP_PLAYON_ENTER": {
+ "format": "[TONEDRV][dtmf_dsp_PlayOn] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DTMF_DSP_PLAYON_LEAVE": {
+ "format": "[TONEDRV][dtmf_dsp_PlayOn] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DTMF_DSP_PLAY_ENTER": {
+ "format": "[TONEDRV][DTMF_DSP_Play] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DTMF_DSP_PLAY_LEAVE": {
+ "format": "[TONEDRV][DTMF_DSP_Play] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DTMF_DSP_START_ENTER": {
+ "format": "[TONEDRV][dtmf_dsp_Start] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DTMF_DSP_START_LEAVE": {
+ "format": "[TONEDRV][dtmf_dsp_Start] Leave",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "TONESTOP_FLUSHQUEUE1": {
+ "format": "[TONE]toneStop_FlushQueue_1 %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "TONESTOP_FLUSHQUEUE2": {
+ "format": "[TONE]toneStop_FlushQueue_2 %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "TONESTOP1": {
+ "format": "[TONE]toneStop1 return",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "TONESTOP2": {
+ "format": "[TONE]toneStop2 %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "TONEMUTE": {
+ "format": "[TONE]toneMute %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "TONEPLAY": {
+ "format": "[TONE]TONE_Play[%d]",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "TONESTOP": {
+ "format": "[TONE]TONE_Stop",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "TONESTOPANDWAIT1": {
+ "format": "[TONE]TONE_StopAndWait_1",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "TONESTOPANDWAIT2": {
+ "format": "[TONE]TONE_StopAndWait_2",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "KTSTOPFLUSHQUEUE1": {
+ "format": "[KT]ktStop_FlushQueue_1 %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "KTSTOPFLUSHQUEUE2": {
+ "format": "[KT]ktStop_FlushQueue_2 %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "KTSTOP1": {
+ "format": "[KT]ktStop_1 return",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "KTSTOP2": {
+ "format": "[KT]ktStop_2 %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "KTPLAY": {
+ "format": "[KT]KT_Play[%d]",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "KTSTOP": {
+ "format": "[KT]KT_Stop",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "KTSTOPANDWAIT1": {
+ "format": "[KT]KT_StopAndWait_1",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "KTSTOPANDWAIT2": {
+ "format": "[KT]KT_StopAndWait_2",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_READ_BYTE": {
+ "format": "Read %d bytes from media buffer",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_MD2G_PWR_CTRL": {
+ "format": "MD2G PWR CTRL, audioid= %d, flag = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_MD2G_PWR_CTRL_DONE": {
+ "format": "MD2G PWR CTRL DONE, audioid= %d, flag = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_SETFLAG_A": {
+ "format": "[AUDMD2G] L1Audio_SetFlag , audioid= %d, dspUser = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_CLEARFLAG_A": {
+ "format": "[AUDMD2G] L1Audio_ClearFlag, audioid= %d, dspUser = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_SETFLAG_MD2G_A": {
+ "format": "[AUDMD2G] L1Audio_SetFlag_MD2G , audioid= %d, dspUser = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_CLEARFLAG_MD2G_A": {
+ "format": "[AUDMD2G] L1Audio_ClearFlag_MD2G, audioid= %d, dspUser = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_SETOPENDSP_FLAG": {
+ "apiType": "index",
+ "format": "[SETOPENDSP]flag=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_PHONE_CALL": {
+ "apiType": "index",
+ "format": "[PHONECALL]pos=%d, %d, %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MODE_VALUE": {
+ "apiType": "index",
+ "format": "[PHONECALL]param value: m0=%d, m1=%d, m2=%d, m3=%d, m4=%d, m5=%d, m6=%d, m7=%d, m8=%d, m9=%d, m10=%d, m11=%d, m12=%d, m13=%d, m14=%d, m15=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_COMMON_PARAM_VALUE": {
+ "apiType": "index",
+ "format": "[PHONECALL]Common Param value: c0=%d, c1=%d, c2=%d, c3=%d, c4=%d, c5=%d, c6=%d, c7=%d, c8=%d, c9=%d, c10=%d, c11=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_DEV_MODE_SETTING": {
+ "apiType": "index",
+ "format": "[SP_devInfo] before=%d, after=%d, beforeSr=%d, aferSr=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_EXT_DEV_SETTING": {
+ "apiType": "index",
+ "format": "[SP_extDevInfo] dev=%d, extDev=%d, echoRefDelay=%d, micDelay=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_SPEECH_ENHANCEMENT": {
+ "format": "L1SP turn on speech enhancement flag=0x%x, m0=%d, m1=%d, c0=%d, c1=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_SET_MIC_VOL": {
+ "format": "L1SP Set Mic Vol %d, sph_par %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_ADAPT_MIC_VOL": {
+ "format": "L1SP Adapt Mic Vol %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_INC_SPK_VOL": {
+ "format": "L1SP DSP Inc Spk Vol to %d, report %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_L4C_SEND_CODEC": {
+ "apiType": "index",
+ "format": "L1SP L4C Send Codec codec=%x l4c_codec=%x pre_l4c_codec=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_L4C_SEND_CODEC_SKIP": {
+ "apiType": "index",
+ "format": "L1SP L4C Send Codec_Skip codec=%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_L4C_SEND_CODEC_SKIP2": {
+ "apiType": "index",
+ "format": "L1SP L4C Send Codec_Skip without SpeechOn ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_L4C_SEND_CODEC_SKIP3": {
+ "apiType": "index",
+ "format": "L1SP L4C Send Codec_Skip pre_l4c_codec=%x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_L4C_EVENT": {
+ "apiType": "index",
+ "format": "L1SP L4C Event %d mode=%d pre_mode=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_CONTROL_STATUS": {
+ "apiType": "index",
+ "format": "L1SP MuteControl(%x) apULmute=%x apDLmute=%x codec_mute=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_NOTIFY_NETWORK_STATUS": {
+ "apiType": "index",
+ "format": "[L1SP]l1sp_notify_network_status %d ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP_M2M_HANDLER": {
+ "apiType": "index",
+ "format": "[L1SP]SP_M2M_HANDLER %d ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_EXCEPTION": {
+ "format": "[DATACARD]Expection %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_OPEN_PORT": {
+ "format": "[DATACARD]mode=%d port %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_GET_DATA": {
+ "format": "[DATACARD]Audl Get %d Bytes from mode=%d, ori req %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_PUT_DATA": {
+ "format": "[DATACARD]Audl Put %d Bytes to mode=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_BUFFER_IDX": {
+ "format": "[DATACARD]ss_buf_idx %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_PLUGIN": {
+ "format": "[DATACARD]PlugIn mode=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_STRM_ENABLE": {
+ "format": "[DATACARD]Enable mode=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_STRM_DISABLE": {
+ "format": "[DATACARD]Disable mode=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_ENTER_REQUEST_EXCHANGE_DL_DATA": {
+ "format": "[DataCard]##l1audio Enter MSG_SAC2L1AUDIO_SPEECH_DATACARD_REQUEST_EXCHANGE_DL_DATA is_strmOn=%d dl_ready=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_ENTER_REQUEST_EXCHANGE_UL_DATA": {
+ "format": "[DataCard]##l1audio Enter MSG_SAC2L1AUDIO_SPEECH_DATACARD_REQUEST_EXCHANGE_UL_DATA is_strmOn=%d ul_ready=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_UL_HAS_NO_DATA": {
+ "format": "[DataCard]##l1audio UL has no data",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_UL_HAS_DATA": {
+ "format": "[DataCard]##l1audio UL has data",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_LEAVE_REQUEST_EXCHANGE_UL_DATA": {
+ "format": "[DataCard]##l1audio Leave MSG_SAC2L1AUDIO_SPEECH_DATACARD_REQUEST_EXCHANGE_UL_DATA",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_ENTER_STRMONHANDLER": {
+ "format": "[DataCard]##spStrmOnHandler",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_ENTER_STRMOFFHANDLER": {
+ "format": "[DataCard]##spStrmOffHandler",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_ENTER_GETDATA1": {
+ "format": "[DataCard]##Enter GetData1 is_strmOn=%d ul_ready=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_ENTER_GETDATA2": {
+ "format": "[DataCard]##Enter GetData2",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_ENTER_PUTDATA1": {
+ "format": "[DataCard]##Enter PutData1 is_strmOn=%d dl_ready=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_GET_SUFFICIENT_DATA": {
+ "format": "[DataCard]##GetData Data sufficient",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_GET_INSUFFICIENT_DATA": {
+ "format": "[DataCard]##GetData Data Insufficient",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DACA_LEAVE_GETDATA": {
+ "format": "[DataCard]##Leave GetData",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_USELESS_SET": {
+ "format": "SPH[ENH] %d, %d, %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_ILLEGAL_SPC_APP_BEHAVIOR_CHECK": {
+ "format": "[SPC] Illegle app control to turn on %MMSG_SPC_APP_T when (%d)%MMSG_SPC_APP_T, gSpc.spcAppUsage=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_ILLEGAL_SPC_APP_BEHAVIOR": {
+ "format": "[SPC] Illegle app control with (%d)%MMSG_SPC_APP_T, to On/Off=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_APP_DATA_SEND_FAIL": {
+ "format": "[SPC] (%d)%MMSG_SPC_APP_T app send data fail at pos %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_M2A_DROP": {
+ "format": "[SPC] Drop app (%d)%MMSG_SPC_APP_T data send, %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_INVALID_MSG": {
+ "apiType": "index",
+ "format": "[SPC]INVALID CCCI A2M MSG (%08X)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_M2A_DONE": {
+ "format": "[SPC] CCCI A2M %x done",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPEECH_ON": {
+ "format": "Spc_Speech_On %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPH_ON_MISMATCH_PAYLOAD_SIZE": {
+ "format": "Spc_Speech_On, ap&md payload size mismatch: apLen=%d, mdHeaderLen=%d, mdStructLen=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPEECH_ON_PAYLOAD": {
+ "apiType": "index",
+ "format": "Spc_Speech_On, app:%d, bt:%d, sr:%d, openDsp:%d, paramPath:%d, shmValid:%d, paramSize:%d, idx:%d, extDevInfo:%d, muteMask=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPEECH_OFF": {
+ "format": "Spc_Speech_Off",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SPEECH_ON_DTMF_SUPPORT": {
+ "format": "Spc_Speech_On, dtmf support:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SET_DROP_UL_MUTE": {
+ "apiType": "index",
+ "format": "spc_gain_UlMuteSet mute is not apply",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "SPC_SET_DROP_DL_MUTE": {
+ "apiType": "index",
+ "format": "spc_gain_DlMuteSet mute is not apply",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "SPC_SET_DROP_UL_SOURCE_MUTE": {
+ "apiType": "index",
+ "format": "spc_gain_UlSourceMuteSet mute is not apply",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "SPC_SET_DROP_DL_CODEC_MUTE": {
+ "apiType": "index",
+ "format": "spc_gain_DlMuteCodecSet mute is not apply",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "SPC_SET_DROP_DL_MUTE_WITH_POS": {
+ "apiType": "index",
+ "format": "spc_gain_DlMuteSet_withPos mute is not apply",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "SPC_EM_DEFAULT_INIT": {
+ "apiType": "index",
+ "format": "spc_EmInit, default used common=%d, wb=%d, dmnr=%d, lspkDmnr=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_DROP_SET": {
+ "apiType": "index",
+ "format": "[SPC] drop seting 0x%08X [(0x%04X)%MAUD_CCCI_MSG_T], data16 = 0x%04X, data32 = 0x%08X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_EPOF_NOTIFY": {
+ "apiType": "index",
+ "format": "[SPC] Receive EPOF from L4C, application usage = %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_CODEC_NOTIFY_IN": {
+ "apiType": "index",
+ "format": "[SPC][Codec] enter spc_codecInfoNotify. orgCodec=%x, newCodec=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_CODEC_NOTIFY_TO_AP": {
+ "apiType": "index",
+ "format": "[SPC][Codec] send AP Info codecInfo=\\\"%s\\\", codecOp=\\\"%s\\\"",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_CODEC_NOTIFY_UNKNOW": {
+ "apiType": "index",
+ "format": "[SPC][Codec] Unknow codec = %x, rr =%x, pos=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "SPC_AC_LOOPBACK_INFO": {
+ "apiType": "index",
+ "format": "[SPC AC Loopback]info enable=%d, flag=0x%x, delay=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_AC_LOOPBACK_FROM_MIC": {
+ "apiType": "index",
+ "format": "[SPC AC Loopback]FromMic %d %d %d %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_AC_LOOPBACK_SKIP_MIC": {
+ "apiType": "index",
+ "format": "[SPC AC Loopback]Skip FromMic",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_AC_LOOPBACK_TO_SE": {
+ "apiType": "index",
+ "format": "[SPC AC Loopback]ToSE %d %d %d %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_AC_LOOPBACK_FILL_SE": {
+ "apiType": "index",
+ "format": "[SPC AC Loopback]FillSE",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_AC_LOOPBACK_FROM_SD": {
+ "apiType": "index",
+ "format": "[SPC AC Loopback]FromSD %d %d %d %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_AC_LOOPBACK_SKIP_SD": {
+ "apiType": "index",
+ "format": "[SPC AC Loopback]Skip FromSD",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_AC_LOOPBACK_TO_SPK": {
+ "apiType": "index",
+ "format": "[SPC AC Loopback]ToSPK %d %d %d %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_AC_LOOPBACK_HISR_UL": {
+ "apiType": "index",
+ "format": "[SPC AC Loopback]Extcodec_hisr_dl",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_AC_LOOPBACK_HISR_DL": {
+ "apiType": "index",
+ "format": "[SPC AC Loopback]Extcodec_hisr_ul",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_AC_LOOPBACK_HISR_SKIP": {
+ "apiType": "index",
+ "format": "[SPC AC Loopback]Extcodec stop hisr skip",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_AC_LOOPBACK_FILL_SPK": {
+ "apiType": "index",
+ "format": "[SPC AC Loopback]FillSpk",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_AC_LOOPBACK_UL_DL_INDEX": {
+ "apiType": "index",
+ "format": "[SPC AC Loopback]Dw, Dr, Uw, Ur %d %d %d %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_NOTIFY_NETWORK_STATUS_INFO": {
+ "apiType": "index",
+ "format": "[SPC_NOTIFY_NETWORK_STATUS]tmp:%x isWB:%x RAT:%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_SPE_CTRL_UPDATE": {
+ "format": "L1SP Set Enhancement ctrol update,ENH ctrl=0x%x, enhPath=0x%x, Network info=0x%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_SET_ENHANCEMENT_SUB_MASK": {
+ "format": "L1SP Set Enhancement submask[%d]=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_ENHANCE_ON_OFF": {
+ "format": "[SPE]L1SP turn enhance =%d, with state=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPE_AGC_CONFIG_INFO": {
+ "format": "[SPE]AGC turnOff/On/Other=%d, gain=0x%x, isEchoRefOn=%d, micInfo=0x%x, dspParam=0x%x, enhMasEchoRef=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_SET_ENH_FIR": {
+ "format": "SPH[ENH] enhancement mode %d, enhance Index %d, inFIR Index %d, outFIR Index %d, updateMask %d to value %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_CHANGE_ENH_MODE": {
+ "format": "SPH[ENH] ChangeSpeechMode premode=%d, aftermode=%d, currentMode=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_WRITE_FIR": {
+ "format": "SPH[ENH] Write FIR isWB=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_SET_MIC_GAIN_CONTROL": {
+ "format": "[MIC GAIN CONTROL]L1SP set mic gain control %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_ADAPT_MIC_GAIN_CONTROL": {
+ "format": "[MIC GAIN CONTROL]L1SP adapt mic gain control %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_UL_CODEC_CONTROL": {
+ "apiType": "index",
+ "format": "[MUTE] AM_Mute_UL_Codec_Speech: %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_UL_POS_EN_CONTROL": {
+ "format": "[MUTE] AM_Mute_UL_POS_EN_Speech: %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_DL_TRAFFIC_CONTROL": {
+ "apiType": "index",
+ "format": "[MUTE] AM_Mute_DL_Speech_Traffic: %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_DL_8K_CONTROL": {
+ "format": "[MUTE] AM_Mute_DL_8k_Speech: %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_UL_ENH_RESULT_CONTROL": {
+ "apiType": "index",
+ "format": "[MUTE] mute dsp uplink enhancement result(inAM): %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_UL_SOURCE_CONTROL": {
+ "apiType": "index",
+ "format": "[MUTE] mute dsp uplink source(inAM): %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_RAMP_CONTROL": {
+ "apiType": "index",
+ "format": "[MUTE RAMP] pos=%d, mute Point: %d, State: %d, Mute: %d, am state: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_RAMP_QUEUE_FULL": {
+ "apiType": "index",
+ "format": "[MUTE RAMP] RAMP queue is full",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_RAMP_QUEUE_EMPTY": {
+ "apiType": "index",
+ "format": "[MUTE RAMP] RAMP queue is empty",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_RAMP_DONE_STATE": {
+ "apiType": "index",
+ "format": "[MUTE RAMP] mute_state %d, rampPoint %d am.state %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_RAMP_DELAY_MUTE": {
+ "apiType": "index",
+ "format": "[MUTE RAMP] delay mute, may pop",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_RAMP_DELAY_UNMUTE": {
+ "apiType": "index",
+ "format": "[MUTE RAMP] delay mute, may pop",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_RAMP_FORCE_MUTE": {
+ "apiType": "index",
+ "format": "[MUTE RAMP] force mute, may pop",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1SP_MUTE_DSP_RAMP_FORCE_UNMUTE": {
+ "apiType": "index",
+ "format": "[MUTE RAMP] force unmute, may pop",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_MUTE_DSP_RAMP_ACK_POINT": {
+ "apiType": "index",
+ "format": "[MUTE RAMP] spc RampWaitAck points %x, ramp point %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_MUTE_DSP_RAMP_NO_ACK": {
+ "apiType": "index",
+ "format": "[MUTE RAMP] No need to send ack",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_UL_HISR_SKIP": {
+ "apiType": "index",
+ "format": "SP3G UL_HISR SKIP %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_CODEC_READY_SKIP": {
+ "format": "SP3G Skip Callback of Codec_Ready %d %d %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_CODEC_CLOSE_SKIP": {
+ "format": "SP3G Skip Callback of Codec_Close %d %d %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_CODEC_READY_OK": {
+ "format": "SP3G OK Callback of Codec_Ready %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_CODEC_CLOSE_OK": {
+ "format": "SP3G OK Callback of Codec_Close %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_DL_PUT_SPEECH_FRAME_DEBUG": {
+ "format": "SP3G DL return %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_UL_PUT_SPEECH_FRAME_DEBUG": {
+ "format": "SP3G UL return %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1D_RESYNC_UPDATE": {
+ "apiType": "index",
+ "format": "[SP3G L1D Resync]Update %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1D_RESYNC_RESET": {
+ "format": "[SP3G L1D Resync]Reset",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_L1D_Resync_Skip": {
+ "apiType": "index",
+ "format": "[SP3G L1D Resync] skip",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_L1D_Resync": {
+ "apiType": "index",
+ "format": "[SP3G L1D Resync] %d offeset=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_DEBUG_UL_SETFRAMETYPE": {
+ "format": "[DEBUG]SP3G_UL_SetFrameType%d %d %d ftype=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_DEBUG_UL_GETSPEECHFRAME": {
+ "apiType": "index",
+ "format": "Debug_UL_GetSpeechFrame %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_SYNC": {
+ "format": "SP3G_HISR 3g_sync=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_DEBUG_UL_BUFF": {
+ "apiType": "index",
+ "format": "#debug_ul_buff(6) %d ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_RAB_EST_0": {
+ "format": "[PhoneCall3G] SP3G_Rab_Est state=%d ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_RAB_DEEST_0": {
+ "format": "[PhoneCall3G] SP3G_Rab_Deest state=%d ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_RAB_EST": {
+ "format": "SP3G CSR notify RAB establish",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_RAB_DEEST": {
+ "format": "SP3G CSR notify RAB De-establish",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_TX_SID_FIRST": {
+ "format": "SP3G_HISR TX SID FISRT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_RX_FORCE_NO_DATA_WHEN_CHANGE_BAND": {
+ "format": "SP3G_HISR RX Band Change,force speech frame to NO_DATA",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_TX_SID_UPDATE": {
+ "format": "SP3G_HISR TX SID UPDATE",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_RX_SID_FIRST": {
+ "format": "SP3G_HISR RX SID FISRT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_RX_SID_UPDATE": {
+ "format": "SP3G_HISR RX SID UPDATE",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_RX_NO_DATA": {
+ "format": "SP3G_HISR RX GET NO DATA FRAME",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_DTX_NO_DATA": {
+ "format": "SP3G_HISR INSERT NO DATA",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_BUFFER_STATUS": {
+ "format": "SP3G_HISR DL r = %d, w = %d, num = %d, 1st byte = %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_UL_DELAY": {
+ "format": "SP3G UL delay %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_REQUEST": {
+ "format": "SP3G Request",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_REQUEST_UL_FRAME_TYPE": {
+ "apiType": "index",
+ "format": "SP3G set UL frame type %Mem_csr_SpeechCodecType",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_UL_GET_SPEECH_FRAME": {
+ "apiType": "index",
+ "format": "SP3G UL GetSpFrame",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_UL_GET_SPEECH_FRAME_SKIP": {
+ "apiType": "index",
+ "format": "SP3G UL GetSpFrame %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_DL_BUFFER_FINISH": {
+ "format": "SP3G DL Buffering finished",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_DL_PUT_SPEECH_FRAME": {
+ "format": "SP3G DL sub_flow %d, frame_type %Mem_csr_SpeechCodecType, crc_status %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_LOG_L1_INFO": {
+ "format": "SP3G CFN=%x, l1info=%x, crc = %x, s_val =%x, %x, %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_L1A_UPDATE_INFO": {
+ "apiType": "index",
+ "format": "SP3G Update Info bitmap %d, val %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_INVALID_UL_CODEC_MODE": {
+ "apiType": "index",
+ "format": "SP3G invalid UL codec mode %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_SET_DTX": {
+ "format": "SP3G Set DTX %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_UL_BIT_TRUE_DSP_F8": {
+ "apiType": "index",
+ "format": "SP3GHISR UL DSP len %d, %hx %hx %hx %hx %hx %hx %hx %hx",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_UL_BIT_TRUE_DSP_N8": {
+ "apiType": "index",
+ "format": "SP3GHISR UL DSP %hx %hx %hx %hx %hx %hx %hx %hx",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_TX_SPEECH_GOOD": {
+ "apiType": "index",
+ "format": "SP3G_HISR UL is TX_SPEECH_GOOD",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_UL_NO_DATA": {
+ "apiType": "index",
+ "format": "SP3G_HISR UL is NO DATA",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_UL_BIT_TRUE_F8": {
+ "apiType": "index",
+ "format": "SP3G_HISR=%d UL Type %Mem_csr_SpeechCodecType, Frm %hx %hx %hx %hx %hx %hx %hx %hx",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_UL_BIT_TRUE_N13": {
+ "apiType": "index",
+ "format": "SP3G UL %hx %hx %hx %hx %hx %hx %hx %hx %hx %hx %hx %hx %hx",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_UL_BUFFER": {
+ "apiType": "index",
+ "format": "SP3GVT UL cnt=%d,r=%d,w=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_DL_BIT_TRUE": {
+ "apiType": "index",
+ "format": "SP3G_HISR DL Type %d, Frm %x %x %x %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_DL_BIT_TRUE_TASK": {
+ "apiType": "index",
+ "format": "SP3G DL Frm %x %x %x %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_DL_BIT_TRUE_DSP_F8": {
+ "apiType": "index",
+ "format": "SP3GHISR DL DSP len %d, %hx %hx %hx %hx %hx %hx %hx %hx",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_DL_BIT_TRUE_DSP_N8": {
+ "apiType": "index",
+ "format": "SP3GHISR DL DSP %hx %hx %hx %hx %hx %hx %hx %hx",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3GVT_FAKE_NODATA": {
+ "format": "SP3GVT Fake NoData",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_DL_TIMING": {
+ "apiType": "index",
+ "format": "SP3G DL Timing %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_UL_TIMING": {
+ "apiType": "index",
+ "format": "SP3G UL Timing %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_D2M_UL_TIMING_MODIFY": {
+ "format": "SP3G D2M UL Timing MODIFY: LISR_64us=%x, HISR_64us=%x, diff_us=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_D2M_UL_TIMING": {
+ "apiType": "index",
+ "format": "SP3G D2M UL Timing %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_D2M_DL_TIMING": {
+ "apiType": "index",
+ "format": "SP3G D2M DL Timing %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_FORCE_NODATA_WHEN_RESYNC": {
+ "apiType": "index",
+ "format": "SP3G force one AMR_NO_DATA frame before resync",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_UL_DSP_NOT_READY_WARNING_AND_FILL_SILENCE": {
+ "apiType": "index",
+ "format": "SP3G_HISR UL NOT READY, Force Using Silence Pattern",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_FOUND_UL_SYNC_TIMING_ERROR": {
+ "apiType": "index",
+ "format": "SP3G found UL resync timing error",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_FOUND_DL_SYNC_TIMING_ERROR": {
+ "apiType": "index",
+ "format": "SP3G found DL resync timing error",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_SKIP_UL_REFRESH": {
+ "apiType": "index",
+ "format": "SP3G SKIP UL REFRESH ul_report=%d ul_codec_mode=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_HSPA_UL_GET_SPEECH_FRAME": {
+ "apiType": "index",
+ "format": "SP3GHSPA UL GetSpFrame type %Mem_csr_SpeechCodecType, len %d, %hx %hx",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_HSPA_DL_PUT_SPEECH_FRAME": {
+ "format": "SP3GHSPA DL PutSpFrame type %Mem_csr_SpeechCodecType, CFN %d, crc %d, %hx %hx",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3G_HSPA_DL_MAX_CS_DELAY": {
+ "format": "SP3GHSPA set Max CS delay %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3GVT_UL_GET_SPEECH_FRAME": {
+ "format": "SP3GVT UL GetSpFrm, CurFrmCount %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3GVT_UL_FRAME_INFO": {
+ "format": "SP3GVT UL Frm len %d, first 3 byte %x %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3GVT_DL_FRAME_INFO": {
+ "format": "SP3GVT DL Frm len %d, first 3 byte %x %x %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3GVT_DL_FRAME_ERROR": {
+ "format": "SP3GVT DL FrmType Err Warning %d !!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SP3GVT_SET_DELAY": {
+ "format": "SP3GVT SetDelay %d ms, about %d frame",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_SENDVMDATA_INFO": {
+ "apiType": "index",
+ "format": "vm prints: %x, %d, %x, %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_SP3G_VM_L1T": {
+ "format": "[VMREC] SP3G VM L1T %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_REC_DEBUG_INFO": {
+ "apiType": "index",
+ "format": "[VMREC] VM_DEBUG_INFO = %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_REC_HISR_VM_DATA_LOST": {
+ "apiType": "index",
+ "format": "[VMREC] hisr data lost with count=%d, pos = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_REC_HISR_PCM_DATA_LOST": {
+ "apiType": "index",
+ "format": "[VMREC] some vm's pcm data is missing, pos = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_HISR_LOCK_NOT_AVALIABLE": {
+ "apiType": "index",
+ "format": "[VMREC] vm lcok is not avaiable in pos = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_GFORM_INFO1": {
+ "format": "[vmFormatter_gseries] vm.control_1=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_GFORM_INFO2": {
+ "format": "[vmFormatter_gseries] vm.control_2=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_GFORM_ULSTREAM_ENTER": {
+ "format": "[vmStoreGCodecULStream] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_GFORM_ULSTREAM_INFO1": {
+ "format": "[vmStoreGCodecULStream] u32TotalBufferSize=%d, vmGCodecULBufWritePos=%d, u16Stream2byteSize=%d, u16StreamSize=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_GFORM_ULSTREAM_INFO2": {
+ "format": "[vmStoreGCodecULStream] data 2byte size is large than available buffer 2byte size, data 2byte size=%d, available buffer 2byte size=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_GFORM_ULSTREAM_INFO3": {
+ "format": "[vmStoreGCodecULStream] data 2byte size is large than total buffer 2byte size, data 2byte size=%d, total buffer 2byte size=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_GFORM_ULSTREAM_EXIT": {
+ "format": "[vmStoreGCodecULStream] Exit",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_GFORM_DLSTREAM_ENTER": {
+ "format": "[vmStoreGCodecDLStream] Enter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_GFORM_DLSTREAM_INFO1": {
+ "format": "[vmStoreGCodecDLStream] u32TotalBufferSize=%d, vmGCodecDLBufWritePos=%d, u16Stream2byteSize=%d, u16StreamSize=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_GFORM_DLSTREAM_INFO2": {
+ "format": "[vmStoreGCodecDLStream] data 2byte size is large than available buffer 2byte size, data 2byte size=%d, available buffer 2byte size=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_GFORM_DLSTREAM_INFO3": {
+ "format": "[vmStoreGCodecDLStream] data 2byte size is large than total buffer 2byte size, data 2byte size=%d, total buffer 2byte size=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_GFORM_DLSTREAM_EXIT": {
+ "format": "[vmStoreGCodecDLStream] Exit",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_VMRECORDHISR_G_CODEC": {
+ "format": "[vmrec]vmRecordHisr record 4G G-serial codec",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_TCHPCMHISR_G_CODEC": {
+ "format": "[vmrec]vmTchPcmRecordHisr record 4G G-serial codec",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "VM_TCHRECORDHISR_G_CODEC": {
+ "format": "[vmrec]vmTchRecordHisr record 4G G-serial codec",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_TONE_LOOPBACK_REC_CALLBACK_MODE": {
+ "format": "TONE_LOOPBACK_REC: callback Mode=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_TONE_LOOPBACK_REC_MODE": {
+ "format": "TONE_LOOPBACK_REC: Mode=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPCIO_INVALID_MSG": {
+ "apiType": "index",
+ "format": "INVALID SPCIO MSG ID(%08X), data (%08X) with reserved (%08X)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPCIO_INVALID_MSG_BEFORE_QUEUE_READY": {
+ "apiType": "index",
+ "format": "Before queue ready, INVALID SPCIO MSG ID(%08X), data (%08X) with reserved (%08X)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_ECALL_CHECK_TX_CTRL_HEADER": {
+ "apiType": "index",
+ "format": "[eCall]Check eCall TX Ctrl Header : %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_TX_CTRL_STATE": {
+ "apiType": "index",
+ "format": "[eCall] eCall_TX_CTRL_State, Header = 0xAA, [%x]=%d,[%x]=%d,[%x]=%d,[%x]=%d,[%x]=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_TX_CTRL_DATA": {
+ "apiType": "index",
+ "format": "[eCall] eCall_TX_CTRL_dlDate, Header =0xBB,[%x]=%d,[%x]=%d,[%x]=%d,[%x]=%d,[%x]=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_TX_CTRL_METRIC": {
+ "apiType": "index",
+ "format": "[eCall] eCall_TX_CTRL_dlMetric, Header =0xCC,[%x]=%d,[%x]=%d,[%x]=%d,[%x]=%d,[%x]=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_RX_CTRL_STATE": {
+ "apiType": "index",
+ "format": "[eCall] eCall_RX_CTRL_State, Header = 0xDD, [%x]=%d,[%x]=%d,[%x]=%d,[%x]=%d,[%x]=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_RX_CTRL_DATA": {
+ "apiType": "index",
+ "format": "[eCall] eCall_RX_CTRL_dlData, Header =0xEE,[%x]=%d,[%x]=%d,[%x]=%d,[%x]=%d,[%x]=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_RX_CTRL_METRIC": {
+ "apiType": "index",
+ "format": "[eCall] eCall_RX_CTRL_dlMetric, Header =0xFF,[%x]=%d,[%x]=%d,[%x]=%d,[%x]=%d,[%x]=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_SEND_PAR_CTRL_SWITCH": {
+ "apiType": "index",
+ "format": "[eCall]Set_eCall_Par_Crtl_Switch=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPC_SEND_DATA_TO_AP_FAIL": {
+ "apiType": "index",
+ "format": "[eCall] Send Enc Data to AP Fail!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_MSD_RV_SENT": {
+ "apiType": "index",
+ "format": "[eCall] MSD RV%hd has been sent",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_RX_RECV_LL_DATA": {
+ "apiType": "index",
+ "format": "[eCall] received LL DL-Data",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_RX_RECV_HL_DATA": {
+ "apiType": "index",
+ "format": "[eCall] received HL DL-Data",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_DEMOD_INFO": {
+ "apiType": "index",
+ "format": "[eCall] msg = %s, metric = %d, maxCorr = %d, runnerup = %d, IVS_THRESHOLD = %u",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_DEMOD_UNRELIALBE1": {
+ "apiType": "index",
+ "format": "[eCall] msg is unreliable: maxCorr < IVS_THRESHOLD",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_DEMOD_UNRELIALBE2": {
+ "apiType": "index",
+ "format": "[eCall] msg is unreliable: (maxCorr-runnerup)/(maxCorr/100) <= 33",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_ECALL_HANDSHAKE_INFO_NOTIFY": {
+ "apiType": "index",
+ "format": "[eCall][IVS] eCall Handshake info notify,Header =%x,Data=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_DDLOAD_STATUS_FAIL": {
+ "apiType": "index",
+ "format": "[DDLoad]DSP Status Not Clear",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_DDLOAD_STATUS_SUCCESS": {
+ "apiType": "index",
+ "format": "[DDLoad]DDLoad success",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_DDLOAD_ID": {
+ "apiType": "index",
+ "format": "[DDLoad]DDLoad ID = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_DRV_OPEN": {
+ "format": "[eCall]IVS Driver Open %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_DRV_CLOSE": {
+ "format": "[eCall]IVS Driver Close",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_DRV_PUT_MSD": {
+ "format": "[eCall]IVS Driver PutMSD %d,%d,%d,%d,%d,%d,%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_DRV_MSD_SET": {
+ "format": "[eCall]IVS Driver MSD from %d, msdSet %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_DRV_SEND_START": {
+ "format": "[eCall]IVS Driver SendStart",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_DRV_CATCH_EVENT": {
+ "format": "[eCall]IVS Driver Catch Event %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_DRV_MSD_NOT_SET": {
+ "format": "[eCall]IVS Driver MSD not set, ignore notify",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_DRV_HLACK": {
+ "format": "[eCall]IVS Driver HLACK. Expect %d, Received %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_DRV_ALLOCMEM_NULL": {
+ "format": "[eCall]IVS Driver CallModemIVS->allocMem is NULL",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_DRV_CATCH_EVENT": {
+ "format": "[eCall]PSAP Driver Catch Event %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_DRV_RECEIVE_MSD": {
+ "format": "[eCall]PSAP Driver Received MSD",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_DRV_MSD_DATA": {
+ "format": "[eCall]PSAP MSD %3d %3d %3d %3d %3d %3d %3d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_SENDSTART": {
+ "format": "[eCall]IVS SendStart received from control",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_SENDSTART_IGNORE": {
+ "format": "[eCall]IVS SendStart received from control, ignored",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RX_RESET": {
+ "format": "[eCall]IVS reset receiver",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_TX_RESET": {
+ "apiType": "index",
+ "format": "[eCall]IVS reset transmitter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_TX_RESET_MSD_PROVIDED": {
+ "format": "[eCall]IVS reset transmitter (MSD provided)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_SENDSTART_DUR_MSD_IGNORE": {
+ "format": "[eCall]IVS SendStart during MSD transmission, ignored.",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_SENDING_SEND": {
+ "format": "[eCall]IVS sending SEND",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_FULL_RESET": {
+ "format": "[eCall]IVS full reset (no sync detected)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_IGNORING_HLACK": {
+ "format": "[eCall]IVS ignoring additional HLACK (data: 0x0%X, metric: %3d)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_HLACK_FINISHED": {
+ "format": "[eCall]IVS received HLACK (data: 0x0%X, metric: %3d), finished.",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_HLACK_WAITING": {
+ "format": "[eCall]IVS received HLACK (data: 0x0%X, metric: %3d), waiting...",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_START_LOW_RELIABILITY": {
+ "format": "[eCall]IVS received START !> ignoring message (reliability too low)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_START_TOO_OFTEN": {
+ "format": "[eCall]IVS received START (metric: %3d) too often starting over...",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_START_STARTING": {
+ "format": "[eCall]IVS received START (metric: %3d), starting...",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_FAST_MODULATOR": {
+ "format": "[eCall]IVS fast modulator chosen (NACK count: %d)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_ROBUST_MODULATOR": {
+ "format": "[eCall]IVS robust modulator chosen (NACK count: %d)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_START": {
+ "format": "[eCall]IVS received START (metric: %3d)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_START_AFTER_ACK": {
+ "format": "[eCall]IVS START ... !> assuming previous ACK was wrong",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_START_AFTER_HLACK": {
+ "format": "[eCall]IVS START ... !> assuming previous HLACK was wrong",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_NACK_EXCEPTING_START": {
+ "format": "[eCall]IVS received NACK !> ignoring message (expecting START)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_NACK_LOW_RELIABILITY": {
+ "format": "[eCall]IVS received NACK !> ignoring message (reliability too low)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_NACK_ASSUME_IDLE": {
+ "format": "[eCall]IVS received NACK !> ignoring message (assume IDLE)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_NACK_FIRST_TIME": {
+ "format": "[eCall]IVS received NACK (metric: %3d), first time",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_NACK": {
+ "format": "[eCall]IVS received NACK (metric: %3d)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_NACK_AFTER_ACK": {
+ "format": "[eCall]IVS NACK ... !> assuming previous ACK was wrong",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_NACK_AFTER_HLACK": {
+ "format": "[eCall]IVS NACK ... !> assuming previous HLACK was wrong",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_ACK_EXPECTING_START": {
+ "format": "[eCall]IVS received ACK !> ignoring message (expecting START)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_ACK_RECORDED": {
+ "format": "[eCall]IVS received ACK !> ignoring message (already recorded)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_ACK_LOW_RELIABILITY": {
+ "format": "[eCall]IVS received ACK !> ignoring message (reliability too low)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_ACK_ASSUME_IDLE": {
+ "format": "[eCall]IVS received ACK !> ignoring message (assume IDLE)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_ACK": {
+ "format": "[eCall]IVS received ACK (metric: %3d), ACK recorded, wait for HLACK",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_ACK_WAITING": {
+ "format": "[eCall]IVS received ACK (metric: %3d), waiting...",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_ACK_AFTER_HLACK": {
+ "format": "[eCall]IVS ACK ... !> assuming previous HLACK was wrong",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_IDLE_EXPECTING_START": {
+ "format": "[eCall]IVS received IDLE !> ignoring message (expecting START)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_IDLE_IGNORE": {
+ "format": "[eCall]IVS received IDLE !> ignoring message",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_MODEM_RECEIVED_IDLE_REMAINING": {
+ "format": "[eCall]IVS remaining in IDLE mode",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_SYNC_DETECTED": {
+ "format": "[eCall]sync detected; delay: %+4d; npeaks: %+4d (inverted sync)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_SYNC_DETECTED_REGULAR": {
+ "format": "[eCall]sync detected; delay: %+4d; npeaks: %+4d (regular sync)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_SYNC_MAX_RANGE": {
+ "format": "[eCall]maximum sync checking range is [-480...480] samples",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_SYNC_DETECTE_SLIP": {
+ "format": "[eCall]sync check detects sample slip! [%+1d sample(s)]",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_SYNC_PSAP_MAX_RANGE": {
+ "format": "[eCall][PSAP] maximum sync tracking range is [-240...240] samples",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_SYNC_PSAP_SLIP": {
+ "format": "[eCall][PSAP] sync tracking detects sample slip! [%+1d sample(s)]",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_CONTROL_PORT_UNDEFINE": {
+ "format": "[eCall]control callback: port owner undefined.",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_CONTROL_SYNC_LOCKED": {
+ "format": "[eCall]sync locked, starting control message detection",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_CONTROL_CODEC_INVERSION": {
+ "format": "[eCall]codec inversion detected!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_CONTROL_MESSAGE_IGNORE": {
+ "format": "[eCall]message ignored (bad sync check)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_RECEIVED_SEND_CONTROL": {
+ "format": "[eCall][PSAP] SendStart received from control",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_RECEIVED_SEND_OVER": {
+ "format": "[eCall][PSAP] SendStart received, starting over...",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_RECEIVED_SEND_IGNORE": {
+ "format": "[eCall][PSAP] SendStart received from control, ignored.",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_RECEIVED_HLACK": {
+ "format": "[eCall][PSAP] HLACK data received from control",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_RECEIVED_HLACK_IGNORE": {
+ "format": "[eCall][PSAP] HLACK data received from control, ignored.",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_RESET_RECEIVER": {
+ "format": "[eCall][PSAP] reset receiver",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_RESET_TRANSMITTER": {
+ "format": "[eCall][PSAP] reset transmitter",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_RECEIVED_SEND": {
+ "format": "[eCall][PSAP] received SEND (metric: %3d), initiating START trigger",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_INVERSION_DETECT": {
+ "format": "[eCall][PSAP] codec inversion detected!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_INVERSION_SYNC": {
+ "format": "[eCall][PSAP] codec inversion detected (sync observer)!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_RESTART": {
+ "format": "[eCall][PSAP] restart due to tracking failures!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_CRC_FAIL": {
+ "format": "[eCall][PSAP] CRC failed; rv = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_RECEIVED_MSD": {
+ "format": "[eCall][PSAP] MSD successfully received; redundancy versions: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_SENDING_HLACK": {
+ "format": "[eCall][PSAP] sending HLACK; data: 0x0%X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_SENDING_START": {
+ "format": "[eCall][PSAP] sending START",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_SENDING_NACK": {
+ "format": "[eCall][PSAP] sending NACK",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_SENDING_ACK": {
+ "format": "[eCall][PSAP] sending ACK",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_SENDING_ACK_PEND": {
+ "format": "[eCall][PSAP] sending ACK (HLACK pending)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_FAST_REMAIN_IDLE": {
+ "format": "[eCall][PSAP] remaining in IDLE mode",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_FAST_MODULATION": {
+ "format": "[eCall][PSAP] fast modulator chosen (metric: %d)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_MODEM_ROBUST_MODULATION": {
+ "format": "[eCall][PSAP] robust modulator chosen (metric: %d)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_PCM_UPDATE_PUTTOSE": {
+ "format": "[eCall][PSAP] PCM4WAY_PutToSE (UpdatedUL) read_idx=%d, bufLen=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_PCM_INPUT_LEN": {
+ "format": "[eCall][PSAP] ul_pcm_input_len[%d]=%d, dl_pcm_input_len[%d]=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_PSAP_PCM_UPDATE_UL": {
+ "format": "[eCall][PSAP] eCall_PSAP_ProcessFrame proc_idx=%d, IvsTxState=%d, eCallModemIVS->isUpdateUL[%d]=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_HRT_STATUS": {
+ "format": "[eCall][IVS] HRT status,%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_PCM_UPDATE_PUTTOSE": {
+ "format": "[eCall][IVS] PCM4WAY_PutToSE (UpdatedUL) read_idx=%d, bufLen=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_PCM_INPUT_LEN": {
+ "format": "[eCall][IVS] ul_pcm_input_len[%d]=%d, dl_pcm_input_len[%d]=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ECALL_IVS_PCM_UPDATE_UL": {
+ "format": "[eCall][IVS] eCall_IVS_ProcessFrame proc_idx=%d, IvsTxState=%d, eCallModemIVS->isUpdateUL[%d]=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "RAWPCMREC_HISR_DATA_DROP_DSP": {
+ "apiType": "index",
+ "format": "[rawPcmRec] Drop dsp data due to buffer is in using",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "RAWPCMREC_HISR_DATA_FROM_DSP": {
+ "apiType": "index",
+ "format": "[rawPcmRec] SE buffer = %x, len = %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "RAWPCMREC_GET_MIC_DATA_BUFS": {
+ "apiType": "index",
+ "format": "[rawPcmRec] RawPcmRec_GetMicDataBufs: add=%x, header len=%d, UL data len=%d, DL data len=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "RAWPCMREC_GET_DATA_BUFS": {
+ "apiType": "index",
+ "format": "[rawPcmRec] Get data buffers add1 = %x, len1 = %d, add2 = %x, len2 = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "RAWPCMREC_GET_DATA_INFO": {
+ "apiType": "index",
+ "format": "[rawPcmRec] Get data info %d: UL_fs=%d, UL_byte_len=%d, DL_fs=%d, DL_byte_len=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "RAWPCMREC_GET_EMPTY_DATA": {
+ "apiType": "index",
+ "format": "[rawPcmRec] Get data empty buffer",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "RAWPCMREC_HISR_LOCK_NOT_AVALIABLE": {
+ "apiType": "index",
+ "format": "[rawPcmRec] rawPcmRec lcok is not avaiable in hisr",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_HISR_TX_PERIOD": {
+ "format": "[SCO] btsco_hisr TX disable isr period %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_HISR_RX_PERIOD": {
+ "format": "[SCO] btsco_hisr RX disable isr period %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_HISR_PERIOD": {
+ "format": "[SCO] btsco_hisr disable isr period %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_MSBC_CORRECT_HEADER": {
+ "apiType": "index",
+ "format": "[SCO][DRV] MSBC DATA : correct header",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_MSBC_WRONG_HEADER": {
+ "apiType": "index",
+ "format": "[SCO][DRV] MSBC DATA : wrong header",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_MSBC_PACKET_NOT_FOUND": {
+ "apiType": "index",
+ "format": "[SCO][DRV] MSBC DATA : packets can not be found",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_MSBC_DATA_PACKET_NOT_FOUND": {
+ "apiType": "index",
+ "format": "[SCO][DRV] MSBC DATA : wrong header and failed packets",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_SP_ON": {
+ "format": "[SCO][DRV]Speech On, state: %d, fWideBand = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_SP_OFF": {
+ "format": "[SCO][DRV]Speech Off, state: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_START": {
+ "format": "[SCO][DRV]Start, state: %d, fWideBand = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_STOP": {
+ "format": "[SCO][DRV]Stop, state: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_PROCESS": {
+ "format": "[SCO][DRV]Process, state: %d, pRX: 0x%X, pTX: 0x%X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_HISR": {
+ "format": "[SCO][DRV]HISR, state: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_CONTROL": {
+ "format": "[SCO][DRV]Control: 0x%X, PacketType: %d, W_Address: 0x%X, R_Address: 0x%X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_COPY_RX": {
+ "format": "[SCO][DRV]Copy_RX, overflow : %d, iPacket_w: %d, iPacket_r: %d, uBufferCount: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_COPY_TX": {
+ "format": "[SCO][DRV]Copy_TX, underflow: %d, iPacket_w: %d, iPacket_r: %d, uBufferCount: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_GET_MEM": {
+ "format": "[SCO][DRV]GetMemory, uModule: %d, uSize(byte): %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_PROC_TX_RAW": {
+ "format": "[SCO][DRV]PROC_TX_RAW, RawDataLen(byte): %d,uPcmBuf_w(byte): %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_PROC_TX_SRC": {
+ "format": "[SCO][DRV]PROC_TX_SRC, uConsumeByte: %d, uOutByte: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_PROC_TX_CVSD": {
+ "format": "[SCO][DRV]CVSD_TX_CVSD, iPacket_w: %d, iPacket_r: %d, fEnableFilter: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_PROC_RX_RAW": {
+ "format": "[SCO][DRV]PROC_RX_RAW, CurrentFreeSpace(byte): %d, TotalFreeSpace(byte): %d, uPcmBuf_r(byte): %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_PROC_RX_PLC": {
+ "format": "[SCO][DRV]PROC_RX_PLC",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_PROC_RX_CVSD": {
+ "format": "[SCO][DRV]CVSD_RX_CVSD, iPacket_w: %d, iPacket_r: %d, fEnableFilter: %d, fEnablePLC: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_ALLOC_MEM": {
+ "format": "[SCO][DRV]Alloc Memory, Size: %d, ptr: 0x%X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_AP_SPEECH_TX_DATA": {
+ "format": "[SCO][APP]Speech TX data, uCurrentSpace(Byte): %d, uTotalSpace(Byte): %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_AP_SPEECH_TX_OF": {
+ "format": "[SCO][APP]Speech TX Overflow, freespace(byte): %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_AP_SPEECH_RX_DATA": {
+ "format": "[SCO][APP]Speech RX data, uCurrentData(Byte): %d, uTotalData(Byte): %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L1AUDIO_BTSCO_AP_SPEECH_RX_UF": {
+ "format": "[SCO][APP]Speech RX Underflow, datacount(byte): %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SPLOG_GET_DBG_FLAG": {
+ "apiType": "index",
+ "format": "[SPLOG]GET_DBG_FLAG, 0x%X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MIXER2_START": {
+ "format": "Enter PcmMixer_Start",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MIXER2_CONFIG_DL": {
+ "format": "pcmMixer DL Config, isMix:%d, gain:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MIXER2_CONFIG_UL": {
+ "format": "pcmMixer UL Config, isMix:%d, gain:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MIXER3_START": {
+ "format": "Enter PcmMixer3_Start",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MIXER3_CONFIG_UL": {
+ "format": "pcmMixer3 UL Config, isMix:%d, gain:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MIXER3_INFO": {
+ "format": "PcmMixer3 Gain %x Mix %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "MIXER3_DATA_LENGTH": {
+ "format": "PcmMixer3_writeUlBuf %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DROP_SPEECH_QUALITY_EM": {
+ "format": "[DMF]drop speech quality hisr, pos:%d, rat=%d, source=0x%x",
+ "traceClass": "TRACE_INFO"
+ }
+ }
+ ],
+ "traceFamily": "PS",
+ "userModule": ""
+}
diff --git a/mcu/driver/audio/src/v1/inc/media.h b/mcu/driver/audio/src/v1/inc/media.h
new file mode 100644
index 0000000..beac009
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/media.h
@@ -0,0 +1,342 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * media.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * Media file recording/playback
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef __MEDIA_H
+#define __MEDIA_H
+
+#include "fs_type.h"
+#include "fsal.h"
+
+#include "l1audio.h"
+#include "l1aud_common_def.h"
+
+
+/*****************************************************************************
+* Function Declaration
+*****************************************************************************/
+// void mediaHisr( uint16 flag );
+
+
+/* L1Audio_IDMA*/
+//void IDMA_WriteToDSP(volatile kal_uint16 *dst, kal_uint16 *src, kal_uint32 length);
+//void IDMA_FillToDSP(volatile kal_uint16 *dst, kal_uint16 value, kal_uint32 length);
+//void IDMA_ReadFromDSP(kal_uint16 *dst, volatile kal_uint16 *src, kal_uint32 length);
+//void IDMA_ReadFromDSP_Skip_1(kal_uint16 *dst, volatile kal_uint16 *src, kal_uint32 length);
+//void IDMA_WriteToDSP_Duplicate(volatile kal_uint16 *dst, kal_uint16 *src, kal_uint32 length);
+void EMI_ReadFromDSP(kal_uint16 *dst, volatile kal_uint16 *src, kal_uint32 length);
+void EMI_WriteToDSP(volatile kal_uint16 *dst, kal_uint16 *src, kal_uint32 length);
+
+/* For Ring Buffer Access */
+// void rb_ClearRB( void );
+// int32 rb_GetByteCount( void );
+// int32 rb_GetFreeSpace( void );
+// bool rb_GetByte( uint8* data_8 );
+// bool rb_GetWord( uint16* data_16 );
+// bool rb_GetDWord( uint32* data_32 );
+// bool rb_PeekByte( uint8* data_8 );
+// bool rb_PeekWord( uint16* data_16 );
+// bool rb_PeekDWord( uint32* data_32 );
+// bool rb_PutByte( uint8 data_8 );
+// bool rb_PutWord( uint16 data_16 );
+// bool rb_PutDWord( uint32 data_32 );
+// uint32 rb_SkipNByte( uint32 skip_count );
+// uint32 rb_SkipNWord( uint32 skip_count );
+// uint32 rb_GetWriteIndex( void );
+// uint32 rb_GetReadIndex( void );
+// uint32 rb_GetSize( void );
+// uint16 rb_GetOBFlag( void );
+// uint16 rb_GetOddByte( void );
+//int rb_PutNByte( const uint8 *buffer, int len );
+// nint rb_GetNByte( uint8 *buffer, int len );
+/* For Ring Buffer Access */
+
+
+void ktInit( uint16 aud_id, uint16 id_num );
+void ktLock( void );
+void ktUnlock( void );
+void toneInit( uint16 aud_id, uint16 id_num );
+
+#define VERIFY_DATA_TO_DSP 0
+
+/* L1CTM interface */
+void l1ctm_init( void );
+
+int32 rbGetDataCount( AUD_RB_INFO *rb );
+//kal_uint8 rbGetByte(AUD_RB_INFO *srcRB);
+void rbGetWriteBuffer( AUD_RB_INFO *rb, kal_uint8 **buffer, kal_uint32 *buf_len );// in bytes
+void rbGetReadBuffer( AUD_RB_INFO *rb, kal_uint8 **buffer, kal_uint32 *buf_len );// in bytes
+void rbWriteDataDone( AUD_RB_INFO *rb, kal_uint32 len ); // in bytes
+void rbReadDataDone( AUD_RB_INFO *rb, kal_uint32 len ); // in bytes
+int32 rbGetFreeSpace( AUD_RB_INFO *rb );
+
+
+// speech enhancement control functions
+// #define SPE_ES_FLAG (1 << 0)
+//#define SPE_AEC_FLAG (1 << 1)
+// #define SPE_EES_FLAG (1 << 2)
+//#define SPE_UL_NR_FLAG (1 << 3)
+//#define SPE_DL_NR_FLAG (1 << 4)
+//#define SPE_TDDNC_FLAG (1 << 5)
+//#define SPE_DMNR_FLAG (1 << 6)
+//#define SPE_AGC_FLAG (1 << 7)
+#define NUM_OF_SPH_FLAG 8 // if you add new SPE, please remind to revind the table define from uint8 to uint 16
+
+//speech enhancement mask for l1sp.spe_mask usage
+// #define SPH_ENH_MASK_ES SPE_ES_FLAG
+//#define SPH_ENH_MASK_AEC SPE_AEC_FLAG
+// #define SPH_ENH_MASK_EES SPE_EES_FLAG
+//#define SPH_ENH_MASK_ULNR SPE_UL_NR_FLAG
+//#define SPH_ENH_MASK_DLNR SPE_DL_NR_FLAG
+//#define SPH_ENH_MASK_TDDNC SPE_TDDNC_FLAG
+//#define SPH_ENH_MASK_DMNR SPE_DMNR_FLAG
+//#define SPH_ENH_MASK_AGC SPE_AGC_FLAG
+// #define SPH_ENH_MASK_SIDETONE (1 << NUM_OF_SPH_FLAG) removed
+//#define SPH_ENH_MASK_NOTCH_FILTER (1 << (NUM_OF_SPH_FLAG+1))
+//#define SPH_ENH_MASK_ECHO_REF (1 << (NUM_OF_SPH_FLAG+2))
+
+#define SPE_DMNR_SUPPORT (1 << 0)
+#define SPE_TDNC_SUPPORT (1 << 1)
+#define SPE_MAGI_CON_SUPPORT (2 << 1)
+
+
+
+void SPE_Init( void );
+void SPE_ENHCtrlSwitch(uint16 state);
+
+
+void SPE_Clear_DLL_Entry();
+//void SPE_SetULNR( bool ec );
+void SPE_LoadLimiterPara(uint16 para);
+#if defined(_SPE_ENH_MD_PARSE_)
+void SPE_LoadDmnrCoeffs(kal_int16 dmnr_para[NUM_DMNR_PARAM]);
+void SPE_LoadWbDmnrCoeffs(kal_int16 wb_dmnr_para[NUM_WB_DMNR_PARAM]);
+void SPE_LoadDmnrLspCoeffs(kal_int16 dmnr_para[NUM_DMNR_PARAM]);
+void SPE_LoadWbDmnrLspCoeffs(kal_int16 wb_dmnr_para[NUM_WB_DMNR_PARAM]);
+void SPE_LoadSWbLspDmnrCoeffs(kal_int16 swb_dmnr_para[NUM_SWB_DMNR_PARAM]);
+void SPE_LoadSWbDmnrCoeffs(kal_int16 swb_dmnr_para[NUM_SWB_DMNR_PARAM]);
+#endif
+
+
+
+/* L1SP interface */
+void L1SP_Init( void );
+void SPE_Enable_DLL_Entry(void);
+bool isSPEEnable(void);
+
+#if defined(_SPE_ENH_MD_PARSE_)
+void SetDynamicParToDSP(uint32 IDnumber);
+void L1SP_LoadSpeechPara( void );
+void Set2GDynPar(void);
+void Set3GDynPar(void);
+void Set4GDynPar(void);
+void SetC2KDynPar(void) ;
+void SPE_SetDynamicStatemachine(void);
+#else // for 95,97
+void SPE_SetDynamicStatemachine(kal_uint32 Offset, kal_uint32 Len);
+#endif
+
+
+
+
+void L1SP_SetState(kal_uint8 state);
+kal_uint8 L1SP_GetState( void );
+void L1SP_Set_isStandByMode(bool RAB_status);
+bool L1SP_Get_isStandByMode( void );
+void L1SP_Reload_SPE_Para( void );
+void L1SP_Register_Pcm4WayService(void (*onHandler)(void *), void (*offHandler)(void *));
+void L1SP_UnRegister_Pcm4Way_Service( void );
+bool L1SP_isC2KSO_Connected();
+
+kal_bool L1SP_TCH_State( void );
+
+enum{ // RIMIND: please keep following same as em_speech_info_SpeechNetworkType in audio_enum.h
+ L1SP_STATE_IDLE = 0,
+ L1SP_STATE_2G_SPEECH_ON,
+ L1SP_STATE_3G_SPEECH_ON,
+ L1SP_STATE_3G324M_SPEECH_ON,
+ L1SP_STATE_3G_SPEECH_CLOSING,
+ L1SP_STATE_4G_SPEECH_ON,
+ L1SP_STATE_4G_SPEECH_CLOSING,
+ L1SP_STATE_C2K_SPEECH_ON,
+ L1SP_STATE_C2K_SPEECH_CLOSING,
+ //L1SP_STATE_3G_SPEECH_CLOSED
+};
+
+void sp3g_speech_init( uint8 RAT_Mode );
+void sp3g_speech_close( bool IsInterRAT );
+void sp3g_init( void );//boot up init
+kal_bool SP3G_Rab_State( void );
+kal_uint32 SP3G_Rab_Id( void );
+void SP3G_Reset( void );
+void SP3G_SetRxTypeToNoData( void );
+kal_bool SP3G_IsDTXOn( void );
+void SP3G_GetSyncDelayRW( kal_uint16 *u16DelayR, kal_uint16 *u16DelayW, kal_uint16 *u16DelayM, kal_uint32 *u32CurTime64us);
+void SP3G_UpdateL1AInFo_P( kal_uint8 bitmap, kal_uint8 value );
+kal_uint32 SP3G_GetCodecMode(void);
+
+void sp4g_speech_init( uint8 RAT_Mode );
+void sp4g_speech_close( void );
+void sp4g_init( void );//boot up init
+kal_bool SP4G_Rab_State( void );
+kal_uint32 SP4G_Rab_Id( void );
+void SP4G_Reset( void );
+void SP4G_SetRxTypeToNoData( void );
+kal_bool SP4G_IsDTXOn( void );
+void SP4G_GetSyncDelayRW( kal_uint16 *u16DelayR, kal_uint16 *u16DelayW, kal_uint16 *u16DelayM, kal_uint32 *u32CurTime64us);
+
+void SPC2K_GetSyncDelayRW( uint16 *u2DelR, uint16 *u2DelW, uint16 *u2DelM);
+void SPC2K_ConSSO_Done( void );
+void SPC2K_DisconSSO_Done( void );
+
+void L1SP_C2K_Est(int codec);
+void L1SP_C2K_DeEst( void );
+void L1SP_C2K_IntraRAT(int codec);
+
+void L1SP_SetOpenDSPFlag(kal_uint8 flag);
+kal_uint8 L1SP_GetOpenDSPFlag(void);
+
+kal_uint32 L1Audio_GetEventGroup( void );
+void L1Audio_ExeEventHandler( kal_uint32 event );
+void L1Audio_ActivateHisrHandler(kal_uint16 magic_no, void *userData);
+
+
+// For In Process Call
+void L1Audio_InProcCall(in_proc_call_type func, kal_uint32 func_arg1, void* func_arg2);
+void L1Audio_InProcCall2(in_proc_call_type func, kal_uint32 func_arg1, void* func_arg2);
+
+
+
+// uint32 PCM2Way_GetBandInfo(void);
+
+// Speech related
+void SP_Strm_Init(void);
+
+#endif /* __MEDIA_H */
+
+
diff --git a/mcu/driver/audio/src/v1/inc/pcm4way.h b/mcu/driver/audio/src/v1/inc/pcm4way.h
new file mode 100644
index 0000000..ef8094c
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/pcm4way.h
@@ -0,0 +1,281 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * pcm4way.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * PCM4WAY/PCM2WAY interface
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+#ifndef __PCM4WAY_H
+#define __PCM4WAY_H
+#include "l1aud_common_def.h"
+
+
+// #define PNW_ENBLE (1<<8)
+#define DATA_SELECT_AFTER_ENH (1<<9)
+#define USE_D2M_PATH (1<<10)
+#define USE_M2D_PATH (1<<11)
+
+// #define PNW_DSP_IDLE (0)
+// #define PNW_DSP_ON (1)
+// #define PNW_DSP_READY (2)
+
+// #define PCM4WAY_STATE 0x1
+// #define PCM2WAY_STATE 0x2
+
+typedef enum{
+ PNW_STATE_IDLE = 0,
+ PNW_STATE_RUN,
+
+}PCMEX_STATE;
+
+typedef enum {
+ PCMEX_BAND_UNSET = 0,
+ PCMEX_BAND_NB,
+ PCMEX_BAND_WB,
+ PCMEX_BAND_SWB,
+ PCMEX_BAND_FB,
+ PCMEX_BAND_DYNAMIC, // follow codec, only for delication mode
+}PCMEX_BAND;
+
+typedef enum {
+ PCMEX_IDLE_ENH_SETTING_NONE = 0,
+ PCMEX_IDLE_ENH_SETTING_WITH,
+ PCMEX_IDLE_ENH_SETTING_WITHOUT,
+#if 0
+/* under construction !*/
+/* under construction !*/
+#endif
+}PCMEX_IDLE_ENH_SETTING;
+
+
+typedef struct{
+ uint16 aud_id; // to lock sleep mode
+ bool isEnhOn;
+ kal_uint32 running;
+ kal_spinlockid PCMEXspinLockID;
+
+ PCMEX_STATE state; // on/off
+ kal_uint32 am_type;
+ // kal_uint32 app_type;
+
+ PCMEX_BAND bandInfo; //to record the band information,
+
+ kal_uint32 cfgUL1;
+ kal_uint32 cfgUL2;
+ kal_uint32 cfgUL3;
+ kal_uint32 cfgUL4;
+ kal_uint32 cfgDL;
+
+ // kal_int16 dspPcmExMicLen; // unit is 16-bit (sampel), -1 means useless
+ // kal_int16 dspPcmExSpkLen; // unit is 16-bit (sampel), 0xFFFFFFFF means useless
+
+ void (*pnw_dl_hdlr)(void);
+ void (*pnw_ul_hdlr)(void);
+}_PCMEX_T;
+
+
+typedef enum{
+ PNW_APP_TYPE_IDLE = 0,
+ PNW_APP_TYPE_UNDER_CALL,
+}PCMEX_APP_TYPE;
+
+
+typedef enum{
+ MCU_SET_P4W_OFF = 0,
+ MCU_SET_P4W_ON = 1,
+ DSP_SET_P4W_READY = 2
+}P4W_CTRL_STATUS;
+
+typedef enum{
+ MCU_SET_P2W_OFF = 0<<4,
+ MCU_SET_P2W_ON = 1<<4,
+ DSP_SET_P2W_READY = 2<<4
+}P2W_CTRL_STATUS;
+
+
+typedef enum {
+ P4W_APP_CTM = 0,
+ P4W_APP_TYPE_UNDER_CALL, //p2w acts as I/O to get/put pcm data under idle
+ P4W_APP_TYPE_WITHOUT_CALL,
+ P4W_APP_TYPE_WITHOUT_CALL_WB,
+ P4W_APP_ECALL_DETECT,
+
+ P4W_APP_TYPE_UNDEFINE = 0xFFFF
+}P4W_APP_TYPE;
+
+typedef enum {
+ P2W_APP_TYPE_UNDER_CALL = 0, //p2w acts as I/O to get/put pcm data under phone call
+ P2W_APP_TYPE_WITHOUT_CALL, //p2w acts as I/O to get/put pcm data when idle
+ P2W_APP_TYPE_VOIP, //VOIP, speech quality like phone call but not under calling
+ // P2W_APP_TYPE_REC_ONLY_CAL, //dmnr calibration, record only
+ // P2W_APP_TYPE_REC_PLAY_CAL //dmnr calibration, record and playback at the same time
+ P2W_APP_TYPE_UNDEFINE = 0xFFFF
+}P2W_App_Type;
+
+
+void PCM4WAY_Start(void (*pcm4way_hdlr)(void), uint32 type);
+void PCM4WAY_Stop(uint32 type);
+// void Extended_PCM4WAY_Start(void (*pcm4way_dl_hdlr)(void), void (*pcm4way_ul_hdlr)(void), uint32 type, uint32 cfgUL, uint32 cfgDL);
+// void Extended_PCM4WAY_Stop(uint32 type);
+
+uint16 PCM4WAY_GetFromMic(uint16 *ul_buf);
+uint16 PCM4WAY_GetFromMic2(uint16 *ul_buf);
+uint16 PCM4WAY_PutToSE(const uint16 *ul_data);
+uint16 PCM4WAY_PutToSE2(const uint16 *ul_data);
+uint16 PCM4WAY_FillSE(uint16 value);
+uint16 PCM4WAY_FillSE2(uint16 value);
+
+uint16 PCM4WAY_GetFromSD(uint16 *dl_buf);
+uint16 PCM4WAY_PutToSpk(const uint16 *dl_data);
+uint16 PCM4WAY_FillSpk(uint16 value);
+
+void PCM2WAY_Start(void (*pcm2way_hdlr)(void), uint32 type);
+void PCM2WAY_Stop(uint32 type);
+// void Extended_PCM2WAY_Start(void (*pcm2way_dl_hdlr)(void), void (*pcm2way_ul_hdlr)(void), uint32 type, uint32 cfgUL, uint32 cfgDL);
+// void Extended_PCM2WAY_Stop(uint32 type);
+
+uint16 PCM2WAY_GetFromMic(uint16 *ul_buf);
+uint16 PCM2WAY_PutToSpk(const uint16 *dl_data);
+uint16 PCM2WAY_FillSpk(uint16 value);
+
+void Idle_PcmEx_Start(void (*pcmNway_dl_hdlr)(void), void (*pcmNway_ul_hdlr)(void), uint32 cfgUL1, uint32 cfgUL2, uint32 cfgUL3, uint32 cfgUL4, uint32 cfgDL, PCMEX_BAND band, PCMEX_IDLE_ENH_SETTING enhSetting);
+void Del_PcmEx_Start(void (*pcmNway_dl_hdlr)(void), void (*pcmNway_ul_hdlr)(void), uint32 cfgUL1, uint32 cfgUL2, uint32 cfgUL3, uint32 cfgUL4, uint32 cfgDL);
+void PcmEx_Stop(void);
+void pcmEx_Init();
+bool pcmEx_isRunInIdleMode(void);
+#endif
diff --git a/mcu/driver/audio/src/v1/inc/pcmMixer.h b/mcu/driver/audio/src/v1/inc/pcmMixer.h
new file mode 100644
index 0000000..d71f4e3
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/pcmMixer.h
@@ -0,0 +1,29 @@
+
+#ifndef __PCMMIXER_H__
+#define __PCMMIXER_H__
+
+
+uint16 PcmMixer_QueryDlBufLen(void);
+void PcmMixer_writeDlBuf(uint16 *srcBuf, uint16 len);
+
+/**
+ @isMix: Mixer switch for uplink speech, 1 for SPH+Sound, 0 for sound only
+ @gain: Sound effect gain for uplink mixer, for 0 to 7
+*/
+void PcmMixer_ConfigUl(kal_bool isMix, kal_int8 gain );
+
+/**
+ @isMix: Mixer switch for uplink speech, 1 for SPH+Sound, 0 for sound only
+ @gain: Sound effect gain for uplink mixer, for 0 to 7
+*/
+void PcmMixer_ConfigDl(kal_bool isMix, kal_int8 gain );
+
+/**
+ @mixerHisrHandler: handler
+*/
+void PcmMixer_Start(void (*mixerHisrHandler)(void));
+void PcmMixer_Stop(void);
+
+void PcmMixer_Init(void);
+
+#endif //__PCMMIXER_H__
\ No newline at end of file
diff --git a/mcu/driver/audio/src/v1/inc/pcmMixer3.h b/mcu/driver/audio/src/v1/inc/pcmMixer3.h
new file mode 100644
index 0000000..1a22c2d
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/pcmMixer3.h
@@ -0,0 +1,29 @@
+
+#ifndef __PCMMIXER3_H__
+#define __PCMMIXER3_H__
+
+
+uint16 PcmMixer3_QueryUlBufLen(void);
+void PcmMixer3_writeUlBuf(uint16 *srcBuf, uint16 len);
+
+/**
+ @isMix: Mixer switch for uplink speech, 1 for SPH+Sound, 0 for sound only
+ @gain: Sound effect gain for uplink mixer, for 0 to 7
+*/
+void PcmMixer3_ConfigUl(kal_bool isMix, kal_int8 gain );
+
+/**
+ @isMix: Mixer switch for uplink speech, 1 for SPH+Sound, 0 for sound only
+ @gain: Sound effect gain for uplink mixer, for 0 to 7
+*/
+//void PcmMixer3_ConfigDl(kal_bool isMix, kal_int8 gain );
+
+/**
+ @mixerHisrHandler: handler
+*/
+void PcmMixer3_Start(void (*mixerHisrHandler)(void));
+void PcmMixer3_Stop(void);
+
+void PcmMixer3_Init(void);
+
+#endif //__PCMMIXER3_H__
\ No newline at end of file
diff --git a/mcu/driver/audio/src/v1/inc/pcmRouter.h b/mcu/driver/audio/src/v1/inc/pcmRouter.h
new file mode 100644
index 0000000..9205d08
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/pcmRouter.h
@@ -0,0 +1,13 @@
+#ifndef _PCM_ROUTER_H
+#define _PCM_ROUTER_H
+
+
+// ----------------------------------------------------------------------------
+//=========================== call from spc_drv.c ============================
+void PcmRouterStart(void);
+void PcmRouterStop(void);
+
+//=============================================================================
+
+#endif //_PCM_ROUTER_H
+
diff --git a/mcu/driver/audio/src/v1/inc/pcmrb.h b/mcu/driver/audio/src/v1/inc/pcmrb.h
new file mode 100644
index 0000000..e4c94d1
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/pcmrb.h
@@ -0,0 +1,168 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * PCMRB.h
+ *
+ * Project:
+ * --------
+ * Maui_sw
+ *
+ * Description:
+ * ------------
+ * PCMRB utility
+ *
+ * Author:
+ * -------
+ * -------
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _PCMRB_DOT_H_
+#define _PCMRB_DOT_H_
+
+/*****************************************************************************
+* C O M P I L E R F L A G S
+******************************************************************************
+*/
+
+/*****************************************************************************
+* E X T E R N A L R E F E R E N C E S
+******************************************************************************
+*/
+#include "l1aud_common_def.h"
+/*****************************************************************************
+* C O N S T A N T S
+******************************************************************************
+*/
+
+/*****************************************************************************
+* D A T A T Y P E S
+******************************************************************************
+*/
+typedef struct PcmRingBufferStruct PCMRB;
+struct PcmRingBufferStruct {
+ int16 *buffer;
+ int32 read;
+ int32 write;
+ int32 size;
+};
+
+/*****************************************************************************
+* P U B L I C D A T A
+******************************************************************************
+*/
+
+/*****************************************************************************
+* M A C R O S
+******************************************************************************
+*/
+
+/*****************************************************************************
+* D A T A D E C L A R A T I O N S
+******************************************************************************
+*/
+
+/*****************************************************************************
+* F U N C T I O N D E C L A R A T I O N S
+******************************************************************************
+*/
+bool PCMRB_Init( PCMRB *rb, int16 *buffer, int32 buffer_size );
+int32 PCMRB_GetFreeSpace( PCMRB *rb );
+int32 PCMRB_GetDataCount( PCMRB *rb );
+void PCMRB_Write( PCMRB *dest_rb, int16 *src_buffer, int32 size );
+void PCMRB_Write_from_DSP( PCMRB *dest_rb, volatile uint16 *src_buffer, int32 size );
+void PCMRB_Write2( PCMRB *dest_rb, int16 *src_buffer, int32 size );
+void PCMRB_Read( PCMRB *src_rb, int16 *dest_buffer, int32 size );
+void PCMRB_Read_to_DSP( PCMRB *src_rb, volatile uint16 *dest_buffer, int32 size );
+void PCMRB_Read_to_DSP_Padding( PCMRB *src_rb, volatile uint16 *dest_buffer, int32 size );
+void PCMRB_GetWriteBlock( PCMRB *dest_rb, int16 **write_ptr, int32 *write_cnt );
+void PCMRB_GetReadBlock( PCMRB *src_rb, int16 **read_ptr, int32 *read_cnt );
+void PCMRB_ShiftWritePointer( PCMRB *rb, int32 shamt );
+void PCMRB_ShiftReadPointer( PCMRB *rb, int32 shamt );
+void PCMRB_ShiftReadPointer2( PCMRB *rb, int32 shamt );
+void PCMRB_Mix( PCMRB *dest_rb, PCMRB *src_rb, int32 size );
+
+void pcm_mix_n( int16 *dest, int16 *src, int32 n );
+
+/*****************************************************************************
+* I N L I N E F U N C T I O N D E C L A R A T I O N S
+******************************************************************************
+*/
+
+#endif // ..._PCMRB_DOT_H_
+
diff --git a/mcu/driver/audio/src/v1/inc/pcmrec.h b/mcu/driver/audio/src/v1/inc/pcmrec.h
new file mode 100644
index 0000000..dca60ab
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/pcmrec.h
@@ -0,0 +1,18 @@
+#ifndef _PCMREC_H_
+#define _PCMREC_H_
+
+typedef enum {
+ PCM_REC_SAMPLE_RATE_IDX_8K = 0,
+ PCM_REC_SAMPLE_RATE_IDX_16K,
+ PCM_REC_SAMPLE_RATE_IDX_32K,
+ PCM_REC_SAMPLE_RATE_IDX_48K,
+
+ PCM_REC_SAMPLE_RATE_IDX_UNDEF = 0xf
+}PCM_REC_SAMPLE_RATE_IDX;
+
+void PCMREC_Start(void (*pcmRec_hdlr)(void), uint8 channelNum, PCM_REC_SAMPLE_RATE_IDX samplingRateIdx);
+void PCMREC_Stop();
+
+void PcmRec_GetMicDataBufs(kal_uint32 *add1, kal_uint16 *len1, kal_uint32 *add2, kal_uint16 *len2);
+
+#endif
diff --git a/mcu/driver/audio/src/v1/inc/rawpcmrec.h b/mcu/driver/audio/src/v1/inc/rawpcmrec.h
new file mode 100644
index 0000000..cf1c29a
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/rawpcmrec.h
@@ -0,0 +1,32 @@
+#ifndef _RAWPCMREC_H_
+#define _RAWPCMREC_H_
+
+#include "pcmrec.h"
+/*typedef enum {
+ PCM_REC_SAMPLE_RATE_IDX_8K = 0,
+ PCM_REC_SAMPLE_RATE_IDX_16K,
+ PCM_REC_SAMPLE_RATE_IDX_32K,
+ PCM_REC_SAMPLE_RATE_IDX_48K,
+
+ PCM_REC_SAMPLE_RATE_IDX_UNDEF = 0xf
+}PCM_REC_SAMPLE_RATE_IDX;*/
+
+typedef struct spcRAWPCMBufInfoStruct{
+ //UL sample rate, please refer PCM_REC_SAMPLE_RATE_IDX
+ uint16 u16ULFreq;
+ //UL length in byte
+ uint16 u16ULLength;
+ //DL sample rate, please refer PCM_REC_SAMPLE_RATE_IDX
+ uint16 u16DLFreq;
+ //DL length in byte
+ uint16 u16DLLength;
+}spcRAWPCMBufInfo, *pspcRAWPCMBufInfo;
+
+void RAWPcmRec_Init();
+void RAWPCMREC_Start(void (*pcmRec_hdlr)(void), kal_uint8 ULChannelNumIdx);
+void RAWPCMREC_Stop();
+
+void RawPcmRec_GetMicDataBufs(kal_uint32 *add1, kal_uint16 *len1, kal_uint32 *add2, kal_uint16 *len2);
+
+#endif //#ifndef _RAWPCMREC_H_
+
diff --git a/mcu/driver/audio/src/v1/inc/sp_c2k.h b/mcu/driver/audio/src/v1/inc/sp_c2k.h
new file mode 100644
index 0000000..772e8a5
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/sp_c2k.h
@@ -0,0 +1,84 @@
+#ifndef __SP_C2K__
+#define __SP_C2K__
+
+// For bringup not use DTS
+//#ifdef MTK_AUDIO_BRINGUP
+ #define C2K_DTS_DISABLE
+//#endif
+
+// For no SAL on integrate stage
+//#define C2K_SAL_DISABLE
+
+// For no Sph Drv on integrate stage
+//#define C2K_SDRV_DISABLE
+
+// For bring up
+//#define C2K_BRING_UP
+
+// For LBK regular timer
+//#define C2K_LBK_TIMER_ENABLE
+
+//#define SALI_DISABLE
+
+//#define C2K_MODEM_DISABLE
+//#define C2K_LBK_U2D
+//#define C2K_LBK_D2U
+
+//#define C2K_SPH_EVRCNW_SUPPORT
+
+#define C2K_COD_RS_1 1
+#define C2K_COD_RS_2 2
+#define C2K_COD_RS_UNDEF 0x29
+
+#define C2K_COD_RS_1_BLANK_LEN_WORD16 0
+#define C2K_COD_RS_1_EIGHTH_LEN_WORD16 1
+#define C2K_COD_RS_1_QUARTER_LEN_WORD16 3
+#define C2K_COD_RS_1_HALF_LEN_WORD16 5
+#define C2K_COD_RS_1_FULL_LEN_WORD16 11
+#define C2K_COD_RS_1_ERASURE_LEN_WORD16 0
+#define C2K_COD_RS_1_FULL_LIKELY_LEN_WORD16 11
+
+#define C2K_COD_RS_2_BLANK_LEN_WORD16 0
+#define C2K_COD_RS_2_EIGHTH_LEN_WORD16 2
+#define C2K_COD_RS_2_QUARTER_LEN_WORD16 4
+#define C2K_COD_RS_2_HALF_LEN_WORD16 8
+#define C2K_COD_RS_2_FULL_LEN_WORD16 17
+#define C2K_COD_RS_2_ERASURE_LEN_WORD16 0
+
+#define C2K_COD_RATE_MAX_LEN_WORD16 17
+
+#define C2K_COD_QCELP8K 0x30
+#define C2K_COD_QCELP13K 0x31
+#define C2K_COD_EVRCA 0x32
+#define C2K_COD_EVRCB 0x33
+#define C2K_COD_EVRCNW_NB 0x34
+#define C2K_COD_EVRCNW_WB 0x35
+#define C2K_COD_UNDEF 0x39
+
+#define C2K_LMD_LBK 1
+#define C2K_CAAL_LBK 2
+
+// SOCM
+#define C2K_SOCM_EVRCA_RATE_REDUC_MIN 0
+#define C2K_SOCM_EVRCA_RATE_REDUC_MAX 4
+#define C2K_SOCM_QCELP13K_RATE_REDUC_MIN 0
+#define C2K_SOCM_QCELP13K_RATE_REDUC_MAX 4
+#define C2K_SOCM_EVRCB_RATE_REDUC_MIN 0
+#define C2K_SOCM_EVRCB_RATE_REDUC_MAX 7
+#define C2K_SOCM_EVRCNW_RATE_REDUC_MIN 0
+#define C2K_SOCM_EVRCNW_RATE_REDUC_MAX 7
+
+#define C2K_SOCM_RATE_REDUC_SHIFT 5
+#define C2K_SOCM_MOBILE_TO_MOBILE_SHIFT 1
+
+// DelR/W/M (ms)
+#define C2K_DELR 8.25
+#define C2K_DELW 3
+#define C2K_DELM 4
+
+#define C2K_DBG_BIT_INIT 0x0
+#define C2K_DBG_BIT_U2D_LOOPBACK 0x1
+#define C2K_DBG_BIT_NO_MODEM 0x2
+
+
+#endif //__SP_C2K__
diff --git a/mcu/driver/audio/src/v1/inc/sp_cc.h b/mcu/driver/audio/src/v1/inc/sp_cc.h
new file mode 100644
index 0000000..01a8e57
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/sp_cc.h
@@ -0,0 +1,39 @@
+#ifndef SP_CC
+#define SP_CC
+#include "kal_public_defs.h"
+#include "kal_public_api.h"
+#include "kal_general_types.h"
+#include "cache_sw.h" //? ask SS, it ought not be exposed from RCU_MEMORY_SIZE
+#include "mmu.h"
+#include "audio_cc.h"
+#include "audio_ringbuf.h"
+#include "cc_irq_public.h"
+#include "sp_drv.h"
+#include "audio_msgid.h"
+#include "drv_sap.h"
+void SP_CC_Init();
+void SP_CC_Event_Handler();
+
+void cc_set_VBI_for_FSM(kal_uint32 state);
+void cc_Standby_Call_Open(kal_uint32 enc_mod);
+void cc_Standby_Call_Close(kal_uint32 dsp_end);
+void cc_2G_Call_Open(kal_uint32 enc_mod, kal_uint32 dec_mod, kal_uint32 sub_channel, kal_uint32 resetType);
+void cc_2G_Call_Close(kal_uint32 dsp_end);
+void cc_3G_Call_Open(kal_uint32 enc_mod, kal_uint32 dec_mod, kal_uint32 dtx, kal_uint32 delR, kal_uint32 delW, kal_uint32 delM, kal_uint32 u32CurTime64us, kal_uint32 resetType);
+void cc_3G_Call_Close(kal_uint32 dsp_end);
+void cc_4G_Call_Open_temp(kal_uint32 enc_mod, kal_uint32 dec_mod, kal_uint32 dtx, kal_uint32 delR, kal_uint32 delW, kal_uint32 delM, kal_uint32 u32CurTime64us, kal_uint32 resetType);
+void cc_4G_Call_Close_temp(kal_uint32 dsp_end);
+void cc_4G_G_Codec_Call_Open(kal_uint32 band_mod, kal_uint32 delR, kal_uint32 delW, kal_uint32 delM, kal_uint32 u32CurTime64us, kal_uint32 resetType);
+void cc_4G_G_Codec_Call_Close(kal_uint32 dsp_end);
+void cc_4G_EVS_Codec_Call_Open(kal_uint32 codec, uint32 isDTX, kal_uint32 delR, kal_uint32 delW, kal_uint32 delM, kal_uint32 u32CurTime64us, kal_uint32 resetType);
+void cc_4G_EVS_Codec_Call_Close(kal_uint32 dsp_end);
+void cc_C2K_Call_Open(kal_uint32 so, kal_uint32 dtx, kal_uint32 delR, kal_uint32 delW, kal_uint32 delM, kal_uint32 resetType);
+void cc_C2K_Call_Close(kal_uint32 dsp_end);
+void cc_L1D_Audio_ChkDspInitDone();
+kal_uint16 cc_L1D_Audio_RestartDSP();
+void cc_L1D_Audio_NoNeedDSP();
+
+
+
+
+#endif
diff --git a/mcu/driver/audio/src/v1/inc/sp_daca.h b/mcu/driver/audio/src/v1/inc/sp_daca.h
new file mode 100644
index 0000000..f44a523
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/sp_daca.h
@@ -0,0 +1,166 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * pcm4way.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * PCM4WAY/PCM2WAY interface
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+#ifndef __DACA_H__
+#define __DACA_H__
+#include "l1aud_common_def.h"
+
+
+typedef struct{
+ kal_uint16 aud_daca_id;
+ kal_uint32 state; //identify pcm2way or pcm4way
+ kal_uint32 running;
+ kal_uint32 am_type;
+ kal_uint32 app_type;
+ kal_uint32 frame_size; //to record the band information, please refer to PCMNWAY_BAND_INFO
+
+ kal_uint32 u4DspPcmExMicLen;
+ kal_uint32 u4DspPcmExSpkLen;
+ kal_spinlockid DACASpinLockID;
+ void (*daca_dl_hdlr)(void);
+ void (*daca_ul_hdlr)(void);
+}_DACA_EX_T;
+
+
+//the following macro is bit-wise
+#define DACA_IN_PHONE_CALL 0x0001
+#define DACA_USE_NB 0x0002
+#define DACA_USE_UL 0x0004
+#define DACA_USE_DL 0x0008
+#define DACA_USE_WB 0x0010
+#define DACA_USE_SWB 0x0020
+#define DACA_USE_FB 0x0040
+#define DACA_UNDEFINED 0x8000
+
+typedef enum {
+ DACA_APP_TYPE_IDLE_UL_DL_NB = DACA_USE_NB + DACA_USE_UL + DACA_USE_DL,
+ DACA_APP_TYPE_IDLE_UL_NB = DACA_USE_NB + DACA_USE_UL,
+ DACA_APP_TYPE_IDLE_DL_NB = DACA_USE_NB + DACA_USE_DL,
+ DACA_APP_TYPE_ACTIVE_UL_DL_NB = DACA_IN_PHONE_CALL + DACA_USE_NB + DACA_USE_UL + DACA_USE_DL,
+ DACA_APP_TYPE_ACTIVE_UL_NB = DACA_IN_PHONE_CALL + DACA_USE_NB + DACA_USE_UL,
+ DACA_APP_TYPE_ACTIVE_DL_NB = DACA_IN_PHONE_CALL + DACA_USE_NB + DACA_USE_DL,
+
+ DACA_APP_TYPE_IDLE_UL_DL_WB = DACA_USE_WB + DACA_USE_UL + DACA_USE_DL,
+ DACA_APP_TYPE_IDLE_UL_WB = DACA_USE_WB + DACA_USE_UL,
+ DACA_APP_TYPE_IDLE_DL_WB = DACA_USE_WB + DACA_USE_DL,
+ DACA_APP_TYPE_ACTIVE_UL_DL_WB = DACA_IN_PHONE_CALL + DACA_USE_WB + DACA_USE_UL + DACA_USE_DL,
+ DACA_APP_TYPE_ACTIVE_UL_WB = DACA_IN_PHONE_CALL + DACA_USE_WB + DACA_USE_UL ,
+ DACA_APP_TYPE_ACTIVE_DL_WB = DACA_IN_PHONE_CALL + DACA_USE_WB + DACA_USE_DL,
+
+ DACA_APP_TYPE_IDLE_UL_DL_SWB = DACA_USE_SWB + DACA_USE_UL + DACA_USE_DL,
+ DACA_APP_TYPE_IDLE_UL_SWB = DACA_USE_SWB + DACA_USE_UL,
+ DACA_APP_TYPE_IDLE_DL_SWB = DACA_USE_SWB + DACA_USE_DL,
+ DACA_APP_TYPE_ACTIVE_UL_DL_SWB = DACA_IN_PHONE_CALL + DACA_USE_SWB + DACA_USE_UL + DACA_USE_DL,
+ DACA_APP_TYPE_ACTIVE_UL_SWB = DACA_IN_PHONE_CALL + DACA_USE_SWB + DACA_USE_UL ,
+ DACA_APP_TYPE_ACTIVE_DL_SWB = DACA_IN_PHONE_CALL + DACA_USE_SWB + DACA_USE_DL,
+
+ DACA_APP_TYPE_IDLE_UL_DL_FB = DACA_USE_FB + DACA_USE_UL + DACA_USE_DL,
+ DACA_APP_TYPE_IDLE_UL_FB = DACA_USE_FB + DACA_USE_UL,
+ DACA_APP_TYPE_IDLE_DL_FB = DACA_USE_FB + DACA_USE_DL,
+ DACA_APP_TYPE_ACTIVE_UL_DL_FB = DACA_IN_PHONE_CALL + DACA_USE_FB + DACA_USE_UL + DACA_USE_DL,
+ DACA_APP_TYPE_ACTIVE_UL_FB = DACA_IN_PHONE_CALL + DACA_USE_FB + DACA_USE_UL ,
+ DACA_APP_TYPE_ACTIVE_DL_FB = DACA_IN_PHONE_CALL + DACA_USE_FB + DACA_USE_DL,
+
+ DACA_APP_TYPE_UNDEFINE = DACA_UNDEFINED
+}DACA_APP_TYPE;
+
+void DACA_Start(void (*daca_dl_hdlr)(void), void (*daca_ul_hdlr)(void), DACA_APP_TYPE app_type);
+void DACA_Stop(DACA_APP_TYPE app_type);
+uint32 DACA_GetFromSD(uint16 *dl_buf);
+void DACA_PutToSE(const uint16 *ul_data);
+void DACA_FillSE(uint16 value);
+void DACA_Init();
+
+#endif
diff --git a/mcu/driver/audio/src/v1/inc/sp_drv.h b/mcu/driver/audio/src/v1/inc/sp_drv.h
new file mode 100644
index 0000000..b4487b1
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/sp_drv.h
@@ -0,0 +1,798 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * sp_drv.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * MD speech control interfaces
+ *
+ * Author:
+ * -------
+ *
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _SP_DRV_H
+#define _SP_DRV_H
+
+#include "l1aud_common_def.h"
+#include "l1audio.h"
+#include "l1sp_el2_struct.h"
+
+// ----------------------------------------------------------------------------
+// defines
+// ----------------------------------------------------------------------------
+
+#define DEFAULT_SPEECH_COMMON_PARA \
+{ \
+ 0, 55997, 31000, 10752, 32769, 0, 0, 0, 0, 0, \
+ 0, 0 \
+}
+
+// ----------------------------------------------------------------------------
+// mute related
+// ----------------------------------------------------------------------------
+
+kal_bool SP_IsSpeakerMute(void);
+
+void SP_MuteUlSource(kal_bool mute);
+void SP_MuteDl_beforePcmMixer(bool mute);
+
+typedef enum { // saving inside l1sp.isUlMute, bit wise record
+ SP_MIC_MUTE_POS_FROM_SPC = 0x1,
+ SP_MIC_MUTE_POS_FROM_MED = 0x2,
+
+ SP_MIC_MUTE_POS_FROM_ALL = 0xFFFF,
+
+}SP_MIC_MUTE_POS;
+void SP_MuteUlFromDiffPos(bool mute, SP_MIC_MUTE_POS pos);
+bool SP_IsMicMute(void);
+void L1SP_SetCodecMuteByAp( bool mute );
+
+// ----------------------------------------------------------------------------
+// codec/network information related
+// ----------------------------------------------------------------------------
+#include "em_audio_public_struct.h"
+void SP_updateEmCodecEvent(void);
+void emCodecTimerOn(void);
+void emCodecTimerOff(void);
+
+
+void l1sp_NetworkStatusNotification(void);
+void l1sp_send_codec_status_notify(uint32 codec); //to L4C
+// ----------------------------------------------------------------------------
+
+void L1SP_SpeechLoopBackEnable(kal_bool fgEnable);
+
+typedef enum {
+ SPH_DEVINFO_NORMAL,
+ SPH_DEVINFO_BT_PCM, /* via Modem PCM hardware */
+ SPH_DEVINFO_BT_CVSD_MSBC, /* via software BT codec */
+ SPH_DEVINFO_BT_CVSD,
+ SPH_DEVINFO_BT_MSBC
+}sp_device_info_t; // same as spc_sph_on_bt_info_t
+
+uint8 SP_GetDevSamplingRate(void);
+sp_device_info_t SP_GetDevInfo(void);
+void SP_SetDevicePath(sp_device_info_t newDev, kal_uint8 voice8kMode);
+
+typedef enum {
+ SPH_EXTDEVINFO_DEFULAT = 0,
+ SPH_EXTDEVINFO_VIBRATION_RECEIVER, // vibration receiver (3-in-1)
+ SPH_EXTDEVINFO_VIBRATION_SPEAKER, // speaker (2-in-1 or 3-in-1)
+ SPH_EXTDEVINFO_SMARTPA_SPEAKER, // speaker with smart-PA which need echo reference path
+ SPH_EXTDEVINFO_SMARTPA_VIBRATION_SPEAKER, // vibration speaker with smart-PA which need echo reference path
+ SPH_EXTDEVINFO_USB_AUDIO, // usb audio device, which needs echo reference path
+ SPH_EXTDEVINFO_EARPHONE, // earphone audio device
+ SPH_EXTDEVINFO_DUALSMARTPA_SPEAKER, // speaker with smart-PA which need echo reference path
+ SPH_EXTDEVINFO_DUALSMARTPA_VIBRATION_SPEAKER, // vibration speaker with smart-PA which need echo reference path
+}sp_ext_dev_info_t;
+
+void SP_SetExtraDevInfo(sp_device_info_t dev, sp_ext_dev_info_t extDevInfo, uint8 smartPA_config, uint16 echoRefDelay, uint8 micDelay);
+sp_ext_dev_info_t SP_GetExtDevInfo(void);
+
+// ----------------------------------------------------------------------------
+// ENHANCEMENT MODE PARAMETERS
+// ----------------------------------------------------------------------------
+#if defined(_SPE_ENH_MD_PARSE_)
+void l1sp_SetWbSpeechPara( kal_uint16 m_para[NUM_MODE_PARAS] );
+// void l1sp_SetSpeechMode( uint8 devMode, uint8 mode, uint16 m_para[NUM_MODE_PARAS] );
+// void l1sp_SetSpeechMode( uint8 devMode, uint8 mode);
+
+
+void l1sp_setAllSpeechModePara(kal_uint16 * speech_mode_para, kal_int16 length);
+void l1sp_setAllSpeechFirCoeff_InputOnly(kal_int16 *speech_input_FIR_coeffs, kal_int16 length);
+void l1sp_setAllSpeechFirCoeff_OutputOnly(kal_int16 *speech_output_FIR_coeffs, kal_int16 length);
+void l1sp_setAllSpeechIirCoeff_InputOnly(kal_int16 *speech_input_IIR_coeffs, kal_int16 length);
+void l1sp_setAllSpeechIirCoeff_OutputOnly(kal_int16 *speech_output_IIR_coeffs, kal_int16 length);
+void l1sp_setAllSpeechMic1IirCoeff(kal_int16 *speech_output_Mic1_IIR_coeffs, kal_int16 length);
+void l1sp_setAllSpeechMic2IirCoeff(kal_int16 *speech_output_Mic2_IIR_coeffs, kal_int16 length);
+void l1sp_setAllWBSpeechIirCoeff_InputOnly(kal_int16 *speech_input_IIR_coeffs, kal_int16 length);
+void l1sp_setAllWBSpeechIirCoeff_OutputOnly(kal_int16 *speech_output_IIR_coeffs, kal_int16 length);
+void l1sp_setAllWBSpeechMic1IirCoeff(kal_int16 *speech_output_Mic1_IIR_coeffs, kal_int16 length);
+void l1sp_setAllWBSpeechMic2IirCoeff(kal_int16 *speech_output_Mic2_IIR_coeffs, kal_int16 length);
+void l1sp_setAllSWBSpeechIirCoeff_InputOnly(kal_int16 *speech_input_IIR_coeffs, kal_int16 length);
+void l1sp_setAllSWBSpeechIirCoeff_OutputOnly(kal_int16 *speech_output_IIR_coeffs, kal_int16 length);
+void l1sp_setAllSWBSpeechMic1IirCoeff(kal_int16 *speech_output_Mic1_IIR_coeffs, kal_int16 length);
+void l1sp_setAllSWBSpeechMic2IirCoeff(kal_int16 *speech_output_Mic2_IIR_coeffs, kal_int16 length);
+
+void l1sp_setAllWbSpeechModePara(kal_uint16 * speech_mode_para, kal_int16 length);
+void l1sp_setAllWbSpeechFirCoeff_InputOnly(kal_int16 *speech_input_FIR_coeffs, kal_int16 length);
+void l1sp_setAllSWbSpeechFirCoeff_InputOnly(kal_int16 *speech_input_FIR_coeffs, kal_int16 length);
+void l1sp_setAllWbSpeechFirCoeff_OutputOnly(kal_int16 *speech_output_FIR_coeffs, kal_int16 length);
+void l1sp_setAllSWbSpeechFirCoeff_OutputOnly(kal_int16 *speech_output_FIR_coeffs, kal_int16 length);
+
+void l1sp_setAllSWbSpeechModePara(kal_uint16 * speech_mode_para, kal_int16 length);
+void SP_SetSpeechPara( uint16 sph_m_para[NUM_MODE_PARAS] );
+void SP_SetWbSpeechPara( kal_uint16 m_para[NUM_MODE_PARAS] );
+void SP_SetSWbSpeechPara( kal_uint16 m_para[NUM_MODE_PARAS] );
+
+
+kal_uint16 *Sp_GetSpeechPara(void);
+kal_uint16 *Sp_GetWbSpeechPara(void);
+#endif
+kal_uint16 *Sp_GetCommonSpeechPara(void);
+
+
+
+// ----------------------------------------------------------------------------
+// DSP volume related
+// ----------------------------------------------------------------------------
+void spGain_SetDigitalGain(kal_int16 digitalGainQdB, kal_bool isForceSet);
+void spGain_SetEnhRefDigitalGain(kal_int16 refDigitalGainQdB, kal_bool isForceSet);
+void spGain_SetMicrophoneVolume( kal_int16 mic_volume, kal_bool isForceSet );
+void spGain_Refresh2DSP(void);
+void spGain_Init(void);
+
+
+// ----------------------------------------------------------------------------
+kal_uint16 L1SP_GetAudID(void);
+void L1SP_FreeAudID(kal_uint16 aud_id);
+// ----------------------------------------------------------------------------
+
+int L1SP_GetC2KSO_Codec( void );
+// ----------------------------------------------------------------------------
+// Mute Control
+// ----------------------------------------------------------------------------
+typedef enum{ //bit mask
+ L1SP_FORCEDUNMUTE_ALL = 0xFFFF,
+ L1SP_FORCEDUNMUTE_PCMROUTER = 0x01,
+ L1SP_FORCEDUNMUTE_PCMRECORD = 0x02,
+ L1SP_FORCEDUNMUTE_ACOUSTICLOOPBACK = 0x04,
+ L1SP_FORCEDUNMUTE_RAWPCMRECORD = 0x08,
+}L1SP_FORCEDUNMUTE_BITMASK;
+
+kal_bool SP_is_codec_mute(void);
+void SP_SetForcedUnMuteController(L1SP_FORCEDUNMUTE_BITMASK mask, bool b);
+void sp4g_hisr_ul_g(void *data);
+void sp4g_hisr_dl_g(void *data);
+void L1SP_RampDone(void);
+
+// ----------------------------------------------------------------------------
+// em for voice qualtiy
+// ----------------------------------------------------------------------------
+#include "sal_def.h"
+
+typedef struct{
+ kal_bool isNotify;
+ kal_bool isOn;
+ kal_bool is4gWifi;
+ Sal_DMF_SPH_DL_Info_t dlInfo;
+ Sal_DMF_SPH_UL_Info_t ulInfo;
+ Sal_DMF_ENH_UL_Info_t enhUl;
+} SP_EM_VOICE_QUALITY_INFO;
+
+
+void sp_voiceQualityHisrHdl(void);
+void sp_voiceQualityEventHdl(SP_EM_VOICE_QUALITY_INFO *pEmVQ);
+
+// ----------------------------------------------------------------------------
+// Else
+// ----------------------------------------------------------------------------
+
+#if defined(MT6295M) || defined(__MODEM_ONLY__)
+#define SPH_CHIP_BACK_PHONECALL_USE
+#endif
+
+#if defined(MT6295M) || defined(__MODEM_ONLY__)
+#define SPH_CHIP_BACK_MODE_FIX_TO_NORMAL
+#endif
+
+#if defined(__VOLTE_SUPPORT__)
+typedef struct{
+ //raw information from eMAC
+ uint32 RX_period; //ms
+ uint32 TX_period; //ms
+ uint32 time2nextRX; //ms
+ uint32 time2nextTX; //ms
+ uint32 issueTime; //ms
+ kal_bool is_lch_on;
+}resync_info_t;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ //raw information from eMAC
+ uint32 RX_period; //ms
+ uint32 TX_period; //ms
+ uint32 time2nextRX; //ms
+ uint32 time2nextTX; //ms
+ uint32 issueTime; //ms
+}ilm_resync_info_t;
+
+void sub_SP4G_emac_timing_update(l1sp_emac_resync_info_struct* p_timing_info, module_type module);
+kal_bool SP4G_IsGCodecMode(void);
+
+#endif //#if defined(__VOLTE_SUPPORT__)
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_int16 freq1;
+ kal_int16 freq2;
+ kal_int16 duration;
+}ilm_PSR_DL_KT_t;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ L1SP_Tones *pToneList;
+}ilm_PSR_DL_TONE_t;
+
+#if defined(__EVS_CODEC_SUPPORT__) && defined(__VOLTE_SUPPORT__)
+kal_bool SP4G_IsEVSCodecMode();
+#endif //#if defined(__EVS_CODEC_SUPPORT__) && defined(__VOLTE_SUPPORT__)
+
+typedef struct {
+ LOCAL_PARA_HDR
+ uint16 rate;
+}ilm_SP_C2K_RATE_NOTI_t;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ uint16 pu2RateReduc_EM;
+}ilm_SP_C2K_RATE_REDUC_NOTI_t;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ L1SP_C2K_Event event;
+ int param;
+}ilm_SP_C2K_EVENT_t;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ L1SP_L4C_Event event;
+ L1SP_L4C_Event_Mode mode;
+}ilm_SP_L4C_SET_EVENT_t;
+
+typedef enum {
+ SP_2G_HANDOVER,
+ SP_2G_TCH,
+ SP_3G_RAB,
+ SP_4G_RAB,
+ SP_2G_AUDIOMANAGER_INFO
+}SP_CHANGERAT_EVENT;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ SP_CHANGERAT_EVENT event; // information from L1Core : mapping AUD_CC_IRQ_T to SP_CHANGERAT_EVENT; information from PCORE : use straightly
+ kal_uint32 param[2];
+}ilm_SP_CHANGERATE_EVENT_t;
+
+typedef enum {
+ SP_3G_SIM_FDD_ACTIVE,
+ SP_3G_SIM_TDD_ACTIVE,
+ SP_3G_SIM_IDLE,
+}SP_3G_SIM;
+
+SP_3G_SIM L1SP_GetSIMStatus();
+
+typedef struct {
+ LOCAL_PARA_HDR
+ uint8 text;
+}ilm_SP_L4C_SET_EGTT_t;
+void SP_Parse_EMI_Info(void);
+kal_uint32* SP_GetSphParamBufAddr();
+kal_uint32 SP_GetSphParamBufSize();
+
+typedef struct {
+ LOCAL_PARA_HDR
+ bool enable;
+}ilm_SPC_SETLOOPBACK_DL_UL_t;
+
+#if defined(__ECALL_SUPPORT__)
+#if defined(__L5_SUPPORT__)
+typedef struct {
+ LOCAL_PARA_HDR
+ L1SP_L5ECALL_Event event;
+ kal_uint8 *data;
+}ilm_SP_L5ECALL_SET_EVENT_t;
+#endif
+#endif
+
+#endif //_SP_DRV_H
diff --git a/mcu/driver/audio/src/v1/inc/sp_dsptone_drv.h b/mcu/driver/audio/src/v1/inc/sp_dsptone_drv.h
new file mode 100644
index 0000000..53164ab
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/sp_dsptone_drv.h
@@ -0,0 +1,8 @@
+void SP_DSPTone_Init(void);
+void SP_DSPTone_ForceEnd(void);
+void SP_DSPTone_DL_KT_Play(kal_int16 freq1, kal_int16 freq2, kal_int16 duration);
+void SP_DSPTone_DL_KT_Stop(void);
+void SP_DSPTone_UL_KT_Play(kal_int16 freq1, kal_int16 freq2, kal_int16 duration);
+void SP_DSPTone_UL_KT_Stop(void);
+
+
diff --git a/mcu/driver/audio/src/v1/inc/sp_enhance.h b/mcu/driver/audio/src/v1/inc/sp_enhance.h
new file mode 100644
index 0000000..d88f151
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/sp_enhance.h
@@ -0,0 +1,65 @@
+
+#ifndef _SP_ENHANCE_H
+#define _SP_ENHANCE_H
+
+#include "l1aud_common_def.h"
+#include "sal_def.h"
+
+
+//EMI Header Layout (uint:word)
+#define EMI_NEED_3K_0 1536 // EMI need 3k=0,13K=data
+#define EMI_GUARD_PATTERN 16
+#define MD_PRIVATE 4
+
+
+//EMI MD default par
+#define EMI_MD_DEFAULT_LEN 16384 //16K
+#define EMI_MD_DEFAULT_OFFSET 0
+#define EMI_SPE_PAR_OFFSET 16384
+#define EMI_MD_COMMON_PAR_OFFSET 9
+#define EMI_MD_DBG_PAR_OFFSET 22
+
+
+
+
+
+void L1SP_EnableSpeechEnhancement( bool enable );
+void l1sp_SetParEMIInfo(uint32 offset,uint32 len);
+void SPE_LoadCommonPara( uint16 c_para[NUM_COMMON_PARAS]);
+
+
+#if defined(_SPE_ENH_MD_PARSE_)
+bool spe_isSpeFweOn(void);
+void SPE_LoadSpeechPara( uint16 c_para[NUM_COMMON_PARAS], uint16 m_para[NUM_MODE_PARAS],
+ uint16 m_paraWb[NUM_MODE_PARAS],uint16 m_paraSWb[NUM_MODE_PARAS]);
+void spe_setHacModeNeeded(bool isNeed);
+//void SPE_MagiClarityData(short MagiClarityData[32]);
+#endif
+
+// ----------------------------------------------------------------------------
+// DSP filter/function related parameter/coefficient setting
+// ----------------------------------------------------------------------------
+#if defined(_SPE_ENH_MD_PARSE_)
+void spe_setMagiCon(void);
+void spe_DisableMagiCon(void);
+//void SPE_SetActiveEchoRefInfo(uint16 sphMode);
+//void SPE_SetEchoRefInfo(bool isEchoRefOn, uint16 echoRefMicIndex, uint16 delayAndSwitch4Dsp, uint16 sphMode);
+#endif
+
+
+void spe_setNotchFilterParam(int16 *param, bool is2In1Spk);
+void L1SP_EnhancementCtrlSupport( uint16 value );
+void SetSpeechEnhancement(bool ec);
+void SPE_WaitSPEDynReady(void) ;
+void l1sp_setCtmSpeStatus(bool s);
+bool l1sp_getCtmSpeStatus();
+
+typedef enum{
+ SpeechEnh_All = 0, //default path : UL+DL
+ SpeechEnh_UL,
+ SpeechEnh_DL,
+}SpeechEnh_path;
+void SetSPEnhancePath(uint8 path);
+
+
+#endif
diff --git a/mcu/driver/audio/src/v1/inc/sp_ps.h b/mcu/driver/audio/src/v1/inc/sp_ps.h
new file mode 100644
index 0000000..c218c25
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/sp_ps.h
@@ -0,0 +1,247 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * sp_ps.h
+ *
+ * Project:
+ * --------
+ * UMOLYE
+ *
+ * Description:
+ * ------------
+ * Packet-switching speech interface
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *------------------------------------------------------------------------------
+ * $Revision: $
+ * $Modtime: $
+ * $Log: $
+ *
+ * 08 24 2020 thomas.chen
+ * [MOLY00561737] ³q??µ??¤ÀªR
+ *
+ * .
+ *
+ * 05 26 2020 yf.wang
+ * [MOLY00527586] [MP3 Excluded][MT6885][Petrus][TMO-US][MP3][WWFT][Seattle][5G4G][NSN][MDST][SWIFT][Assert] file:mcu/driver/audio/src/v1/sp_ps_codec_evs.c line:752 p1:0x00000000 p2:0x00000000 p3:0x00000000
+ * Add UL delay threshold for LTECSR.
+ *
+ * 12 04 2019 thomas.chen
+ * [MOLY00457654] AAM for 4/5G L2 Switching
+ *
+ * .
+ *
+ * 09 25 2019 thomas.chen
+ * [MOLY00443295] Gen97 Multi IRQ for reducing VoLTE delay
+ * .
+ *
+ * 07 02 2019 sheila.chen
+ * [MOLY00418158] �iP90�j DMF ?��?�q�I?�ݨD
+ * DMF: event for speech discontinued modification
+ *
+ * 06 26 2019 sheila.chen
+ * [MOLY00408630] �iP90�j DMF ?��?�q�I?�ݨD
+ *
+ * [MOLY00413193] �iP90�j DMF ?��?�q�I?�ݨD
+ *
+ * DMF ?��?�q�I?�ݨD patch back
+ *
+ * 05 22 2019 sheila.chen
+ * [MOLY00407961] �iP90�j DMF ?��?�q�I?�ݨD
+ * speech quality event notify.
+ *
+ * 06 12 2018 fu-shing.ju
+ * [MOLY00328903] [EIGER] Refactor PS Call code for LTE and NR.
+ *
+ * Fix build warring.
+ *
+ * 04 10 2018 fu-shing.ju
+ * [MOLY00305348] Use debug_info[12] bit0 to enable/disable USE_EVSIO_TO_REPLCAE_AWB.
+ * .
+ *
+
+ *******************************************************************************/
+
+
+#ifndef SP_PS_CALL_H
+#define SP_PS_CALL_H
+
+//Code Option
+//#define TK6291_FAKE_COMPILE
+//#define __USE_EVS_IO_REPLACE_AWB__
+#define __SP4G_UL_RESYNC__
+#define UL_HARD_REAL_TIME_DEMAND
+#define __OP_IS_AT_AND_T__
+
+#ifdef __PRODUCTION_RELEASE__
+ #define SP_PS_CALL_DBG_ASSERT(exp)
+#else
+/* under construction !*/
+#endif
+
+
+//Declare constant
+#define INIT_CODEC (0x3)
+
+#define SPPS_RAB_ID_MAX (6)
+
+#define AMR_SID_FRAME 8
+#define AMR_NO_DATA 15
+
+#define AWB_SID_FRAME 9
+#define WB_AMR_SID_FRAME 25
+
+#define UL_MAX_DATA_SIZE 62 // frame_type, UL : len / DL : FQI_flag , DATA(23.85=>60)
+#define DL_MAX_DATA_SIZE 66 // frame_type, UL : len / DL : FQI_flag , CFN(4 bytes), DATA(23.85=>60)
+#define MAX_DSP_FRAME_LEN 30
+
+#define MAXIMUM_UL_DELAY 15 // CSR define for debug
+#define START_SHRINK_UL_DELAY 10 // L1Audio shrink UL delay from 40ms to 20ms
+#define UL_DELAY_THRESHOLD 3 // CSR define for UL delay threshold
+
+#define MAX_4G_DL_BUFF_SIZE (2)
+#define MAX_4G_UL_BUFF_SIZE (2)
+
+#define DL_4G_THRESHOLD (1)
+#define UL_4G_THRESHOLD (2)
+
+#define HARD_REAL_TIME_UL_BUFFER_NUM 1 // could not revise
+#define RAT_4G_UL_BUFFER_NUM MAX_4G_UL_BUFF_SIZE // could not revise
+
+#define RAT_4G_DL_BUFFER_NUM MAX_4G_DL_BUFF_SIZE // do not suggest to revise
+#define RAT_4G_DL_BUFFER_NUM_BEFORE_RESYNC MAX_4G_DL_BUFF_SIZE // do not suggest to revise
+
+#define MAX_UL_BUFFER_NUM RAT_4G_UL_BUFFER_NUM
+#define MAX_DL_BUFFER_NUM RAT_4G_DL_BUFFER_NUM_BEFORE_RESYNC
+
+#define __SP4G_DL_BUFFER_BEFORE_PLAY__
+/* Enable more buffering before put frame to DSP to keep start of speech smooth.
+ If not defined this compile option, it can reduce delay but maybe can't cover the initial discontinous.
+*/
+
+// here should be careful for this will limit MAX_DL_BUFFER_NUM to 1 << DL_BUF_INDEX_BIT_NUM
+// and MAX_UL_BUFFER_NUM to 1 << UL_BUF_INDEX_BIT_NUM
+#define DL_BUF_INDEX_BIT_NUM 5
+#define UL_BUF_INDEX_BIT_NUM (8 - DL_BUF_INDEX_BIT_NUM)
+
+#define SP4G324M_DL_EXTRA_LEN 5//frameType(1), len(1), l1_frame : recieve(3)
+#define SP4G_DL_EXTRA_LEN 6//frameType(1), FQI_flag(1), CFN(4)(unit:byte)
+
+//AMRWB 23.85 classB 405 bits=>51 bytes
+#define MAX_BYTES_IN_SINGLE_SUBFLOW ((405 + 7)>>3)
+#define _IGNORE_TYPE_ERROR_ // for 4G324M since the CRC is weaker, it's possible wrong pattern.
+ // so ignore it instead of assert.
+
+#ifdef __OP_IS_AT_AND_T__
+#define SILENCE_DETECTION_COUNT_NUMBER (25)
+#define SILENCE_DETECTION_FRAME_TYPE_RECORD_NUMBER (SILENCE_DETECTION_COUNT_NUMBER+1)
+#endif //#ifdef __OP_IS_AT_AND_T__
+
+#if defined(__SP4G_UL_RESYNC__)
+typedef enum {
+ SP_PSCALL_EMAC=0,
+ SP_PSCALL_NMAC,
+ SP_PSCALL_NONE=0xFF,
+}SP_PSCALL_L2_MODE;
+#endif
+
+typedef struct
+{
+ uint16 ul_dsp_buffer[MAX_DSP_FRAME_LEN];
+ uint16 dl_dsp_buffer[MAX_DSP_FRAME_LEN];
+ uint8 dl_buffer[MAX_DL_BUFFER_NUM][DL_MAX_DATA_SIZE];
+ /*0: CFN, 1:RSSI|RSCP|ECIO|HHO_SHO ,2:crc_result ,3:s_value[0], 4:tpc_SIR_lta, 5:dpdch_SIR_lta, 6:TFCI_max_corr */
+ uint32 L1_Info[4][7];
+
+#if defined(__SP4G_UL_RESYNC__)
+ uint32 time[2][3]; //EMAC -- >unit:ms 0: MAC , 1: under dl_hisr, ready for VBIReset, 2: ul_hisr timing
+ //NMAC -- >unit:ms 0: MAC , 1: under dl_hisr, ready for VBIReset, 2: ul_hisr timing
+ bool request_resync;
+ int32 time2nextSR[2]; //unit: ms
+ int32 time2nextDRX[2]; //unit: ms
+ int32 time2nextULHISR[2]; //unit: ms
+ int32 time2nextDLHISR[2]; //unit: ms
+ SP_PSCALL_L2_MODE sph_l2_mode;
+#endif
+
+ kal_uint16 margin_AAM_ul, margin_AAM_dl;
+
+ uint8 ul_buffer[MAX_UL_BUFFER_NUM][UL_MAX_DATA_SIZE];// prevent sp4g_hisr , CSR race condition
+ uint8 ul_write_idx;
+ uint8 ul_read_idx;
+ uint8 ul_count;
+ bool is_getting_ul_data;
+ uint8 ul_delay;
+ uint8 dl_delay;
+ uint8 dl_count;
+ uint8 dl_write_idx;
+ uint8 dl_read_idx;
+ uint8 ul_codec_mode;
+ uint8 ul_report;
+ uint8 dl_report;
+ uint8 pre_ul_report;
+ uint8 pre_dl_report;
+ bool ul_waiting; // 1-message-1-get policy
+ bool dl_waiting; // 1-message-1-get policy
+ bool ul_refresh; // detect change codec_mode
+ bool ul_intrarat; //if DSP SE interrupt raise at next beginning of next SE, ignore first SE.
+ uint8 l1_info_idx;
+
+ uint8 sp4g_mode;
+ uint8 ul_buffer_size;
+ uint8 dl_buffer_size;
+ uint8 dtx_state; //enter dtx mode
+ uint8 dtx_force; //occured that force AMR frame
+ uint8 dl_subflow[MAX_BYTES_IN_SINGLE_SUBFLOW];
+}SPPS_Struct_t;
+
+typedef enum{
+ PS_SRST_TYPE_CALLON = 0,
+ PS_SRST_TYPE_HO_WITHOUT_VBIEND,
+ PS_SRST_TYPE_UNSYNC,
+ PS_SRST_TYPE_DEV,
+ PS_SRST_TYPE_HO_WITH_VBIEND,
+}PS_RESET_TYPE_t;
+
+void PSR_SP4G_Callback( SP4G_Event event, void *data);
+SP_PSCALL_L2_MODE SP4G_GetL2Mode();
+#endif //#ifndef SP_PS_CALL_H
diff --git a/mcu/driver/audio/src/v1/inc/sp_ps_aam.h b/mcu/driver/audio/src/v1/inc/sp_ps_aam.h
new file mode 100644
index 0000000..82eec1f
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/sp_ps_aam.h
@@ -0,0 +1,142 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * sp_ps_aam.h
+ *
+ * Project:
+ * --------
+ * UMOLYE
+ *
+ * Description:
+ * ------------
+ * Packet-switching AAM
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *------------------------------------------------------------------------------
+ * $Revision: $
+ * $Modtime: $
+ * $Log: $
+ *
+ * 09 25 2019 thomas.chen
+ * [MOLY00443295] Gen97 Multi IRQ for reducing VoLTE delay
+ *
+ * .
+ *
+ * 09 24 2019 thomas.chen
+ * [MOLY00443295] Gen97 Multi IRQ for reducing VoLTE delay
+ * .
+ *
+ * 04 10 2018 fu-shing.ju
+ * [MOLY00305348] Use debug_info[12] bit0 to enable/disable USE_EVSIO_TO_REPLCAE_AWB.
+ * .
+ *
+
+ *******************************************************************************/
+
+
+#ifndef SP_PS_AAM_H
+#define SP_PS_AAM_H
+
+#include "sp_ps.h"
+#include "us_timer.h"
+
+//#if defined(__SP4G_UL_RESYNC__)
+#define ust_get_duration_true(prev, cur) (((cur) >= (prev))? (((cur) - (prev))): ((USCNT_WRAP - (prev) + (cur))))
+#undef MIN
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+
+#define DSP_SD_MIPS (5) //ms
+//#define DSP_SE_MIPS (14-9) //ms
+#define DSP_SE_MIPS (20) //ms
+#define DSP_PERIOD (20) //ms
+
+#define DRIFT_DSP2MCU_RESET (2) //unit ms :allow the timing of DSP interrupt deviated from time2nextULHISR is with DRIFT_DSP2MCU_US ms.
+#define DRIFT_DSP2MCU_DSP_FINE_TUNE (1) //unit ms :allow the timing of DSP interrupt deviated from time2nextULHISR is with DRIFT_DSP2MCU_US ms.
+#define DIFF_TX_RX_ALIGN (2)
+
+#define MARGIN_CORESONIC_INIT_TIME (3) //unit ms :The length of time of transferring data from PSR to EMAC ,TO-DO, by reception of EMAC, we can adapt this value instead of a fixed value
+#define MARGIN_PSR2MAC (2) //unit ms :The length of time of transferring data from PSR to EMAC ,TO-DO, by reception of EMAC, we can adapt this value instead of a fixed value
+//#endif //#if defined(__SP4G_UL_RESYNC__)
+
+
+//#ifdef __OP_IS_AT_AND_T__
+typedef struct {
+ int UL_count;
+ int DL_count;
+ int UL_write;
+ int DL_write;
+ int UL_frame_type[SILENCE_DETECTION_FRAME_TYPE_RECORD_NUMBER];
+ int DL_frame_type[SILENCE_DETECTION_FRAME_TYPE_RECORD_NUMBER];
+ int first_EMAC_info;
+}Silence_Detection_t;
+//#endif //#ifdef __OP_IS_AT_AND_T__
+
+
+typedef enum{
+ SP_PS_AAM_STATE_NONE,
+ SP_PS_AAM_STATE_LTE_EMAC_ON,
+ SP_PS_AAM_STATE_LTE_EMAC_OFF,
+ SP_PS_AAM_STATE_LTE_RESYNC,
+ SP_PS_AAM_STATE_NR_EMAC_ON,
+ SP_PS_AAM_STATE_NR_EMAC_OFF,
+ SP_PS_AAM_STATE_NR_RESYNC,
+} SP_PS_AAM_STATE;
+
+
+void sp_ps_aam_init(void);
+void sp_ps_aam_speech_init(void);
+void sp_ps_aam_speech_init_SilenceDetection(void);
+void sp_ps_aam_GetSyncDelayRW(kal_uint16 *u16DelayR, kal_uint16 *u16DelayW, kal_uint16 *u16DelayM, kal_uint32 *u32CurTime64us);
+void sp_ps_aam_execute(SP_PS_AAM_STATE aam_state);
+SP_PS_AAM_STATE sp_ps_aam_check_status(void);
+
+void Silence_Detection_reset_count(void);
+void Silence_Detection_set_ULFrameType(int val);
+void Silence_Detection_set_DLFrameType(int val);
+
+void sp_ps_AAM_hisr(void *data);
+
+void sp_ps_smr_resync_procedure_done(void);
+#endif //#ifndef SP_PS_AAM_H
+
+
+
diff --git a/mcu/driver/audio/src/v1/inc/sp_ps_aamp.h b/mcu/driver/audio/src/v1/inc/sp_ps_aamp.h
new file mode 100644
index 0000000..d00df31
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/sp_ps_aamp.h
@@ -0,0 +1,77 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * sp_ps_aamp.h
+ *
+ * Project:
+ * --------
+ * UMOLYE
+ *
+ * Description:
+ * ------------
+ * Packet-switching AAM Plus
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *------------------------------------------------------------------------------
+ * $Revision: $
+ * $Modtime: $
+ * $Log: $
+ *
+ * 04 10 2018 fu-shing.ju
+ * [MOLY00305348] Use debug_info[12] bit0 to enable/disable USE_EVSIO_TO_REPLCAE_AWB.
+ * .
+ *
+
+ *******************************************************************************/
+
+
+#ifndef __SP_PS_AAMP_H__
+#define __SP_PS_AAMP_H__
+
+#define __SP_PS_AAM_PLUS__
+
+void sp_ps_AAMPlus_enable(void);
+void sp_ps_AAMPlus_disable(void);
+void sp_ps_AAMPlus_notify_EMAC(void *data);
+
+#endif //__SP_PS_AAMP_H__
+
diff --git a/mcu/driver/audio/src/v1/inc/sp_ps_codec_amr.h b/mcu/driver/audio/src/v1/inc/sp_ps_codec_amr.h
new file mode 100644
index 0000000..a153d99
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/sp_ps_codec_amr.h
@@ -0,0 +1,105 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * sp_ps_codec_amr.h
+ *
+ * Project:
+ * --------
+ * UMOLYE
+ *
+ * Description:
+ * ------------
+ * Packet-switching AMR speech codec driver
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *------------------------------------------------------------------------------
+ * $Revision: $
+ * $Modtime: $
+ * $Log: $
+ *
+ * 07 30 2018 fu-shing.ju
+ * [MOLY00342603] JBM2.0 Timesacling phase - LR13.R0.MP
+ * JBM 2.0 - Speech Driver.
+ *
+ * 04 10 2018 fu-shing.ju
+ * [MOLY00305348] Use debug_info[12] bit0 to enable/disable USE_EVSIO_TO_REPLCAE_AWB.
+ * .
+ *
+
+ *******************************************************************************/
+
+
+#ifndef SP_PS_CALL_CODEC_AMR_H
+#define SP_PS_CALL_CODEC_AMR_H
+
+#include "sp_ps.h"
+#include "amr_table.h"
+
+
+//#define GetFrameType2DspMode(ftype) (AmrFrameType2DspMode_spps[(ftype)])
+#define GetDspMode2FrameType(mode) (((0x20 <= (mode)) && ((mode) <= 0x28)) ? (WB_DspMode2AmrFrameType_spps[(mode)-0x20]) : \
+ (((0x03 <= (mode)) && ((mode) <= 0x0A)) ? (NB_DspMode2AmrFrameType_spps[(mode)-0x03]) : (-1)))
+
+#define GetDspModeLen(mode) (((0x20 <= (mode)) && ((mode) <= 0x28)) ? (WB_DspModeLen_spps[(mode)-0x20]) : \
+ (((0x03 <= (mode)) && ((mode) <= 0x0A)) ? (NB_DspModeLen_spps[(mode)-0x03]) : (0x00)))
+
+#define GetRab2DspMapping(ftype) (((0x10 <= (ftype)) && ((ftype) <= 0x18)) ? (tblAMR_WBOrder[(ftype) - 0x10]) : \
+ (((0x00 <= (ftype)) && ((ftype) <= 0x07)) ? (tblAMROrder[(ftype)-0x00]) : (0)))
+
+
+
+em_speech_info_SpeechCodecType convert_SP4G_CODEC_AMR_AMRWB_to_SPH_CODEC(SP4G_Codec frame_type);
+uint16 sp_ps_codec_amr_Get_RAB_subflow_spps(int index1, int index2);
+kal_uint16 sp_ps_codec_amr_GetCodecBitLength(SP4G_Codec codec);
+uint8 sp_ps_codec_amr_Get_AmrFrameType2DspMode_spps(int index);
+void sp_ps_codec_amr_reset_internal(void);
+void sp_ps_codec_amr_hisr_ul_amr(void *data);
+void sp_ps_codec_amr_hisr_dl_amr(void *data);
+void sp_ps_codec_amr_UL_GetSpeechFrame(kal_uint8 *frame_type, kal_uint8 *rab_byte_array, kal_uint8 *len);
+void sp_ps_codec_amr_DL_PutSpeechFrame(kal_uint32 CFN, SP4G_PSR_Codec codec, SP4G_Codec frame_type, kal_uint8 *encodebits, kal_bool crc_status, VoLTE_JBM_TS_Info_t *JBM_info);
+
+
+
+
+
+#endif //#ifndef SP_PS_CALL_CODEC_AMR_H
+
diff --git a/mcu/driver/audio/src/v1/inc/sp_ps_codec_evs.h b/mcu/driver/audio/src/v1/inc/sp_ps_codec_evs.h
new file mode 100644
index 0000000..5082f3d
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/sp_ps_codec_evs.h
@@ -0,0 +1,153 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * sp_ps_codec_evs.h
+ *
+ * Project:
+ * --------
+ * UMOLYE
+ *
+ * Description:
+ * ------------
+ * Packet-switching EVS speech codec driver
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *------------------------------------------------------------------------------
+ * $Revision: $
+ * $Modtime: $
+ * $Log: $
+ *
+ * 09 25 2019 thomas.chen
+ * [MOLY00443295] Gen97 Multi IRQ for reducing VoLTE delay
+ *
+ * .
+ *
+ * 09 24 2019 thomas.chen
+ * [MOLY00443295] Gen97 Multi IRQ for reducing VoLTE delay
+ * .
+ *
+ * 07 30 2018 fu-shing.ju
+ * [MOLY00342603] JBM2.0 Timesacling phase - LR13.R0.MP
+ * JBM 2.0 - Speech Driver.
+ *
+ * 04 10 2018 fu-shing.ju
+ * [MOLY00305348] Use debug_info[12] bit0 to enable/disable USE_EVSIO_TO_REPLCAE_AWB.
+ * .
+ *
+
+ *******************************************************************************/
+
+
+#ifndef SP_PS_CALL_CODEC_EVS_H
+#define SP_PS_CALL_CODEC_EVS_H
+
+#include "sp_ps.h"
+
+
+//#if defined(__EVS_CODEC_SUPPORT__)
+#include "vm.h"
+#include "pcmrb.h"
+#include "streamrb.h"
+//#endif //#if defined(__EVS_CODEC_SUPPORT__)
+
+
+#define DSP_EVS_SD_MIPS (5)
+#define DSP_EVS_SE_MIPS (20)
+
+
+//fsju, should remove
+#define EVS_CAPABILITY_BW (SP4G_CODEC_EVS_32K)
+#define EVS_PCM_BW (SP4G_CODEC_EVS_32K)
+
+typedef struct {
+ int magicid;
+ int codec;
+ int byte_len;
+ int bit_len;
+}EVS_frame_header_t;
+
+
+//sample_number(20ms at 48k) * 2byte_per_sample
+#define EVS_CODEC_PCM_BYTE_SIZE (960*2)
+//EVS Primary mode 128k: 320byte
+#define EVS_CODEC_FRAME_BYTE_SIZE (2560>>3)
+#define EVS_CODEC_PCM_BUFFER_NUM (8)
+#define EVS_CODEC_FRAME_BUFFER_NUM (8)
+//ring buffer will waste 1 element, so add dummy 2 byte(1 pcm element is 2 byte)
+#define EVS_CODEC_PCM_RB_BYTE_SIZE (EVS_CODEC_PCM_BYTE_SIZE*EVS_CODEC_PCM_BUFFER_NUM+2)
+//ring buffer will waste 1 element, so add dummy 1 byte(1 HB element is 1 byte)
+#define EVS_CODEC_FRAME_RB_BYTE_SIZE ((EVS_CODEC_FRAME_BYTE_SIZE+sizeof(EVS_frame_header_t))*EVS_CODEC_FRAME_BUFFER_NUM+1)
+
+typedef enum{
+ ENUM_EVS_NOTIFY_LTECSR_MSG_ERROR,
+ ENUM_EVS_NOTIFY_LTECSR_MSG_DATA,
+ ENUM_EVS_NOTIFY_LTECSR_MSG_MUTE,
+ ENUM_EVS_NOTIFY_LTECSR_MSG_NON,
+}enum_EVS_NOTIFY_LTECSR_MSG;
+
+
+
+
+bool sp_ps_codec_evs_is_EVS_codec(uint8 codec);
+kal_bool convert_AWB_to_EVSIOEnum(SP4G_Codec input_speech_codec, SP4G_Codec *poutput_SP4G_Codec);
+kal_bool convert_EVSIO_to_AWBEnum(SP4G_Codec input_speech_codec, SP4G_Codec *poutput_SP4G_Codec);
+void sp_ps_codec_evs_SetEVSEncCAPara(EVS_ENC_CA_PARAMETER *pEVS_CA_Par);
+void sp_ps_codec_evs_SetEVSDecCAPara(EVS_DEC_CA_PARAMETER *pEVS_CA_Par);
+SP4G_CODEC_EVS_AWB_SID_TYPE EVS_decoder_get_SID_type(void);
+void sp_ps_codec_evs_hisr_ul_EVS(void *data);
+void sp_ps_codec_evs_hisr_dl_EVS(void *data);
+int sp_ps_codec_evs_UL_GetSpeechFrame(SP4G_Codec *frame_type, uint8 *encodebits, kal_int32 *bitlen);
+void sp_ps_codec_evs_DL_PutSpeechFrame(kal_uint32 CFN, SP4G_Codec frame_type, kal_uint8 *encodebits, EVS_DEC_CA_PARAMETER *pEVS_Dec_CA_Par, kal_bool crc_status, VoLTE_JBM_TS_Info_t *JBM_info);
+void sp_ps_codec_evs_speech_init(void);
+void sp_ps_codec_evs_init(void);
+kal_uint16 sp_ps_codec_evs_GetCodecBitLength(SP4G_Codec codec);
+uint16 sp_ps_codec_evs_Get_EVS_AWB_RAB_subflow(int index1, int index2);
+void sp_ps_codec_evs_reset_internal(void);
+void sp_ps_codec_evs_set_network_bw(SP4G_Codec codec);
+void sp_ps_codec_evs_CallOpenSetPar(void);
+
+
+//void EVS_encoder_prepare_parameter(EVS_ENCODER_PARAMETER *pEVS_Enc_Par);
+//void EVS_decoder_prepare_parameter(EVS_DECODER_PARAMETER *pEVS_Decoder_Par, kal_int32 bitlen, kal_int32 BFI);
+
+
+#endif //#ifndef SP_PS_CALL_CODEC_EVS_H
diff --git a/mcu/driver/audio/src/v1/inc/sp_ps_codec_g.h b/mcu/driver/audio/src/v1/inc/sp_ps_codec_g.h
new file mode 100644
index 0000000..bb15370
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/sp_ps_codec_g.h
@@ -0,0 +1,150 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * sp_ps_codec_g.h
+ *
+ * Project:
+ * --------
+ * UMOLYE
+ *
+ * Description:
+ * ------------
+ * Packet-switching G speech codec driver
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *------------------------------------------------------------------------------
+ * $Revision: $
+ * $Modtime: $
+ * $Log: $
+ *
+ * 05 14 2020 yf.wang
+ * [MOLY00523036] [MT6873][Margaux][Q0][R3][MP5][SQC][Elisa][WW FT][Finland][NSA][IMS][TCID: V-CC-065] Sometimes audios missing when calling to Customer Service
+ *
+ * G-Series Codec add DL hisr handle to notify data for LTECSR
+ *
+ * 05 13 2020 yf.wang
+ * [MOLY00523036] [MT6873][Margaux][Q0][R3][MP5][SQC][Elisa][WW FT][Finland][NSA][IMS][TCID: V-CC-065] Sometimes audios missing when calling to Customer Service
+ * G-Series Codec add DL hisr handle to notify data for LTECSR
+ *
+ * 04 10 2018 fu-shing.ju
+ * [MOLY00305348] Use debug_info[12] bit0 to enable/disable USE_EVSIO_TO_REPLCAE_AWB.
+ * .
+ *
+
+ *******************************************************************************/
+
+
+#ifndef SP_PS_CALL_CODEC_G_H
+#define SP_PS_CALL_CODEC_G_H
+
+#include "sp_ps.h"
+
+//#if defined(__VOLTE_SUPPORT__)
+#include "vm.h"
+//#endif //#if defined(__VOLTE_SUPPORT__)
+
+//#if defined(__G_CODEC_SUPPORT__)
+#include "pcmrb.h"
+#include "streamrb.h"
+#include "g_series_union.h"
+
+//10frame * sample_number(20ms at 8k) * 2byte_per_sample
+#define G_SERIAL_CODEC_PCM_RB_BYTE_SIZE (10*160*2)
+//2048byte
+#define G_SERIAL_CODEC_STREAM_RB_BYTE_SIZE (2048)
+
+
+typedef struct GSERIES_MANAGER{
+ SP4G_Codec enc_codec;
+ //encode
+ void *enc_hdl;
+ void *enc_tmp_buf;
+ void *enc_init_buf;
+
+ int enc_pcm_size;
+ int enc_bs_size;
+
+ void *enc_init_param;
+ void *enc_rtime_param;
+
+ SP4G_Codec dec_codec;
+ //decode
+ void *dec_hdl;
+ void *dec_tmp_buf;
+ void *dec_init_buf;
+
+ int dec_pcm_size;
+ int dec_bs_size;
+
+ void *dec_init_param;
+ void *dec_rtime_param;
+}g_series_mgr_t;
+
+typedef struct {
+ int magicid;
+ int codec;
+ int len;
+}frame_header_t;
+
+
+
+
+bool sp_ps_codec_g_is_g_codec(uint8 codec);
+uint16 sp_ps_codec_g_get_g_dl_id(void);
+uint16 sp_ps_codec_g_get_g_ul_id(void);
+void sp_ps_codec_g_Encode_Init(SP4G_Codec codec_);
+void sp_ps_codec_g_Decode_Init(SP4G_Codec codec_);
+void sp_ps_codec_g_speech_init(void);
+void sp_ps_codec_g_close(void);
+void sp_ps_codec_g_reset_internal(void);
+void sp_ps_codec_g_Set_G711Parameters(kal_int32 law, kal_int32 dec_init_CNG_enable);
+int sp_ps_codec_g_GetFrame(int8* c, int8* len, uint8* tmp_buf);
+void sp_ps_codec_g_PutFrame(int c, int encoded_len, uint8* encoded_bits);
+void sp_ps_codec_g_hisr_ul_g(void *data);
+void sp_ps_codec_g_hisr_dl_g(void *data);
+int sp_ps_codec_g_UL_GSeries_IsMoreData(void);
+
+
+
+
+
+#endif //#ifndef SP_PS_CALL_CODEC_G_H
diff --git a/mcu/driver/audio/src/v1/inc/sp_ps_dsp_opt.h b/mcu/driver/audio/src/v1/inc/sp_ps_dsp_opt.h
new file mode 100644
index 0000000..e690481
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/sp_ps_dsp_opt.h
@@ -0,0 +1,88 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * sp_ps_dsp_opt.h
+ *
+ * Project:
+ * --------
+ * UMOLYE
+ *
+ * Description:
+ * ------------
+ * Packet-switching speech DSP related features
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *------------------------------------------------------------------------------
+ * $Revision: $
+ * $Modtime: $
+ * $Log: $
+ *
+ * 07 02 2018 fu-shing.ju
+ * [MOLY00336128] Gen95 dudu detection
+ *
+ * Gen95 dudu detection
+ *
+ * 04 10 2018 fu-shing.ju
+ * [MOLY00305348] Use debug_info[12] bit0 to enable/disable USE_EVSIO_TO_REPLCAE_AWB.
+ * .
+ *
+
+ *******************************************************************************/
+
+
+#ifndef __SP_PS_DSP_OPT__
+#define __SP_PS_DSP_OPT__
+
+
+//#define __SP_4G_OPT_TONE_DETECTION__
+#define __SP_4G_OPT_TONE_DETECTION_EXECUTED_IN_DSP__
+
+
+uint16 sp_ps_dsp_opt_ToneDeteGetAudID(void);
+void sp_ps_dsp_opt_ToneDeteInit(void);
+void sp_ps_dsp_opt_ToneDeteClose(void);
+void sp_ps_dsp_opt_ToneDeteTaskInit(void);
+void sp_ps_dsp_opt_ToneDeteExec();
+int32 sp_ps_dsp_opt_ToneDeteGetResult(void);
+
+
+#endif //__SP_PS_DSP_OPT__
diff --git a/mcu/driver/audio/src/v1/inc/spc_drv.h b/mcu/driver/audio/src/v1/inc/spc_drv.h
new file mode 100644
index 0000000..d69663f
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/spc_drv.h
@@ -0,0 +1,379 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * spc_drv.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * MD speech control interfaces
+ *
+ * Author:
+ * -------
+ *
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _SPC_DRV_H
+#define _SPC_DRV_H
+
+#include "sp_drv.h"
+#include "audio_enum.h"
+
+
+typedef struct spcBufInfoStruct
+{
+ uint16 syncWord;
+ uint16 type;
+ uint16 length;
+} spcBufInfo;
+
+typedef struct spcExtendedBufInfoStruct
+{
+ uint16 syncWord;
+ uint16 type;
+ uint16 length;
+ uint16 curIdx;
+ uint16 totalIdx;
+} spcExtendedBufInfo;
+
+// ----------------------------------------------------------------------------
+// Datacard
+// ----------------------------------------------------------------------------
+void spc_daca_sendDlData(void);
+void spc_daca_requestUlData(void);
+
+// ----------------------------------------------------------------------------
+// PCMNWAY
+// ----------------------------------------------------------------------------
+#if defined(__ENABLE_SPEECH_DVT__)
+void spc_pcmNWay_sendUlData(uint16 bufLen);
+void spc_pcmNWay_requestDlData(uint16 bufLen);
+#else // defined(__ENABLE_SPEECH_DVT__)
+void spc_pcmNWay_sendUlData(void);
+void spc_pcmNWay_requestDlData(void);
+#endif // defined(__ENABLE_SPEECH_DVT__)
+
+// ----------------------------------------------------------------------------
+// Background Sound
+// ----------------------------------------------------------------------------
+void spc_bgSnd_requestData(void);
+void spc_BgSndClose(void);
+
+// ----------------------------------------------------------------------------
+// Recording
+// ----------------------------------------------------------------------------
+// void spc_record_sendPcmData(void); // removed after 93md
+void spc_record_sendVmData(void);
+void spc_record_sendRAWPcmData(void);
+
+// ----------------------------------------------------------------------------
+// Ramp
+// ----------------------------------------------------------------------------
+//
+void spc_gain_sendRampDone(void);
+
+// ----------------------------------------------------------------------------
+// CTM
+// ----------------------------------------------------------------------------
+void spc_ctm_sendDumpDebugData(void);
+
+// ----------------------------------------------------------------------------
+// ECALL
+// ----------------------------------------------------------------------------
+#if defined(__ECALL_SUPPORT__)
+
+typedef enum{
+ SPC_ECALL_DISABLE = 0,
+ SPC_ECALL_SDT_ONLY,
+ SPC_ECALL_ENABLE,
+ SPC_ECALL_MAX = 3 // due to spcEmInit is unit16, so only 16 em data message can existing.
+} SPC_ECALL_STATUS;
+void spc_eCall_IVS_Open(void);
+void spc_eCall_IVS_Close(void);
+void spc_eCall_PSAP_Open(void);
+void spc_eCall_PSAP_Close(void);
+void spc_eCall_SDT_Open(void);
+void spc_eCall_SDT_Close(void);
+void spc_eCall_Msd_Data(kal_uint16 offset, kal_int16 length,SPC_MSG_FROM_T comeFrom);
+void spc_eCall_TX_CTRL_Data(kal_uint16 offset, kal_int16 length,SPC_MSG_FROM_T comeFrom);
+void spc_eCall_RX_CTRL_Data(uint16 header);
+void spc_eCall_Handshake_Info_Notify (uint16 header,uint32 data);
+void spc_Set_Ecall_Lib_Status(uint8 status);
+uint8 spc_Get_Ecall_Lib_Status(void);
+#if defined(__L5_SUPPORT__)
+ void spc_L5ECALL_Status_Info_Callback(kal_uint16 status, kal_uint32 data);
+#endif
+
+#endif
+
+void spc_gain_DlMuteSet(kal_bool on, kal_bool byPassCheck);
+void spc_gain_UlMuteSet(kal_bool on, kal_bool byPassCheck);
+
+// ----------------------------------------------------------------------------
+// MIXER
+// ----------------------------------------------------------------------------
+void spc_pcmMixer3_requestUlData(void);
+// ----------------------------------------------------------------------------
+// MIXER
+// ----------------------------------------------------------------------------
+void spc_pcmMixer_requestDlData(void);
+
+
+// ----------------------------------------------------------------------------
+// AUDL running functions Related
+// ----------------------------------------------------------------------------
+void Spc_Init(void);
+void spc_A2M_MsgHandler(kal_uint32 ccciMsg, kal_uint32 ccciResv, SPC_MSG_FROM_T comeFrom);
+#if defined(_SPE_ENH_MD_PARSE_)
+uint16 spc_ReceiveDynamicParameter(const kal_uint16 offset, const kal_uint16 length, SPC_MSG_FROM_T comeFrom);
+#else
+void spc_ReceiveEMIParInfo(const kal_uint32 offset, const kal_uint16 length, SPC_MSG_FROM_T comeFrom);
+#endif
+void spc_notify_network_status(uint32 codec);
+void spc_record_sendRawPcmData(void);
+void spc_setAcLoopbackState(bool b);
+bool spc_isAcLoopback();
+// void Spc_SetSpeechEnhMode_Adaptation( uint8 mode );
+void spc_dev_LoopbackPoint_DVT(kal_uint16 point);
+void spc_CtmClose(void);
+void spc_RttConfig(uint16 type);
+void spc_sendRampDoneAck(uint16 ramp_point);
+kal_uint16 spc_getCtmMode();
+void spc_C2KCtmStart(kal_uint16 mode);
+kal_bool spc_isPCM();
+#endif // _SPC_DRV_H
diff --git a/mcu/driver/audio/src/v1/inc/spc_io.h b/mcu/driver/audio/src/v1/inc/spc_io.h
new file mode 100644
index 0000000..d291eb3
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/spc_io.h
@@ -0,0 +1,432 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * spc_io.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * IO interface between AP and MD speech driver, and AUDL basic function structure
+ *
+ * Author:
+ * -------
+ *
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+#ifndef _SPC_IO_H_
+#define _SPC_IO_H_
+
+#include "audio_enum.h"
+
+
+typedef enum {
+
+ SPCIO_MSG_FROM_SPC_SPH_DL_DIGIT_VOLUME_ACK = 0x00,
+ SPCIO_MSG_FROM_SPC_SPH_UL_DIGIT_VOLUME_ACK,
+ SPCIO_MSG_FROM_SPC_MUTE_SPH_UL_ACK,
+ SPCIO_MSG_FROM_SPC_MUTE_SPH_DL_ACK,
+ SPCIO_MSG_FROM_SPC_SIDETONE_VOLUME_ACK,
+ SPCIO_MSG_FROM_SPC_SPH_DL_ENH_REF_DIGIT_VOLUME_ACK,
+ SPCIO_MSG_FROM_SPC_SIDETONE_CONFIG_ACK,
+ SPCIO_MSG_FROM_SPC_MUTE_SPH_UL_ENH_RESULT_ACK,
+ SPCIO_MSG_FROM_SPC_MUTE_SPH_UL_SOURCE_ACK,
+ SPCIO_MSG_FROM_SPC_MUTE_SPH_DL_CODEC_ACK,
+ SPCIO_MSG_FROM_SPC_MUTE_SPH_DL_DYNAMIC_ACK,
+
+ SPCIO_MSG_FROM_SPC_SPH_ON_ACK = 0x20,
+ SPCIO_MSG_FROM_SPC_SPH_OFF_ACK,
+ SPCIO_MSG_FROM_SPC_SET_SPH_MODE_ACK,
+ SPCIO_MSG_FROM_SPC_CTRL_SPH_ENH_ACK,
+ SPCIO_MSG_FROM_SPC_CONFIG_SPH_ENH_ACK,
+ SPCIO_MSG_FROM_SPC_SET_ACOUSTIC_LOOPBACK_ACK,
+ SPCIO_MSG_FROM_SPC_QUERY_MD_CAPABILITY_ACK,
+ SPCIO_MSG_FROM_SPC_SET_MD_CAPABILITY_ACK,
+ SPCIO_MSG_FROM_SPC_PRINT_SPH_COEFF_ACK,
+ SPCIO_MSG_FROM_SPC_SPH_ON_FOR_HOLD_CALL_ACK,
+ SPCIO_MSG_FROM_SPC_SPH_ON_FOR_DACA_ACK,
+ SPCIO_MSG_FROM_SPC_SPH_ROUTER_ON_ACK,
+ SPCIO_MSG_FROM_SPC_SET_VOICE_ENCRYPTION_ACK,
+ SPCIO_MSG_FROM_SPC_SPH_DEV_CHANGE_ACK,
+ SPCIO_MSG_FROM_SPC_ENH_CTRL_SUPPORT_ACK,
+
+ SPCIO_MSG_FROM_SPC_PNW_ON_ACK = 0x30,
+ SPCIO_MSG_FROM_SPC_PNW_OFF_ACK,
+ SPCIO_MSG_FROM_SPC_RECORD_ON_ACK,
+ SPCIO_MSG_FROM_SPC_RECORD_OFF_ACK,
+ SPCIO_MSG_FROM_SPC_DMNR_RECPLAY_ON_ACK,
+ SPCIO_MSG_FROM_SPC_DMNR_RECPLAY_OFF_ACK,
+ SPCIO_MSG_FROM_SPC_DMNR_REC_ONLY_ON_ACK,
+ SPCIO_MSG_FROM_SPC_DMNR_REC_ONLY_OFF_ACK,
+ SPCIO_MSG_FROM_SPC_PCM_REC_ON_ACK,
+ SPCIO_MSG_FROM_SPC_PCM_REC_OFF_ACK,
+ SPCIO_MSG_FROM_SPC_VM_REC_ON_ACK,
+ SPCIO_MSG_FROM_SPC_VM_REC_OFF_ACK,
+ SPCIO_MSG_FROM_SPC_RECORD_RAW_PCM_ON_ACK,
+ SPCIO_MSG_FROM_SPC_RECORD_RAW_PCM_OFF_ACK,
+ SPCIO_MSG_FROM_SPC_PCMMIXER_ON_ACK,
+ SPCIO_MSG_FROM_SPC_PCMMIXER_OFF_ACK,
+
+ SPCIO_MSG_FROM_SPC_CTM_ON_ACK = 0x40,
+ SPCIO_MSG_FROM_SPC_CTM_OFF_ACK,
+ SPCIO_MSG_FROM_SPC_CTM_DUMP_DEBUG_FILE_ACK,
+ SPCIO_MSG_FROM_SPC_BGSND_ON_ACK,
+ SPCIO_MSG_FROM_SPC_BGSND_OFF_ACK,
+ SPCIO_MSG_FROM_SPC_BGSND_CONFIG_ACK,
+
+ SPCIO_MSG_FROM_SPC_PNW_DLDATA_REQUEST = 0x50,
+ SPCIO_MSG_FROM_SPC_BGS_DATA_REQUEST,
+ SPCIO_MSG_FROM_SPC_CTM_DATA_REQUEST,
+ SPCIO_MSG_FROM_SPC_DACA_ULDATA_REQUEST,
+ SPCIO_MSG_FROM_SPC_ECALL_MSD_NOTIFY,
+ SPCIO_MSG_FROM_SPC_SPC_UL_ENC_NOTIFY,
+ SPCIO_MSG_FROM_SPC_SPC_DL_DEC_REQUEST,
+ SPCIO_MSG_FROM_SPC_PCMMIXER_DL_DATA_REQUEST,
+ SPCIO_MSG_FROM_SPC_PCMMIXER_UL_DATA_REQUEST,
+
+ SPCIO_MSG_FROM_SPC_PNW_ULDATA_NOTIFY = 0x60,
+ SPCIO_MSG_FROM_SPC_REC_DATA_NOTIFY,
+ SPCIO_MSG_FROM_SPC_CTM_DEBUG_DATA_NOTIFY,
+ SPCIO_MSG_FROM_SPC_PCM_REC_DATA_NOTIFY,
+ SPCIO_MSG_FROM_SPC_VM_REC_DATA_NOTIFY,
+ SPCIO_MSG_FROM_SPC_DACA_DLDATA_NOTIFY,
+ SPCIO_MSG_FROM_SPC_RAW_PCM_REC_DATA_NOTIFY, //0x60 + 0x6
+ SPCIO_MSG_FROM_SPC_CUST_DUMP_NOTIFY,
+
+ SPCIO_MSG_FROM_SPC_EM_DATA_REQUEST = 0x70,
+ SPCIO_MSG_FROM_SPC_EM_INCALL_ACK,
+ SPCIO_MSG_FROM_SPC_EM_DMNR_ACK,
+ SPCIO_MSG_FROM_SPC_EM_WB_ACK,
+ SPCIO_MSG_FROM_SPC_EM_MAGICON_ACK,
+ SPCIO_MSG_FROM_SPC_NETWORK_STATUS_NOTIFY,
+ SPCIO_MSG_FROM_SPC_RF_INFO_NOTIFY,
+ SPCIO_MSG_FROM_SPC_EM_HAC_ACK,
+ SPCIO_MSG_FROM_SPC_EPOF_NOTIFY,
+ SPCIO_MSG_FROM_SPC_DYNAMIC_PAR_ACK,
+ SPCIO_MSG_FROM_SPC_SPH_ENH_CORE_ACK,
+ SPCIO_MSG_FROM_SPC_DYNAMIC_PAR_IN_STRUCT_SHM_ACK,
+ SPCIO_MSG_FROM_SPC_EMI_SPEECH_PAR_INFO_ACK,
+
+ SPCIO_MSG_FROM_SPC_VIBSPK_PARAMETER_ACK = 0x80,
+ SPCIO_MSG_FROM_SPC_NXP_SMARTPA_PARAMETER_ACK,
+
+ SPCIO_MSG_FROM_SPC_NW_CODEC_INFO_NOTIFY = 0x90,
+
+ SPCIO_MSG_FROM_AUD_ALIVE_NOTIFY = 0xA0,
+
+}SPCIO_MSG_FROM_SPC;
+
+#define SPEECH_SHM_GUARD_REGION_SIZE (32)
+
+typedef enum {
+
+ SPH_SHM_AP_FLAG_READY = (1 << 0), /* AP init SHM ready or nor */
+ SPH_SHM_AP_FLAG_SPH_PARAM_WRITE = (1 << 1), /* AP is writing SHM speech param */
+
+ SPH_SHM_AP_FLAG_MAX = (1 << 31) /* max 32 bit !! */
+}sph_shm_ap_flag_t;
+
+typedef enum {
+
+ SPH_SHM_MD_FLAG_ALIVE = (1 << 0), /* modem is alive or not */
+ SPH_SHM_MD_FLAG_SPH_PARAM_READ = (1 << 1), /* MD is reading SHM speech param */
+
+ SPH_SHM_MD_FLAG_MAX = (1 << 31) /* max 32 bit !! */
+}sph_shm_md_flag_t;
+
+
+typedef struct region_info_t {
+ kal_uint32 offset; /* ex: 0x1000 */
+ kal_uint32 size; /* ex: 0x100 */
+ kal_uint32 read_idx; /* ex: 0x0 ~ 0xFF */
+ kal_uint32 write_idx; /* ex: 0x0 ~ 0xFF */
+} region_info_t;
+
+
+typedef struct sph_shm_region_t {
+ region_info_t sph_param_region;
+ region_info_t ap_data_region;
+ region_info_t md_data_region;
+ region_info_t reserve_1;
+ region_info_t reserve_2;
+} sph_shm_region_t;
+
+
+typedef struct sph_shm_t {
+ /* 32 bytes gurard region */
+ kal_uint8 guard_region_pre[SPEECH_SHM_GUARD_REGION_SIZE];
+
+ /* 8 bytes init flag */
+ kal_uint32 ap_flag; /* sph_shm_ap_flag_t: ap can r/w, md read only */
+ kal_uint32 md_flag; /* sph_shm_md_flag_t: md can r/w, ap read only */
+
+ /* 80 bytes SHM region base */
+ sph_shm_region_t region;
+
+ /* 2 bytes alive message info */
+ kal_uint16 enhMDVersion; /* enhancement using version in alive message*/
+
+ kal_uint16 reserve; /* alive message version*/
+
+ /* 4 bytes strcut size check sum */
+ kal_uint32 struct_checksum; /* assert(shm->struct_checksum == (&shm->struct_checksum - shm)); */
+
+ /* 12K bytes speech param */
+ // kal_uint8 sph_param[SPEECH_SHM_SPEECH_PARAM_SIZE];
+
+ /* 8K bytes AP data */
+ // kal_uint8 ap_data[SPEECH_SHM_AP_DATA_SIZE];
+
+ /* 32K bytes MD data */
+ // kal_uint8 md_data[SPEECH_SHM_MD_DATA_SIZE];
+
+ /* 32 bytes gurard region */
+ // kal_uint8 guard_region_post[SPEECH_SHM_GUARD_REGION_SIZE];
+} sph_shm_t;
+
+
+
+// ----------------------------------------------------------------------------
+// Macro function
+// ----------------------------------------------------------------------------
+
+// extend version
+#define SPCIO_CCCI_MSG_CMD(msg) ((msg) >> 16)
+#define SPCIO_CCCI_MSG_DATA16(msg) ((msg) & 0xffffU)
+#define SPCIO_CCCI_MSG_CONSTRCUT_CMD(msg, data16) ( ((msg)<<16) | (0xffffU&(data16)) )
+#define SPCIO_CCCI_MSG_CONSTRCUT_DATA_CMD(msg, leng) SPCIO_CCCI_MSG_CONSTRCUT_CMD(msg, leng)
+#define SPCIO_CCCI_MSG_CONSTRUCT_DATA_CMD_WO_SHIFT(typefuncData, length) ( ( (typefuncData)&0xFFFF0000U) | ((length)&0xffffU) )
+
+
+// ----------------------------------------------------------------------------
+// function for AUDL thread putting
+// ----------------------------------------------------------------------------
+/**
+ @prSmpMsg:
+ @comeFrom: 0 for trigger from CCCI_HISR, 1 for trigger from AUDL. (you can add more in the future
+*/
+void SpcIO_MsgQueuePut(SPC_MSG_ID_T msgId, uint32 msgData, uint32 msgDataRev, SPC_MSG_FROM_T callerFrom);
+// ----------------------------------------------------------------------------
+// function for msg send/receive
+// ----------------------------------------------------------------------------
+kal_uint16 spcIo_GetDataFromAp_viaIntBuf(const kal_uint16 offset, const kal_uint16 length, void *buf);
+void SpcIO_GetDataFromAp_inOneTime(kal_uint16 offset, kal_uint16 length, kal_int16 headerLen,
+ void *header, void *buf, SPC_MSG_FROM_T comeFrom);
+bool SpcIO_WriteDataToAp(void *headerBuf, kal_int16 headerLen,
+ void *srcBuf1, kal_int16 srcLen1, void *srcBuf2, kal_int16 srcLen2, SPCIO_MSG_FROM_SPC spcIoMsg);
+kal_bool SpcIO_SendMsgToAp(SPCIO_MSG_FROM_SPC spcIoMsg, uint32 data1, uint32 reserve);
+kal_uint16 SpcIo_GetDataFromAp(const kal_uint16 offset, const kal_uint16 length, void *buf, SPC_MSG_FROM_T comeFrom);
+
+kal_bool SpcIO_isFactoryBoot(void);
+
+#endif // _SPC_IO_H_
+
diff --git a/mcu/driver/audio/src/v1/inc/speech_def.h b/mcu/driver/audio/src/v1/inc/speech_def.h
new file mode 100644
index 0000000..987203e
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/speech_def.h
@@ -0,0 +1,315 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * speech_def.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file defines all the speech registers used in audio module.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+#ifndef __SPEECH_DEF_H
+#define __SPEECH_DEF_H
+
+#include "kal_public_api.h"
+#include "audio_dsp_d2c_def.h"
+#include "l1aud_common_def.h"
+
+/*
+============================================================================================================
+------------------------------------------------------------------------------------------------------------
+|| Feature Definitions
+------------------------------------------------------------------------------------------------------------
+============================================================================================================
+*/
+
+
+#if defined(__DUAL_TALK_MODEM_SUPPORT__)
+ //In 6252 W+C project, L1Audio is the only module to use BT. In this project, no BT task won't be invoked, so we add by myself to use the setMode(BT_Earphone)
+ #define __BT_SUPPORT__
+#endif
+
+//=============================================================================================
+// HQA relative setting
+//=============================================================================================
+#if 0 // defined(__HQA_AUDIO__)
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+//=============================================================================================
+// Others
+//=============================================================================================
+// #define NEW_BLOCK_FILTER_SUPPORT
+
+
+/*
+============================================================================================================
+------------------------------------------------------------------------------------------------------------
+|| SPEECH SHERIF BASE ADDRESS
+------------------------------------------------------------------------------------------------------------
+============================================================================================================
+*/
+
+
+/*
+============================================================================================================
+------------------------------------------------------------------------------------------------------------
+|| SPEECH DSP Control
+------------------------------------------------------------------------------------------------------------
+============================================================================================================
+*/
+
+//=============================================================================================
+// SPEECH Control Filed
+//=============================================================================================
+
+
+//=============================================================================================
+// Audio control field (Use Speech base)
+//=============================================================================================
+
+
+
+//=============================================================================================
+// Keytone & Tone
+
+
+//=============================================================================================
+// Voice Memo
+//=============================================================================================
+
+
+
+//=============================================================================================
+// PCM (Use Speech base)
+//=============================================================================================
+
+
+//=============================================================================================
+// AMR-WB playback control (Use Speech base)
+//=============================================================================================
+
+
+
+//=============================================================================================
+// Audio control field (Use Speech base)
+//=============================================================================================
+
+//=============================================================================================
+// EC / AEC / EES / DMNR Control Registers
+//=============================================================================================
+
+//=============================================================================================
+// Gain/Coeff/Compensation
+//=============================================================================================
+
+
+//=============================================================================================
+// Uplink Comfort noise
+//=============================================================================================
+
+//=============================================================================================
+// NR Control
+//=============================================================================================
+
+//=============================================================================================
+// TDNC Control
+//=============================================================================================
+
+//=============================================================================================
+// Enhanced Audio Control Field
+//=============================================================================================
+
+//=============================================================================================
+// Uplink WB AMR in TCH buffer
+//=============================================================================================
+
+
+//=============================================================================================
+// Sound Effect (Use Speech base)
+//=============================================================================================
+
+//=============================================================================================
+// CTM
+//=============================================================================================
+
+//=============================================================================================
+// 8K limiter control
+//=============================================================================================
+
+//=============================================================================================
+// SBC Support Definition
+//=============================================================================================
+
+//=============================================================================================
+// 3G Speech Sherif Address
+//=============================================================================================
+
+//=============================================================================================
+// DSP Speech Control
+//=============================================================================================
+
+
+
+//=============================================================================================
+// BlueTooth Mode Control Field (Sign-extension / linear / gain mode)
+//=============================================================================================
+
+//=============================================================================================
+// To indicate CSD channel types
+//=============================================================================================
+// #define DSP_TCH_S0_FLAGS DPRAM2_base(DP_TCH_S0_FLAGS)
+
+//=============================================================================================
+// DataCard Interface
+//=============================================================================================
+
+//=============================================================================================
+// Others
+//=============================================================================================
+
+/*
+============================================================================================================
+------------------------------------------------------------------------------------------------------------
+|| SPEECH DSP Control Including DM/PM Addr Define
+------------------------------------------------------------------------------------------------------------
+============================================================================================================
+*/
+
+//=============================================================================================
+// DUAL MIC Control
+//=============================================================================================
+
+
+//=============================================================================================
+// Speech Engineer Parameter
+//=============================================================================================
+
+//=============================================================================================
+// DSP Internal memory access
+//=============================================================================================
+
+//=============================================================================================
+//#define DP_AUDIO_VIA_8KBT_CTRL DPRAM2_base(DP2_AUDIO_VIA_BT_CTRL)
+//#define DP_VSBT_CTRL DPRAM2_base(DP_VBI_SYNC_BT_Earphone_CTRL)
+// #define BT_AUDIO_PLAYBACK_SD_PAGE_NUM 5
+// DSP AGC control
+//=============================================================================================
+
+
+//=============================================================================================
+// DSP Interrupt
+//=============================================================================================
+
+//=============================================================================================
+// Others
+//=============================================================================================
+
+
+#endif //__SPEECH_DEF_H
+
diff --git a/mcu/driver/audio/src/v1/inc/speech_service.h b/mcu/driver/audio/src/v1/inc/speech_service.h
new file mode 100644
index 0000000..9c916d2
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/speech_service.h
@@ -0,0 +1,50 @@
+#ifndef __SPEECH_SERVICE_H__
+#define __SPEECH_SERVICE_H__
+
+
+#include "kal_public_api.h"
+#include "kal_general_types.h"
+
+/* for MACE */
+//#include "audio_struct.h"
+#include "audio_msgid.h"
+#include "dhl_trace.h"
+
+typedef struct {
+ kal_uint16 flag;
+}SPLog_t;
+
+
+typedef struct{
+ LOCAL_PARA_HDR /* size is 4 bytes now */
+ kal_uint8 local_hdr_len;
+ kal_uint8 reserved[3];
+ kal_uint32 data_len;
+ kal_uint8 data[256];
+}singleData_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR /* size is 4 bytes now */
+ kal_uint8 local_hdr_len;
+ kal_uint8 opcode;
+ kal_uint8 reserved[2];
+}dbgInfo_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR /* size is 4 bytes now */
+ kal_uint8 local_hdr_len;
+ kal_uint8 opcode;
+ kal_uint8 reserved[2];
+ kal_uint32 log_seq;
+ kal_uint32 data_len;
+ kal_uint8 data[256];
+}data_struct;
+
+
+void SPLog_GetFlagSetting(void);
+void SPLog_LogFlagSetting(void);
+void SPLog_LogSingleData(kal_uint32 msg_id, kal_uint32 data_length, void *data);
+void SPLog_LogData(kal_uint32 msg_id, kal_uint32 data_length, void *data);
+void SPLog_LogDbgInfo(kal_uint32 msg_id, kal_uint8 opcode, void *data);
+
+#endif /* __SPEECH_SERVICE_H__ */
diff --git a/mcu/driver/audio/src/v1/inc/streamrb.h b/mcu/driver/audio/src/v1/inc/streamrb.h
new file mode 100644
index 0000000..ac3d8b6
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/streamrb.h
@@ -0,0 +1,139 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * StreamRB.h
+ *
+ * Project:
+ * --------
+ * MOLY_sw
+ *
+ * Description:
+ * ------------
+ * StreamRB utility
+ *
+ * Author:
+ * -------
+ * -------
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _StreamRB_DOT_H_
+#define _StreamRB_DOT_H_
+
+/*****************************************************************************
+* C O M P I L E R F L A G S
+******************************************************************************
+*/
+
+/*****************************************************************************
+* E X T E R N A L R E F E R E N C E S
+******************************************************************************
+*/
+#include "l1aud_common_def.h"
+/*****************************************************************************
+* C O N S T A N T S
+******************************************************************************
+*/
+
+/*****************************************************************************
+* D A T A T Y P E S
+******************************************************************************
+*/
+typedef struct StreamRingBufferStruct StreamRB;
+struct StreamRingBufferStruct {
+ uint8 *buffer;
+ int32 read;
+ int32 write;
+ int32 size;
+};
+
+/*****************************************************************************
+* P U B L I C D A T A
+******************************************************************************
+*/
+
+/*****************************************************************************
+* M A C R O S
+******************************************************************************
+*/
+
+/*****************************************************************************
+* D A T A D E C L A R A T I O N S
+******************************************************************************
+*/
+
+/*****************************************************************************
+* F U N C T I O N D E C L A R A T I O N S
+******************************************************************************
+*/
+bool StreamRB_Init( StreamRB *rb, uint8 *buffer, int32 buffer_size );
+int32 StreamRB_GetFreeSpace( StreamRB *rb );
+int32 StreamRB_GetDataCount( StreamRB *rb );
+void StreamRB_Write( StreamRB *dest_rb, uint8 *src_buffer, int32 size );
+void StreamRB_Read( StreamRB *src_rb, uint8 *dest_buffer, int32 size );
+void StreamRB_GetWriteBlock( StreamRB *dest_rb, uint8 **write_ptr, int32 *write_cnt );
+void StreamRB_GetReadBlock( StreamRB *src_rb, uint8 **read_ptr, int32 *read_cnt );
+void StreamRB_ShiftWritePointer( StreamRB *rb, int32 shamt );
+void StreamRB_ShiftReadPointer( StreamRB *rb, int32 shamt );
+//void StreamRB_ShiftReadPointer2( StreamRB *rb, int32 shamt );
+
+
+/*****************************************************************************
+* I N L I N E F U N C T I O N D E C L A R A T I O N S
+******************************************************************************
+*/
+
+#endif // ..._StreamRB_DOT_H_
+
diff --git a/mcu/driver/audio/src/v1/inc/tone_drv.h b/mcu/driver/audio/src/v1/inc/tone_drv.h
new file mode 100644
index 0000000..6d452e3
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/tone_drv.h
@@ -0,0 +1,122 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * Tone_Drv.h
+ *
+ * Project:
+ * --------
+ * MTK Feature Phone
+ *
+ * Description:
+ * ------------
+ * DTMF tone driver
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+#ifndef __TONE_DRV__H
+#define __TONE_DRV__H
+
+#define DTMF_KEYTONE_LOCK_MAX_COUNT 8
+
+void DTMF_MCU_StopAndWait();
+void DTMF_MCU_Play( const L1SP_Tones *pToneList, kal_bool fIsQTMF, kal_bool fIsKeytone);
+void DTMF_MCU_Stop(kal_bool fIsKeytone);
+kal_bool DTMF_MCU_IsTonePlaying();
+kal_bool DTMF_MCU_IsKeytonePlaying();
+
+
+typedef enum {
+ DTMF_DSP_STATE_IDLE = 0,
+ DTMF_DSP_STATE_INIT,
+ DTMF_DSP_STATE_PLAYING,
+ DTMF_DSP_STATE_ENDING,
+} DTMF_DSP_STATE;
+
+typedef struct {
+ kal_uint16 uFreq1;
+ kal_uint16 uFreq2;
+ kal_uint16 uFreq3;
+ kal_uint16 uFreq4;
+ kal_uint16 uDuration; //msec
+} DTMF_STRUCT;
+
+#if IS_EV_BOARD
+#define KT_INIT_AMP 0x1000
+#else
+#define KT_INIT_AMP 0x3FFF
+#endif
+
+#if IS_EV_BOARD
+#define TONE_INIT_AMP 0x1000
+#else
+#define TONE_INIT_AMP 0x1FFF
+#endif
+
+void DTMF_MCU_lockInit();
+
+#endif
diff --git a/mcu/driver/audio/src/v1/inc/vm.h b/mcu/driver/audio/src/v1/inc/vm.h
new file mode 100644
index 0000000..1197138
--- /dev/null
+++ b/mcu/driver/audio/src/v1/inc/vm.h
@@ -0,0 +1,210 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * vm.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * VM record related interface using internal
+ *
+ * Author:
+ * -------
+ *
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _VM_H
+#define _VM_H
+
+#if defined(__MD93__) || defined(__MD95__) || defined(__MD97__) || defined(__MD97P__)
+#define VM_CHIP_ID 0x6293
+#else
+#define VM_CHIP_ID 0xFFFF
+#endif
+
+typedef enum {
+ EVS_AWB660 = 11,
+ EVS_AWB885,
+ EVS_AWB1265,
+ EVS_AWB1425,
+ EVS_AWB1585,
+ EVS_AWB1825,
+ EVS_AWB1985,
+ EVS_AWB2305,
+ EVS_AWB2385,
+ EVS_PRI590,
+ EVS_PRI720,
+ EVS_PRI800,
+ EVS_PRI960,
+ EVS_PRI1320,
+ EVS_PRI1640,
+ EVS_PRI2440,
+ EVS_PRI3200,
+ EVS_PRI4800,
+ EVS_PRI6400,
+ EVS_PRI9600,
+ EVS_PRI12800,
+ EVS_SID_LOST_NODATA = 98,
+ EVS_UNDEF = 99
+}EVS_VM_ID;
+
+//#if defined(__G_CODEC_SUPPORT__) && defined(__VOLTE_SUPPORT__)
+typedef struct _vmGCodecULInfo
+{
+ uint16 drop_info;
+ //uint16 system_time;
+ uint16 codec;
+ uint16 codec_parameters;
+}vmGCodecULInfo, *pvmGCodecULInfo;
+
+typedef struct _vmGCodecDLInfo
+{
+ uint16 drop_info;
+ //uint16 system_time;
+ uint16 codec;
+ uint16 codec_parameters;
+ uint16 DL_PCM_size;
+}vmGCodecDLInfo, *pvmGCodecDLInfo;
+
+void vmStoreGCodecULStream(vmGCodecULInfo *pstvmGCodecULInfo, kal_uint16 u16StreamSize, kal_uint8 *pu8StreamData);
+void vmStoreGCodecDLStream(vmGCodecDLInfo *pstvmGCodecDLInfo, kal_uint16 u16StreamSize, kal_uint8 *pu8StreamData);
+//#endif //#if defined(__G_CODEC_SUPPORT__) && defined(__VOLTE_SUPPORT__)
+
+void vmSet3GNetworkInfo(uint32 *l1_info, uint16 crc_result, uint16 buf_status, uint8 dl_count);
+
+void VM_Init(void);
+void VMREC_ConfigEpl(void);
+void VMREC_Start(void (*vm_hdlr)(void), bool isVoc);
+void VMREC_Stop( bool isVoc);
+
+/**
+ @buf1: [Output]pointer to pcm buf1,
+ @len1: [Output]length of buf1, unit is word(2byte)
+ @buf2: [Output]pointer to pcm buf2
+ @len2: [Output]length of buf2. unit is word(2byte)
+*/
+void VmRec_GetReadBufs(kal_uint32 *add1, kal_uint16 *len1, kal_uint32 *add2, kal_uint16 *len2);
+void VmRec_ReadDataDone(uint16 len);
+
+#endif //_VM_H
+