Loading dsp/q6afe.c +15 −1 Original line number Diff line number Diff line Loading @@ -5824,6 +5824,7 @@ static int __afe_port_start(u16 port_id, union afe_port_config *afe_config, enum afe_mad_type mad_type; uint16_t port_index; u32 power_mode = 0; u16 i; memset(¶m_hdr, 0, sizeof(param_hdr)); memset(&port_cfg, 0, sizeof(port_cfg)); Loading Loading @@ -6249,8 +6250,21 @@ static int __afe_port_start(u16 port_id, union afe_port_config *afe_config, ret = afe_send_cmd_port_start(port_id); fail_cmd: if (ret) if (ret) { this_afe.afe_port_start_failed[port_index] = true; if ((codec_format != ASM_MEDIA_FMT_NONE) && (cfg_type == AFE_PARAM_ID_SLIMBUS_CONFIG)) { if ((q6core_get_avcs_api_version_per_service( APRV2_IDS_SERVICE_ID_ADSP_CORE_V) >= AVCS_API_VERSION_V5)) { for (i = 0; i < MAX_ALLOWED_USE_CASES; i++) { if (pm[i] && pm[i]->port_id == port_id) { q6afe_unload_avcs_modules(port_id, i); break; } } } } } mutex_unlock(&this_afe.afe_cmd_lock); return ret; } Loading Loading
dsp/q6afe.c +15 −1 Original line number Diff line number Diff line Loading @@ -5824,6 +5824,7 @@ static int __afe_port_start(u16 port_id, union afe_port_config *afe_config, enum afe_mad_type mad_type; uint16_t port_index; u32 power_mode = 0; u16 i; memset(¶m_hdr, 0, sizeof(param_hdr)); memset(&port_cfg, 0, sizeof(port_cfg)); Loading Loading @@ -6249,8 +6250,21 @@ static int __afe_port_start(u16 port_id, union afe_port_config *afe_config, ret = afe_send_cmd_port_start(port_id); fail_cmd: if (ret) if (ret) { this_afe.afe_port_start_failed[port_index] = true; if ((codec_format != ASM_MEDIA_FMT_NONE) && (cfg_type == AFE_PARAM_ID_SLIMBUS_CONFIG)) { if ((q6core_get_avcs_api_version_per_service( APRV2_IDS_SERVICE_ID_ADSP_CORE_V) >= AVCS_API_VERSION_V5)) { for (i = 0; i < MAX_ALLOWED_USE_CASES; i++) { if (pm[i] && pm[i]->port_id == port_id) { q6afe_unload_avcs_modules(port_id, i); break; } } } } } mutex_unlock(&this_afe.afe_cmd_lock); return ret; } Loading