summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2022-07-07 23:53:29 -0700
committerLinux Build Service Account <lnxbuild@localhost>2022-07-07 23:53:29 -0700
commit534befa3c376d5129c12c9300079b1d96a83d855 (patch)
tree1f88a713d44169682bbb3c1ab3e2dad70a45b5ea
parentec4dd9757fad0815f5929a96d14c1eff0736c152 (diff)
parentf8d36c666ba867001ed409e3469470c4a4619091 (diff)
Merge f8d36c666ba867001ed409e3469470c4a4619091 on remote branch
Change-Id: If864ecba28803a399cea565b5e71e8531bd31685
-rw-r--r--configs/parrot/mixer_paths_parrot_qrd.xml62
-rw-r--r--configs/parrot/mixer_paths_parrot_qrd_sku1.xml50
-rw-r--r--hal/AudioDevice.cpp6
-rw-r--r--hal/AudioStream.cpp15
-rw-r--r--hal/AudioStream.h1
5 files changed, 53 insertions, 81 deletions
diff --git a/configs/parrot/mixer_paths_parrot_qrd.xml b/configs/parrot/mixer_paths_parrot_qrd.xml
index 967b6489..7b634a4e 100644
--- a/configs/parrot/mixer_paths_parrot_qrd.xml
+++ b/configs/parrot/mixer_paths_parrot_qrd.xml
@@ -470,11 +470,11 @@
</path>
<path name="speaker-mic">
- <path name="amic1" />
+ <path name="amic5" />
</path>
<path name="speaker-mic-liquid">
- <path name="amic1" />
+ <path name="amic5" />
</path>
<path name="speaker-mic-sbc">
@@ -736,15 +736,15 @@
</path>
<path name="va-mic-mono">
- <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
- <ctl name="VA DEC0 MUX" value="SWR_MIC" />
- <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
- <ctl name="TX2 MODE" value="ADC_LP" />
- <ctl name="ADC3 MUX" value="INP4" />
- <ctl name="VA SMIC MUX0" value="SWR_MIC8" />
- <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
- <ctl name="ADC3_MIXER Switch" value="1" />
- <ctl name="VA_AMIC4_MIXER Switch" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC5" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC3_MIXER Switch" value="1" />
</path>
<path name="va-mic-dmic">
@@ -756,16 +756,15 @@
<ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
<ctl name="TX2 MODE" value="ADC_LP" />
<ctl name="TX1 MODE" value="ADC_LP" />
- <ctl name="ADC3 MUX" value="INP4" />
<ctl name="ADC2 MUX" value="INP3" />
- <ctl name="VA SMIC MUX0" value="SWR_MIC8" />
- <ctl name="VA SMIC MUX1" value="SWR_MIC5" />
- <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC4" />
<ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
- <ctl name="ADC3_MIXER Switch" value="1" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
<ctl name="ADC2_MIXER Switch" value="1" />
- <ctl name="VA_AMIC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
<ctl name="VA_AMIC3_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
</path>
<path name="va-mic-tmic">
@@ -778,24 +777,24 @@
<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 MUX0" value="SWR_MIC5" />
<ctl name="VA SMIC MUX1" value="SWR_MIC8" />
- <ctl name="VA SMIC MUX2" value="SWR_MIC5" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC4" />
<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="ADC2 MUX" value="INP3" />
- <ctl name="ADC3 MUX" value="INP4" />
+ <ctl name="ADC4 MUX" value="INP5" />
<ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
<ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
- <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH1" />
<ctl name="ADC1_MIXER Switch" value="1" />
<ctl name="ADC2_MIXER Switch" value="1" />
- <ctl name="ADC3_MIXER Switch" value="1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
<ctl name="VA_AMIC1_MIXER Switch" value="1" />
<ctl name="VA_AMIC3_MIXER Switch" value="1" />
- <ctl name="VA_AMIC4_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="1" />
</path>
<path name="va-mic">
@@ -958,22 +957,7 @@
</path>
<path name="speaker-dmic-broadside">
- <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX_AIF1_CAP Mixer DEC2" 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_MIC8" />
- <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
- <ctl name="ADC3 MUX" value="INP4" />
- <ctl name="HDR34 MUX" value="NO_HDR34" />
- <ctl name="TX2 MODE" value="ADC_LP" />
- <ctl name="TX0 MODE" value="ADC_LP" />
- <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
- <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
- <ctl name="ADC3_MIXER Switch" value="1" />
- <ctl name="ADC1_MIXER Switch" value="1" />
- <ctl name="AMIC4_MIXER Switch" value="1" />
- <ctl name="AMIC1_MIXER Switch" value="1" />
+ <path name="speaker-dmic-endfire" />
</path>
<path name="dmic-broadside">
diff --git a/configs/parrot/mixer_paths_parrot_qrd_sku1.xml b/configs/parrot/mixer_paths_parrot_qrd_sku1.xml
index f65ac42b..3ad3707a 100644
--- a/configs/parrot/mixer_paths_parrot_qrd_sku1.xml
+++ b/configs/parrot/mixer_paths_parrot_qrd_sku1.xml
@@ -473,11 +473,11 @@
</path>
<path name="speaker-mic">
- <path name="amic1" />
+ <path name="amic5" />
</path>
<path name="speaker-mic-liquid">
- <path name="amic1" />
+ <path name="amic5" />
</path>
<path name="speaker-mic-sbc">
@@ -739,15 +739,15 @@
</path>
<path name="va-mic-mono">
- <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
- <ctl name="VA DEC0 MUX" value="SWR_MIC" />
- <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
- <ctl name="TX2 MODE" value="ADC_LP" />
- <ctl name="ADC3 MUX" value="INP4" />
- <ctl name="VA SMIC MUX0" value="SWR_MIC8" />
- <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
- <ctl name="ADC3_MIXER Switch" value="1" />
- <ctl name="VA_AMIC4_MIXER Switch" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC5" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC3_MIXER Switch" value="1" />
</path>
<path name="va-mic-dmic">
@@ -759,16 +759,15 @@
<ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
<ctl name="TX2 MODE" value="ADC_LP" />
<ctl name="TX1 MODE" value="ADC_LP" />
- <ctl name="ADC3 MUX" value="INP4" />
<ctl name="ADC2 MUX" value="INP3" />
- <ctl name="VA SMIC MUX0" value="SWR_MIC8" />
- <ctl name="VA SMIC MUX1" value="SWR_MIC5" />
- <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC4" />
<ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
- <ctl name="ADC3_MIXER Switch" value="1" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
<ctl name="ADC2_MIXER Switch" value="1" />
- <ctl name="VA_AMIC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
<ctl name="VA_AMIC3_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
</path>
<path name="va-mic-tmic">
@@ -961,22 +960,7 @@
</path>
<path name="speaker-dmic-broadside">
- <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX_AIF1_CAP Mixer DEC2" 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_MIC8" />
- <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
- <ctl name="ADC3 MUX" value="INP4" />
- <ctl name="HDR34 MUX" value="NO_HDR34" />
- <ctl name="TX2 MODE" value="ADC_LP" />
- <ctl name="TX0 MODE" value="ADC_LP" />
- <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
- <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
- <ctl name="ADC3_MIXER Switch" value="1" />
- <ctl name="ADC1_MIXER Switch" value="1" />
- <ctl name="AMIC4_MIXER Switch" value="1" />
- <ctl name="AMIC1_MIXER Switch" value="1" />
+ <path name="speaker-dmic-endfire" />
</path>
<path name="dmic-broadside">
diff --git a/hal/AudioDevice.cpp b/hal/AudioDevice.cpp
index bd7afbd2..84a62a36 100644
--- a/hal/AudioDevice.cpp
+++ b/hal/AudioDevice.cpp
@@ -1458,6 +1458,8 @@ int AudioDevice::SetParameters(const char *kvpairs) {
if ((dynamic_media_config.sample_rate == 0 && dynamic_media_config.format == 0 &&
dynamic_media_config.mask == 0) || (dynamic_media_config.jack_status == false))
usb_input_dev_enabled = false;
+ else
+ usb_input_dev_enabled = true;
free(device_cap_query);
} else {
AHAL_ERR("Failed to allocate mem for device_cap_query");
@@ -1871,9 +1873,11 @@ int AudioDevice::SetParameters(const char *kvpairs) {
sizeof(pal_param_bta2dp_t));
}
- str_parms_destroy(parms);
exit:
+ if (parms)
+ str_parms_destroy(parms);
+
AHAL_DBG("exit: %s", kvpairs);
return 0;
}
diff --git a/hal/AudioStream.cpp b/hal/AudioStream.cpp
index c10b5bf5..e1ac2bf9 100644
--- a/hal/AudioStream.cpp
+++ b/hal/AudioStream.cpp
@@ -706,6 +706,7 @@ static int astream_out_get_presentation_position(
if (astream_out) {
switch (astream_out->GetPalStreamType(astream_out->flags_)) {
case PAL_STREAM_COMPRESSED:
+ case PAL_STREAM_PCM_OFFLOAD:
ret = astream_out->GetFrames(frames);
if (ret != 0) {
AHAL_ERR("GetTimestamp failed %d", ret);
@@ -744,6 +745,7 @@ static int out_get_render_position(const struct audio_stream_out *stream,
if (astream_out) {
switch (astream_out->GetPalStreamType(astream_out->flags_)) {
case PAL_STREAM_COMPRESSED:
+ case PAL_STREAM_PCM_OFFLOAD:
ret = astream_out->GetFrames(&frames);
if (ret != 0) {
AHAL_ERR("Get DSP Frames failed %d", ret);
@@ -751,15 +753,10 @@ static int out_get_render_position(const struct audio_stream_out *stream,
}
*dsp_frames = (uint32_t) frames;
break;
- case PAL_STREAM_PCM_OFFLOAD:
case PAL_STREAM_LOW_LATENCY:
case PAL_STREAM_DEEP_BUFFER:
- ret = astream_out->GetFramesWritten(NULL);
- if (ret < 0) {
- AHAL_ERR("Get DSP Frames failed %d", ret);
- return ret;
- }
- *dsp_frames = ret;
+ frames = astream_out->GetFramesWritten(NULL);
+ *dsp_frames = (uint32_t) frames;
break;
default:
break;
@@ -1937,6 +1934,8 @@ int StreamOutPrimary::Standby() {
AHAL_DBG("Enter");
stream_mutex_.lock();
if (pal_stream_handle_) {
+ if (streamAttributes_.type == PAL_STREAM_PCM_OFFLOAD)
+ GetFrames(&mCachedPosition);
ret = pal_stream_stop(pal_stream_handle_);
if (ret) {
AHAL_ERR("failed to stop stream.");
@@ -2832,7 +2831,7 @@ int StreamOutPrimary::GetFrames(uint64_t *frames)
dsp_frames = (dsp_frames > offset) ? (dsp_frames - offset) : 0;
}
}
- *frames = dsp_frames;
+ *frames = dsp_frames + mCachedPosition;
exit:
return ret;
}
diff --git a/hal/AudioStream.h b/hal/AudioStream.h
index 07e179f9..d3e8b103 100644
--- a/hal/AudioStream.h
+++ b/hal/AudioStream.h
@@ -536,6 +536,7 @@ protected:
uint16_t mchannels;
std::shared_ptr<audio_stream_out> stream_;
uint64_t mBytesWritten; /* total bytes written, not cleared when entering standby */
+ uint64_t mCachedPosition = 0; /* cache pcm offload position when entering standby */
offload_effects_start_output fnp_offload_effect_start_output_ = nullptr;
offload_effects_stop_output fnp_offload_effect_stop_output_ = nullptr;
visualizer_hal_start_output fnp_visualizer_start_output_ = nullptr;