OSDN Git Service

ASoC: tlv320aic31xx: Make regmap cache only on probe()
authorMark Brown <broonie@kernel.org>
Wed, 7 Jul 2021 16:02:34 +0000 (17:02 +0100)
committerMark Brown <broonie@kernel.org>
Sun, 11 Jul 2021 22:44:32 +0000 (23:44 +0100)
Currently the tlv320aic31xx driver has regulator support but does not
enable the regulators during probe, deferring this until something causes
ASoC to make the card active. It does put the device into cache only mode
but only when the component level probe is called, however if interrupts
are in use the driver will access the regmap before then which if the
regulators are not powered on would cause I/O problems.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20210707160234.16253-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/tlv320aic31xx.c

index 51870d5..b504d63 100644 (file)
@@ -1604,6 +1604,8 @@ static int aic31xx_i2c_probe(struct i2c_client *i2c,
                        ret);
                return ret;
        }
+       regcache_cache_only(aic31xx->regmap, true);
+
        aic31xx->dev = &i2c->dev;
        aic31xx->irq = i2c->irq;