FreeCalypso > hg > fc-tourmaline
view src/cs/drivers/drv_app/power/board/power.c @ 273:5caa86ee2cfa
enable L1_NEW_AEC in l1_confg.h (bold change)
The AEC function implemented in DSP ROM 3606 on the Calypso silicon
we work with is the one that corresponds to L1_NEW_AEC; the same holds
for DSP 34 and even for DSP 33 with more recent patch versions.
However, TI shipped their TCS211 reference fw with L1_NEW_AEC set to 0,
thus driving AEC the old way if anyone tried to enable it, either via
AT%Nxxxx or via the audio mode facility. As a result, the fw would
try to control features which no longer exist in the DSP (long vs short
echo and the old echo suppression level bits), while providing no way
to tune the 8 new parameter words added to the DSP's NDB page.
The only sensible solution is to bite the bullet and enable L1_NEW_AEC
in L1 config, with fallout propagating into RiViera Audio Service
T_AUDIO_AEC_CFG structure and into /aud/*.cfg binary file format.
The latter fallout will be addressed in further code changes.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 29 Jul 2021 18:32:40 +0000 |
parents | b5e8dfd114a7 |
children | a75eefbf8be4 |
line wrap: on
line source
/******************************************************************************* * * power.c * * Purpose: This file contains the functions used for power on and off * management of the board. * In case of RVM_PWR_SWE, this file contains also the * functions used for charger plug and unplug management. * They are all called after the occurence of the ABB interrupt. * * Author: Candice Bazanegue (c-brille@ti.com) * * The present FreeCalypso version is heavily modified from TI's original, * for the new FreeCalypso way of managing handset on/off state. * ******************************************************************************/ #ifndef _WINDOWS #include "rv.cfg" #endif #include "abb/abb.h" #include "rvm/rvm_use_id_list.h" #include "spi/spi_env.h" #include "power/power.h" #include "rv/rv_defined_swe.h" // for RVM_PWR_SWE #ifndef _WINDOWS #include "kpd/kpd_power_api.h" #include "ffs/ffs.h" #endif // _WINDOWS #ifndef _WINDOWS /* Declare the variable containing pressed and released callback. */ extern T_KPD_KEYPAD Kp; extern effs_t ffs_exit(void); #endif // _WINDOWS #if (MMI != 0) #include "fcbm/fcbm_send_msg.h" #endif /// The ABB status used to know the cause of the Switch ON event. static SYS_UWORD16 Power_abb_status = 0; /******************************************************************************* ** ** Function Power_ON_Button ** ** Description: Informs the Protocol Stack that the Power ON key has been ** pressed, and thus allows it to start. ** *******************************************************************************/ void Power_ON_Button(void) { #if (MMI != 0) extern void fchs_pwon_button_boot(void); extern int r2d_is_running, mmi_task_init_done; extern UINT16 fchg_first_vbat; while (!fchg_first_vbat || !r2d_is_running || !mmi_task_init_done) rvf_delay(8); fchs_pwon_button_boot(); #endif } /******************************************************************************* ** ** Function Power_OFF_Button ** ** Description: Informs the Protocol Stack that the Power OFF key has been ** pressed, and thus allows it to stop. ** *******************************************************************************/ void Power_OFF_Button(void) { rvf_send_trace("Power off button", 16, NULL_PARAM, RV_TRACE_LEVEL_WARNING, LCC_USE_ID); if (Kp.pressed && Kp.released) { (Kp.pressed)(KPD_PWR); /* tell key is pressed */ rvf_delay(5); (Kp.released)(); /* tell key is released */ } else ABB_Power_Off(); } /** * @brief Sets the cause of the switch ON event. * * This function get the ABB status register and stores it into the * global variable Power_abb_status. * * @noparam * * @noreturn */ void Set_Switch_ON_Cause(void) { Power_abb_status = ABB_Read_Status(); } /******************************************************************************* ** ** Function Switch_ON ** ** Description This function is called by the spi task after the board is ** switched ON. It calls the appropriate function according ** to the ABB status register. ** ** Warning The Set_Switch_ON_Cause() function has to be called prior. ** *******************************************************************************/ void Switch_ON(void) { if (Power_abb_status & (CHGSTS|CHGPRES)) { /* Switch on Condition on CHARGER IC PLUG */ rvf_send_trace("Boot: Charger Plug",18, NULL_PARAM, RV_TRACE_LEVEL_DEBUG_LOW, LCC_USE_ID); #if (MMI != 0) fcbm_message_to_task(FCBM_START_CHG_MODE); #endif } else if (Power_abb_status & ONBSTS) { /* Switch on Condition on ON BUTTON Push */ rvf_send_trace("Push Button from OFF to ON",26, NULL_PARAM, RV_TRACE_LEVEL_DEBUG_LOW, LCC_USE_ID); Power_ON_Button(); } else { /* In FreeCalypso start from reset is NOT the same as PWON! */ rvf_send_trace("Start from reset",16, NULL_PARAM, RV_TRACE_LEVEL_DEBUG_LOW, LCC_USE_ID); #if (MMI != 0) fcbm_message_to_task(FCBM_START_RESET_MODE); #endif } } /******************************************************************************* ** ** Function Power_ON_Remote ** ** Description ** ** *******************************************************************************/ void Power_ON_Remote(void) { } /******************************************************************************* ** ** Function Power_OFF_Remote ** ** Description ** ** *******************************************************************************/ void Power_OFF_Remote(void) { } /******************************************************************************* ** ** Function Power_IT_WakeUp ** ** Description ** ** *******************************************************************************/ void Power_IT_WakeUp(void) { }