release-request-80d7cd88-53c4-4e65-952a-f34bc86a0841-for-git_oc-mr1-release-4050000 snap-temp-L22200000068540971
Change-Id: I3f2d6043b5c70d337f352fe05b9d702d9b80d234
diff --git a/hal/acdb.c b/hal/acdb.c
index 1614cc9..99599b8 100644
--- a/hal/acdb.c
+++ b/hal/acdb.c
@@ -29,7 +29,6 @@
#include <platform_api.h>
#define PLATFORM_CONFIG_KEY_SOUNDCARD_NAME "snd_card_name"
-#define PLATFORM_INFO_XML_PATH "audio_platform_info.xml"
int acdb_init(int snd_card_num)
{
@@ -61,9 +60,6 @@
list_init(&my_data->acdb_meta_key_list);
- /* Extract META KEY LIST INFO */
- //platform_info_init(PLATFORM_INFO_XML_PATH, my_data);
-
my_data->acdb_handle = dlopen(LIB_ACDB_LOADER, RTLD_NOW);
if (my_data->acdb_handle == NULL) {
ALOGE("%s: DLOPEN failed for %s", __func__, LIB_ACDB_LOADER);
@@ -125,21 +121,13 @@
goto cleanup;
}
- int key = 0;
- struct listnode *node = NULL;
- struct meta_key_list *key_info = NULL;
-
- if (my_data->acdb_init_v3) {
+ if (my_data->acdb_init_v3)
result = my_data->acdb_init_v3(snd_card_name, cvd_version,
&my_data->acdb_meta_key_list);
- } else if (my_data->acdb_init_v2) {
- node = list_head(&my_data->acdb_meta_key_list);
- key_info = node_to_item(node, struct meta_key_list, list);
- key = key_info->cal_info.nKey;
- result = my_data->acdb_init_v2(snd_card_name, cvd_version, key);
- } else {
+ else if (my_data->acdb_init_v2)
+ result = my_data->acdb_init_v2(snd_card_name, cvd_version, 0);
+ else
result = my_data->acdb_init();
- }
cleanup:
if (NULL != my_data) {
@@ -162,26 +150,6 @@
return result;
}
-int acdb_set_metainfo_key(void *platform, char *name, int key) {
-
- struct meta_key_list *key_info = (struct meta_key_list *)
- calloc(1, sizeof(struct meta_key_list));
- struct acdb_platform_data *pdata = (struct acdb_platform_data *)platform;
- if (!key_info) {
- ALOGE("%s: Could not allocate memory for key %d", __func__, key);
- return -ENOMEM;
- }
-
- key_info->cal_info.nKey = key;
- strlcpy(key_info->name, name, sizeof(key_info->name));
- list_add_tail(&pdata->acdb_meta_key_list, &key_info->list);
-
- ALOGD("%s: successfully added module %s and key %d to the list", __func__,
- key_info->name, key_info->cal_info.nKey);
-
- return 0;
-}
-
int acdb_set_parameters(void *platform, struct str_parms *parms)
{
struct acdb_platform_data *my_data = (struct acdb_platform_data *)platform;
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 9fad3fd..3318cc1 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -801,7 +801,9 @@
bool switch_device[AUDIO_USECASE_MAX];
int i, num_uc_to_switch = 0;
- platform_check_and_set_playback_backend_cfg(adev, uc_info, snd_device);
+ bool force_routing = platform_check_and_set_playback_backend_cfg(adev,
+ uc_info,
+ snd_device);
/*
* This function is to make sure that all the usecases that are active on
@@ -820,11 +822,13 @@
list_for_each(node, &adev->usecase_list) {
usecase = node_to_item(node, struct audio_usecase, list);
- if (usecase->type != PCM_CAPTURE &&
- usecase != uc_info &&
- usecase->out_snd_device != snd_device &&
- usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND &&
- platform_check_backends_match(snd_device, usecase->out_snd_device)) {
+ if (usecase->type == PCM_CAPTURE || usecase == uc_info)
+ continue;
+
+ if (force_routing ||
+ (usecase->out_snd_device != snd_device &&
+ usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND &&
+ platform_check_backends_match(snd_device, usecase->out_snd_device))) {
ALOGV("%s: Usecase (%s) is active on (%s) - disabling ..",
__func__, use_case_table[usecase->id],
platform_get_snd_device_name(usecase->out_snd_device));