Skip to content
Snippets Groups Projects
Unverified Commit c0a30e2e authored by Dan Murphy's avatar Dan Murphy Committed by Mark Brown
Browse files

ASoC: tas2770: Set regcache when shutting down and waking device


Set the regcache to cache data and mark cache as dirty when the device
is shutdown when suspend is called. When the device is woken up then
sync the cache and set to not caching the data.

Signed-off-by: default avatarDan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200923132600.10652-3-dmurphy@ti.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 5d0b9dfe
No related branches found
No related tags found
No related merge requests found
......@@ -82,14 +82,20 @@ static int tas2770_codec_suspend(struct snd_soc_component *component)
struct tas2770_priv *tas2770 = snd_soc_component_get_drvdata(component);
int ret = 0;
regcache_cache_only(tas2770->regmap, true);
regcache_mark_dirty(tas2770->regmap);
if (tas2770->sdz_gpio) {
gpiod_set_value_cansleep(tas2770->sdz_gpio, 0);
} else {
ret = snd_soc_component_update_bits(component, TAS2770_PWR_CTRL,
TAS2770_PWR_CTRL_MASK,
TAS2770_PWR_CTRL_SHUTDOWN);
if (ret < 0)
if (ret < 0) {
regcache_cache_only(tas2770->regmap, false);
regcache_sync(tas2770->regmap);
return ret;
}
ret = 0;
}
......@@ -110,11 +116,11 @@ static int tas2770_codec_resume(struct snd_soc_component *component)
TAS2770_PWR_CTRL_ACTIVE);
if (ret < 0)
return ret;
ret = 0;
}
return ret;
regcache_cache_only(tas2770->regmap, false);
return regcache_sync(tas2770->regmap);
}
#else
#define tas2770_codec_suspend NULL
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment