diff options
-rw-r--r-- | hal/Android.mk | 4 | ||||
-rw-r--r-- | hal/audio_extn/hfp.c | 4 | ||||
-rw-r--r-- | hal/msm8974/platform.c | 11 | ||||
-rw-r--r-- | hal/msm8974/platform.h | 20 |
4 files changed, 37 insertions, 2 deletions
diff --git a/hal/Android.mk b/hal/Android.mk index 0bb29b59..a51fac70 100644 --- a/hal/Android.mk +++ b/hal/Android.mk @@ -64,6 +64,10 @@ ifeq ($(strip $(AUDIO_FEATURE_ENABLED_HFP)),true) LOCAL_SRC_FILES += audio_extn/hfp.c endif +ifeq ($(strip $(AUDIO_FEATURE_SUPPORTED_EXTERNAL_BT)),true) + LOCAL_CFLAGS += -DEXTERNAL_BT_SUPPORTED +endif + ifeq ($(strip $(AUDIO_FEATURE_NO_AUDIO_OUT)),true) LOCAL_CFLAGS += -DNO_AUDIO_OUT endif diff --git a/hal/audio_extn/hfp.c b/hal/audio_extn/hfp.c index a1087309..bfeb6e74 100644 --- a/hal/audio_extn/hfp.c +++ b/hal/audio_extn/hfp.c @@ -71,7 +71,11 @@ static int32_t hfp_set_volume(struct audio_device *adev, float value) { int32_t vol, ret = 0; struct mixer_ctl *ctl; +#ifdef EXTERNAL_BT_SUPPORTED + const char *mixer_ctl_name = "PRI AUXPCM LOOPBACK Volume"; +#else const char *mixer_ctl_name = "Internal HFP RX Volume"; +#endif ALOGV("%s: entry", __func__); ALOGD("%s: (%f)\n", __func__, value); diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c index 7baf2265..6250675d 100644 --- a/hal/msm8974/platform.c +++ b/hal/msm8974/platform.c @@ -29,6 +29,7 @@ #include <linux/msm_audio.h> #define MIXER_XML_PATH "/system/etc/mixer_paths.xml" +#define MIXER_XML_PATH_WCD9330 "/system/etc/mixer_paths_wcd9330.xml" #define LIB_ACDB_LOADER "libacdbloader.so" #define AUDIO_DATA_BLOCK_MIXER_CTL "HDMI EDID" #define CVD_VERSION_MIXER_CTL "CVD Version" @@ -943,7 +944,15 @@ void *platform_init(struct audio_device *adev) ALOGD("%s: snd_card_name: %s", __func__, snd_card_name); - adev->audio_route = audio_route_init(snd_card_num, MIXER_XML_PATH); + if (!strncmp(snd_card_name, "msm8226-tomtom-snd-card", + sizeof("msm8226-tomtom-snd-card"))) { + ALOGD("%s: Call MIXER_XML_PATH_WCD9330", __func__); + adev->audio_route = audio_route_init(snd_card_num, + MIXER_XML_PATH_WCD9330); + } else { + adev->audio_route = audio_route_init(snd_card_num, MIXER_XML_PATH); + } + if (!adev->audio_route) { ALOGE("%s: Failed to init audio route controls, aborting.", __func__); goto init_failed; diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h index 1c067267..b471634d 100644 --- a/hal/msm8974/platform.h +++ b/hal/msm8974/platform.h @@ -203,18 +203,36 @@ enum { #define LOWLATENCY_PCM_DEVICE 15 #define VOICE_VSID 0x10C01000 +#ifdef PLATFORM_MSM8x26 +#define VOICE_CALL_PCM_DEVICE 2 +#define VOICE2_CALL_PCM_DEVICE 14 +#define VOLTE_CALL_PCM_DEVICE 17 +#define QCHAT_CALL_PCM_DEVICE 18 +#define VOWLAN_CALL_PCM_DEVICE 30 +#elif PLATFORM_MSM8084 +#define VOICE_CALL_PCM_DEVICE 20 +#define VOICE2_CALL_PCM_DEVICE 25 +#define VOLTE_CALL_PCM_DEVICE 21 +#define QCHAT_CALL_PCM_DEVICE 33 +#define VOWLAN_CALL_PCM_DEVICE -1 +#else #define VOICE_CALL_PCM_DEVICE 2 #define VOICE2_CALL_PCM_DEVICE 22 #define VOLTE_CALL_PCM_DEVICE 14 #define QCHAT_CALL_PCM_DEVICE 20 #define VOWLAN_CALL_PCM_DEVICE 36 +#endif #define AFE_PROXY_PLAYBACK_PCM_DEVICE 7 #define AFE_PROXY_RECORD_PCM_DEVICE 8 #define HFP_PCM_RX 5 #ifdef PLATFORM_MSM8x26 -#define HFP_SCO_RX 28 +#ifdef EXTERNAL_BT_SUPPORTED +#define HFP_SCO_RX 10 // AUXPCM Hostless +#else +#define HFP_SCO_RX 28 // INT_HFP_BT Hostless +#endif #define HFP_ASM_RX_TX 29 #else #define HFP_SCO_RX 23 |