summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2016-10-17 21:26:15 -0700
committerSteve Kondik <steve@cyngn.com>2016-10-17 21:26:15 -0700
commiteae04538d8302f3f3424dc05e646aff7227d13d7 (patch)
treed6f0d0efcce31a4b0713706310a7c41f6f28bfb5
parent9d2d729711d5d1e581032fa4cba55775dbd03bea (diff)
parent4daeaaa7e171cf3d908f28a47f125480de3c7336 (diff)
downloadandroid_hardware_qcom_audio-cm-14.0-caf-8996.tar.gz
android_hardware_qcom_audio-cm-14.0-caf-8996.tar.bz2
android_hardware_qcom_audio-cm-14.0-caf-8996.zip
Merge tag 'LA.UM.5.5.r1-00900-8x96.0' of git://codeaurora.org/platform/hardware/qcom/audio into cm-14.0cm-14.0-caf-8996
"LA.UM.5.5.r1-00900-8x96.0"
-rw-r--r--configs/msm8953/audio_platform_info_extcodec.xml3
-rw-r--r--configs/msm8953/mixer_paths_qrd_sku3.xml6
-rw-r--r--hal/audio_hw.c4
-rw-r--r--hal/msm8916/hw_info.c3
-rw-r--r--hal/msm8916/platform.c2
-rw-r--r--policy_hal/AudioPolicyManager.cpp11
-rw-r--r--policy_hal/AudioPolicyManager.h4
7 files changed, 26 insertions, 7 deletions
diff --git a/configs/msm8953/audio_platform_info_extcodec.xml b/configs/msm8953/audio_platform_info_extcodec.xml
index cf681907..ac0eabcc 100644
--- a/configs/msm8953/audio_platform_info_extcodec.xml
+++ b/configs/msm8953/audio_platform_info_extcodec.xml
@@ -47,10 +47,13 @@
<usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="35"/>
<usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="36"/>
<usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="36"/>
+ <usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="37"/>
<usecase name="USECASE_QCHAT_CALL" type="in" id="42"/>
<usecase name="USECASE_QCHAT_CALL" type="out" id="42"/>
</pcm_ids>
<config_params>
+ <param key="spkr_1_tz_name" value="wsatz.11"/>
+ <param key="spkr_2_tz_name" value="wsatz.12"/>
<param key="native_audio_mode" value="src"/>
<param key="input_mic_max_count" value="4"/>
</config_params>
diff --git a/configs/msm8953/mixer_paths_qrd_sku3.xml b/configs/msm8953/mixer_paths_qrd_sku3.xml
index 486f49a1..1edb0b43 100644
--- a/configs/msm8953/mixer_paths_qrd_sku3.xml
+++ b/configs/msm8953/mixer_paths_qrd_sku3.xml
@@ -2099,7 +2099,7 @@
<ctl name="DMIC MUX7" value="DMIC0" />
<ctl name="SLIM TX8 MUX" value="DEC8" />
<ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC1" />
+ <ctl name="DMIC MUX8" value="DMIC2" />
<ctl name="SLIM_0_TX Channels" value="Two" />
</path>
@@ -2111,7 +2111,7 @@
<ctl name="DMIC MUX7" value="DMIC0" />
<ctl name="SLIM TX8 MUX" value="DEC8" />
<ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC1" />
+ <ctl name="DMIC MUX8" value="DMIC2" />
<ctl name="SLIM_0_TX Channels" value="Two" />
</path>
@@ -2158,7 +2158,7 @@
<ctl name="DMIC MUX7" value="DMIC0" />
<ctl name="SLIM TX8 MUX" value="DEC8" />
<ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC1" />
+ <ctl name="DMIC MUX8" value="DMIC2" />
</path>
<path name="dmic-broadside">
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index a73fb061..1d75b36d 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -4024,7 +4024,7 @@ static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs)
ALOGV("cache new edid");
platform_cache_edid(adev->platform);
} else if ((val & AUDIO_DEVICE_OUT_USB_DEVICE) ||
- (val & AUDIO_DEVICE_IN_USB_DEVICE)) {
+ !(val ^ AUDIO_DEVICE_IN_USB_DEVICE)) {
/*
* Do not allow AFE proxy port usage by WFD source when USB headset is connected.
* Per AudioPolicyManager, USB device is higher priority than WFD.
@@ -4048,7 +4048,7 @@ static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs)
ALOGV("invalidate cached edid");
platform_invalidate_hdmi_config(adev->platform);
} else if ((val & AUDIO_DEVICE_OUT_USB_DEVICE) ||
- (val & AUDIO_DEVICE_IN_USB_DEVICE)) {
+ !(val ^ AUDIO_DEVICE_IN_USB_DEVICE)) {
ret = str_parms_get_str(parms, "card", value, sizeof(value));
if (ret >= 0) {
audio_extn_usb_remove_device(val, atoi(value));
diff --git a/hal/msm8916/hw_info.c b/hal/msm8916/hw_info.c
index d9add295..28b23974 100644
--- a/hal/msm8916/hw_info.c
+++ b/hal/msm8916/hw_info.c
@@ -324,7 +324,8 @@ void *hw_info_init(const char *snd_card_name)
strstr(snd_card_name, "msm8909") || strstr(snd_card_name, "msm8952") ||
strstr(snd_card_name, "msm8976") || strstr(snd_card_name, "msm8953") ||
strstr(snd_card_name, "msm8937") || strstr(snd_card_name, "msm8917") ||
- strstr(snd_card_name, "msm8940") || strstr(snd_card_name, "msmfalcon")) {
+ strstr(snd_card_name, "msm8940") || strstr(snd_card_name, "msm8920") ||
+ strstr(snd_card_name, "msmfalcon")) {
ALOGV("8x16 - variant soundcard");
update_hardware_info_8x16(hw_info, snd_card_name);
} else {
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 738df091..3bf22688 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -3583,6 +3583,8 @@ int platform_set_parameters(void *platform, struct str_parms *parms)
char *kv_pairs = NULL;
kv_pairs = str_parms_to_str(parms);
+ if(!kv_pairs)
+ return ret;
len = strlen(kv_pairs);
ALOGV("%s: enter: - %s", __func__, kv_pairs);
free(kv_pairs);
diff --git a/policy_hal/AudioPolicyManager.cpp b/policy_hal/AudioPolicyManager.cpp
index 122ac147..e441a255 100644
--- a/policy_hal/AudioPolicyManager.cpp
+++ b/policy_hal/AudioPolicyManager.cpp
@@ -511,6 +511,14 @@ bool AudioPolicyManagerCustom::isOffloadSupported(const audio_offload_info_t& of
ALOGD("offload disabled for multi-channel FLAC/ALAC/WMA/AAC_ADTS clips with sample rate > 48kHz");
return false;
}
+
+ if ((((offloadInfo.format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_WMA) && (offloadInfo.bit_rate > MAX_BITRATE_WMA)) ||
+ (((offloadInfo.format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_WMA_PRO) && (offloadInfo.bit_rate > MAX_BITRATE_WMA_PRO)) ||
+ (((offloadInfo.format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_WMA_PRO) && (offloadInfo.bit_rate > MAX_BITRATE_WMA_LOSSLESS))){
+ //Safely choose the min bitrate as threshold and leave the restriction to NT decoder as we can't distinguish wma pro and wma lossless here.
+ ALOGD("offload disabled for WMA/WMA_PRO/WMA_LOSSLESS clips with bit rate over maximum supported value");
+ return false;
+ }
#endif
//TODO: enable audio offloading with video when ready
const bool allowOffloadWithVideo =
@@ -1064,6 +1072,7 @@ status_t AudioPolicyManagerCustom::stopSource(sp<AudioOutputDescriptor> outputDe
outputDesc->sharesHwModuleWith(desc) &&
(newDevice != desc->device())) {
audio_devices_t dev = getNewOutputDevice(mOutputs.valueFor(curOutput), false /*fromCache*/);
+ bool force = desc->device() != dev;
uint32_t delayMs;
if (dev == prevDevice) {
delayMs = 0;
@@ -1072,7 +1081,7 @@ status_t AudioPolicyManagerCustom::stopSource(sp<AudioOutputDescriptor> outputDe
}
setOutputDevice(desc,
dev,
- true,
+ force,
delayMs);
}
}
diff --git a/policy_hal/AudioPolicyManager.h b/policy_hal/AudioPolicyManager.h
index dfda1c9f..deef57dc 100644
--- a/policy_hal/AudioPolicyManager.h
+++ b/policy_hal/AudioPolicyManager.h
@@ -39,6 +39,10 @@ namespace android {
#ifndef AUDIO_EXTN_AFE_PROXY_ENABLED
#define AUDIO_DEVICE_OUT_PROXY 0x1000000
#endif
+
+#define MAX_BITRATE_WMA 384000
+#define MAX_BITRATE_WMA_PRO 1536000
+#define MAX_BITRATE_WMA_LOSSLESS 1152000
// ----------------------------------------------------------------------------
class AudioPolicyManagerCustom: public AudioPolicyManager