summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/cs35l35.c
diff options
context:
space:
mode:
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>2017-03-27 17:54:27 +0200
committerMark Brown <broonie@kernel.org>2017-03-27 18:26:53 +0200
commit8e71321d19c4ed02d9eed15955b8d485bab016fc (patch)
tree9753c48a77b62e3a7698b401d29120c635ad39a9 /sound/soc/codecs/cs35l35.c
parentASoC: cs35l35: Stash dev pointer directly rather than CODEC pointer (diff)
downloadlinux-8e71321d19c4ed02d9eed15955b8d485bab016fc.tar.xz
linux-8e71321d19c4ed02d9eed15955b8d485bab016fc.zip
ASoC: cs35l35: Clear reset_gpio on the error path in probe
The error path in probe attempts to put the device back into reset. Should we fail to get the reset_gpio (such as a probe defer) we will leave the error value in there, which the gpiod_set_value_cansleep on the error path will attempt to deference. Fix this issue by clearing reset_gpio before we head into the error path. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Acked-by: Brian Austin <brian.austin@cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/cs35l35.c')
-rw-r--r--sound/soc/codecs/cs35l35.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/soc/codecs/cs35l35.c b/sound/soc/codecs/cs35l35.c
index 1d9f332b2eec..9688274f7c90 100644
--- a/sound/soc/codecs/cs35l35.c
+++ b/sound/soc/codecs/cs35l35.c
@@ -1412,10 +1412,10 @@ static int cs35l35_i2c_probe(struct i2c_client *i2c_client,
GPIOD_OUT_LOW);
if (IS_ERR(cs35l35->reset_gpio)) {
ret = PTR_ERR(cs35l35->reset_gpio);
+ cs35l35->reset_gpio = NULL;
if (ret == -EBUSY) {
dev_info(dev,
"Reset line busy, assuming shared reset\n");
- cs35l35->reset_gpio = NULL;
} else {
dev_err(dev, "Failed to get reset GPIO: %d\n", ret);
goto err;