Commit 0154724d authored by Mark Brown's avatar Mark Brown

ASoC: Fix WM9081 PowerPC compiler issues

Ensure that we always set a new sysclk when using the FLL in master mode
and pick out the correct value for the sample rate in hw_params().
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 86ed3669
...@@ -702,9 +702,10 @@ static int configure_clock(struct snd_soc_codec *codec) ...@@ -702,9 +702,10 @@ static int configure_clock(struct snd_soc_codec *codec)
* performance. */ * performance. */
for (i = 0; i < ARRAY_SIZE(clk_sys_rates); i++) { for (i = 0; i < ARRAY_SIZE(clk_sys_rates); i++) {
target = wm9081->fs * clk_sys_rates[i].ratio; target = wm9081->fs * clk_sys_rates[i].ratio;
new_sysclk = target;
if (target >= wm9081->bclk && if (target >= wm9081->bclk &&
target > 3000000) target > 3000000)
new_sysclk = target; break;
} }
} else if (wm9081->fs) { } else if (wm9081->fs) {
for (i = 0; i < ARRAY_SIZE(clk_sys_rates); i++) { for (i = 0; i < ARRAY_SIZE(clk_sys_rates); i++) {
...@@ -1102,7 +1103,8 @@ static int wm9081_hw_params(struct snd_pcm_substream *substream, ...@@ -1102,7 +1103,8 @@ static int wm9081_hw_params(struct snd_pcm_substream *substream,
} }
dev_dbg(codec->dev, "Selected SAMPLE_RATE of %dHz\n", dev_dbg(codec->dev, "Selected SAMPLE_RATE of %dHz\n",
sample_rates[best].rate); sample_rates[best].rate);
clk_ctrl2 |= (sample_rates[i].sample_rate << WM9081_SAMPLE_RATE_SHIFT); clk_ctrl2 |= (sample_rates[best].sample_rate
<< WM9081_SAMPLE_RATE_SHIFT);
/* BCLK_DIV */ /* BCLK_DIV */
best = 0; best = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment