From bb5bcdfc466362a64882799b7e21b0a98b31830d Mon Sep 17 00:00:00 2001 From: Vicky Sehrawat Date: Wed, 12 Feb 2014 17:58:59 -0800 Subject: hal: Add support for VoWLAN feature Add VoWLAN pcm id, usecase to enable voice over WLAN feature. Change-Id: I2d10ff06342bfcbef15a4769ba90deaeb4218107 --- hal/audio_hw.c | 1 + hal/audio_hw.h | 1 + hal/msm8974/platform.c | 1 + hal/msm8974/platform.h | 6 +++++- hal/voice.h | 2 +- hal/voice_extn/voice_extn.c | 14 +++++++++++++- 6 files changed, 22 insertions(+), 3 deletions(-) diff --git a/hal/audio_hw.c b/hal/audio_hw.c index 3e725e60..0eb8dbee 100644 --- a/hal/audio_hw.c +++ b/hal/audio_hw.c @@ -120,6 +120,7 @@ const char * const use_case_table[AUDIO_USECASE_MAX] = { [USECASE_VOICE2_CALL] = "voice2-call", [USECASE_VOLTE_CALL] = "volte-call", [USECASE_QCHAT_CALL] = "qchat-call", + [USECASE_VOWLAN_CALL] = "vowlan-call", [USECASE_COMPRESS_VOIP_CALL] = "compress-voip-call", [USECASE_INCALL_REC_UPLINK] = "incall-rec-uplink", [USECASE_INCALL_REC_DOWNLINK] = "incall-rec-downlink", diff --git a/hal/audio_hw.h b/hal/audio_hw.h index a153293e..6623b4ef 100644 --- a/hal/audio_hw.h +++ b/hal/audio_hw.h @@ -88,6 +88,7 @@ typedef enum { USECASE_VOICE2_CALL, USECASE_VOLTE_CALL, USECASE_QCHAT_CALL, + USECASE_VOWLAN_CALL, USECASE_COMPRESS_VOIP_CALL, USECASE_INCALL_REC_UPLINK, diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c index 7eada8d9..22961677 100644 --- a/hal/msm8974/platform.c +++ b/hal/msm8974/platform.c @@ -169,6 +169,7 @@ static const int pcm_device_table[AUDIO_USECASE_MAX][2] = { [USECASE_VOICE2_CALL] = {VOICE2_CALL_PCM_DEVICE, VOICE2_CALL_PCM_DEVICE}, [USECASE_VOLTE_CALL] = {VOLTE_CALL_PCM_DEVICE, VOLTE_CALL_PCM_DEVICE}, [USECASE_QCHAT_CALL] = {QCHAT_CALL_PCM_DEVICE, QCHAT_CALL_PCM_DEVICE}, + [USECASE_VOWLAN_CALL] = {VOWLAN_CALL_PCM_DEVICE, VOWLAN_CALL_PCM_DEVICE}, [USECASE_COMPRESS_VOIP_CALL] = {COMPRESS_VOIP_CALL_PCM_DEVICE, COMPRESS_VOIP_CALL_PCM_DEVICE}, [USECASE_INCALL_REC_UPLINK] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE}, diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h index 42285e6d..f2354c39 100644 --- a/hal/msm8974/platform.h +++ b/hal/msm8974/platform.h @@ -184,7 +184,7 @@ enum { #define SPKR_PROT_CALIB_RX_PCM_DEVICE 5 #ifdef PLATFORM_APQ8084 #define INCALL_MUSIC_UPLINK2_PCM_DEVICE 34 -#define SPKR_PROT_CALIB_TX_PCM_DEVICE 35 +#define SPKR_PROT_CALIB_TX_PCM_DEVICE 36 #else #define SPKR_PROT_CALIB_TX_PCM_DEVICE 25 #define INCALL_MUSIC_UPLINK2_PCM_DEVICE 16 @@ -213,21 +213,25 @@ enum { #define VOICE2_CALL_PCM_DEVICE 14 #define VOLTE_CALL_PCM_DEVICE 17 #define QCHAT_CALL_PCM_DEVICE 18 +#define VOWLAN_CALL_PCM_DEVICE 30 #elif PLATFORM_APQ8084 #define VOICE_CALL_PCM_DEVICE 20 #define VOICE2_CALL_PCM_DEVICE 25 #define VOLTE_CALL_PCM_DEVICE 21 #define QCHAT_CALL_PCM_DEVICE 33 +#define VOWLAN_CALL_PCM_DEVICE 35 #elif PLATFORM_MSM8610 #define VOICE_CALL_PCM_DEVICE 2 #define VOICE2_CALL_PCM_DEVICE 13 #define VOLTE_CALL_PCM_DEVICE 15 #define QCHAT_CALL_PCM_DEVICE 14 +#define VOWLAN_CALL_PCM_DEVICE -1 #else #define VOICE_CALL_PCM_DEVICE 2 #define VOICE2_CALL_PCM_DEVICE 22 #define VOLTE_CALL_PCM_DEVICE 14 #define QCHAT_CALL_PCM_DEVICE 20 +#define VOWLAN_CALL_PCM_DEVICE 36 #endif #ifdef PLATFORM_MSM8x26 diff --git a/hal/voice.h b/hal/voice.h index 136da512..d160569d 100644 --- a/hal/voice.h +++ b/hal/voice.h @@ -24,7 +24,7 @@ #define VOICE_SESS_IDX (BASE_SESS_IDX) #ifdef MULTI_VOICE_SESSION_ENABLED -#define MAX_VOICE_SESSIONS 4 +#define MAX_VOICE_SESSIONS 5 #else #define MAX_VOICE_SESSIONS 1 #endif diff --git a/hal/voice_extn/voice_extn.c b/hal/voice_extn/voice_extn.c index 6fd89555..f6aad9a8 100644 --- a/hal/voice_extn/voice_extn.c +++ b/hal/voice_extn/voice_extn.c @@ -46,12 +46,14 @@ #define VOICE2_VSID 0x10DC1000 #define VOLTE_VSID 0x10C02000 #define QCHAT_VSID 0x10803000 +#define VOWLAN_VSID 0x10002000 #define ALL_VSID 0xFFFFFFFF /* Voice Session Indices */ #define VOICE2_SESS_IDX (VOICE_SESS_IDX + 1) #define VOLTE_SESS_IDX (VOICE_SESS_IDX + 2) #define QCHAT_SESS_IDX (VOICE_SESS_IDX + 3) +#define VOWLAN_SESS_IDX (VOICE_SESS_IDX + 4) /* Call States */ #define CALL_HOLD (BASE_CALL_STATE + 2) @@ -85,7 +87,8 @@ static bool is_valid_vsid(uint32_t vsid) if (vsid == VOICE_VSID || vsid == VOICE2_VSID || vsid == VOLTE_VSID || - vsid == QCHAT_VSID) + vsid == QCHAT_VSID || + vsid == VOWLAN_VSID) return true; else return false; @@ -112,6 +115,10 @@ static audio_usecase_t voice_extn_get_usecase_for_session_idx(const int index) usecase_id = USECASE_QCHAT_CALL; break; + case VOWLAN_SESS_IDX: + usecase_id = USECASE_VOWLAN_CALL; + break; + default: ALOGE("%s: Invalid voice session index\n", __func__); } @@ -349,6 +356,7 @@ void voice_extn_init(struct audio_device *adev) adev->voice.session[VOICE2_SESS_IDX].vsid = VOICE2_VSID; adev->voice.session[VOLTE_SESS_IDX].vsid = VOLTE_VSID; adev->voice.session[QCHAT_SESS_IDX].vsid = QCHAT_VSID; + adev->voice.session[VOWLAN_SESS_IDX].vsid = VOWLAN_VSID; } int voice_extn_get_session_from_use_case(struct audio_device *adev, @@ -374,6 +382,10 @@ int voice_extn_get_session_from_use_case(struct audio_device *adev, *session = &adev->voice.session[QCHAT_SESS_IDX]; break; + case USECASE_VOWLAN_CALL: + *session = &adev->voice.session[VOWLAN_SESS_IDX]; + break; + default: ALOGE("%s: Invalid usecase_id:%d\n", __func__, usecase_id); *session = NULL; -- cgit v1.2.3