Merge "pal: configs: crow:update wcd ear path mixer cntls"
diff --git a/configs/crow/mixer_paths_crow_qrd.xml b/configs/crow/mixer_paths_crow_qrd.xml
index afcf9d3..e74e0f1 100755
--- a/configs/crow/mixer_paths_crow_qrd.xml
+++ b/configs/crow/mixer_paths_crow_qrd.xml
@@ -276,11 +276,11 @@
<path name="amic2">
<ctl name="TX DEC0 MUX" value="SWR_MIC" />
- <ctl name="TX SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="TX SMIC MUX0" value="SWR_MIC4" />
<ctl name="DEC0_BCS Switch" value="1" />
<ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="ADC2 MUX" value="INP2" />
- <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
<ctl name="MBHC ChMap" value="SWRM_TX1_CH3" />
<ctl name="BCS Channel" value="CH2" />
<ctl name="ADC2_MIXER Switch" value="1" />
@@ -288,18 +288,18 @@
<path name="amic3">
<ctl name="TX DEC2 MUX" value="SWR_MIC" />
- <ctl name="TX SMIC MUX2" value="SWR_MIC6" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
- <ctl name="ADC2 ChMap" value="SWRM_TX2_CH3" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
<ctl name="ADC2 MUX" value="INP3" />
<ctl name="ADC2_MIXER Switch" value="1" />
</path>
<path name="amic4">
<ctl name="TX DEC5 MUX" value="SWR_MIC" />
- <ctl name="TX SMIC MUX5" value="SWR_MIC8" />
+ <ctl name="TX SMIC MUX5" value="SWR_MIC5" />
<ctl name="TX_AIF1_CAP Mixer DEC5" value="1" />
- <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX2_CH2" />
<ctl name="ADC3_MIXER Switch" value="1" />
</path>
@@ -822,10 +822,10 @@
</path>
<path name="va-mic-mono">
- <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
- <ctl name="VA DEC2 MUX" value="SWR_MIC" />
- <ctl name="VA SMIC MUX2" value="SWR_MIC6" />
- <ctl name="ADC2 ChMap" value="SWRM_TX2_CH3" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
<ctl name="ADC2 MUX" value="INP3" />
<ctl name="ADC2_MIXER Switch" value="1" />
</path>
@@ -837,14 +837,13 @@
<ctl name="VA DEC1 MUX" value="SWR_MIC" />
<ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
<ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
- <ctl name="ADC2_BCS Disable" value="1" />
<ctl name="ADC2 MUX" value="INP3" />
- <ctl name="VA SMIC MUX0" value="SWR_MIC0" />
- <ctl name="VA SMIC MUX1" value="SWR_MIC6" />
- <ctl name="ADC2 ChMap" value="SWRM_TX2_CH3" />
- <ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC5" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX2_CH2" />
<ctl name="ADC2_MIXER Switch" value="1" />
- <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
</path>
<path name="va-mic-tmic">
@@ -857,27 +856,16 @@
<ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
<ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
<ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
- <ctl name="VA SMIC MUX0" value="SWR_MIC9" />
- <ctl name="VA SMIC MUX1" value="SWR_MIC4" />
- <ctl name="VA SMIC MUX2" value="SWR_MIC5" />
- <ctl name="TX0 MODE" value="ADC_LP" />
- <ctl name="TX1 MODE" value="ADC_LP" />
- <ctl name="TX2 MODE" value="ADC_LP" />
- <ctl name="ADC2_BCS Disable" value="1" />
- <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC5" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC0" />
<ctl name="ADC2 MUX" value="INP3" />
- <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
- <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
- <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
- <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX2_CH2" />
<ctl name="ADC1_MIXER Switch" value="1" />
<ctl name="ADC2_MIXER Switch" value="1" />
- <ctl name="ADC1 Volume" value="10" />
- <ctl name="ADC2 Volume" value="10" />
- <ctl name="ADC4 Volume" value="10" />
- <ctl name="VA_AMIC5_MIXER Switch" value="1" />
- <ctl name="VA_AMIC1_MIXER Switch" value="1" />
- <ctl name="VA_AMIC3_MIXER Switch" value="1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
</path>
<path name="va-mic-qmic">
@@ -940,35 +928,8 @@
</path>
<path name="va-mic-tmic-lpi">
- <ctl name="VA_DEC0 Volume" value="96" />
- <ctl name="VA_DEC1 Volume" value="96" />
- <ctl name="VA_DEC2 Volume" value="96" />
- <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
- <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
- <ctl name="VA DEC0 MUX" value="SWR_MIC" />
- <ctl name="VA DEC1 MUX" value="SWR_MIC" />
- <ctl name="VA DEC2 MUX" value="SWR_MIC" />
- <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
- <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
- <ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
- <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
- <ctl name="VA SMIC MUX1" value="SWR_MIC9" />
- <ctl name="VA SMIC MUX2" value="SWR_MIC8" />
- <ctl name="TX0 MODE" value="ADC_LP" />
- <ctl name="TX1 MODE" value="ADC_LP" />
- <ctl name="TX2 MODE" value="ADC_LP" />
- <ctl name="ADC4 MUX" value="INP5" />
- <ctl name="ADC3 MUX" value="INP4" />
- <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
- <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
- <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
- <ctl name="ADC1_MIXER Switch" value="1" />
- <ctl name="ADC4_MIXER Switch" value="1" />
- <ctl name="ADC3_MIXER Switch" value="1" />
- <ctl name="VA_AMIC1_MIXER Switch" value="1" />
- <ctl name="VA_AMIC5_MIXER Switch" value="1" />
- <ctl name="VA_AMIC4_MIXER Switch" value="1" />
+ <ctl name="LPI Enable" value="1" />
+ <path name="va-mic-tmic" />
</path>
<path name="va-mic-qmic-lpi">
@@ -1024,10 +985,10 @@
<ctl name="LPI Enable" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA DEC0 MUX" value="SWR_MIC" />
- <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
<ctl name="ADC2 MUX" value="INP2" />
<ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
- <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
<ctl name="ADC2_BCS Disable" value="1" />
<ctl name="ADC2_MIXER Switch" value="1" />
</path>
@@ -1035,10 +996,10 @@
<path name="headset-va-mic">
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA DEC0 MUX" value="SWR_MIC" />
- <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
<ctl name="ADC2 MUX" value="INP2" />
<ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
- <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
<ctl name="ADC2_BCS Disable" value="1" />
<ctl name="ADC2_MIXER Switch" value="1" />
</path>
@@ -1051,12 +1012,11 @@
<path name="handset-dmic-endfire">
<ctl name="TX DEC1 MUX" value="SWR_MIC" />
<ctl name="TX DEC2 MUX" value="SWR_MIC" />
- <ctl name="TX SMIC MUX1" value="SWR_MIC0" />
- <ctl name="TX SMIC MUX2" value="SWR_MIC6" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC0" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC4" />
<ctl name="ADC2 MUX" value="INP3" />
<ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
- <ctl name="ADC2_BCS Disable" value="1" />
- <ctl name="ADC2 ChMap" value="SWRM_TX2_CH3" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
<ctl name="ADC1_MIXER Switch" value="1" />
@@ -1064,18 +1024,17 @@
</path>
<path name="speaker-dmic-endfire">
- <ctl name="TX DEC1 MUX" value="SWR_MIC" />
- <ctl name="TX DEC2 MUX" value="SWR_MIC" />
- <ctl name="TX SMIC MUX1" value="SWR_MIC0" />
- <ctl name="TX SMIC MUX2" value="SWR_MIC6" />
- <ctl name="ADC2 MUX" value="INP3" />
- <ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
- <ctl name="ADC2_BCS Disable" value="1" />
- <ctl name="ADC2 ChMap" value="SWRM_TX2_CH3" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
- <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC5" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX2_CH2" />
<ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
</path>
<path name="dmic-endfire">
@@ -1174,57 +1133,41 @@
<!-- Tri MIC devices -->
<path name="three-mic">
- <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
- <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
<ctl name="TX DEC1 MUX" value="SWR_MIC" />
<ctl name="TX DEC2 MUX" value="SWR_MIC" />
- <ctl name="TX DEC3 MUX" value="SWR_MIC" />
- <ctl name="TX SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="TX DEC5 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC0" />
<ctl name="TX SMIC MUX2" value="SWR_MIC4" />
- <ctl name="TX SMIC MUX3" value="SWR_MIC5" />
- <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="TX SMIC MUX5" value="SWR_MIC5" />
<ctl name="ADC2 MUX" value="INP3" />
- <ctl name="HDR34 MUX" value="NO_HDR34" />
- <ctl name="TX2 MODE" value="ADC_LP" />
- <ctl name="TX0 MODE" value="ADC_LP" />
- <ctl name="TX3 MODE" value="ADC_LP" />
- <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
- <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
- <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
- <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC5" value="1" />
<ctl name="ADC1_MIXER Switch" value="1" />
<ctl name="ADC2_MIXER Switch" value="1" />
- <ctl name="AMIC5_MIXER Switch" value="1" />
- <ctl name="AMIC1_MIXER Switch" value="1" />
- <ctl name="AMIC3_MIXER Switch" value="1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
</path>
<path name="speaker-tmic">
- <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
- <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
<ctl name="TX DEC1 MUX" value="SWR_MIC" />
<ctl name="TX DEC2 MUX" value="SWR_MIC" />
- <ctl name="TX DEC3 MUX" value="SWR_MIC" />
- <ctl name="TX SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="TX DEC5 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC0" />
<ctl name="TX SMIC MUX2" value="SWR_MIC4" />
- <ctl name="TX SMIC MUX3" value="SWR_MIC5" />
- <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="TX SMIC MUX5" value="SWR_MIC5" />
<ctl name="ADC2 MUX" value="INP3" />
- <ctl name="HDR34 MUX" value="NO_HDR34" />
- <ctl name="TX2 MODE" value="ADC_LP" />
- <ctl name="TX0 MODE" value="ADC_LP" />
- <ctl name="TX3 MODE" value="ADC_LP" />
- <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
- <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
- <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
- <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC5" value="1" />
<ctl name="ADC1_MIXER Switch" value="1" />
<ctl name="ADC2_MIXER Switch" value="1" />
- <ctl name="AMIC5_MIXER Switch" value="1" />
- <ctl name="AMIC1_MIXER Switch" value="1" />
- <ctl name="AMIC3_MIXER Switch" value="1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
</path>
<path name="voice-speaker-tmic">
diff --git a/context_manager/inc/ContextManager.h b/context_manager/inc/ContextManager.h
index a9d4d04..677e7d2 100644
--- a/context_manager/inc/ContextManager.h
+++ b/context_manager/inc/ContextManager.h
@@ -141,6 +141,9 @@
uint32_t see_id;
std::map<uint32_t, Usecase*> usecases;
+protected:
+ static std::mutex see_client_mutex;
+
public:
see_client(uint32_t id);
~see_client();
@@ -148,6 +151,8 @@
Usecase* Usecase_Get(uint32_t usecase_id);
int32_t Usecase_Remove(uint32_t usecase_id);
int32_t Usecase_Add(uint32_t usecase_id, Usecase* uc);
+ void lock_see_client() { see_client_mutex.lock(); };
+ void unlock_see_client() { see_client_mutex.unlock(); };
void CloseAllUsecases();
};
diff --git a/context_manager/src/ContextManager.cpp b/context_manager/src/ContextManager.cpp
index 97a5948..5b2d9a1 100644
--- a/context_manager/src/ContextManager.cpp
+++ b/context_manager/src/ContextManager.cpp
@@ -71,6 +71,8 @@
#define ACKDATA_DEFAULT_SIZE 1024
#define PAL_ALIGN_8BYTE(x) (((x) + 7) & (~7))
+std::mutex see_client::see_client_mutex;
+
int32_t ContextManager::process_register_request(uint32_t see_id, uint32_t usecase_id, uint32_t size,
void *payload)
{
@@ -87,6 +89,8 @@
goto exit;
}
+ seeclient->lock_see_client();
+
uc = seeclient->Usecase_Get(usecase_id);
if (uc == NULL) {
PAL_VERBOSE(LOG_TAG, "Creating new usecase:0x%x for see_id:%d", usecase_id, see_id);
@@ -154,6 +158,7 @@
if (rc) {
send_asps_basic_response(rc, EVENT_ID_ASPS_SENSOR_REGISTER_REQUEST, see_id);
}
+ seeclient->unlock_see_client();
PAL_VERBOSE(LOG_TAG, "Exit rc:%d", rc);
return rc;
}
@@ -246,6 +251,8 @@
goto exit;
}
+ seeclient->lock_see_client();
+
uc = seeclient->Usecase_Get(usecase_id);
if (uc == NULL) {
rc = -EINVAL;
@@ -266,6 +273,7 @@
}
exit:
+ seeclient->unlock_see_client();
PAL_VERBOSE(LOG_TAG, "Exit rc:%d", rc);
return rc;
}
@@ -915,6 +923,8 @@
PAL_VERBOSE(LOG_TAG, "Enter:");
+ see_client_mutex.lock();
+
for (auto it_uc = this->usecases.begin(); it_uc != this->usecases.cend();) {
uc = it_uc->second;
PAL_VERBOSE(LOG_TAG, "Calling StopAndClose on usecase_id:0x%x", uc->GetUseCaseID());
@@ -923,6 +933,8 @@
delete uc;
}
+ see_client_mutex.unlock();
+
PAL_VERBOSE(LOG_TAG, "Exit:");
}