diff options
| author | Steve Kondik <steve@cyngn.com> | 2016-10-17 21:26:15 -0700 |
|---|---|---|
| committer | Steve Kondik <steve@cyngn.com> | 2016-10-17 21:26:15 -0700 |
| commit | eae04538d8302f3f3424dc05e646aff7227d13d7 (patch) | |
| tree | d6f0d0efcce31a4b0713706310a7c41f6f28bfb5 | |
| parent | 9d2d729711d5d1e581032fa4cba55775dbd03bea (diff) | |
| parent | 4daeaaa7e171cf3d908f28a47f125480de3c7336 (diff) | |
| download | android_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.xml | 3 | ||||
| -rw-r--r-- | configs/msm8953/mixer_paths_qrd_sku3.xml | 6 | ||||
| -rw-r--r-- | hal/audio_hw.c | 4 | ||||
| -rw-r--r-- | hal/msm8916/hw_info.c | 3 | ||||
| -rw-r--r-- | hal/msm8916/platform.c | 2 | ||||
| -rw-r--r-- | policy_hal/AudioPolicyManager.cpp | 11 | ||||
| -rw-r--r-- | policy_hal/AudioPolicyManager.h | 4 |
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 |
