The driver forgets to call regulator_bulk_disable() Add the missed call to fix it. Fixes: d59fb2856223 ("ASoC: rt5668: add rt5668B codec driver") Signed-off-by: Zhang Shurong <zhang_shurong@xxxxxxxxxxx> --- sound/soc/codecs/rt5668.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sound/soc/codecs/rt5668.c b/sound/soc/codecs/rt5668.c index f04c810fd710..d66c9e9b9185 100644 --- a/sound/soc/codecs/rt5668.c +++ b/sound/soc/codecs/rt5668.c @@ -2452,6 +2452,13 @@ static void rt5668_calibrate(struct rt5668_priv *rt5668) } +static void rt5668_i2c_disable_regulators(void *data) +{ + struct rt5668_priv *rt5668 = data; + + regulator_bulk_disable(ARRAY_SIZE(rt5668->supplies), rt5668->supplies); +} + static int rt5668_i2c_probe(struct i2c_client *i2c) { struct rt5668_platform_data *pdata = dev_get_platdata(&i2c->dev); @@ -2490,6 +2497,11 @@ static int rt5668_i2c_probe(struct i2c_client *i2c) return ret; } + ret = devm_add_action_or_reset(&i2c->dev, rt5668_i2c_disable_regulators, + rt5668); + if (ret) + return ret; + ret = regulator_bulk_enable(ARRAY_SIZE(rt5668->supplies), rt5668->supplies); if (ret != 0) { -- 2.41.0