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

Commit bbce3836 authored by Derek Chen's avatar Derek Chen Committed by Gerrit - the friendly Code Review server
Browse files

ASoC: msm: set pinctrl if available on auto machine



Set pinctrl only if available for respective TDM
or MI2S interface on auto machine driver.

Change-Id: I2b9a43f4958a6ad9ed086a77a65cb6dc67cc36a3
Signed-off-by: default avatarDerek Chen <chenche@codeaurora.org>
parent 2949887c
Loading
Loading
Loading
Loading
+28 −20
Original line number Diff line number Diff line
@@ -4801,6 +4801,7 @@ static int sa6155_tdm_snd_startup(struct snd_pcm_substream *substream)
		if (index == TDM_TERT || index == TDM_QUAT ||
			index == TDM_QUIN) {
			pinctrl_info = &pdata->pinctrl_info[index];
			if (pinctrl_info->pinctrl) {
				ret_pinctrl = msm_set_pinctrl(pinctrl_info,
							      STATE_ACTIVE);
				if (ret_pinctrl)
@@ -4808,6 +4809,7 @@ static int sa6155_tdm_snd_startup(struct snd_pcm_substream *substream)
						__func__, ret_pinctrl);
			}
		}
	}
	mutex_unlock(&intf_conf->lock);

err:
@@ -4841,6 +4843,7 @@ static void sa6155_tdm_snd_shutdown(struct snd_pcm_substream *substream)
		if (index == TDM_TERT || index == TDM_QUAT ||
			index == TDM_QUIN) {
			pinctrl_info = &pdata->pinctrl_info[index];
			if (pinctrl_info->pinctrl) {
				ret_pinctrl = msm_set_pinctrl(pinctrl_info,
							      STATE_SLEEP);
				if (ret_pinctrl)
@@ -4848,6 +4851,7 @@ static void sa6155_tdm_snd_shutdown(struct snd_pcm_substream *substream)
						__func__, ret_pinctrl);
			}
		}
	}
	mutex_unlock(&intf_conf->lock);
}

@@ -4935,12 +4939,14 @@ static int msm_mi2s_snd_startup(struct snd_pcm_substream *substream)
		}

		pinctrl_info = &pdata->pinctrl_info[index];
		if (pinctrl_info->pinctrl) {
			ret_pinctrl = msm_set_pinctrl(pinctrl_info,
						      STATE_ACTIVE);
			if (ret_pinctrl)
				pr_err("%s: MI2S TLMM pinctrl set failed with %d\n",
					__func__, ret_pinctrl);
		}
	}
clk_off:
	if (ret < 0)
		msm_mi2s_set_sclk(substream, false);
@@ -4979,12 +4985,14 @@ static void msm_mi2s_snd_shutdown(struct snd_pcm_substream *substream)
				__func__, index, ret);

		pinctrl_info = &pdata->pinctrl_info[index];
		if (pinctrl_info->pinctrl) {
			ret_pinctrl = msm_set_pinctrl(pinctrl_info,
						      STATE_SLEEP);
			if (ret_pinctrl)
				pr_err("%s: MI2S TLMM pinctrl set failed with %d\n",
					__func__, ret_pinctrl);
		}
	}
	mutex_unlock(&intf_conf->lock);
}

+28 −20
Original line number Diff line number Diff line
@@ -4791,12 +4791,14 @@ static int sa8155_tdm_snd_startup(struct snd_pcm_substream *substream)
	mutex_lock(&intf_conf->lock);
	if (++intf_conf->ref_cnt == 1) {
		pinctrl_info = &pdata->pinctrl_info[index];
		if (pinctrl_info->pinctrl) {
			ret_pinctrl = msm_set_pinctrl(pinctrl_info,
						      STATE_ACTIVE);
			if (ret_pinctrl)
				pr_err("%s: TDM TLMM pinctrl set failed with %d\n",
					__func__, ret_pinctrl);
		}
	}
	mutex_unlock(&intf_conf->lock);

err:
@@ -4828,12 +4830,14 @@ static void sa8155_tdm_snd_shutdown(struct snd_pcm_substream *substream)
	mutex_lock(&intf_conf->lock);
	if (--intf_conf->ref_cnt == 0) {
		pinctrl_info = &pdata->pinctrl_info[index];
		if (pinctrl_info->pinctrl) {
			ret_pinctrl = msm_set_pinctrl(pinctrl_info,
						      STATE_SLEEP);
			if (ret_pinctrl)
				pr_err("%s: TDM TLMM pinctrl set failed with %d\n",
					__func__, ret_pinctrl);
		}
	}
	mutex_unlock(&intf_conf->lock);
}

@@ -4921,12 +4925,14 @@ static int msm_mi2s_snd_startup(struct snd_pcm_substream *substream)
		}

		pinctrl_info = &pdata->pinctrl_info[index];
		if (pinctrl_info->pinctrl) {
			ret_pinctrl = msm_set_pinctrl(pinctrl_info,
						      STATE_ACTIVE);
			if (ret_pinctrl)
				pr_err("%s: MI2S TLMM pinctrl set failed with %d\n",
					__func__, ret_pinctrl);
		}
	}
clk_off:
	if (ret < 0)
		msm_mi2s_set_sclk(substream, false);
@@ -4965,12 +4971,14 @@ static void msm_mi2s_snd_shutdown(struct snd_pcm_substream *substream)
				__func__, index, ret);

		pinctrl_info = &pdata->pinctrl_info[index];
		if (pinctrl_info->pinctrl) {
			ret_pinctrl = msm_set_pinctrl(pinctrl_info,
						      STATE_SLEEP);
			if (ret_pinctrl)
				pr_err("%s: MI2S TLMM pinctrl set failed with %d\n",
					__func__, ret_pinctrl);
		}
	}
	mutex_unlock(&intf_conf->lock);
}