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

Commit 37c2494f authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ASoC: wsa881x-analog: fix shutdown of wsa during playback"

parents a4f8e6f1 25163df1
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ struct wsa881x_pdata {
	struct wsa881x_tz_priv tz_pdata;
	int bg_cnt;
	int clk_cnt;
	int enable_cnt;
	int version;
	struct mutex bg_lock;
	struct mutex res_lock;
@@ -119,7 +120,7 @@ static int wsa881x_spk_pa_gain_get(struct snd_kcontrol *kcontrol,

	ucontrol->value.integer.value[0] = wsa881x->spk_pa_gain;

	dev_err(codec->dev, "%s: spk_pa_gain = %ld\n", __func__,
	dev_dbg(codec->dev, "%s: spk_pa_gain = %ld\n", __func__,
				ucontrol->value.integer.value[0]);

	return 0;
@@ -138,7 +139,7 @@ static int wsa881x_spk_pa_gain_put(struct snd_kcontrol *kcontrol,
		return -EINVAL;
	}
	wsa881x->spk_pa_gain = ucontrol->value.integer.value[0];
	dev_err(codec->dev, "%s: ucontrol->value.integer.value[0] = %ld\n",
	dev_dbg(codec->dev, "%s: ucontrol->value.integer.value[0] = %ld\n",
			 __func__, ucontrol->value.integer.value[0]);

	return 0;
@@ -884,8 +885,11 @@ static int wsa881x_startup(struct wsa881x_pdata *pdata)
	struct snd_soc_codec *codec = pdata->codec;
	struct snd_soc_card *card = codec->component.card;

	pr_debug("%s(): wsa startup\n", __func__);
	pr_debug("%s(): wsa startup, enable_cnt:%d\n", __func__,
					pdata->enable_cnt);

	if (pdata->enable_cnt++ > 0)
		return 0;
	ret = msm_gpioset_activate(CLIENT_WSA_BONGO_1, "wsa_clk");
	if (ret) {
		pr_err("%s: gpio set cannot be activated %s\n",
@@ -910,7 +914,10 @@ static int wsa881x_shutdown(struct wsa881x_pdata *pdata)
	struct snd_soc_codec *codec = pdata->codec;
	struct snd_soc_card *card = codec->component.card;

	pr_debug("%s(): wsa shutdown\n", __func__);
	pr_debug("%s(): wsa shutdown, enable_cnt:%d\n", __func__,
					pdata->enable_cnt);
	if (--pdata->enable_cnt > 0)
		return 0;
	ret = wsa881x_reset(pdata, false);
	if (ret) {
		pr_err("%s: wsa reset failed suspend %d\n",