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

Commit 9503ada7 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "asoc: bolero: control wakeup of swr_tx during clock setup"

parents 3e3537e5 36bf2996
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -2445,11 +2445,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);
			ret = swrm_wcd_notify(
				tx_priv->swr_ctrl_data[0].tx_swr_pdev,
				SWR_DEREGISTER_WAKEUP, NULL);
@@ -2484,6 +2480,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,
@@ -2612,6 +2610,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
@@ -399,12 +399,8 @@ static int va_macro_swr_pwr_event_v2(struct snd_soc_dapm_widget *w,
				dev_dbg(va_dev, "%s: clock switch failed\n",
					__func__);
		}
		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->swr_ctrl_data) {
			clk_src = CLK_SRC_TX_RCG;
			ret = swrm_wcd_notify(
@@ -557,9 +553,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,
@@ -652,10 +651,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: