Loading hal/msm8916/platform.c +24 −3 Original line number Diff line number Diff line Loading @@ -479,6 +479,8 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT_RAS] = "speaker-protected-vbat", [SND_DEVICE_OUT_SPEAKER_AND_BT_SCO] = "speaker-and-bt-sco", [SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB] = "speaker-and-bt-sco-wb", [SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO] = "wsa-speaker-and-bt-sco", [SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB] = "wsa-speaker-and-bt-sco-wb", #ifdef RECORD_PLAY_CONCURRENCY [SND_DEVICE_OUT_VOIP_HANDSET] = "voip-handset", [SND_DEVICE_OUT_VOIP_SPEAKER] = "voip-speaker", Loading Loading @@ -788,6 +790,8 @@ static struct name_to_index snd_device_name_index[SND_DEVICE_MAX] = { {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET)}, {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_BT_SCO)}, {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB)}, {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO)}, {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TX)}, {TO_NAME_INDEX(SND_DEVICE_OUT_AFE_PROXY)}, {TO_NAME_INDEX(SND_DEVICE_OUT_USB_HEADSET)}, Loading Loading @@ -3873,6 +3877,18 @@ int platform_split_snd_device(void *platform, new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER; new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO_WB; ret = 0; } else if (snd_device == SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO && !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_WSA, SND_DEVICE_OUT_BT_SCO)) { *num_devices = 2; new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_WSA; new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO; ret = 0; } else if (snd_device == SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB && !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_WSA, SND_DEVICE_OUT_BT_SCO_WB)) { *num_devices = 2; new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_WSA; new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO_WB; ret = 0; } else if (SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP == snd_device) { *num_devices = 2; new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER; Loading Loading @@ -4024,6 +4040,11 @@ snd_device_t platform_get_output_snd_device(void *platform, struct stream_out *o snd_device = SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP; } else if ((devices & AUDIO_DEVICE_OUT_ALL_SCO) && ((devices & ~AUDIO_DEVICE_OUT_ALL_SCO) == AUDIO_DEVICE_OUT_SPEAKER)) { if (my_data->is_wsa_speaker) snd_device = adev->bt_wb_speech_enabled ? SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB : SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO; else snd_device = adev->bt_wb_speech_enabled ? SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB : SND_DEVICE_OUT_SPEAKER_AND_BT_SCO; Loading hal/msm8916/platform.h +2 −0 Original line number Diff line number Diff line Loading @@ -117,6 +117,8 @@ enum { SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP, SND_DEVICE_OUT_SPEAKER_AND_BT_SCO, SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB, SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO, SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB, SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES, SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES, SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET, Loading Loading
hal/msm8916/platform.c +24 −3 Original line number Diff line number Diff line Loading @@ -479,6 +479,8 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT_RAS] = "speaker-protected-vbat", [SND_DEVICE_OUT_SPEAKER_AND_BT_SCO] = "speaker-and-bt-sco", [SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB] = "speaker-and-bt-sco-wb", [SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO] = "wsa-speaker-and-bt-sco", [SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB] = "wsa-speaker-and-bt-sco-wb", #ifdef RECORD_PLAY_CONCURRENCY [SND_DEVICE_OUT_VOIP_HANDSET] = "voip-handset", [SND_DEVICE_OUT_VOIP_SPEAKER] = "voip-speaker", Loading Loading @@ -788,6 +790,8 @@ static struct name_to_index snd_device_name_index[SND_DEVICE_MAX] = { {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET)}, {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_BT_SCO)}, {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB)}, {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO)}, {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TX)}, {TO_NAME_INDEX(SND_DEVICE_OUT_AFE_PROXY)}, {TO_NAME_INDEX(SND_DEVICE_OUT_USB_HEADSET)}, Loading Loading @@ -3873,6 +3877,18 @@ int platform_split_snd_device(void *platform, new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER; new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO_WB; ret = 0; } else if (snd_device == SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO && !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_WSA, SND_DEVICE_OUT_BT_SCO)) { *num_devices = 2; new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_WSA; new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO; ret = 0; } else if (snd_device == SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB && !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_WSA, SND_DEVICE_OUT_BT_SCO_WB)) { *num_devices = 2; new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_WSA; new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO_WB; ret = 0; } else if (SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP == snd_device) { *num_devices = 2; new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER; Loading Loading @@ -4024,6 +4040,11 @@ snd_device_t platform_get_output_snd_device(void *platform, struct stream_out *o snd_device = SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP; } else if ((devices & AUDIO_DEVICE_OUT_ALL_SCO) && ((devices & ~AUDIO_DEVICE_OUT_ALL_SCO) == AUDIO_DEVICE_OUT_SPEAKER)) { if (my_data->is_wsa_speaker) snd_device = adev->bt_wb_speech_enabled ? SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB : SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO; else snd_device = adev->bt_wb_speech_enabled ? SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB : SND_DEVICE_OUT_SPEAKER_AND_BT_SCO; Loading
hal/msm8916/platform.h +2 −0 Original line number Diff line number Diff line Loading @@ -117,6 +117,8 @@ enum { SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP, SND_DEVICE_OUT_SPEAKER_AND_BT_SCO, SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB, SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO, SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB, SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES, SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES, SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET, Loading