From ffd65896dd2c6329e3313c5c4c4b3dbeff54235a Mon Sep 17 00:00:00 2001 From: Vatsal Bucha Date: Tue, 29 Sep 2020 11:09:27 +0530 Subject: [PATCH] ASoC: bolero: Make tx swr gpio as wakeup capable Do not register afe event listener for shima and make tx swr gpio as wakeup capable. Change-Id: I4d805c2b65e6c424c1c215431caa75f6181a16e8 Signed-off-by: Vatsal Bucha --- asoc/codecs/bolero/tx-macro.c | 31 +++++++++++++++++++++++++------ asoc/codecs/bolero/va-macro.c | 19 +------------------ 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/asoc/codecs/bolero/tx-macro.c b/asoc/codecs/bolero/tx-macro.c index 4ea66165ef..135ea087cf 100644 --- a/asoc/codecs/bolero/tx-macro.c +++ b/asoc/codecs/bolero/tx-macro.c @@ -180,6 +180,7 @@ struct tx_macro_priv { bool lpi_enable; bool register_event_listener; u16 current_clk_id; + int disable_afe_wakeup_event_listener; }; static bool tx_macro_get_data(struct snd_soc_component *component, @@ -2645,17 +2646,19 @@ static int tx_macro_register_event_listener(struct snd_soc_component *component, if (tx_priv->swr_ctrl_data && (!tx_priv->tx_swr_clk_cnt || !tx_priv->va_swr_clk_cnt)) { if (enable) { - ret = swrm_wcd_notify( - tx_priv->swr_ctrl_data[0].tx_swr_pdev, - SWR_REGISTER_WAKEUP, NULL); + if (!tx_priv->disable_afe_wakeup_event_listener) + ret = swrm_wcd_notify( + tx_priv->swr_ctrl_data[0].tx_swr_pdev, + SWR_REGISTER_WAKEUP, NULL); msm_cdc_pinctrl_set_wakeup_capable( tx_priv->tx_swr_gpio_p, false); } else { msm_cdc_pinctrl_set_wakeup_capable( tx_priv->tx_swr_gpio_p, true); - ret = swrm_wcd_notify( - tx_priv->swr_ctrl_data[0].tx_swr_pdev, - SWR_DEREGISTER_WAKEUP, NULL); + if (!tx_priv->disable_afe_wakeup_event_listener) + ret = swrm_wcd_notify( + tx_priv->swr_ctrl_data[0].tx_swr_pdev, + SWR_DEREGISTER_WAKEUP, NULL); } } @@ -3411,6 +3414,9 @@ static int tx_macro_probe(struct platform_device *pdev) const char *dmic_sample_rate = "qcom,tx-dmic-sample-rate"; u32 is_used_tx_swr_gpio = 1; const char *is_used_tx_swr_gpio_dt = "qcom,is-used-swr-gpio"; + u32 disable_afe_wakeup_event_listener = 0; + const char *disable_afe_wakeup_event_listener_dt = + "qcom,disable-afe-wakeup-event-listener"; if (!bolero_is_va_macro_registered(&pdev->dev)) { dev_err(&pdev->dev, @@ -3477,6 +3483,19 @@ static int tx_macro_probe(struct platform_device *pdev) sample_rate, tx_priv) == TX_MACRO_DMIC_SAMPLE_RATE_UNDEFINED) return -EINVAL; } + + if (of_find_property(pdev->dev.of_node, + disable_afe_wakeup_event_listener_dt, NULL)) { + ret = of_property_read_u32(pdev->dev.of_node, + disable_afe_wakeup_event_listener_dt, + &disable_afe_wakeup_event_listener); + if (ret) + dev_dbg(&pdev->dev, "%s: error reading %s in dt\n", + __func__, disable_afe_wakeup_event_listener_dt); + } + tx_priv->disable_afe_wakeup_event_listener = + disable_afe_wakeup_event_listener; + if (is_used_tx_swr_gpio) { tx_priv->reset_swr = true; INIT_WORK(&tx_priv->tx_macro_add_child_devices_work, diff --git a/asoc/codecs/bolero/va-macro.c b/asoc/codecs/bolero/va-macro.c index 8e32a46cab..08dabf3d30 100644 --- a/asoc/codecs/bolero/va-macro.c +++ b/asoc/codecs/bolero/va-macro.c @@ -173,7 +173,6 @@ struct va_macro_priv { bool lpi_enable; bool register_event_listener; int dec_mode[VA_MACRO_NUM_DECIMATORS]; - int disable_afe_wakeup_event_listener; }; static bool va_macro_get_data(struct snd_soc_component *component, @@ -493,8 +492,7 @@ static int va_macro_swr_pwr_event(struct snd_soc_dapm_widget *w, dev_dbg(va_dev, "%s: clock switch failed\n", __func__); } - if (va_priv->lpi_enable && - !va_priv->disable_afe_wakeup_event_listener) { + if (va_priv->lpi_enable) { bolero_register_event_listener(component, true); va_priv->register_event_listener = true; } @@ -3057,10 +3055,7 @@ static int va_macro_probe(struct platform_device *pdev) u32 default_clk_id = 0; struct clk *lpass_audio_hw_vote = NULL; u32 is_used_va_swr_gpio = 0; - u32 disable_afe_wakeup_event_listener = 0; const char *is_used_va_swr_gpio_dt = "qcom,is-used-swr-gpio"; - const char *disable_afe_wakeup_event_listener_dt = - "qcom,disable-afe-wakeup-event-listener"; va_priv = devm_kzalloc(&pdev->dev, sizeof(struct va_macro_priv), GFP_KERNEL); @@ -3103,18 +3098,6 @@ static int va_macro_probe(struct platform_device *pdev) } } - if (of_find_property(pdev->dev.of_node, - disable_afe_wakeup_event_listener_dt, NULL)) { - ret = of_property_read_u32(pdev->dev.of_node, - disable_afe_wakeup_event_listener_dt, - &disable_afe_wakeup_event_listener); - if (ret) - dev_dbg(&pdev->dev, "%s: error reading %s in dt\n", - __func__, disable_afe_wakeup_event_listener_dt); - } - va_priv->disable_afe_wakeup_event_listener = - disable_afe_wakeup_event_listener; - va_priv->va_swr_gpio_p = of_parse_phandle(pdev->dev.of_node, "qcom,va-swr-gpios", 0); if (!va_priv->va_swr_gpio_p && is_used_va_swr_gpio) {