diff options
author | Mark Brown <broonie@kernel.org> | 2018-02-16 18:29:19 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2018-02-16 18:29:19 +0300 |
commit | 27a4b3f98ba25923ce1016f8341a382843e3cd79 (patch) | |
tree | df2097ecd6426ad168c807cb02f32cf65d1b0466 | |
parent | 58fadc19e484a6269521eede6bdb1030d2dc18c0 (diff) | |
parent | a8992973edbb2555e956b90f6fe97c4bc14d761d (diff) | |
download | linux-27a4b3f98ba25923ce1016f8341a382843e3cd79.tar.xz |
Merge branch 'fix/sgtl5000' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-sgtl5000
-rw-r--r-- | MAINTAINERS | 7 | ||||
-rw-r--r-- | sound/soc/codecs/sgtl5000.c | 11 |
2 files changed, 18 insertions, 0 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 3bdc260e36b7..4e283d131def 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -9921,6 +9921,13 @@ F: Documentation/ABI/stable/sysfs-bus-nvmem F: include/linux/nvmem-consumer.h F: include/linux/nvmem-provider.h +NXP SGTL5000 DRIVER +M: Fabio Estevam <fabio.estevam@nxp.com> +L: alsa-devel@alsa-project.org (moderated for non-subscribers) +S: Maintained +F: Documentation/devicetree/bindings/sound/sgtl5000.txt +F: sound/soc/codecs/sgtl5000* + NXP TDA998X DRM DRIVER M: Russell King <linux@armlinux.org.uk> S: Supported diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c index 975a9d76b37f..05592ddcf0e6 100644 --- a/sound/soc/codecs/sgtl5000.c +++ b/sound/soc/codecs/sgtl5000.c @@ -876,15 +876,26 @@ static int sgtl5000_pcm_hw_params(struct snd_pcm_substream *substream, static int sgtl5000_set_bias_level(struct snd_soc_component *component, enum snd_soc_bias_level level) { + struct sgtl5000_priv *sgtl = snd_soc_component_get_drvdata(component); + int ret; + switch (level) { case SND_SOC_BIAS_ON: case SND_SOC_BIAS_PREPARE: case SND_SOC_BIAS_STANDBY: + regcache_cache_only(sgtl->regmap, false); + ret = regcache_sync(sgtl->regmap); + if (ret) { + regcache_cache_only(sgtl->regmap, true); + return ret; + } + snd_soc_component_update_bits(component, SGTL5000_CHIP_ANA_POWER, SGTL5000_REFTOP_POWERUP, SGTL5000_REFTOP_POWERUP); break; case SND_SOC_BIAS_OFF: + regcache_cache_only(sgtl->regmap, true); snd_soc_component_update_bits(component, SGTL5000_CHIP_ANA_POWER, SGTL5000_REFTOP_POWERUP, 0); break; |