ASoC: cs35l56: Disable low-power hibernation mode
authorRichard Fitzgerald <rf@opensource.cirrus.com>
Tue, 12 Sep 2023 13:38:41 +0000 (14:38 +0100)
committerMark Brown <broonie@kernel.org>
Tue, 12 Sep 2023 17:53:44 +0000 (18:53 +0100)
Do not allow the CS35L56 to be put into its lowest power
"hibernation" mode. This only affects I2C because "hibernation"
is already disabled on SPI and SoundWire.

Recent firmwares need a different wake-up sequence. Until
that sequence has been specified, the chip "hibernation" mode
must be disabled otherwise it can intermittently fail to wake.

THIS WILL NOT APPLY CLEANLY TO 6.5 AND EARLIER:
We will send a separate backport patch to stable.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20230912133841.3480466-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/cs35l56-i2c.c

index 9f4f2f4f23f5668c846f2a051eee64c533deb38f..d10e0e2380e852a5ba3b59f749fa685d923634c0 100644 (file)
@@ -27,7 +27,6 @@ static int cs35l56_i2c_probe(struct i2c_client *client)
                return -ENOMEM;
 
        cs35l56->base.dev = dev;
-       cs35l56->base.can_hibernate = true;
 
        i2c_set_clientdata(client, cs35l56);
        cs35l56->base.regmap = devm_regmap_init_i2c(client, regmap_config);