Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e0ea9653 authored by Laxminath Kasam's avatar Laxminath Kasam
Browse files

asoc: bolero: control wakeup of swr_tx during clock setup



Move the enable and disable of wakeup capability of
swr_tx gpios to clock setup to disable or enable it
in all required usecases.

Change-Id: I9fb76926d8520c382e7f19777190357c50f98994
Signed-off-by: default avatarLaxminath Kasam <lkasam@codeaurora.org>
parent 1f152bcd
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -2650,11 +2650,7 @@ static int tx_macro_register_event_listener(struct snd_soc_component *component,
				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);
			if (!tx_priv->disable_afe_wakeup_event_listener)
				ret = swrm_wcd_notify(
					tx_priv->swr_ctrl_data[0].tx_swr_pdev,
@@ -2690,6 +2686,8 @@ static int tx_macro_tx_va_mclk_enable(struct tx_macro_priv *tx_priv,
					__func__);
				goto exit;
			}
			msm_cdc_pinctrl_set_wakeup_capable(
					tx_priv->tx_swr_gpio_p, false);
		}

		clk_tx_ret = bolero_clk_rsc_request_clock(tx_priv->dev,
@@ -2818,6 +2816,8 @@ static int tx_macro_tx_va_mclk_enable(struct tx_macro_priv *tx_priv,
						   TX_CORE_CLK,
						   false);
		if (tx_priv->swr_clk_users == 0) {
			msm_cdc_pinctrl_set_wakeup_capable(
					tx_priv->tx_swr_gpio_p, true);
			ret = msm_cdc_pinctrl_select_sleep_state(
						tx_priv->tx_swr_gpio_p);
			if (ret < 0) {
+8 −6
Original line number Diff line number Diff line
@@ -428,12 +428,8 @@ static int va_macro_swr_pwr_event_v2(struct snd_soc_dapm_widget *w,
			}
			va_priv->current_clk_id = VA_CORE_CLK;
		}
		msm_cdc_pinctrl_set_wakeup_capable(
				va_priv->va_swr_gpio_p, false);
		break;
	case SND_SOC_DAPM_POST_PMD:
		msm_cdc_pinctrl_set_wakeup_capable(
				va_priv->va_swr_gpio_p, true);
		if (va_priv->current_clk_id == VA_CORE_CLK &&
			va_priv->va_swr_clk_cnt != 0 &&
			va_priv->tx_clk_status) {
@@ -610,9 +606,12 @@ static int va_macro_tx_va_mclk_enable(struct va_macro_priv *va_priv,
		(enable ? "enable" : "disable"), va_priv->va_mclk_users);

	if (enable) {
		if (va_priv->swr_clk_users == 0)
		if (va_priv->swr_clk_users == 0) {
			msm_cdc_pinctrl_select_active_state(
						va_priv->va_swr_gpio_p);
			msm_cdc_pinctrl_set_wakeup_capable(
					va_priv->va_swr_gpio_p, false);
		}
		clk_tx_ret = bolero_clk_rsc_request_clock(va_priv->dev,
						   TX_CORE_CLK,
						   TX_CORE_CLK,
@@ -705,10 +704,13 @@ static int va_macro_tx_va_mclk_enable(struct va_macro_priv *va_priv,
						   TX_CORE_CLK,
						   TX_CORE_CLK,
						   false);
		if (va_priv->swr_clk_users == 0)
		if (va_priv->swr_clk_users == 0) {
			msm_cdc_pinctrl_set_wakeup_capable(
					va_priv->va_swr_gpio_p, true);
			msm_cdc_pinctrl_select_sleep_state(
						va_priv->va_swr_gpio_p);
		}
	}
	return 0;

done: