From: Mark Brown Date: Mon, 6 Feb 2012 18:42:14 +0000 (+0000) Subject: ASoC: wm8994: Unsuspend the device while reading GPIO statuses X-Git-Tag: firefly_0821_release~3680^2~2691^2~52^2~25^2~140 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=27060b3c64a1b9bc0b60c27da6153cf78919fa72;p=firefly-linux-kernel-4.4.55.git ASoC: wm8994: Unsuspend the device while reading GPIO statuses Otherwise we might get an error if the GPIO is configured as an input since that makes the register volatile and a suspended device can't be read from. Signed-off-by: Mark Brown --- diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c index 6b12f5da6b7f..6a47c75119bd 100644 --- a/sound/soc/codecs/wm8994.c +++ b/sound/soc/codecs/wm8994.c @@ -3539,6 +3539,9 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec) wm8994->fll_locked_irq = false; } + /* Make sure we can read from the GPIOs if they're inputs */ + pm_runtime_get_sync(codec->dev); + /* Remember if AIFnLRCLK is configured as a GPIO. This should be * configured on init - if a system wants to do this dynamically * at runtime we can deal with that then. @@ -3567,6 +3570,8 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec) wm8994->lrclk_shared[1] = 0; } + pm_runtime_put(codec->dev); + /* Latch volume updates (right only; we always do left then right). */ snd_soc_update_bits(codec, WM8994_AIF1_DAC1_LEFT_VOLUME, WM8994_AIF1DAC1_VU, WM8994_AIF1DAC1_VU);