hal: msm8916: seperate device support from other flavors

Mtp uses different device settings.

Ensure using correct device for mic.

Change-Id: I187d94522781c7a1dd302d3405a5fb8ebd0c0ef9
CRs-Fixed: 643801
This commit is contained in:
Asish Bhattacharya 2014-04-24 17:46:54 +05:30 committed by Aravind Kumar
parent f2651901d0
commit 4ff24803c2
2 changed files with 28 additions and 3 deletions

View File

@ -131,6 +131,12 @@ static void update_hardware_info_8x16(struct hardware_info *hw_info, const char
hw_info->snd_devices = NULL;
hw_info->num_snd_devices = 0;
strlcpy(hw_info->dev_extn, "", sizeof(hw_info->dev_extn));
} else if (!strcmp(snd_card_name, "msm8x16-snd-card-mtp")) {
strlcpy(hw_info->type, "", sizeof(hw_info->type));
strlcpy(hw_info->name, "msm8x16", sizeof(hw_info->name));
hw_info->snd_devices = NULL;
hw_info->num_snd_devices = 0;
strlcpy(hw_info->dev_extn, "", sizeof(hw_info->dev_extn));
} else if (!strcmp(snd_card_name, "msm8x16-skuh-snd-card")) {
strlcpy(hw_info->type, "skuh", sizeof(hw_info->type));
strlcpy(hw_info->name, "msm8x16", sizeof(hw_info->name));

View File

@ -33,6 +33,7 @@
#include "voice_extn.h"
#define MIXER_XML_PATH "/system/etc/mixer_paths.xml"
#define MIXER_XML_PATH_MTP "/system/etc/mixer_paths_mtp.xml"
#define MIXER_XML_PATH_AUXPCM "/system/etc/mixer_paths_auxpcm.xml"
#define PLATFORM_INFO_XML_PATH "/system/etc/audio_platform_info.xml"
#define LIB_ACDB_LOADER "libacdbloader.so"
@ -394,6 +395,19 @@ struct snd_device_index snd_device_name_index[SND_DEVICE_MAX] = {
#define DEEP_BUFFER_PLATFORM_DELAY (29*1000LL)
#define LOW_LATENCY_PLATFORM_DELAY (13*1000LL)
static void query_platform(const char *snd_card_name,
char *mixer_xml_path)
{
if (!strncmp(snd_card_name, "msm8x16-snd-card-mtp",
sizeof("msm8x16-snd-card-mtp"))) {
strlcpy(mixer_xml_path, MIXER_XML_PATH_MTP,
sizeof(MIXER_XML_PATH_MTP));
} else {
strlcpy(mixer_xml_path, MIXER_XML_PATH,
sizeof(MIXER_XML_PATH));
}
}
static int set_echo_reference(struct mixer *mixer, const char* ec_ref)
{
struct mixer_ctl *ctl;
@ -548,6 +562,7 @@ void *platform_init(struct audio_device *adev)
struct platform_data *my_data = NULL;
int retry_num = 0, snd_card_num = 0;
const char *snd_card_name;
char mixer_xml_path[100];
my_data = calloc(1, sizeof(struct platform_data));
@ -575,10 +590,14 @@ void *platform_init(struct audio_device *adev)
if (!my_data->hw_info) {
ALOGE("%s: Failed to init hardware info", __func__);
} else {
if (audio_extn_read_xml(adev, snd_card_num, MIXER_XML_PATH,
MIXER_XML_PATH_AUXPCM) == -ENOSYS)
query_platform(snd_card_name, mixer_xml_path);
ALOGD("%s: mixer path file is %s", __func__,
mixer_xml_path);
if (audio_extn_read_xml(adev, snd_card_num, mixer_xml_path,
MIXER_XML_PATH_AUXPCM) == -ENOSYS) {
adev->audio_route = audio_route_init(snd_card_num,
MIXER_XML_PATH);
mixer_xml_path);
}
if (!adev->audio_route) {
ALOGE("%s: Failed to init audio route controls, aborting.",
__func__);