From: hcj <1224667075@qq.com> Date: Tue, 5 Nov 2024 07:37:18 +0000 (+0800) Subject: 修复cat1电话异常Free导致dsp挂掉问题 X-Git-Tag: fd230_release_V1.3.102~130 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=refs%2Fchanges%2F1340%2F2;p=mirrors%2FFD230.git 修复cat1电话异常Free导致dsp挂掉问题 --- diff --git a/code/sdk/drivers/drivers/driver/audio/source/drv/aoe/drv_ao.c b/code/sdk/drivers/drivers/driver/audio/source/drv/aoe/drv_ao.c index 3b8757c26..b767e2cf4 100755 --- a/code/sdk/drivers/drivers/driver/audio/source/drv/aoe/drv_ao.c +++ b/code/sdk/drivers/drivers/driver/audio/source/drv/aoe/drv_ao.c @@ -216,12 +216,6 @@ td_s32 sap_ioctl_ao_open(td_u32 cmd, td_void *arg, td_void *file) } #endif - ret = drv_ao_load_aef(); - if (ret != AUDIO_SUCCESS) { - sap_err_log_fun(drv_ao_load_aef, ret); - return ret; - } - audio_unused(cmd); audio_unused(file); return AUDIO_SUCCESS; @@ -628,7 +622,7 @@ static td_s32 ao_set_aef_param_by_profile(td_handle drv_ao, ao_attr *attr, ao_ae td_s32 ret; td_u32 lib_buf_size = AO_AEF_PARAM_SIZE_MMZ_MAX; td_u8 *lib_buf = (td_u8 *)malloc(lib_buf_size); - if (lib_buf == TD_NULL) { + if (lib_buf == TD_NULL) { return ERR_AO_NULL_PTR; } @@ -664,16 +658,27 @@ td_s32 sap_ioctl_ao_set_aef_profile(td_u32 cmd, td_void *arg, td_void *file) td_handle drv_ao; ao_attr attr = {0}; sap_ao_port_aef_profile *profile = TD_NULL; - + profile = (sap_ao_port_aef_profile *)arg; drv_ao = profile->h_mod; + + if (profile->aef_profile > AO_AEF_PROFILE_NONE && profile->aef_profile < AO_AEF_PROFILE_MAX) + { + ret = drv_ao_load_aef(); + if (ret != AUDIO_SUCCESS) { + sap_err_log_fun(drv_ao_load_aef, ret); + return ret; + } + } + + ret = drv_msg_ao_set_aef_profile(drv_ao, profile->aef_profile); if (ret != AUDIO_SUCCESS) { sap_err_log_fun(drv_msg_ao_set_aef_profile, ret); return ret; } - + if (profile->aef_profile == AO_AEF_PROFILE_NONE || profile->aef_profile == AO_AEF_PROFILE_MAX) { return AUDIO_SUCCESS; }