From: Shengjiu Wang Date: Fri, 23 Apr 2021 08:38:04 +0000 (+0800) Subject: LF-3747-7: ak4458: Fix issue with reset-gpios X-Git-Tag: rel_imx_5.10.35_2.0.0-somdevices.0~216 X-Git-Url: https://git.somdevices.com/?a=commitdiff_plain;h=c435ce2a4ced2b02079e370b85cb155645e383db;p=linux.git LF-3747-7: ak4458: Fix issue with reset-gpios reset_control_deassert() need to be called before reset_control_assert() Signed-off-by: Shengjiu Wang Reviewed-by: Viorel Suman --- diff --git a/sound/soc/codecs/ak4458.c b/sound/soc/codecs/ak4458.c index 4733f071fb63..de1accfda56a 100644 --- a/sound/soc/codecs/ak4458.c +++ b/sound/soc/codecs/ak4458.c @@ -622,7 +622,10 @@ static void ak4458_reset(struct ak4458_priv *ak4458, bool active) gpiod_set_value_cansleep(ak4458->reset_gpiod, active); usleep_range(1000, 2000); } else if (!IS_ERR_OR_NULL(ak4458->reset)) { - reset_control_assert(ak4458->reset); + if (active) + reset_control_assert(ak4458->reset); + else + reset_control_deassert(ak4458->reset); msleep(5); } } @@ -659,7 +662,6 @@ static int __maybe_unused ak4458_runtime_resume(struct device *dev) if (ak4458->mute_gpiod) gpiod_set_value_cansleep(ak4458->mute_gpiod, 1); - ak4458_reset(ak4458, true); ak4458_reset(ak4458, false); regcache_cache_only(ak4458->regmap, false);