hal: add support for LINE IN device
Vipertooth has hardware support for LINE IN device.
Adding support in audio hal to select line-in device.
Change-Id: Ia783ef986724a51a25a33f91df05b58984ecc87d
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 0683e4a..4004bfe 100755
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -558,6 +558,7 @@
[SND_DEVICE_IN_INCALL_REC_RX] = "incall-rec-rx",
[SND_DEVICE_IN_INCALL_REC_TX] = "incall-rec-tx",
[SND_DEVICE_IN_INCALL_REC_RX_TX] = "incall-rec-rx-tx",
+ [SND_DEVICE_IN_LINE] = "line-in",
};
// Platform specific backend bit width table
@@ -721,7 +722,8 @@
[SND_DEVICE_IN_HANDSET_8MIC] = 4,
[SND_DEVICE_IN_EC_REF_LOOPBACK_MONO] = 4,
[SND_DEVICE_IN_EC_REF_LOOPBACK_STEREO] = 4,
- [SND_DEVICE_IN_HANDSET_GENERIC_QMIC] = 150
+ [SND_DEVICE_IN_HANDSET_GENERIC_QMIC] = 150,
+ [SND_DEVICE_IN_LINE] = 4,
};
struct name_to_index {
@@ -877,6 +879,7 @@
{TO_NAME_INDEX(SND_DEVICE_IN_INCALL_REC_RX)},
{TO_NAME_INDEX(SND_DEVICE_IN_INCALL_REC_TX)},
{TO_NAME_INDEX(SND_DEVICE_IN_INCALL_REC_RX_TX)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_LINE)},
};
static char * backend_tag_table[SND_DEVICE_MAX] = {0};
@@ -1707,6 +1710,7 @@
hw_interface_table[SND_DEVICE_IN_HANDSET_GENERIC_QMIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_INCALL_REC_RX] = strdup("INCALL_RECORD_RX");
hw_interface_table[SND_DEVICE_IN_INCALL_REC_TX] = strdup("INCALL_RECORD_TX");
+ hw_interface_table[SND_DEVICE_IN_LINE] = strdup("SLIMBUS_0_TX");
my_data->max_mic_count = PLATFORM_DEFAULT_MIC_COUNT;
/*remove ALAC & APE from DSP decoder list based on software decoder availability*/
@@ -4732,6 +4736,8 @@
snd_device = SND_DEVICE_IN_HANDSET_MIC;
} else if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
snd_device = SND_DEVICE_IN_SPEAKER_MIC;
+ } else if (in_device & AUDIO_DEVICE_IN_LINE) {
+ snd_device = SND_DEVICE_IN_LINE;
} else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) {
snd_device = SND_DEVICE_IN_HEADSET_MIC;
} else if (in_device & AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET) {
diff --git a/hal/msm8916/platform.h b/hal/msm8916/platform.h
index 2a71f9e..8bb0a3c 100644
--- a/hal/msm8916/platform.h
+++ b/hal/msm8916/platform.h
@@ -234,6 +234,7 @@
SND_DEVICE_IN_INCALL_REC_RX,
SND_DEVICE_IN_INCALL_REC_TX,
SND_DEVICE_IN_INCALL_REC_RX_TX,
+ SND_DEVICE_IN_LINE,
SND_DEVICE_IN_END,
SND_DEVICE_MAX = SND_DEVICE_IN_END,
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index e84ef41..8308884 100755
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -540,6 +540,7 @@
[SND_DEVICE_IN_INCALL_REC_RX] = "incall-rec-rx",
[SND_DEVICE_IN_INCALL_REC_TX] = "incall-rec-tx",
[SND_DEVICE_IN_INCALL_REC_RX_TX] = "incall-rec-rx-tx",
+ [SND_DEVICE_IN_LINE] = "line-in",
};
// Platform specific backend bit width table
@@ -703,6 +704,7 @@
[SND_DEVICE_IN_UNPROCESSED_QUAD_MIC] = 146,
[SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC] = 147,
[SND_DEVICE_IN_HANDSET_GENERIC_QMIC] = 150,
+ [SND_DEVICE_IN_LINE] = 4,
};
struct name_to_index {
@@ -853,6 +855,7 @@
{TO_NAME_INDEX(SND_DEVICE_IN_INCALL_REC_RX)},
{TO_NAME_INDEX(SND_DEVICE_IN_INCALL_REC_TX)},
{TO_NAME_INDEX(SND_DEVICE_IN_INCALL_REC_RX_TX)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_LINE)},
};
static char * backend_tag_table[SND_DEVICE_MAX] = {0};
@@ -1547,6 +1550,7 @@
hw_interface_table[SND_DEVICE_IN_HANDSET_GENERIC_QMIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_INCALL_REC_RX] = strdup("INCALL_RECORD_RX");
hw_interface_table[SND_DEVICE_IN_INCALL_REC_TX] = strdup("INCALL_RECORD_TX");
+ hw_interface_table[SND_DEVICE_IN_LINE] = strdup("SLIMBUS_0_TX");
my_data->max_mic_count = PLATFORM_DEFAULT_MIC_COUNT;
@@ -4531,6 +4535,8 @@
snd_device = SND_DEVICE_IN_HANDSET_MIC;
} else if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
snd_device = SND_DEVICE_IN_SPEAKER_MIC;
+ } else if (in_device & AUDIO_DEVICE_IN_LINE) {
+ snd_device = SND_DEVICE_IN_LINE;
} else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) {
snd_device = SND_DEVICE_IN_HEADSET_MIC;
} else if (in_device & AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET) {
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
index e0aa58d..6618f1e 100644
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -237,6 +237,7 @@
SND_DEVICE_IN_INCALL_REC_RX,
SND_DEVICE_IN_INCALL_REC_TX,
SND_DEVICE_IN_INCALL_REC_RX_TX,
+ SND_DEVICE_IN_LINE,
SND_DEVICE_IN_END,
SND_DEVICE_MAX = SND_DEVICE_IN_END,