audiohal: Modify platform info for msm8916
Assign the backend mixer control based on interface.
Add support to set channels for afe backend for playback.
Change-Id: Ia870cb51b9e76700ef67812ee9af1437c76bf18c
diff --git a/hal/Makefile.am b/hal/Makefile.am
index 3274195..9f5214a 100644
--- a/hal/Makefile.am
+++ b/hal/Makefile.am
@@ -153,5 +153,5 @@
audio_primary_default_la_CFLAGS += -Dstrlcat=g_strlcat
audio_primary_default_la_CFLAGS += -DINT_MAX=0x7fffffff
audio_primary_default_la_CFLAGS += -D__unused=__attribute__\(\(__unused__\)\)
-audio_primary_default_la_CFLAGS += -DLINUX_ENABLED $(TARGET_CFLAGS)
+audio_primary_default_la_CFLAGS += -DLINUX_ENABLED $(TARGET_CFLAGS) -DAUDIO_EXTN_FORMATS_ENABLED
audio_primary_default_la_LDFLAGS = -module -shared -avoid-version
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 3fad39e..4dd5383 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -283,6 +283,7 @@
};
static bool is_external_codec = false;
+static bool is_slimbus_interface = false;
int pcm_device_table[AUDIO_USECASE_MAX][2] = {
[USECASE_AUDIO_PLAYBACK_DEEP_BUFFER] = {DEEP_BUFFER_PCM_DEVICE,
@@ -854,6 +855,13 @@
#define LOW_LATENCY_PLATFORM_DELAY (13*1000LL)
#define ULL_PLATFORM_DELAY (6*1000LL)
+static void update_interface(const char *snd_card_name) {
+ if (!strncmp(snd_card_name, "apq8009-tashalite-snd-card",
+ sizeof("apq8009-tashalite-snd-card"))) {
+ is_slimbus_interface = false;
+ }
+}
+
static void update_codec_type(const char *snd_card_name) {
if (!strncmp(snd_card_name, "msm8939-tapan-snd-card",
@@ -899,6 +907,7 @@
{
ALOGI("%s: snd_card_name: %s",__func__,snd_card_name);
is_external_codec = true;
+ is_slimbus_interface = true;
}
}
static void query_platform(const char *snd_card_name,
@@ -1795,6 +1804,7 @@
}
adev->snd_card = snd_card_num;
update_codec_type(snd_card_name);
+ update_interface(snd_card_name);
ALOGD("%s: Opened sound card:%d", __func__, snd_card_num);
break;
}
@@ -2043,7 +2053,7 @@
my_data->current_backend_cfg[idx].channels_mixer_ctl = NULL;
}
- if (is_external_codec) {
+ if (is_slimbus_interface) {
my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].bitwidth_mixer_ctl =
strdup("SLIM_0_RX Format");
my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].samplerate_mixer_ctl =
@@ -2090,6 +2100,8 @@
strdup("MI2S_RX Format");
my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].samplerate_mixer_ctl =
strdup("MI2S_RX SampleRate");
+ my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].channels_mixer_ctl =
+ strdup("MI2S_RX Channels");
my_data->current_backend_cfg[DEFAULT_CODEC_TX_BACKEND].bitwidth_mixer_ctl =
strdup("MI2S_TX Format");