ASoC: mediatek: mt8183: fix tdm out data align issue
authorJiaxin Yu <jiaxin.yu@mediatek.com>
Sat, 24 Aug 2019 04:58:46 +0000 (12:58 +0800)
committerMark Brown <broonie@kernel.org>
Tue, 27 Aug 2019 19:38:59 +0000 (20:38 +0100)
Mt8183 tdm out support S16_LE/S24_LE/S32_LE formats. When output S32_LE,
we need set hd_align so that memif can output MSB 24bits. When output
S24_LE, we need reset hd_align so that memif can output LSB 24bits.

Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>
Link: https://lore.kernel.org/r/1566622726-27113-1-git-send-email-jiaxin.yu@mediatek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/mediatek/common/mtk-afe-fe-dai.c

index d165634..10ea4fd 100644 (file)
@@ -241,7 +241,7 @@ int mtk_afe_fe_prepare(struct snd_pcm_substream *substream,
        struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
        struct mtk_base_afe_memif *memif = &afe->memif[rtd->cpu_dai->id];
        int hd_audio = 0;
-       int hd_align = 1;
+       int hd_align = 0;
 
        /* set hd mode */
        switch (substream->runtime->format) {
@@ -254,7 +254,6 @@ int mtk_afe_fe_prepare(struct snd_pcm_substream *substream,
                break;
        case SNDRV_PCM_FORMAT_S24_LE:
                hd_audio = 1;
-               hd_align = 0;
                break;
        default:
                dev_err(afe->dev, "%s() error: unsupported format %d\n",