Merge "Initial commit for new target - msmfalcon" into audio-userspace.lnx.2.1-dev
diff --git a/configs/msm8996/audio_platform_info.xml b/configs/msm8996/audio_platform_info.xml
index 26bc0d7..1e8cdc6 100644
--- a/configs/msm8996/audio_platform_info.xml
+++ b/configs/msm8996/audio_platform_info.xml
@@ -54,5 +54,9 @@
<device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="SLIMBUS_6_RX"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES" backend="headphones" interface="SLIMBUS_6_RX"/>
</backend_names>
+ <pcm_ids>
+ <usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="19" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="19" />
+ </pcm_ids>
</audio_platform_info>
diff --git a/configs/msm8996/mixer_paths.xml b/configs/msm8996/mixer_paths.xml
index 1a895fe..799226e 100644
--- a/configs/msm8996/mixer_paths.xml
+++ b/configs/msm8996/mixer_paths.xml
@@ -97,6 +97,8 @@
<ctl name="SLIMBUS_4_RX Audio Mixer MultiMedia2" value="0" />
<ctl name="MultiMedia5 Mixer SLIM_0_TX" value="0" />
<ctl name="MultiMedia5 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
<ctl name="MultiMedia4 Mixer MI2S_TX" value="0" />
<ctl name="MultiMedia1 Mixer MI2S_TX" value="0" />
<ctl name="MultiMedia7 Mixer MI2S_TX" value="0" />
@@ -129,6 +131,7 @@
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia4" value="0" />
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia5" value="0" />
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia8" value="0" />
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia10" value="0" />
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia11" value="0" />
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia12" value="0" />
@@ -499,7 +502,7 @@
</path>
<path name="audio-ull-playback">
- <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia3" value="1" />
+ <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia8" value="1" />
</path>
<path name="audio-ull-playback speaker-protected">
@@ -516,11 +519,11 @@
</path>
<path name="audio-ull-playback hdmi">
- <ctl name="HDMI Mixer MultiMedia3" value="1" />
+ <ctl name="HDMI Mixer MultiMedia8" value="1" />
</path>
<path name="audio-ull-playback bt-sco">
- <ctl name="AUX_PCM_RX Audio Mixer MultiMedia3" value="1" />
+ <ctl name="AUX_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
<path name="audio-ull-playback bt-sco-wb">
@@ -534,7 +537,7 @@
</path>
<path name="audio-ull-playback afe-proxy">
- <ctl name="AFE_PCM_RX Audio Mixer MultiMedia3" value="1" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
<path name="multi-channel-playback hdmi">
@@ -903,11 +906,11 @@
</path>
<path name="low-latency-record">
- <ctl name="MultiMedia5 Mixer SLIM_0_TX" value="1" />
+ <ctl name="MultiMedia8 Mixer SLIM_0_TX" value="1" />
</path>
<path name="low-latency-record bt-sco">
- <ctl name="MultiMedia5 Mixer AUX_PCM_UL_TX" value="1" />
+ <ctl name="MultiMedia8 Mixer AUX_PCM_UL_TX" value="1" />
</path>
<path name="low-latency-record bt-sco-wb">
@@ -916,7 +919,7 @@
</path>
<path name="low-latency-record capture-fm">
- <ctl name="MultiMedia5 Mixer TERT_MI2S_TX" value="1" />
+ <ctl name="MultiMedia8 Mixer TERT_MI2S_TX" value="1" />
</path>
<path name="fm-virtual-record capture-fm">
diff --git a/configs/msm8996/mixer_paths_tasha.xml b/configs/msm8996/mixer_paths_tasha.xml
index 596b016..5741192 100644
--- a/configs/msm8996/mixer_paths_tasha.xml
+++ b/configs/msm8996/mixer_paths_tasha.xml
@@ -101,6 +101,10 @@
<ctl name="MultiMedia5 Mixer AFE_PCM_TX" value="0" />
<ctl name="MultiMedia5 Mixer TERT_MI2S_TX" value="0" />
<ctl name="MultiMedia5 Mixer AUX_PCM_UL_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer TERT_MI2S_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer AUX_PCM_UL_TX" value="0" />
<ctl name="MultiMedia4 Mixer MI2S_TX" value="0" />
<ctl name="MultiMedia1 Mixer MI2S_TX" value="0" />
<ctl name="MultiMedia7 Mixer MI2S_TX" value="0" />
@@ -142,6 +146,9 @@
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia7" value="0" />
<ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia7" value="0" />
<ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia8" value="0" />
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia8" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia8" value="0" />
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia10" value="0" />
<ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia10" value="0" />
<ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="0" />
@@ -699,7 +706,7 @@
</path>
<path name="audio-ull-playback">
- <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia3" value="1" />
+ <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia8" value="1" />
</path>
<path name="audio-ull-playback speaker-protected">
@@ -707,7 +714,7 @@
</path>
<path name="audio-ull-playback headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia3" value="1" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia8" value="1" />
</path>
<path name="audio-ull-playback speaker-and-headphones">
@@ -716,11 +723,11 @@
</path>
<path name="audio-ull-playback hdmi">
- <ctl name="HDMI Mixer MultiMedia3" value="1" />
+ <ctl name="HDMI Mixer MultiMedia8" value="1" />
</path>
<path name="audio-ull-playback bt-sco">
- <ctl name="AUX_PCM_RX Audio Mixer MultiMedia3" value="1" />
+ <ctl name="AUX_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
<path name="audio-ull-playback bt-sco-wb">
@@ -734,7 +741,7 @@
</path>
<path name="audio-ull-playback afe-proxy">
- <ctl name="AFE_PCM_RX Audio Mixer MultiMedia3" value="1" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
<path name="multi-channel-playback hdmi">
<ctl name="HDMI Mixer MultiMedia2" value="1" />
@@ -1234,11 +1241,11 @@
</path>
<path name="low-latency-record">
- <ctl name="MultiMedia5 Mixer SLIM_0_TX" value="1" />
+ <ctl name="MultiMedia8 Mixer SLIM_0_TX" value="1" />
</path>
<path name="low-latency-record bt-sco">
- <ctl name="MultiMedia5 Mixer AUX_PCM_UL_TX" value="1" />
+ <ctl name="MultiMedia8 Mixer AUX_PCM_UL_TX" value="1" />
</path>
<path name="low-latency-record bt-sco-wb">
@@ -1247,7 +1254,7 @@
</path>
<path name="low-latency-record usb-headset-mic">
- <ctl name="MultiMedia5 Mixer AFE_PCM_TX" value="1" />
+ <ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="1" />
</path>
<path name="low-latency-record capture-fm">
diff --git a/policy_hal/AudioPolicyManager.cpp b/policy_hal/AudioPolicyManager.cpp
index 2299e3f..b89c82c 100644
--- a/policy_hal/AudioPolicyManager.cpp
+++ b/policy_hal/AudioPolicyManager.cpp
@@ -297,17 +297,6 @@
checkA2dpSuspend();
}
- updateDevicesAndOutputs();
-#ifdef DOLBY_ENABLE
- // Before closing the opened outputs, update endpoint property with device capabilities
- audio_devices_t audioOutputDevice = getDeviceForStrategy(getStrategy(AUDIO_STREAM_MUSIC), true);
- mDolbyAudioPolicy.setEndpointSystemProperty(audioOutputDevice, mHwModules);
-#endif // DOLBY_END
- if (mEngine->getPhoneState() == AUDIO_MODE_IN_CALL && hasPrimaryOutput()) {
- audio_devices_t newDevice = getNewOutputDevice(mPrimaryOutput, false /*fromCache*/);
- updateCallRouting(newDevice);
- }
-
#ifdef FM_POWER_OPT
// handle FM device connection state to trigger FM AFE loopback
if (device == AUDIO_DEVICE_OUT_FM && hasPrimaryOutput()) {
@@ -316,6 +305,7 @@
mPrimaryOutput->changeRefCount(AUDIO_STREAM_MUSIC, 1);
newDevice = (audio_devices_t)(getNewOutputDevice(mPrimaryOutput, false)|AUDIO_DEVICE_OUT_FM);
mFMIsActive = true;
+ mPrimaryOutput->mDevice = newDevice & ~AUDIO_DEVICE_OUT_FM;
} else {
newDevice = (audio_devices_t)(getNewOutputDevice(mPrimaryOutput, false));
mFMIsActive = false;
@@ -327,6 +317,17 @@
}
#endif /* FM_POWER_OPT end */
+ updateDevicesAndOutputs();
+#ifdef DOLBY_ENABLE
+ // Before closing the opened outputs, update endpoint property with device capabilities
+ audio_devices_t audioOutputDevice = getDeviceForStrategy(getStrategy(AUDIO_STREAM_MUSIC), true);
+ mDolbyAudioPolicy.setEndpointSystemProperty(audioOutputDevice, mHwModules);
+#endif // DOLBY_END
+ if (mEngine->getPhoneState() == AUDIO_MODE_IN_CALL && hasPrimaryOutput()) {
+ audio_devices_t newDevice = getNewOutputDevice(mPrimaryOutput, false /*fromCache*/);
+ updateCallRouting(newDevice);
+ }
+
for (size_t i = 0; i < mOutputs.size(); i++) {
sp<SwAudioOutputDescriptor> desc = mOutputs.valueAt(i);
if ((mEngine->getPhoneState() != AUDIO_MODE_IN_CALL) || (desc != mPrimaryOutput)) {