From 0f5426b31b9a15743e4621a972cccafc4087aa62 Mon Sep 17 00:00:00 2001 From: SathishKumar Mani Date: Mon, 15 Oct 2012 14:56:17 -0700 Subject: [PATCH] alsa_sound: change voice-call stop sequence When application processor is paired with an external modem, stop command should be sent to the DSP on the modem before closing the Slimbus channels on the application processor. Bug: 7313016 Change-Id: Ibafeaf9a9badbf32cc955c4e8b5c81e5efdcbb0c Signed-off-by: Iliyan Malchev --- alsa_sound/alsa_default.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/alsa_sound/alsa_default.cpp b/alsa_sound/alsa_default.cpp index 18a28d29..40d575cc 100644 --- a/alsa_sound/alsa_default.cpp +++ b/alsa_sound/alsa_default.cpp @@ -1088,6 +1088,21 @@ static status_t s_close(alsa_handle_t *handle) handle->rxHandle = 0; ALOGV("s_close: handle %p h %p", handle, h); if (h) { + if ((!strcmp(handle->useCase, SND_USE_CASE_VERB_VOICECALL) || + !strcmp(handle->useCase, SND_USE_CASE_MOD_PLAY_VOICE)) && + platform_is_Fusion3()) { +#ifdef QCOM_CSDCLIENT_ENABLED + if (csd_stop_voice == NULL) { + ALOGE("dlsym:Error:%s Loading csd_client_disable_device", dlerror()); + } else { + err = csd_stop_voice(); + if (err < 0) { + ALOGE("s_close: csd_client error %d\n", err); + } + } +#endif + } + ALOGV("s_close rxHandle\n"); err = pcm_close(h); if(err != NO_ERROR) { @@ -1105,21 +1120,6 @@ static status_t s_close(alsa_handle_t *handle) ALOGE("s_close: pcm_close failed for handle with err %d", err); } - if ((!strcmp(handle->useCase, SND_USE_CASE_VERB_VOICECALL) || - !strcmp(handle->useCase, SND_USE_CASE_MOD_PLAY_VOICE)) && - platform_is_Fusion3()) { -#ifdef QCOM_CSDCLIENT_ENABLED - if (csd_stop_voice == NULL) { - ALOGE("dlsym:Error:%s Loading csd_client_disable_device", dlerror()); - } else { - err = csd_stop_voice(); - if (err < 0) { - ALOGE("s_close: csd_client error %d\n", err); - } - } -#endif - } - disableDevice(handle); } else if((!strcmp(handle->useCase, SND_USE_CASE_VERB_HIFI_LOW_POWER)) || (!strcmp(handle->useCase, SND_USE_CASE_MOD_PLAY_LPA)) ||