summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVicky Sehrawat <vickys@codeaurora.org>2014-02-12 17:58:59 -0800
committerVidyakumar Athota <vathota@codeaurora.org>2014-07-15 13:37:20 -0700
commitbb5bcdfc466362a64882799b7e21b0a98b31830d (patch)
tree1c09f1d9d11749409e409b75d3c88e4e085f5a3f
parent5b221693bd675cffb3ca3c2b05211d41d1d47ee7 (diff)
downloadandroid_hardware_qcom_audio-bb5bcdfc466362a64882799b7e21b0a98b31830d.tar.gz
android_hardware_qcom_audio-bb5bcdfc466362a64882799b7e21b0a98b31830d.tar.bz2
android_hardware_qcom_audio-bb5bcdfc466362a64882799b7e21b0a98b31830d.zip
hal: Add support for VoWLAN feature
Add VoWLAN pcm id, usecase to enable voice over WLAN feature. Change-Id: I2d10ff06342bfcbef15a4769ba90deaeb4218107
-rw-r--r--hal/audio_hw.c1
-rw-r--r--hal/audio_hw.h1
-rw-r--r--hal/msm8974/platform.c1
-rw-r--r--hal/msm8974/platform.h6
-rw-r--r--hal/voice.h2
-rw-r--r--hal/voice_extn/voice_extn.c14
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;