Loading hal/audio_extn/hfp.c +2 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,7 @@ static int32_t start_hfp(struct audio_device *adev, int32_t pcm_dev_rx_id, pcm_dev_tx_id, pcm_dev_asm_rx_id, pcm_dev_asm_tx_id; ALOGD("%s: enter", __func__); adev->enable_hfp = true; uc_info = (struct audio_usecase *)calloc(1, sizeof(struct audio_usecase)); uc_info->id = hfpmod.ucid; Loading Loading @@ -208,6 +209,7 @@ static int32_t stop_hfp(struct audio_device *adev) struct audio_usecase *uc_info; ALOGD("%s: enter", __func__); adev->enable_hfp = false; hfpmod.is_hfp_running = false; /* 1. Close the PCM devices */ Loading hal/audio_hw.h +1 −0 Original line number Diff line number Diff line Loading @@ -232,6 +232,7 @@ struct audio_device { bool bt_wb_speech_enabled; bool mic_muted; bool enable_voicerx; bool enable_hfp; int snd_card; void *platform; Loading hal/msm8974/platform.c +15 −2 Original line number Diff line number Diff line Loading @@ -202,6 +202,7 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_VOICE_TX] = "voice-tx", [SND_DEVICE_OUT_SPEAKER_PROTECTED] = "speaker-protected", [SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED] = "voice-speaker-protected", [SND_DEVICE_OUT_VOICE_SPEAKER_HFP] = "voice-speaker-hfp", /* Capture sound devices */ [SND_DEVICE_IN_HANDSET_MIC] = "handset-mic", Loading Loading @@ -238,6 +239,7 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_DMIC_TMUS] = "voice-dmic-ef-tmus", [SND_DEVICE_IN_VOICE_SPEAKER_MIC] = "voice-speaker-mic", [SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = "voice-speaker-dmic-ef", [SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP] = "voice-speaker-mic-hfp", [SND_DEVICE_IN_VOICE_HEADSET_MIC] = "voice-headset-mic", [SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = "voice-tty-full-headset-mic", [SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC] = "voice-tty-vco-handset-mic", Loading Loading @@ -286,6 +288,7 @@ static int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_VOICE_TX] = 45, [SND_DEVICE_OUT_SPEAKER_PROTECTED] = 124, [SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED] = 101, [SND_DEVICE_OUT_VOICE_SPEAKER_HFP] = 92, [SND_DEVICE_IN_HANDSET_MIC] = 4, [SND_DEVICE_IN_HANDSET_MIC_AEC] = 106, Loading Loading @@ -320,6 +323,7 @@ static int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_DMIC] = 41, [SND_DEVICE_IN_VOICE_DMIC_TMUS] = ACDB_ID_VOICE_DMIC_EF_TMUS, [SND_DEVICE_IN_VOICE_SPEAKER_MIC] = 11, [SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP] = 91, [SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = 43, [SND_DEVICE_IN_VOICE_HEADSET_MIC] = 8, [SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = 16, Loading Loading @@ -1776,7 +1780,11 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi snd_device = SND_DEVICE_OUT_BT_SCO; } } else if (devices & (AUDIO_DEVICE_OUT_SPEAKER | AUDIO_DEVICE_OUT_SPEAKER_SAFE)) { if (!adev->enable_hfp) { snd_device = SND_DEVICE_OUT_VOICE_SPEAKER; } else { snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_HFP; } } else if (devices & AUDIO_DEVICE_OUT_EARPIECE) { if(adev->voice.hac) snd_device = SND_DEVICE_OUT_VOICE_HAC_HANDSET; Loading Loading @@ -1902,7 +1910,12 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d //select default if (snd_device == SND_DEVICE_NONE) { if (!adev->enable_hfp) { snd_device = SND_DEVICE_IN_VOICE_SPEAKER_MIC; } else { snd_device = SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP; platform_set_echo_reference(adev, true, out_device); } } } else if (out_device & AUDIO_DEVICE_OUT_TELEPHONY_TX) { snd_device = SND_DEVICE_IN_VOICE_RX; Loading hal/msm8974/platform.h +2 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ enum { SND_DEVICE_OUT_VOICE_TX, SND_DEVICE_OUT_SPEAKER_PROTECTED, SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED, SND_DEVICE_OUT_VOICE_SPEAKER_HFP, SND_DEVICE_OUT_END, /* Loading Loading @@ -118,6 +119,7 @@ enum { SND_DEVICE_IN_VOICE_DMIC, SND_DEVICE_IN_VOICE_DMIC_TMUS, SND_DEVICE_IN_VOICE_SPEAKER_MIC, SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP, SND_DEVICE_IN_VOICE_SPEAKER_DMIC, SND_DEVICE_IN_VOICE_HEADSET_MIC, SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC, Loading Loading
hal/audio_extn/hfp.c +2 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,7 @@ static int32_t start_hfp(struct audio_device *adev, int32_t pcm_dev_rx_id, pcm_dev_tx_id, pcm_dev_asm_rx_id, pcm_dev_asm_tx_id; ALOGD("%s: enter", __func__); adev->enable_hfp = true; uc_info = (struct audio_usecase *)calloc(1, sizeof(struct audio_usecase)); uc_info->id = hfpmod.ucid; Loading Loading @@ -208,6 +209,7 @@ static int32_t stop_hfp(struct audio_device *adev) struct audio_usecase *uc_info; ALOGD("%s: enter", __func__); adev->enable_hfp = false; hfpmod.is_hfp_running = false; /* 1. Close the PCM devices */ Loading
hal/audio_hw.h +1 −0 Original line number Diff line number Diff line Loading @@ -232,6 +232,7 @@ struct audio_device { bool bt_wb_speech_enabled; bool mic_muted; bool enable_voicerx; bool enable_hfp; int snd_card; void *platform; Loading
hal/msm8974/platform.c +15 −2 Original line number Diff line number Diff line Loading @@ -202,6 +202,7 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_VOICE_TX] = "voice-tx", [SND_DEVICE_OUT_SPEAKER_PROTECTED] = "speaker-protected", [SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED] = "voice-speaker-protected", [SND_DEVICE_OUT_VOICE_SPEAKER_HFP] = "voice-speaker-hfp", /* Capture sound devices */ [SND_DEVICE_IN_HANDSET_MIC] = "handset-mic", Loading Loading @@ -238,6 +239,7 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_DMIC_TMUS] = "voice-dmic-ef-tmus", [SND_DEVICE_IN_VOICE_SPEAKER_MIC] = "voice-speaker-mic", [SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = "voice-speaker-dmic-ef", [SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP] = "voice-speaker-mic-hfp", [SND_DEVICE_IN_VOICE_HEADSET_MIC] = "voice-headset-mic", [SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = "voice-tty-full-headset-mic", [SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC] = "voice-tty-vco-handset-mic", Loading Loading @@ -286,6 +288,7 @@ static int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_VOICE_TX] = 45, [SND_DEVICE_OUT_SPEAKER_PROTECTED] = 124, [SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED] = 101, [SND_DEVICE_OUT_VOICE_SPEAKER_HFP] = 92, [SND_DEVICE_IN_HANDSET_MIC] = 4, [SND_DEVICE_IN_HANDSET_MIC_AEC] = 106, Loading Loading @@ -320,6 +323,7 @@ static int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_DMIC] = 41, [SND_DEVICE_IN_VOICE_DMIC_TMUS] = ACDB_ID_VOICE_DMIC_EF_TMUS, [SND_DEVICE_IN_VOICE_SPEAKER_MIC] = 11, [SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP] = 91, [SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = 43, [SND_DEVICE_IN_VOICE_HEADSET_MIC] = 8, [SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = 16, Loading Loading @@ -1776,7 +1780,11 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi snd_device = SND_DEVICE_OUT_BT_SCO; } } else if (devices & (AUDIO_DEVICE_OUT_SPEAKER | AUDIO_DEVICE_OUT_SPEAKER_SAFE)) { if (!adev->enable_hfp) { snd_device = SND_DEVICE_OUT_VOICE_SPEAKER; } else { snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_HFP; } } else if (devices & AUDIO_DEVICE_OUT_EARPIECE) { if(adev->voice.hac) snd_device = SND_DEVICE_OUT_VOICE_HAC_HANDSET; Loading Loading @@ -1902,7 +1910,12 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d //select default if (snd_device == SND_DEVICE_NONE) { if (!adev->enable_hfp) { snd_device = SND_DEVICE_IN_VOICE_SPEAKER_MIC; } else { snd_device = SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP; platform_set_echo_reference(adev, true, out_device); } } } else if (out_device & AUDIO_DEVICE_OUT_TELEPHONY_TX) { snd_device = SND_DEVICE_IN_VOICE_RX; Loading
hal/msm8974/platform.h +2 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ enum { SND_DEVICE_OUT_VOICE_TX, SND_DEVICE_OUT_SPEAKER_PROTECTED, SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED, SND_DEVICE_OUT_VOICE_SPEAKER_HFP, SND_DEVICE_OUT_END, /* Loading Loading @@ -118,6 +119,7 @@ enum { SND_DEVICE_IN_VOICE_DMIC, SND_DEVICE_IN_VOICE_DMIC_TMUS, SND_DEVICE_IN_VOICE_SPEAKER_MIC, SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP, SND_DEVICE_IN_VOICE_SPEAKER_DMIC, SND_DEVICE_IN_VOICE_HEADSET_MIC, SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC, Loading