ASoC: wm8962: Replace direct snd_soc_codec dapm field access
authorLars-Peter Clausen <lars@metafoo.de>
Mon, 1 Jun 2015 08:10:50 +0000 (10:10 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 1 Jun 2015 15:44:54 +0000 (16:44 +0100)
The dapm field of the snd_soc_codec struct is eventually going to be
removed, in preparation for this replace all manual access to
codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all
other manual access to codec->dapm with snd_soc_codec_get_dapm().

Also drop the unnecessary comparison in the set_bias_level() callback that
checks if the device is already at the target level. The core already takes
care of this and will not call the callback if the device is already at the
target level.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wm8962.c

index 00793b7b0a835ba4150445ef413c1384a1afd1a3..c5748fd4f2962a816308faf605f7aee7116b970a 100644 (file)
@@ -2361,7 +2361,7 @@ static int wm8962_add_widgets(struct snd_soc_codec *codec)
 {
        struct wm8962_priv *wm8962 = snd_soc_codec_get_drvdata(codec);
        struct wm8962_pdata *pdata = &wm8962->pdata;
-       struct snd_soc_dapm_context *dapm = &codec->dapm;
+       struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
 
        snd_soc_add_codec_controls(codec, wm8962_snd_controls,
                             ARRAY_SIZE(wm8962_snd_controls));
@@ -2446,13 +2446,13 @@ static void wm8962_configure_bclk(struct snd_soc_codec *codec)
         * So we here provisionally enable it and then disable it afterward
         * if current bias_level hasn't reached SND_SOC_BIAS_ON.
         */
-       if (codec->dapm.bias_level != SND_SOC_BIAS_ON)
+       if (snd_soc_codec_get_bias_level(codec) != SND_SOC_BIAS_ON)
                snd_soc_update_bits(codec, WM8962_CLOCKING2,
                                WM8962_SYSCLK_ENA_MASK, WM8962_SYSCLK_ENA);
 
        dspclk = snd_soc_read(codec, WM8962_CLOCKING1);
 
-       if (codec->dapm.bias_level != SND_SOC_BIAS_ON)
+       if (snd_soc_codec_get_bias_level(codec) != SND_SOC_BIAS_ON)
                snd_soc_update_bits(codec, WM8962_CLOCKING2,
                                WM8962_SYSCLK_ENA_MASK, 0);
 
@@ -2510,9 +2510,6 @@ static void wm8962_configure_bclk(struct snd_soc_codec *codec)
 static int wm8962_set_bias_level(struct snd_soc_codec *codec,
                                 enum snd_soc_bias_level level)
 {
-       if (level == codec->dapm.bias_level)
-               return 0;
-
        switch (level) {
        case SND_SOC_BIAS_ON:
                break;
@@ -2530,7 +2527,7 @@ static int wm8962_set_bias_level(struct snd_soc_codec *codec,
                snd_soc_update_bits(codec, WM8962_PWR_MGMT_1,
                                    WM8962_VMID_SEL_MASK, 0x100);
 
-               if (codec->dapm.bias_level == SND_SOC_BIAS_OFF)
+               if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF)
                        msleep(100);
                break;
 
@@ -2613,7 +2610,7 @@ static int wm8962_hw_params(struct snd_pcm_substream *substream,
        dev_dbg(codec->dev, "hw_params set BCLK %dHz LRCLK %dHz\n",
                wm8962->bclk, wm8962->lrclk);
 
-       if (codec->dapm.bias_level == SND_SOC_BIAS_ON)
+       if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_ON)
                wm8962_configure_bclk(codec);
 
        return 0;
@@ -3117,7 +3114,7 @@ static irqreturn_t wm8962_irq(int irq, void *data)
 int wm8962_mic_detect(struct snd_soc_codec *codec, struct snd_soc_jack *jack)
 {
        struct wm8962_priv *wm8962 = snd_soc_codec_get_drvdata(codec);
-       struct snd_soc_dapm_context *dapm = &codec->dapm;
+       struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
        int irq_mask, enable;
 
        wm8962->jack = jack;
@@ -3163,7 +3160,7 @@ static void wm8962_beep_work(struct work_struct *work)
        struct wm8962_priv *wm8962 =
                container_of(work, struct wm8962_priv, beep_work);
        struct snd_soc_codec *codec = wm8962->codec;
-       struct snd_soc_dapm_context *dapm = &codec->dapm;
+       struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
        int i;
        int reg = 0;
        int best = 0;
@@ -3414,6 +3411,7 @@ static void wm8962_free_gpio(struct snd_soc_codec *codec)
 
 static int wm8962_probe(struct snd_soc_codec *codec)
 {
+       struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
        int ret;
        struct wm8962_priv *wm8962 = snd_soc_codec_get_drvdata(codec);
        int i;
@@ -3461,7 +3459,7 @@ static int wm8962_probe(struct snd_soc_codec *codec)
        }
        if (!dmicclk || !dmicdat) {
                dev_dbg(codec->dev, "DMIC not in use, disabling\n");
-               snd_soc_dapm_nc_pin(&codec->dapm, "DMICDAT");
+               snd_soc_dapm_nc_pin(dapm, "DMICDAT");
        }
        if (dmicclk != dmicdat)
                dev_warn(codec->dev, "DMIC GPIOs partially configured\n");