diff options
author | Steve Kondik <steve@cyngn.com> | 2015-12-07 18:19:48 -0800 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-12-07 18:19:48 -0800 |
commit | 9f78676f577ac731943299c9860d1c899aa018be (patch) | |
tree | 1110be7a9c0b89e4e984d7adff008268b5b5a2d9 | |
parent | 001fb3afe18c7aa06f7c435f0a46f802f82f2a40 (diff) | |
parent | 26f06c79dd04fba38a97f2548ead140d25edde78 (diff) | |
download | hardware_qcom_audio-9f78676f577ac731943299c9860d1c899aa018be.tar.gz hardware_qcom_audio-9f78676f577ac731943299c9860d1c899aa018be.tar.bz2 hardware_qcom_audio-9f78676f577ac731943299c9860d1c899aa018be.zip |
Merge tag 'android-6.0.1_r3' of https://android.googlesource.com/platform/hardware/qcom/audio into HEAD
Android 6.0.1 release 3
-rw-r--r-- | hal/Android.mk | 3 | ||||
-rw-r--r-- | hal/audio_extn/audio_extn.c | 1 | ||||
-rw-r--r-- | hal/audio_hw.c | 16 | ||||
-rw-r--r-- | hal/msm8960/platform.c | 3 | ||||
-rw-r--r-- | hal/msm8974/platform.c | 3 |
5 files changed, 20 insertions, 6 deletions
diff --git a/hal/Android.mk b/hal/Android.mk index 91c60544..1e157412 100644 --- a/hal/Android.mk +++ b/hal/Android.mk @@ -7,6 +7,9 @@ include $(CLEAR_VARS) LOCAL_ARM_MODE := arm AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM) +ifneq ($(filter msm8960,$(TARGET_BOARD_PLATFORM)),) + LOCAL_CFLAGS += -DMAX_TARGET_SPECIFIC_CHANNEL_CNT="2" +endif ifneq ($(filter msm8974 msm8226 msm8084 msm8992 msm8994,$(TARGET_BOARD_PLATFORM)),) # B-family platform uses msm8974 code base AUDIO_PLATFORM = msm8974 diff --git a/hal/audio_extn/audio_extn.c b/hal/audio_extn/audio_extn.c index dcc9baf6..7583f835 100644 --- a/hal/audio_extn/audio_extn.c +++ b/hal/audio_extn/audio_extn.c @@ -94,6 +94,7 @@ void audio_extn_perf_lock_release(void) { if (perf_lock_rel && perf_lock_handle) { perf_lock_rel(perf_lock_handle); + perf_lock_handle = 0; ALOGV("%s: Perf lock released", __func__); } else { ALOGE("%s: Perf lock release error", __func__); diff --git a/hal/audio_hw.c b/hal/audio_hw.c index d44eeb45..2e954d67 100644 --- a/hal/audio_hw.c +++ b/hal/audio_hw.c @@ -65,9 +65,13 @@ #define MIN_CHANNEL_COUNT 1 #define DEFAULT_CHANNEL_COUNT 2 +#ifndef MAX_TARGET_SPECIFIC_CHANNEL_CNT +#define MAX_CHANNEL_COUNT 1 +#else #define MAX_CHANNEL_COUNT atoi(XSTR(MAX_TARGET_SPECIFIC_CHANNEL_CNT)) #define XSTR(x) STR(x) #define STR(x) #x +#endif static unsigned int configured_low_latency_capture_period_size = LOW_LATENCY_CAPTURE_PERIOD_SIZE; @@ -639,7 +643,8 @@ int select_devices(struct audio_device *adev, usecase->stream.out->devices); if (usecase->stream.out == adev->primary_output && adev->active_input && - adev->active_input->source == AUDIO_SOURCE_VOICE_COMMUNICATION && + (adev->active_input->source == AUDIO_SOURCE_VOICE_COMMUNICATION || + adev->mode == AUDIO_MODE_IN_COMMUNICATION) && out_snd_device != usecase->out_snd_device) { select_devices(adev, adev->active_input->usecase); } @@ -649,7 +654,9 @@ int select_devices(struct audio_device *adev, out_snd_device = SND_DEVICE_NONE; if (in_snd_device == SND_DEVICE_NONE) { audio_devices_t out_device = AUDIO_DEVICE_NONE; - if (adev->active_input->source == AUDIO_SOURCE_VOICE_COMMUNICATION) { + if (adev->active_input && + (adev->active_input->source == AUDIO_SOURCE_VOICE_COMMUNICATION || + adev->mode == AUDIO_MODE_IN_COMMUNICATION)) { platform_set_echo_reference(adev, false, AUDIO_DEVICE_NONE); if (usecase->id == USECASE_AUDIO_RECORD_AFE_PROXY) { out_device = AUDIO_DEVICE_OUT_TELEPHONY_TX; @@ -1239,7 +1246,7 @@ static int check_input_parameters(uint32_t sample_rate, } if ((channel_count < MIN_CHANNEL_COUNT) || (channel_count > MAX_CHANNEL_COUNT)) { - ALOGE("%s: unsupported channel count (%d) passed Min / Max (%d\%d)", __func__, + ALOGE("%s: unsupported channel count (%d) passed Min / Max (%d / %d)", __func__, channel_count, MIN_CHANNEL_COUNT, MAX_CHANNEL_COUNT); return -EINVAL; } @@ -2054,7 +2061,8 @@ static int add_remove_audio_effect(const struct audio_stream *stream, lock_input_stream(in); pthread_mutex_lock(&in->dev->lock); - if ((in->source == AUDIO_SOURCE_VOICE_COMMUNICATION) && + if ((in->source == AUDIO_SOURCE_VOICE_COMMUNICATION || + adev->mode == AUDIO_MODE_IN_COMMUNICATION) && in->enable_aec != enable && (memcmp(&desc.type, FX_IID_AEC, sizeof(effect_uuid_t)) == 0)) { in->enable_aec = enable; diff --git a/hal/msm8960/platform.c b/hal/msm8960/platform.c index c78d9434..0ffe8a98 100644 --- a/hal/msm8960/platform.c +++ b/hal/msm8960/platform.c @@ -794,7 +794,8 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d snd_device = SND_DEVICE_IN_VOICE_REC_MIC; } } - } else if (source == AUDIO_SOURCE_VOICE_COMMUNICATION) { + } else if (source == AUDIO_SOURCE_VOICE_COMMUNICATION || + mode == AUDIO_MODE_IN_COMMUNICATION) { if (out_device & AUDIO_DEVICE_OUT_SPEAKER) in_device = AUDIO_DEVICE_IN_BACK_MIC; if (adev->active_input) { diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c index 66da2498..c856bb0a 100644 --- a/hal/msm8974/platform.c +++ b/hal/msm8974/platform.c @@ -1940,7 +1940,8 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) { snd_device = SND_DEVICE_IN_VOICE_REC_HEADSET_MIC; } - } else if (source == AUDIO_SOURCE_VOICE_COMMUNICATION) { + } else if (source == AUDIO_SOURCE_VOICE_COMMUNICATION || + mode == AUDIO_MODE_IN_COMMUNICATION) { if (out_device & (AUDIO_DEVICE_OUT_SPEAKER | AUDIO_DEVICE_OUT_SPEAKER_SAFE)) in_device = AUDIO_DEVICE_IN_BACK_MIC; if (adev->active_input) { |