Skip to content

Commit

Permalink
ASoC: SOF: ipc3: update dai_link_fixup for SOF_DAI_MEDIATEK_AFE
Browse files Browse the repository at this point in the history
For MediaTek AFE, DAI DMA can support different bitwidths compared to
the BE DAI. Therefore, it is preferable to obtain the BE frame format
from the DAI_CONFIG.

Signed-off-by: Trevor Wu <[email protected]>
  • Loading branch information
wenliangwu authored and dbaluta committed Jul 19, 2023
1 parent fc8fbab commit 70d2c68
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions sound/soc/sof/ipc3-pcm.c
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,23 @@ static int sof_ipc3_pcm_dai_link_fixup(struct snd_soc_pcm_runtime *rtd,
channels->min = private->dai_config->afe.channels;
channels->max = private->dai_config->afe.channels;

snd_mask_none(fmt);

switch (private->dai_config->afe.format) {
case SOF_IPC_FRAME_S16_LE:
snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S16_LE);
break;
case SOF_IPC_FRAME_S24_4LE:
snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S24_LE);
break;
case SOF_IPC_FRAME_S32_LE:
snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S32_LE);
break;
default:
dev_err(component->dev, "Not available format!\n");
return -EINVAL;
}

dev_dbg(component->dev, "rate_min: %d rate_max: %d\n", rate->min, rate->max);
dev_dbg(component->dev, "channels_min: %d channels_max: %d\n",
channels->min, channels->max);
Expand Down

0 comments on commit 70d2c68

Please sign in to comment.