diff options
-rw-r--r-- | sound/soc/codecs/wm8580.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sound/soc/codecs/wm8580.c b/sound/soc/codecs/wm8580.c index 7942f917d31e..b6b2d6f8cba9 100644 --- a/sound/soc/codecs/wm8580.c +++ b/sound/soc/codecs/wm8580.c | |||
@@ -486,14 +486,18 @@ static int wm8580_paif_hw_params(struct snd_pcm_substream *substream, | |||
486 | /* bit size */ | 486 | /* bit size */ |
487 | switch (params_format(params)) { | 487 | switch (params_format(params)) { |
488 | case SNDRV_PCM_FORMAT_S16_LE: | 488 | case SNDRV_PCM_FORMAT_S16_LE: |
489 | paifa |= 0x8; | ||
489 | break; | 490 | break; |
490 | case SNDRV_PCM_FORMAT_S20_3LE: | 491 | case SNDRV_PCM_FORMAT_S20_3LE: |
492 | paifa |= 0x10; | ||
491 | paifb |= WM8580_AIF_LENGTH_20; | 493 | paifb |= WM8580_AIF_LENGTH_20; |
492 | break; | 494 | break; |
493 | case SNDRV_PCM_FORMAT_S24_LE: | 495 | case SNDRV_PCM_FORMAT_S24_LE: |
496 | paifa |= 0x10; | ||
494 | paifb |= WM8580_AIF_LENGTH_24; | 497 | paifb |= WM8580_AIF_LENGTH_24; |
495 | break; | 498 | break; |
496 | case SNDRV_PCM_FORMAT_S32_LE: | 499 | case SNDRV_PCM_FORMAT_S32_LE: |
500 | paifa |= 0x10; | ||
497 | paifb |= WM8580_AIF_LENGTH_24; | 501 | paifb |= WM8580_AIF_LENGTH_24; |
498 | break; | 502 | break; |
499 | default: | 503 | default: |
@@ -515,7 +519,8 @@ static int wm8580_paif_hw_params(struct snd_pcm_substream *substream, | |||
515 | wm8580_sysclk_ratios[i], wm8580->sysclk[dai->driver->id]); | 519 | wm8580_sysclk_ratios[i], wm8580->sysclk[dai->driver->id]); |
516 | 520 | ||
517 | snd_soc_update_bits(codec, WM8580_PAIF1 + dai->driver->id, | 521 | snd_soc_update_bits(codec, WM8580_PAIF1 + dai->driver->id, |
518 | WM8580_AIF_RATE_MASK, paifa); | 522 | WM8580_AIF_RATE_MASK | WM8580_AIF_BCLKSEL_MASK, |
523 | paifa); | ||
519 | snd_soc_update_bits(codec, WM8580_PAIF3 + dai->driver->id, | 524 | snd_soc_update_bits(codec, WM8580_PAIF3 + dai->driver->id, |
520 | WM8580_AIF_LENGTH_MASK, paifb); | 525 | WM8580_AIF_LENGTH_MASK, paifb); |
521 | return 0; | 526 | return 0; |