aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/tegra/tegra_wm8903.c
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2011-04-19 17:25:09 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-04-20 08:49:55 -0400
commit075413966a6ea389f78f4cc2e957708c1d6db8c5 (patch)
tree7f67ad032800ff3469d772c214885778bf9e41d5 /sound/soc/tegra/tegra_wm8903.c
parentacb8303f15768c72796f3f95bb32a955333e0fbc (diff)
ASoC: Tegra: Don't return mclk_changed from utils_set_rate
Only the clock programming code needs to know whether the clocks changed, and that is encapsulated within tegra_asoc_utils_set_rate(). The machine driver's call to snd_soc_dai_set_sysclk(codec_dai, ...) is safe irrespective of whether the clocks changed. (Applying Mark's TrimSlice review comments to the existing driver) Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/tegra/tegra_wm8903.c')
-rw-r--r--sound/soc/tegra/tegra_wm8903.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/sound/soc/tegra/tegra_wm8903.c b/sound/soc/tegra/tegra_wm8903.c
index b12b1fd1cb6e..988ff504dd59 100644
--- a/sound/soc/tegra/tegra_wm8903.c
+++ b/sound/soc/tegra/tegra_wm8903.c
@@ -72,7 +72,7 @@ static int tegra_wm8903_hw_params(struct snd_pcm_substream *substream,
72 struct snd_soc_codec *codec = rtd->codec; 72 struct snd_soc_codec *codec = rtd->codec;
73 struct snd_soc_card *card = codec->card; 73 struct snd_soc_card *card = codec->card;
74 struct tegra_wm8903 *machine = snd_soc_card_get_drvdata(card); 74 struct tegra_wm8903 *machine = snd_soc_card_get_drvdata(card);
75 int srate, mclk, mclk_change; 75 int srate, mclk;
76 int err; 76 int err;
77 77
78 srate = params_rate(params); 78 srate = params_rate(params);
@@ -90,8 +90,7 @@ static int tegra_wm8903_hw_params(struct snd_pcm_substream *substream,
90 while (mclk < 6000000) 90 while (mclk < 6000000)
91 mclk *= 2; 91 mclk *= 2;
92 92
93 err = tegra_asoc_utils_set_rate(&machine->util_data, srate, mclk, 93 err = tegra_asoc_utils_set_rate(&machine->util_data, srate, mclk);
94 &mclk_change);
95 if (err < 0) { 94 if (err < 0) {
96 dev_err(card->dev, "Can't configure clocks\n"); 95 dev_err(card->dev, "Can't configure clocks\n");
97 return err; 96 return err;
@@ -115,13 +114,11 @@ static int tegra_wm8903_hw_params(struct snd_pcm_substream *substream,
115 return err; 114 return err;
116 } 115 }
117 116
118 if (mclk_change) { 117 err = snd_soc_dai_set_sysclk(codec_dai, 0, mclk,
119 err = snd_soc_dai_set_sysclk(codec_dai, 0, mclk, 118 SND_SOC_CLOCK_IN);
120 SND_SOC_CLOCK_IN); 119 if (err < 0) {
121 if (err < 0) { 120 dev_err(card->dev, "codec_dai clock not set\n");
122 dev_err(card->dev, "codec_dai clock not set\n"); 121 return err;
123 return err;
124 }
125 } 122 }
126 123
127 return 0; 124 return 0;