alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Lars-Peter Clausen <lars@metafoo.de>
To: Mark Brown <broonie@kernel.org>, Liam Girdwood <lgirdwood@gmail.com>
Cc: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>,
	patches@opensource.wolfsonmicro.com, alsa-devel@alsa-project.org,
	Lars-Peter Clausen <lars@metafoo.de>
Subject: [PATCH 02/32] ASoC: wm8400: Cleanup manual bias level transitions
Date: Sun, 23 Nov 2014 13:37:18 +0100	[thread overview]
Message-ID: <1416746269-4935-2-git-send-email-lars@metafoo.de> (raw)
In-Reply-To: <1416746269-4935-1-git-send-email-lars@metafoo.de>

Set the CODEC driver's suspend_bias_off flag rather than manually going to
SND_SOC_BIAS_OFF in suspend and SND_SOC_BIAS_STANDBY in resume. This makes
the code a bit shorter and cleaner.

Since the ASoC core now takes care of setting the bias level to
SND_SOC_BIAS_OFF when removing the CODEC there is no need to do it manually
anymore either.

The manual asynchronous transition to SND_SOC_BIAS_STANDBY at the end of
CODEC probe() can also be removed as the core will automatically do this
after the CODEC has been probed. Also running this asynchronously has the
problem of potential race conditions with the core.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 sound/soc/codecs/wm8400.c | 34 +---------------------------------
 1 file changed, 1 insertion(+), 33 deletions(-)

diff --git a/sound/soc/codecs/wm8400.c b/sound/soc/codecs/wm8400.c
index 72471be..385894f 100644
--- a/sound/soc/codecs/wm8400.c
+++ b/sound/soc/codecs/wm8400.c
@@ -58,12 +58,10 @@ static struct regulator_bulk_data power[] = {
 
 /* codec private data */
 struct wm8400_priv {
-	struct snd_soc_codec *codec;
 	struct wm8400 *wm8400;
 	u16 fake_register;
 	unsigned int sysclk;
 	unsigned int pcmclk;
-	struct work_struct work;
 	int fll_in, fll_out;
 };
 
@@ -1278,30 +1276,6 @@ static struct snd_soc_dai_driver wm8400_dai = {
 	.ops = &wm8400_dai_ops,
 };
 
-static int wm8400_suspend(struct snd_soc_codec *codec)
-{
-	wm8400_set_bias_level(codec, SND_SOC_BIAS_OFF);
-
-	return 0;
-}
-
-static int wm8400_resume(struct snd_soc_codec *codec)
-{
-	wm8400_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
-
-	return 0;
-}
-
-static void wm8400_probe_deferred(struct work_struct *work)
-{
-	struct wm8400_priv *priv = container_of(work, struct wm8400_priv,
-						work);
-	struct snd_soc_codec *codec = priv->codec;
-
-	/* charge output caps */
-	wm8400_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
-}
-
 static int wm8400_codec_probe(struct snd_soc_codec *codec)
 {
 	struct wm8400 *wm8400 = dev_get_platdata(codec->dev);
@@ -1316,7 +1290,6 @@ static int wm8400_codec_probe(struct snd_soc_codec *codec)
 
 	snd_soc_codec_set_drvdata(codec, priv);
 	priv->wm8400 = wm8400;
-	priv->codec = codec;
 
 	ret = devm_regulator_bulk_get(wm8400->dev,
 				 ARRAY_SIZE(power), &power[0]);
@@ -1325,8 +1298,6 @@ static int wm8400_codec_probe(struct snd_soc_codec *codec)
 		return ret;
 	}
 
-	INIT_WORK(&priv->work, wm8400_probe_deferred);
-
 	wm8400_codec_reset(codec);
 
 	reg = snd_soc_read(codec, WM8400_POWER_MANAGEMENT_1);
@@ -1343,8 +1314,6 @@ static int wm8400_codec_probe(struct snd_soc_codec *codec)
 	snd_soc_write(codec, WM8400_LEFT_OUTPUT_VOLUME, 0x50 | (1<<8));
 	snd_soc_write(codec, WM8400_RIGHT_OUTPUT_VOLUME, 0x50 | (1<<8));
 
-	if (!schedule_work(&priv->work))
-		return -EINVAL;
 	return 0;
 }
 
