Loading hal/msm8916/platform.c +19 −3 Original line number Diff line number Diff line Loading @@ -204,6 +204,10 @@ static const int pcm_device_table[AUDIO_USECASE_MAX][2] = { INCALL_MUSIC_UPLINK2_PCM_DEVICE}, [USECASE_AUDIO_SPKR_CALIB_RX] = {SPKR_PROT_CALIB_RX_PCM_DEVICE, -1}, [USECASE_AUDIO_SPKR_CALIB_TX] = {-1, SPKR_PROT_CALIB_TX_PCM_DEVICE}, [USECASE_AUDIO_PLAYBACK_AFE_PROXY] = {AFE_PROXY_PLAYBACK_PCM_DEVICE, AFE_PROXY_RECORD_PCM_DEVICE}, [USECASE_AUDIO_RECORD_AFE_PROXY] = {AFE_PROXY_PLAYBACK_PCM_DEVICE, AFE_PROXY_RECORD_PCM_DEVICE}, }; /* Array to store sound devices */ Loading @@ -225,6 +229,7 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES] = "voice-tty-full-headphones", [SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES] = "voice-tty-vco-headphones", [SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET] = "voice-tty-hco-handset", [SND_DEVICE_OUT_VOICE_TX] = "voice-tx", [SND_DEVICE_OUT_AFE_PROXY] = "afe-proxy", [SND_DEVICE_OUT_USB_HEADSET] = "usb-headphones", [SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET] = "speaker-and-usb-headphones", Loading Loading @@ -279,6 +284,7 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_REC_MIC_NS] = "voice-rec-mic", [SND_DEVICE_IN_VOICE_REC_DMIC_STEREO] = "voice-rec-dmic-ef", [SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE] = "voice-rec-dmic-ef-fluence", [SND_DEVICE_IN_VOICE_RX] = "voice-rx", [SND_DEVICE_IN_USB_HEADSET_MIC] = "usb-headset-mic", [SND_DEVICE_IN_CAPTURE_FM] = "capture-fm", [SND_DEVICE_IN_AANC_HANDSET_MIC] = "aanc-handset-mic", Loading Loading @@ -316,6 +322,7 @@ static int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES] = 17, [SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES] = 17, [SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET] = 37, [SND_DEVICE_OUT_VOICE_TX] = 45, [SND_DEVICE_OUT_AFE_PROXY] = 0, [SND_DEVICE_OUT_USB_HEADSET] = 45, [SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET] = 14, Loading Loading @@ -369,6 +376,7 @@ static int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_REC_MIC_NS] = 107, [SND_DEVICE_IN_VOICE_REC_DMIC_STEREO] = 34, [SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE] = 41, [SND_DEVICE_IN_VOICE_RX] = 44, [SND_DEVICE_IN_USB_HEADSET_MIC] = 44, [SND_DEVICE_IN_CAPTURE_FM] = 0, [SND_DEVICE_IN_AANC_HANDSET_MIC] = 104, Loading Loading @@ -412,6 +420,7 @@ struct snd_device_index snd_device_name_index[SND_DEVICE_MAX] = { {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TX)}, {TO_NAME_INDEX(SND_DEVICE_OUT_AFE_PROXY)}, {TO_NAME_INDEX(SND_DEVICE_OUT_USB_HEADSET)}, {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET)}, Loading Loading @@ -464,6 +473,7 @@ struct snd_device_index snd_device_name_index[SND_DEVICE_MAX] = { {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_MIC_NS)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_DMIC_STEREO)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_RX)}, {TO_NAME_INDEX(SND_DEVICE_IN_USB_HEADSET_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_CAPTURE_FM)}, {TO_NAME_INDEX(SND_DEVICE_IN_AANC_HANDSET_MIC)}, Loading Loading @@ -687,7 +697,6 @@ void platform_set_echo_reference(void *platform, bool enable) ALOGV("EC reference is already disabled : %d", my_data->ec_ref_enabled); } } ALOGV("Setting EC Reference: %d", enable); } Loading Loading @@ -1207,6 +1216,10 @@ void platform_add_backend_name(char *mixer_path, snd_device_t snd_device) strlcat(mixer_path, " hdmi", MIXER_PATH_MAX_LENGTH); else if (snd_device == SND_DEVICE_OUT_SPEAKER_AND_HDMI) strlcat(mixer_path, " speaker-and-hdmi", MIXER_PATH_MAX_LENGTH); else if (snd_device == SND_DEVICE_OUT_VOICE_TX) strlcat(mixer_path, " afe-proxy", MIXER_PATH_MAX_LENGTH); else if (snd_device == SND_DEVICE_IN_VOICE_RX) strlcat(mixer_path, " afe-proxy", MIXER_PATH_MAX_LENGTH); else if (snd_device == SND_DEVICE_OUT_AFE_PROXY) strlcat(mixer_path, " afe-proxy", MIXER_PATH_MAX_LENGTH); else if (snd_device == SND_DEVICE_OUT_USB_HEADSET) Loading Loading @@ -1732,7 +1745,9 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi snd_device = SND_DEVICE_OUT_ANC_HANDSET; else snd_device = SND_DEVICE_OUT_VOICE_HANDSET; } } else if (devices & AUDIO_DEVICE_OUT_TELEPHONY_TX) snd_device = SND_DEVICE_OUT_VOICE_TX; if (snd_device != SND_DEVICE_NONE) { goto exit; } Loading Loading @@ -1904,7 +1919,8 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d if (audio_extn_hfp_is_active(adev)) platform_set_echo_reference(adev->platform, true); } } } else if (out_device & AUDIO_DEVICE_OUT_TELEPHONY_TX) snd_device = SND_DEVICE_IN_VOICE_RX; } else if (source == AUDIO_SOURCE_CAMCORDER) { if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC || in_device & AUDIO_DEVICE_IN_BACK_MIC) { Loading hal/msm8916/platform.h +5 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ enum { SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES, SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES, SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET, SND_DEVICE_OUT_VOICE_TX, SND_DEVICE_OUT_AFE_PROXY, SND_DEVICE_OUT_USB_HEADSET, SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET, Loading Loading @@ -128,6 +129,7 @@ enum { SND_DEVICE_IN_VOICE_REC_MIC_NS, SND_DEVICE_IN_VOICE_REC_DMIC_STEREO, SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE, SND_DEVICE_IN_VOICE_RX, SND_DEVICE_IN_USB_HEADSET_MIC, SND_DEVICE_IN_CAPTURE_FM, SND_DEVICE_IN_AANC_HANDSET_MIC, Loading Loading @@ -220,6 +222,9 @@ enum { #define QCHAT_CALL_PCM_DEVICE 14 #define VOWLAN_CALL_PCM_DEVICE 16 #define AFE_PROXY_PLAYBACK_PCM_DEVICE 7 #define AFE_PROXY_RECORD_PCM_DEVICE 8 #define LIB_CSD_CLIENT "libcsd-client.so" /* CSD-CLIENT related functions */ typedef int (*init_t)(); Loading Loading
hal/msm8916/platform.c +19 −3 Original line number Diff line number Diff line Loading @@ -204,6 +204,10 @@ static const int pcm_device_table[AUDIO_USECASE_MAX][2] = { INCALL_MUSIC_UPLINK2_PCM_DEVICE}, [USECASE_AUDIO_SPKR_CALIB_RX] = {SPKR_PROT_CALIB_RX_PCM_DEVICE, -1}, [USECASE_AUDIO_SPKR_CALIB_TX] = {-1, SPKR_PROT_CALIB_TX_PCM_DEVICE}, [USECASE_AUDIO_PLAYBACK_AFE_PROXY] = {AFE_PROXY_PLAYBACK_PCM_DEVICE, AFE_PROXY_RECORD_PCM_DEVICE}, [USECASE_AUDIO_RECORD_AFE_PROXY] = {AFE_PROXY_PLAYBACK_PCM_DEVICE, AFE_PROXY_RECORD_PCM_DEVICE}, }; /* Array to store sound devices */ Loading @@ -225,6 +229,7 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES] = "voice-tty-full-headphones", [SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES] = "voice-tty-vco-headphones", [SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET] = "voice-tty-hco-handset", [SND_DEVICE_OUT_VOICE_TX] = "voice-tx", [SND_DEVICE_OUT_AFE_PROXY] = "afe-proxy", [SND_DEVICE_OUT_USB_HEADSET] = "usb-headphones", [SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET] = "speaker-and-usb-headphones", Loading Loading @@ -279,6 +284,7 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_REC_MIC_NS] = "voice-rec-mic", [SND_DEVICE_IN_VOICE_REC_DMIC_STEREO] = "voice-rec-dmic-ef", [SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE] = "voice-rec-dmic-ef-fluence", [SND_DEVICE_IN_VOICE_RX] = "voice-rx", [SND_DEVICE_IN_USB_HEADSET_MIC] = "usb-headset-mic", [SND_DEVICE_IN_CAPTURE_FM] = "capture-fm", [SND_DEVICE_IN_AANC_HANDSET_MIC] = "aanc-handset-mic", Loading Loading @@ -316,6 +322,7 @@ static int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES] = 17, [SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES] = 17, [SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET] = 37, [SND_DEVICE_OUT_VOICE_TX] = 45, [SND_DEVICE_OUT_AFE_PROXY] = 0, [SND_DEVICE_OUT_USB_HEADSET] = 45, [SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET] = 14, Loading Loading @@ -369,6 +376,7 @@ static int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_REC_MIC_NS] = 107, [SND_DEVICE_IN_VOICE_REC_DMIC_STEREO] = 34, [SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE] = 41, [SND_DEVICE_IN_VOICE_RX] = 44, [SND_DEVICE_IN_USB_HEADSET_MIC] = 44, [SND_DEVICE_IN_CAPTURE_FM] = 0, [SND_DEVICE_IN_AANC_HANDSET_MIC] = 104, Loading Loading @@ -412,6 +420,7 @@ struct snd_device_index snd_device_name_index[SND_DEVICE_MAX] = { {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TX)}, {TO_NAME_INDEX(SND_DEVICE_OUT_AFE_PROXY)}, {TO_NAME_INDEX(SND_DEVICE_OUT_USB_HEADSET)}, {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET)}, Loading Loading @@ -464,6 +473,7 @@ struct snd_device_index snd_device_name_index[SND_DEVICE_MAX] = { {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_MIC_NS)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_DMIC_STEREO)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_RX)}, {TO_NAME_INDEX(SND_DEVICE_IN_USB_HEADSET_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_CAPTURE_FM)}, {TO_NAME_INDEX(SND_DEVICE_IN_AANC_HANDSET_MIC)}, Loading Loading @@ -687,7 +697,6 @@ void platform_set_echo_reference(void *platform, bool enable) ALOGV("EC reference is already disabled : %d", my_data->ec_ref_enabled); } } ALOGV("Setting EC Reference: %d", enable); } Loading Loading @@ -1207,6 +1216,10 @@ void platform_add_backend_name(char *mixer_path, snd_device_t snd_device) strlcat(mixer_path, " hdmi", MIXER_PATH_MAX_LENGTH); else if (snd_device == SND_DEVICE_OUT_SPEAKER_AND_HDMI) strlcat(mixer_path, " speaker-and-hdmi", MIXER_PATH_MAX_LENGTH); else if (snd_device == SND_DEVICE_OUT_VOICE_TX) strlcat(mixer_path, " afe-proxy", MIXER_PATH_MAX_LENGTH); else if (snd_device == SND_DEVICE_IN_VOICE_RX) strlcat(mixer_path, " afe-proxy", MIXER_PATH_MAX_LENGTH); else if (snd_device == SND_DEVICE_OUT_AFE_PROXY) strlcat(mixer_path, " afe-proxy", MIXER_PATH_MAX_LENGTH); else if (snd_device == SND_DEVICE_OUT_USB_HEADSET) Loading Loading @@ -1732,7 +1745,9 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi snd_device = SND_DEVICE_OUT_ANC_HANDSET; else snd_device = SND_DEVICE_OUT_VOICE_HANDSET; } } else if (devices & AUDIO_DEVICE_OUT_TELEPHONY_TX) snd_device = SND_DEVICE_OUT_VOICE_TX; if (snd_device != SND_DEVICE_NONE) { goto exit; } Loading Loading @@ -1904,7 +1919,8 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d if (audio_extn_hfp_is_active(adev)) platform_set_echo_reference(adev->platform, true); } } } else if (out_device & AUDIO_DEVICE_OUT_TELEPHONY_TX) snd_device = SND_DEVICE_IN_VOICE_RX; } else if (source == AUDIO_SOURCE_CAMCORDER) { if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC || in_device & AUDIO_DEVICE_IN_BACK_MIC) { Loading
hal/msm8916/platform.h +5 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ enum { SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES, SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES, SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET, SND_DEVICE_OUT_VOICE_TX, SND_DEVICE_OUT_AFE_PROXY, SND_DEVICE_OUT_USB_HEADSET, SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET, Loading Loading @@ -128,6 +129,7 @@ enum { SND_DEVICE_IN_VOICE_REC_MIC_NS, SND_DEVICE_IN_VOICE_REC_DMIC_STEREO, SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE, SND_DEVICE_IN_VOICE_RX, SND_DEVICE_IN_USB_HEADSET_MIC, SND_DEVICE_IN_CAPTURE_FM, SND_DEVICE_IN_AANC_HANDSET_MIC, Loading Loading @@ -220,6 +222,9 @@ enum { #define QCHAT_CALL_PCM_DEVICE 14 #define VOWLAN_CALL_PCM_DEVICE 16 #define AFE_PROXY_PLAYBACK_PCM_DEVICE 7 #define AFE_PROXY_RECORD_PCM_DEVICE 8 #define LIB_CSD_CLIENT "libcsd-client.so" /* CSD-CLIENT related functions */ typedef int (*init_t)(); Loading