[PATCH v4 13/18] ASoC: mediatek: mt8186: Unify mt8186-mt6366 machine drivers
Alexandre Mergnat
amergnat at baylibre.com
Wed Apr 10 08:38:48 PDT 2024
On 09/04/2024 13:33, AngeloGioacchino Del Regno wrote:
> @@ -318,16 +409,24 @@ static int mt8186_it6505_i2s_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
> static int mt8186_sof_dai_link_fixup(struct snd_soc_pcm_runtime *rtd,
> struct snd_pcm_hw_params *params)
> {
> + struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(rtd->card);
> int ret;
>
> ret = mtk_sof_dai_link_fixup(rtd, params);
>
> if (!strcmp(rtd->dai_link->name, "I2S0") ||
> !strcmp(rtd->dai_link->name, "I2S1") ||
> - !strcmp(rtd->dai_link->name, "I2S2"))
> - mt8186_i2s_hw_params_fixup(rtd, params);
> - else if (!strcmp(rtd->dai_link->name, "I2S3"))
> - mt8186_it6505_i2s_hw_params_fixup(rtd, params);
> + !strcmp(rtd->dai_link->name, "I2S2")) {
> + if (soc_card_data->card_data->flags & DA7219_CODEC_PRESENT)
Is the flag missing like you did for mt8195-mt6359.c ?
if (!(codec_init & MT6359_CODEC_INIT)) {
dai_link->init = mt8195_mt6359_init;
codec_init |= MT6359_CODEC_INIT;
> + mt8186_i2s_hw_params_32le_fixup(rtd, params);
> + else
> + mt8186_i2s_hw_params_24le_fixup(rtd, params);
> + } else if (!strcmp(rtd->dai_link->name, "I2S3")) {
> + if (soc_card_data->card_data->flags & DA7219_CODEC_PRESENT)
> + mt8186_i2s_hw_params_24le_fixup(rtd, params);
> + else
> + mt8186_i2s_hw_params_32le_fixup(rtd, params);
> + }
>
> return ret;
> }
--
Regards,
Alexandre
More information about the Linux-mediatek
mailing list