summaryrefslogtreecommitdiff
path: root/sound/soc/ux500/ux500_ab8500.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/ux500/ux500_ab8500.c')
-rw-r--r--sound/soc/ux500/ux500_ab8500.c11
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);