soc: wsa: Fix adie loopback test
In ADIE loopback, need PA enable to
avoid mute. Ensure PA enable post slave
path setup and FS clock.
Change-Id: I4df9d7b919325b50f237f31338859e1b5b34b2eb
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
diff --git a/asoc/codecs/bolero/wsa-macro.c b/asoc/codecs/bolero/wsa-macro.c
index e67f22e..fd8a3a8 100644
--- a/asoc/codecs/bolero/wsa-macro.c
+++ b/asoc/codecs/bolero/wsa-macro.c
@@ -846,6 +846,7 @@
uint16_t j = 0, reg = 0, mix_reg = 0, dsm_reg = 0;
u16 int_mux_cfg0 = 0, int_mux_cfg1 = 0;
u8 int_mux_cfg0_val = 0, int_mux_cfg1_val = 0;
+ bool adie_lb = false;
if (mute)
return 0;
@@ -882,7 +883,7 @@
}
}
}
- bolero_wsa_pa_on(wsa_dev);
+ bolero_wsa_pa_on(wsa_dev, adie_lb);
break;
default:
break;
@@ -1473,6 +1474,7 @@
u16 reg = 0;
struct device *wsa_dev = NULL;
struct wsa_macro_priv *wsa_priv = NULL;
+ bool adie_lb = false;
if (!wsa_macro_get_data(component, &wsa_dev, &wsa_priv, __func__))
return -EINVAL;
@@ -1483,9 +1485,10 @@
switch (event) {
case SND_SOC_DAPM_PRE_PMU:
if (wsa_macro_adie_lb(component, w->shift)) {
+ adie_lb = true;
snd_soc_component_update_bits(component,
reg, 0x20, 0x20);
- bolero_wsa_pa_on(wsa_dev);
+ bolero_wsa_pa_on(wsa_dev, adie_lb);
}
break;
default:
@@ -2567,10 +2570,10 @@
SND_SOC_DAPM_MUX_E("WSA_RX1 MIX INP", SND_SOC_NOPM,
0, 0, &rx1_mix_mux, wsa_macro_enable_mix_path,
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
- SND_SOC_DAPM_MIXER_E("WSA_RX INT0 MIX", SND_SOC_NOPM,
+ SND_SOC_DAPM_PGA_E("WSA_RX INT0 MIX", SND_SOC_NOPM,
0, 0, NULL, 0, wsa_macro_enable_main_path,
SND_SOC_DAPM_PRE_PMU),
- SND_SOC_DAPM_MIXER_E("WSA_RX INT1 MIX", SND_SOC_NOPM,
+ SND_SOC_DAPM_PGA_E("WSA_RX INT1 MIX", SND_SOC_NOPM,
1, 0, NULL, 0, wsa_macro_enable_main_path,
SND_SOC_DAPM_PRE_PMU),
SND_SOC_DAPM_MIXER("WSA_RX INT0 SEC MIX", SND_SOC_NOPM, 0, 0, NULL, 0),