diff options
author | Mark Brown <broonie@linaro.org> | 2013-08-07 22:05:47 +0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-08-12 14:22:39 +0400 |
commit | a5db4d50fa578936275c1e26d5d2fda25c0d2bf6 (patch) | |
tree | 680ec710e856fbc3848c8f508633757569d21b18 /sound/soc/codecs/ak4104.c | |
parent | 2e61926cb4a42d79a406aa64f04869d1227ca42c (diff) | |
download | linux-a5db4d50fa578936275c1e26d5d2fda25c0d2bf6.tar.xz |
ASoC: ak4104: Manage TXE using DAPM
Saves some code. We should also be able to manage the power up and reset
registers using DAPM but it's probably more trouble than it's worth in
mains powered systems.
Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'sound/soc/codecs/ak4104.c')
-rw-r--r-- | sound/soc/codecs/ak4104.c | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/sound/soc/codecs/ak4104.c b/sound/soc/codecs/ak4104.c index 9a7c89b9cb35..71059c07ae7b 100644 --- a/sound/soc/codecs/ak4104.c +++ b/sound/soc/codecs/ak4104.c @@ -52,11 +52,14 @@ struct ak4104_private { }; static const struct snd_soc_dapm_widget ak4104_dapm_widgets[] = { +SND_SOC_DAPM_PGA("TXE", AK4104_REG_TX, AK4104_TX_TXE, 0, NULL, 0), + SND_SOC_DAPM_OUTPUT("TX"), }; static const struct snd_soc_dapm_route ak4104_dapm_routes[] = { - { "TX", NULL, "Playback" }, + { "TXE", NULL, "Playback" }, + { "TX", NULL, "TXE" }, }; static int ak4104_set_dai_fmt(struct snd_soc_dai *codec_dai, @@ -146,29 +149,11 @@ static int ak4104_hw_params(struct snd_pcm_substream *substream, if (ret < 0) return ret; - /* enable transmitter */ - ret = regmap_update_bits(ak4104->regmap, AK4104_REG_TX, - AK4104_TX_TXE, AK4104_TX_TXE); - if (ret < 0) - return ret; - return 0; } -static int ak4104_hw_free(struct snd_pcm_substream *substream, - struct snd_soc_dai *dai) -{ - struct snd_soc_codec *codec = dai->codec; - struct ak4104_private *ak4104 = snd_soc_codec_get_drvdata(codec); - - /* disable transmitter */ - return regmap_update_bits(ak4104->regmap, AK4104_REG_TX, - AK4104_TX_TXE, 0); -} - static const struct snd_soc_dai_ops ak4101_dai_ops = { .hw_params = ak4104_hw_params, - .hw_free = ak4104_hw_free, .set_fmt = ak4104_set_dai_fmt, }; |