@@ -1369,10 +1338,9 @@ static struct regmap *wm8400_get_regmap(struct device *dev)
 static struct snd_soc_codec_driver soc_codec_dev_wm8400 = {
 	.probe =	wm8400_codec_probe,
 	.remove =	wm8400_codec_remove,
-	.suspend =	wm8400_suspend,
-	.resume =	wm8400_resume,
 	.get_regmap =	wm8400_get_regmap,
 	.set_bias_level = wm8400_set_bias_level,
+	.suspend_bias_off = true,
 
 	.controls = wm8400_snd_controls,
 	.num_controls = ARRAY_SIZE(wm8400_snd_controls),
-- 
1.8.0

  reply	other threads:[~2014-11-23 12:37 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-23 12:37 [PATCH 01/32] ASoC: wm8350: Cleanup manual bias level transitions Lars-Peter Clausen
2014-11-23 12:37 ` Lars-Peter Clausen [this message]
2014-11-24 18:17   ` [PATCH 02/32] ASoC: wm8400: " Mark Brown
2014-11-23 12:37 ` [PATCH 03/32] ASoC: wm8510: " Lars-Peter Clausen
2014-11-24 18:18   ` Mark Brown
2014-11-23 12:37 ` [PATCH 04/32] ASoC: wm8523: " Lars-Peter Clausen
2014-11-24 18:18   ` Mark Brown
2014-11-23 12:37 ` [PATCH 05/32] ASoC: wm8580: " Lars-Peter Clausen
2014-11-24 18:19   ` Mark Brown
2014-11-23 12:37 ` [PATCH 06/32] ASoC: wm8711: " Lars-Peter Clausen
2014-11-24 18:20   ` Mark Brown
2014-11-23 12:37 ` [PATCH 07/32] ASoC: wm8728: " Lars-Peter Clausen
2014-11-24 18:21   ` Mark Brown
2014-11-23 12:37 ` [PATCH 08/32] ASoC: wm8731: " Lars-Peter Clausen
2014-11-24 18:21   ` Mark Brown
2014-11-23 12:37 ` [PATCH 09/32] ASoC: wm8737: " Lars-Peter Clausen
2014-11-24 18:22   ` Mark Brown
2014-11-23 12:37 ` [PATCH 10/32] ASoC: wm8750: " Lars-Peter Clausen
2014-11-24 18:24   ` Mark Brown
2014-11-23 12:37 ` [PATCH 11/32] ASoC: wm8776: " Lars-Peter Clausen
2014-11-24 18:25   ` Mark Brown
2014-11-23 12:37 ` [PATCH 12/32] ASoC: wm8804: " Lars-Peter Clausen
2014-11-24 18:25   ` Mark Brown
2014-11-23 12:37 ` [PATCH 13/32] ASoC: wm8900: " Lars-Peter Clausen
2014-11-24 18:26   ` Mark Brown
2014-11-23 12:37 ` [PATCH 14/32] ASoC: wm8903: " Lars-Peter Clausen
2014-11-24 18:27   ` Mark Brown
2014-11-23 12:37 ` [PATCH 15/32] ASoC: wm8940: " Lars-Peter Clausen
2014-11-24 18:27   ` Mark Brown
2014-11-23 12:37 ` [PATCH 16/32] ASoC: wm8955: " Lars-Peter Clausen
2014-11-24 18:28   ` Mark Brown
2014-11-23 12:37 ` [PATCH 17/32] ASoC: wm8960: " Lars-Peter Clausen
2014-11-24 18:29   ` Mark Brown
2014-11-23 12:37 ` [PATCH 18/32] ASoC: wm8961: " Lars-Peter Clausen
2014-11-24 18:30   ` Mark Brown
2014-11-23 12:37 ` [PATCH 19/32] ASoC: wm8974: " Lars-Peter Clausen
2014-11-24 18:34   ` Mark Brown
2014-11-23 12:37 ` [PATCH 20/32] ASoC: wm8978: " Lars-Peter Clausen
2014-11-24 18:34   ` Mark Brown
2014-11-23 12:37 ` [PATCH 21/32] ASoC: wm8983: " Lars-Peter Clausen
2014-11-24 18:36   ` Mark Brown
2014-11-23 12:37 ` [PATCH 22/32] ASoC: wm8985: " Lars-Peter Clausen
2014-11-24 18:37   ` Mark Brown
2014-11-23 12:37 ` [PATCH 23/32] ASoC: wm8988: " Lars-Peter Clausen
2014-11-24 18:38   ` Mark Brown
2014-11-23 12:37 ` [PATCH 24/32] ASoC: wm8990: " Lars-Peter Clausen
2014-11-24 18:38   ` Mark Brown
2014-11-23 12:37 ` [PATCH 25/32] ASoC: wm8991: " Lars-Peter Clausen
2014-11-24 18:39   ` Mark Brown
2014-11-23 12:37 ` [PATCH 26/32] ASoC: wm8993: " Lars-Peter Clausen
2014-11-24 18:40   ` Mark Brown
2014-11-23 12:37 ` [PATCH 27/32] ASoC: wm8994: " Lars-Peter Clausen
2014-11-24 18:40   ` Mark Brown
2014-11-23 12:37 ` [PATCH 28/32] ASoC: wm8995: " Lars-Peter Clausen
2014-11-24 18:41   ` Mark Brown
2014-11-23 12:37 ` [PATCH 29/32] ASoC: wm9081: " Lars-Peter Clausen
2014-11-24 18:41   ` Mark Brown
2014-11-23 12:37 ` [PATCH 30/32] ASoC: wm9090: " Lars-Peter Clausen
2014-11-24 18:43   ` Mark Brown
2014-11-23 12:37 ` [PATCH 31/32] ASoC: wm9712: " Lars-Peter Clausen
2014-11-24 18:43   ` Mark Brown
2014-11-23 12:37 ` [PATCH 32/32] ASoC: wm9713: " Lars-Peter Clausen
2014-11-24 18:44   ` Mark Brown
2014-11-24 10:00 ` [PATCH 01/32] ASoC: wm8350: " Charles Keepax
2014-11-24 18:17 ` Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1416746269-4935-2-git-send-email-lars@metafoo.de \
    --to=lars@metafoo.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=ckeepax@opensource.wolfsonmicro.com \
    --cc=lgirdwood@gmail.com \
    --cc=patches@opensource.wolfsonmicro.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).