msm: audio: qdsp6v2: Add PCM-WB support for VoIP.
CRs-fixed: 297579
Signed-off-by: Neema Shetty <nshetty@codeaurora.org>
diff --git a/arch/arm/mach-msm/include/mach/qdsp6v2/q6voice.h b/arch/arm/mach-msm/include/mach/qdsp6v2/q6voice.h
index dfbb372..0dd1af1 100644
--- a/arch/arm/mach-msm/include/mach/qdsp6v2/q6voice.h
+++ b/arch/arm/mach-msm/include/mach/qdsp6v2/q6voice.h
@@ -24,7 +24,7 @@
#define VOICE_DEV_ENABLED 0x1
#define VOICE_DEV_DISABLED 0
-#define MAX_VOC_PKT_SIZE 322
+#define MAX_VOC_PKT_SIZE 642
#define SESSION_NAME_LEN 20
@@ -529,6 +529,8 @@
/* 80-VF690-47 UMTS AMR-WB vocoder modem format. */
#define VSS_MEDIA_ID_PCM_NB 0x00010FCB
/* Linear PCM (16-bit, little-endian). */
+#define VSS_MEDIA_ID_PCM_WB 0x00010FCC
+/* Linear wideband PCM vocoder modem format (16 bits, little endian). */
#define VSS_MEDIA_ID_G711_ALAW 0x00010FCD
/* G.711 a-law (contains two 10ms vocoder frames). */
#define VSS_MEDIA_ID_G711_MULAW 0x00010FCE
diff --git a/arch/arm/mach-msm/qdsp6v2/audio_mvs.c b/arch/arm/mach-msm/qdsp6v2/audio_mvs.c
index e3356bc..2dae9a8 100644
--- a/arch/arm/mach-msm/qdsp6v2/audio_mvs.c
+++ b/arch/arm/mach-msm/qdsp6v2/audio_mvs.c
@@ -514,6 +514,10 @@
media_type = VSS_MEDIA_ID_G711_ALAW;
break;
+ case MVS_MODE_PCM_WB:
+ media_type = VSS_MEDIA_ID_PCM_WB;
+ break;
+
default:
media_type = VSS_MEDIA_ID_PCM_NB;
}
@@ -538,6 +542,7 @@
break;
case MVS_MODE_AMR_WB:
+ case MVS_MODE_PCM_WB:
network_type = VSS_NETWORK_ID_VOIP_WB;
break;
diff --git a/include/linux/msm_audio_mvs.h b/include/linux/msm_audio_mvs.h
index f401c1f..37a6ee7 100644
--- a/include/linux/msm_audio_mvs.h
+++ b/include/linux/msm_audio_mvs.h
@@ -9,21 +9,22 @@
(AUDIO_MAX_COMMON_IOCTL_NUM + 1), unsigned)
/* MVS modes */
-#define MVS_MODE_IS733 1
-#define MVS_MODE_IS127 2
-#define MVS_MODE_4GV_NB 3
-#define MVS_MODE_4GV_WB 4
-#define MVS_MODE_AMR 5
-#define MVS_MODE_EFR 6
-#define MVS_MODE_FR 7
-#define MVS_MODE_HR 8
-#define MVS_MODE_LINEAR_PCM 9
-#define MVS_MODE_G711 10
-#define MVS_MODE_PCM 12
-#define MVS_MODE_AMR_WB 13
-#define MVS_MODE_G729A 14
-#define MVS_MODE_G711A 15
-#define MVS_MODE_G722 16
+#define MVS_MODE_IS733 0x1
+#define MVS_MODE_IS127 0x2
+#define MVS_MODE_4GV_NB 0x3
+#define MVS_MODE_4GV_WB 0x4
+#define MVS_MODE_AMR 0x5
+#define MVS_MODE_EFR 0x6
+#define MVS_MODE_FR 0x7
+#define MVS_MODE_HR 0x8
+#define MVS_MODE_LINEAR_PCM 0x9
+#define MVS_MODE_G711 0xA
+#define MVS_MODE_PCM 0xC
+#define MVS_MODE_AMR_WB 0xD
+#define MVS_MODE_G729A 0xE
+#define MVS_MODE_G711A 0xF
+#define MVS_MODE_G722 0x10
+#define MVS_MODE_PCM_WB 0x80000000
enum msm_audio_amr_mode {
MVS_AMR_MODE_0475, /* AMR 4.75 kbps */
@@ -99,7 +100,7 @@
uint32_t dtx_mode;
};
-#define MVS_MAX_VOC_PKT_SIZE 320
+#define MVS_MAX_VOC_PKT_SIZE 640
struct msm_audio_mvs_frame {
uint32_t frame_type;