diff options
Diffstat (limited to 'sound/soc/ux500/ux500_ab8500.c')
-rw-r--r-- | sound/soc/ux500/ux500_ab8500.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sound/soc/ux500/ux500_ab8500.c b/sound/soc/ux500/ux500_ab8500.c index 2eef499d22e..5860e05a1dd 100644 --- a/sound/soc/ux500/ux500_ab8500.c +++ b/sound/soc/ux500/ux500_ab8500.c @@ -525,17 +525,18 @@ int ux500_ab8500_hw_params(struct snd_pcm_substream *substream, pr_debug("%s: Driver-mode: %s.\n", __func__, (driver_mode == DRIVERMODE_NORMAL) ? "NORMAL" : "CODEC_ONLY"); + + ab8500_audio_set_bit_delay(codec_dai, 1); + if (driver_mode == DRIVERMODE_NORMAL) { - ab8500_audio_set_bit_delay(codec_dai, 0); ab8500_audio_set_word_length(codec_dai, 16); - fmt = SND_SOC_DAIFMT_DSP_B | + fmt = SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CONT; } else { - ab8500_audio_set_bit_delay(codec_dai, 1); ab8500_audio_set_word_length(codec_dai, 20); - fmt = SND_SOC_DAIFMT_DSP_B | + fmt = SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_GATED; @@ -557,6 +558,8 @@ int ux500_ab8500_hw_params(struct snd_pcm_substream *substream, return ret; } + ux500_msp_dai_set_data_delay(cpu_dai, MSP_DELAY_1); + /* Setup TDM-slots */ streamIsPlayback = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK); |