Revert "soc: mstr-ctrl: Retain Audio_HM voting until suspend"
This reverts commits ea6cbeeb1ad818c8c7907252409edb306c81d0ae
and b06236e6377a48282b59410e0440b8be6d83095f.
Change-Id: I0b8b44bc5cca6bef6bc18c228f08a9c585c79c1c
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
diff --git a/asoc/codecs/bolero/bolero-cdc.c b/asoc/codecs/bolero/bolero-cdc.c
index afaadf9..d7dc7d7 100644
--- a/asoc/codecs/bolero/bolero-cdc.c
+++ b/asoc/codecs/bolero/bolero-cdc.c
@@ -1090,7 +1090,7 @@
* Returns 0 on success or -EINVAL on error.
*/
int bolero_register_event_listener(struct snd_soc_component *component,
- bool enable, bool is_dmic_sva)
+ bool enable)
{
struct bolero_priv *priv = NULL;
int ret = 0;
@@ -1109,8 +1109,7 @@
if (priv->macro_params[TX_MACRO].reg_evt_listener)
ret = priv->macro_params[TX_MACRO].reg_evt_listener(component,
- enable,
- is_dmic_sva);
+ enable);
return ret;
}
diff --git a/asoc/codecs/bolero/bolero-cdc.h b/asoc/codecs/bolero/bolero-cdc.h
index f4af2d9..bd52879 100644
--- a/asoc/codecs/bolero/bolero-cdc.h
+++ b/asoc/codecs/bolero/bolero-cdc.h
@@ -89,8 +89,7 @@
u32 size, void *data);
int (*clk_div_get)(struct snd_soc_component *component);
int (*clk_switch)(struct snd_soc_component *component, int clk_src);
- int (*reg_evt_listener)(struct snd_soc_component *component,
- bool en, bool is_dmic_sva);
+ int (*reg_evt_listener)(struct snd_soc_component *component, bool en);
int (*clk_enable)(struct snd_soc_component *c, bool en);
char __iomem *io_base;
u16 clk_id_req;
@@ -117,7 +116,7 @@
int bolero_set_port_map(struct snd_soc_component *component, u32 size, void *data);
int bolero_tx_clk_switch(struct snd_soc_component *component, int clk_src);
int bolero_register_event_listener(struct snd_soc_component *component,
- bool enable, bool is_dmic_sva);
+ bool enable);
void bolero_wsa_pa_on(struct device *dev, bool adie_lb);
bool bolero_check_core_votes(struct device *dev);
int bolero_tx_mclk_enable(struct snd_soc_component *c, bool enable);
@@ -191,7 +190,7 @@
static inline int bolero_register_event_listener(
struct snd_soc_component *component,
- bool enable, bool is_dmic_sva)
+ bool enable)
{
return 0;
}
diff --git a/asoc/codecs/bolero/rx-macro.c b/asoc/codecs/bolero/rx-macro.c
index 523f3c7..87b1e0c 100644
--- a/asoc/codecs/bolero/rx-macro.c
+++ b/asoc/codecs/bolero/rx-macro.c
@@ -378,7 +378,6 @@
void *data),
void *swrm_handle,
int action);
- int (*pinctrl_setup)(void *handle, bool enable);
};
enum {
@@ -4071,7 +4070,6 @@
rx_priv->swr_plat_data.clk = rx_swrm_clock;
rx_priv->swr_plat_data.core_vote = rx_macro_core_vote;
rx_priv->swr_plat_data.handle_irq = NULL;
- rx_priv->swr_plat_data.pinctrl_setup = NULL;
ret = of_property_read_u8_array(pdev->dev.of_node,
"qcom,rx-bcl-pmic-params", bcl_pmic_params,
diff --git a/asoc/codecs/bolero/tx-macro.c b/asoc/codecs/bolero/tx-macro.c
index 85e5e95..16d79c9 100644
--- a/asoc/codecs/bolero/tx-macro.c
+++ b/asoc/codecs/bolero/tx-macro.c
@@ -81,7 +81,6 @@
void *data),
void *swrm_handle,
int action);
- int (*pinctrl_setup)(void *handle, bool enable);
};
enum {
@@ -2388,30 +2387,12 @@
tx_macro_get_bcs, tx_macro_set_bcs),
};
-static int tx_macro_pinctrl_setup(void *handle, bool enable)
-{
- struct tx_macro_priv *tx_priv = (struct tx_macro_priv *) handle;
-
- if (tx_priv == NULL) {
- pr_err("%s: tx priv data is NULL\n", __func__);
- return -EINVAL;
- }
- if (enable)
- msm_cdc_pinctrl_set_wakeup_capable(
- tx_priv->tx_swr_gpio_p, true);
- else
- msm_cdc_pinctrl_set_wakeup_capable(
- tx_priv->tx_swr_gpio_p, false);
- return 0;
-}
-
static int tx_macro_register_event_listener(struct snd_soc_component *component,
- bool enable, bool is_dmic_sva)
+ bool enable)
{
struct device *tx_dev = NULL;
struct tx_macro_priv *tx_priv = NULL;
int ret = 0;
- u32 dmic_sva = is_dmic_sva;
if (!component)
return -EINVAL;
@@ -2433,17 +2414,15 @@
if (enable) {
ret = swrm_wcd_notify(
tx_priv->swr_ctrl_data[0].tx_swr_pdev,
- SWR_REGISTER_WAKEUP, &dmic_sva);
+ SWR_REGISTER_WAKEUP, NULL);
msm_cdc_pinctrl_set_wakeup_capable(
- tx_priv->tx_swr_gpio_p, false);
+ tx_priv->tx_swr_gpio_p, false);
} else {
- /* while teardown we can reset the flag */
- dmic_sva = 0;
msm_cdc_pinctrl_set_wakeup_capable(
- tx_priv->tx_swr_gpio_p, true);
+ tx_priv->tx_swr_gpio_p, true);
ret = swrm_wcd_notify(
tx_priv->swr_ctrl_data[0].tx_swr_pdev,
- SWR_DEREGISTER_WAKEUP, &dmic_sva);
+ SWR_DEREGISTER_WAKEUP, NULL);
}
}
@@ -3252,7 +3231,6 @@
tx_priv->swr_plat_data.clk = tx_macro_swrm_clock;
tx_priv->swr_plat_data.core_vote = tx_macro_core_vote;
tx_priv->swr_plat_data.handle_irq = NULL;
- tx_priv->swr_plat_data.pinctrl_setup = tx_macro_pinctrl_setup;
mutex_init(&tx_priv->swr_clk_lock);
}
tx_priv->is_used_tx_swr_gpio = is_used_tx_swr_gpio;
diff --git a/asoc/codecs/bolero/va-macro.c b/asoc/codecs/bolero/va-macro.c
index 46e4543..f0a85ac 100644
--- a/asoc/codecs/bolero/va-macro.c
+++ b/asoc/codecs/bolero/va-macro.c
@@ -130,7 +130,6 @@
void *data),
void *swrm_handle,
int action);
- int (*pinctrl_setup)(void *handle, bool enable);
};
struct va_macro_priv {
@@ -460,14 +459,14 @@
dev_dbg(va_dev, "%s: clock switch failed\n",
__func__);
if (va_priv->lpi_enable) {
- bolero_register_event_listener(component, true, false);
+ bolero_register_event_listener(component, true);
va_priv->register_event_listener = true;
}
break;
case SND_SOC_DAPM_POST_PMD:
if (va_priv->register_event_listener) {
va_priv->register_event_listener = false;
- bolero_register_event_listener(component, false, false);
+ bolero_register_event_listener(component, false);
}
if (bolero_tx_clk_switch(component, CLK_SRC_TX_RCG))
dev_dbg(va_dev, "%s: clock switch failed\n",__func__);
@@ -483,45 +482,6 @@
return ret;
}
-static int va_macro_swr_intr_event(struct snd_soc_dapm_widget *w,
- struct snd_kcontrol *kcontrol, int event)
-{
- struct snd_soc_component *component =
- snd_soc_dapm_to_component(w->dapm);
- int ret = 0;
- struct device *va_dev = NULL;
- struct va_macro_priv *va_priv = NULL;
-
- if (!va_macro_get_data(component, &va_dev, &va_priv, __func__))
- return -EINVAL;
-
- dev_dbg(va_dev, "%s: event = %d, lpi_enable = %d\n",
- __func__, event, va_priv->lpi_enable);
-
- if (!va_priv->lpi_enable)
- return ret;
-
- switch (event) {
- case SND_SOC_DAPM_PRE_PMU:
- if (va_priv->lpi_enable) {
- bolero_register_event_listener(component, true, true);
- va_priv->register_event_listener = true;
- }
- break;
- case SND_SOC_DAPM_POST_PMD:
- if (va_priv->register_event_listener) {
- va_priv->register_event_listener = false;
- bolero_register_event_listener(component, false, true);
- }
- break;
- default:
- dev_err(va_priv->dev,
- "%s: invalid DAPM event %d\n", __func__, event);
- ret = -EINVAL;
- }
- return ret;
-}
-
static int va_macro_tx_swr_clk_event_v2(struct snd_soc_dapm_widget *w,
struct snd_kcontrol *kcontrol, int event)
{
@@ -2004,10 +1964,6 @@
SND_SOC_DAPM_SUPPLY_S("VA_SWR_PWR", -1, SND_SOC_NOPM, 0, 0,
va_macro_swr_pwr_event,
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
-
- SND_SOC_DAPM_SUPPLY_S("VA_SWR_INTR", 0, SND_SOC_NOPM, 0, 0,
- va_macro_swr_intr_event,
- SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
};
static const struct snd_soc_dapm_widget va_macro_dapm_widgets[] = {
@@ -2152,10 +2108,6 @@
SND_SOC_DAPM_SUPPLY_S("VA_MCLK", -1, SND_SOC_NOPM, 0, 0,
va_macro_mclk_event,
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
-
- SND_SOC_DAPM_SUPPLY_S("VA_SWR_INTR", 0, SND_SOC_NOPM, 0, 0,
- va_macro_swr_intr_event,
- SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
};
static const struct snd_soc_dapm_widget va_macro_wod_dapm_widgets[] = {
@@ -2302,15 +2254,6 @@
{"VA SMIC MUX3", "SWR_MIC9", "VA SWR_MIC9"},
{"VA SMIC MUX3", "SWR_MIC10", "VA SWR_MIC10"},
{"VA SMIC MUX3", "SWR_MIC11", "VA SWR_MIC11"},
-
- {"VA DMIC0", NULL, "VA_SWR_INTR"},
- {"VA DMIC1", NULL, "VA_SWR_INTR"},
- {"VA DMIC2", NULL, "VA_SWR_INTR"},
- {"VA DMIC3", NULL, "VA_SWR_INTR"},
- {"VA DMIC4", NULL, "VA_SWR_INTR"},
- {"VA DMIC5", NULL, "VA_SWR_INTR"},
- {"VA DMIC6", NULL, "VA_SWR_INTR"},
- {"VA DMIC7", NULL, "VA_SWR_INTR"},
};
static const struct snd_soc_dapm_route va_audio_map_v2[] = {
@@ -2547,15 +2490,6 @@
{"VA SMIC MUX7", "SWR_DMIC6", "VA SWR_MIC6"},
{"VA SMIC MUX7", "SWR_DMIC7", "VA SWR_MIC7"},
- {"VA DMIC0", NULL, "VA_SWR_INTR"},
- {"VA DMIC1", NULL, "VA_SWR_INTR"},
- {"VA DMIC2", NULL, "VA_SWR_INTR"},
- {"VA DMIC3", NULL, "VA_SWR_INTR"},
- {"VA DMIC4", NULL, "VA_SWR_INTR"},
- {"VA DMIC5", NULL, "VA_SWR_INTR"},
- {"VA DMIC6", NULL, "VA_SWR_INTR"},
- {"VA DMIC7", NULL, "VA_SWR_INTR"},
-
{"VA SWR_ADC0", NULL, "VA_SWR_PWR"},
{"VA SWR_ADC1", NULL, "VA_SWR_PWR"},
{"VA SWR_ADC2", NULL, "VA_SWR_PWR"},
@@ -3216,7 +3150,6 @@
va_priv->swr_plat_data.clk = va_macro_swrm_clock;
va_priv->swr_plat_data.core_vote = va_macro_core_vote;
va_priv->swr_plat_data.handle_irq = NULL;
- va_priv->swr_plat_data.pinctrl_setup = NULL;
mutex_init(&va_priv->swr_clk_lock);
}
va_priv->is_used_va_swr_gpio = is_used_va_swr_gpio;
diff --git a/asoc/codecs/bolero/wsa-macro.c b/asoc/codecs/bolero/wsa-macro.c
index fd8a3a8..d2852ee 100644
--- a/asoc/codecs/bolero/wsa-macro.c
+++ b/asoc/codecs/bolero/wsa-macro.c
@@ -166,7 +166,6 @@
void *data),
void *swrm_handle,
int action);
- int (*pinctrl_setup)(void *handle, bool enable);
};
struct wsa_macro_bcl_pmic_params {
@@ -3200,7 +3199,6 @@
wsa_priv->swr_plat_data.clk = wsa_swrm_clock;
wsa_priv->swr_plat_data.core_vote = wsa_macro_core_vote;
wsa_priv->swr_plat_data.handle_irq = NULL;
- wsa_priv->swr_plat_data.pinctrl_setup = NULL;
ret = of_property_read_u32(pdev->dev.of_node, "qcom,default-clk-id",
&default_clk_id);
diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c
index 2e7779a..998cddc 100644
--- a/soc/swr-mstr-ctrl.c
+++ b/soc/swr-mstr-ctrl.c
@@ -2573,8 +2573,6 @@
ret = -EINVAL;
goto err_pdata_fail;
}
- swrm->pinctrl_setup = pdata->pinctrl_setup;
-
if (of_property_read_u32(pdev->dev.of_node,
"qcom,swr-clock-stop-mode0",
&swrm->clk_stop_mode0_supp)) {
@@ -2907,6 +2905,7 @@
int ret = 0;
bool swrm_clk_req_err = false;
bool hw_core_err = false;
+ bool aud_core_err = false;
struct swr_master *mstr = &swrm->master;
struct swr_device *swr_dev;
@@ -2924,7 +2923,7 @@
if (swrm_request_hw_vote(swrm, LPASS_AUDIO_CORE, true)) {
dev_err(dev, "%s:lpass audio hw enable failed\n",
__func__);
- swrm->aud_core_err = true;
+ aud_core_err = true;
}
if ((swrm->state == SWR_MSTR_DOWN) ||
@@ -2943,9 +2942,6 @@
irq_get_irq_data(swrm->wake_irq)))
disable_irq_nosync(swrm->wake_irq);
mutex_unlock(&swrm->irq_lock);
- if (swrm->dmic_sva && swrm->pinctrl_setup)
- swrm->pinctrl_setup(swrm->handle,
- false);
}
if (swrm->ipc_wakeup)
msm_aud_evt_blocking_notifier_call_chain(
@@ -3013,7 +3009,7 @@
swrm->state = SWR_MSTR_UP;
}
exit:
- if (ret && !swrm->aud_core_err)
+ if (!aud_core_err)
swrm_request_hw_vote(swrm, LPASS_AUDIO_CORE, false);
if (!hw_core_err)
swrm_request_hw_vote(swrm, LPASS_HW_CORE, false);
@@ -3038,6 +3034,7 @@
struct swr_mstr_ctrl *swrm = platform_get_drvdata(pdev);
int ret = 0;
bool hw_core_err = false;
+ bool aud_core_err = false;
struct swr_master *mstr = &swrm->master;
struct swr_device *swr_dev;
int current_state = 0;
@@ -3056,6 +3053,11 @@
__func__);
hw_core_err = true;
}
+ if (swrm_request_hw_vote(swrm, LPASS_AUDIO_CORE, true)) {
+ dev_err(dev, "%s:lpass audio hw enable failed\n",
+ __func__);
+ aud_core_err = true;
+ }
if ((current_state == SWR_MSTR_UP) ||
(current_state == SWR_MSTR_SSR)) {
@@ -3140,8 +3142,6 @@
if (swrm->clk_stop_mode0_supp) {
if (swrm->wake_irq > 0) {
- if (swrm->dmic_sva && swrm->pinctrl_setup)
- swrm->pinctrl_setup(swrm->handle, true);
enable_irq(swrm->wake_irq);
} else if (swrm->ipc_wakeup) {
msm_aud_evt_blocking_notifier_call_chain(
@@ -3155,11 +3155,10 @@
if (current_state != SWR_MSTR_SSR)
swrm->state = SWR_MSTR_DOWN;
exit:
- if (!swrm->aud_core_err)
+ if (!aud_core_err)
swrm_request_hw_vote(swrm, LPASS_AUDIO_CORE, false);
if (!hw_core_err)
swrm_request_hw_vote(swrm, LPASS_HW_CORE, false);
- swrm->aud_core_err = false;
mutex_unlock(&swrm->reslock);
trace_printk("%s: pm_runtime: suspend done state: %d\n",
__func__, swrm->state);
@@ -3490,12 +3489,10 @@
case SWR_REGISTER_WAKEUP:
msm_aud_evt_blocking_notifier_call_chain(
SWR_WAKE_IRQ_REGISTER, (void *)swrm);
- swrm->dmic_sva = *(u32 *)data;
break;
case SWR_DEREGISTER_WAKEUP:
msm_aud_evt_blocking_notifier_call_chain(
SWR_WAKE_IRQ_DEREGISTER, (void *)swrm);
- swrm->dmic_sva = 0;
break;
case SWR_SET_PORT_MAP:
if (!data) {
diff --git a/soc/swr-mstr-ctrl.h b/soc/swr-mstr-ctrl.h
index c7d42b0..8d38441 100644
--- a/soc/swr-mstr-ctrl.h
+++ b/soc/swr-mstr-ctrl.h
@@ -108,7 +108,6 @@
int (*core_vote)(void *handle, bool enable);
int (*reg_irq)(void *handle, irqreturn_t(*irq_handler)(int irq,
void *data), void *swr_handle, int type);
- int (*pinctrl_setup)(void *handle, bool enable);
};
struct swr_mstr_ctrl {
@@ -141,7 +140,6 @@
int (*core_vote)(void *handle, bool enable);
int (*reg_irq)(void *handle, irqreturn_t(*irq_handler)(int irq,
void *data), void *swr_handle, int type);
- int (*pinctrl_setup)(void *handle, bool enable);
int irq;
int wake_irq;
int version;
@@ -167,10 +165,8 @@
u32 clk_stop_mode0_supp;
struct work_struct wakeup_work;
u32 ipc_wakeup;
- u32 dmic_sva;
bool dev_up;
bool ipc_wakeup_triggered;
- bool aud_core_err;
bool req_clk_switch;
struct pm_qos_request pm_qos_req;
enum swrm_pm_state pm_state;