On 2018-02-13 16:41, Jyri Sarha wrote: >> static int aic31xx_add_controls(struct snd_soc_codec *codec) >> { >> int ret = 0; >> @@ -916,6 +940,7 @@ static int aic31xx_set_dai_fmt(struct snd_soc_dai *codec_dai, >> unsigned int fmt) >> { >> struct snd_soc_codec *codec = codec_dai->codec; >> + struct aic31xx_priv *aic31xx = snd_soc_codec_get_drvdata(codec); >> u8 iface_reg1 = 0; >> u8 iface_reg2 = 0; >> u8 dsp_a_val = 0; >> @@ -992,6 +1017,25 @@ static int aic31xx_set_dai_fmt(struct snd_soc_dai *codec_dai, >> AIC31XX_BCLKINV_MASK, >> iface_reg2); >> > > I would put contents of the bellow if statement, with the > aic31xx->master_dapm_route_applied check into a separate function and > call it from "switch (fmt & SND_SOC_DAIFMT_MASTER_MASK)"-statement. But > that is a matter of taste after all. Moving to a new function is not a bad idea > But shouldn't we remove the routes if SND_SOC_DAIFMT_CBS_CFS mode is used? Especially if we handle the unlikely that the clock role can change runtime. > >> + /* Add the needed DAPM route(s) for codec clock master modes, once */ >> + if (iface_reg1 & (AIC31XX_BCLK_MASTER | AIC31XX_WCLK_MASTER) && >> + !aic31xx->master_dapm_route_applied) { >> + struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec); >> + int ret; >> + >> + ret = snd_soc_dapm_add_routes(dapm, common31xx_cm_audio_map, >> + ARRAY_SIZE(common31xx_cm_audio_map)); >> + if (!ret && !(aic31xx->codec_type & DAC31XX_BIT)) >> + ret = snd_soc_dapm_add_routes(dapm, >> + aic31xx_cm_audio_map, >> + ARRAY_SIZE(aic31xx_cm_audio_map)); >> + >> + if (ret) >> + return ret; >> + >> + aic31xx->master_dapm_route_applied = true; >> + } >> + >> return 0; >> } >> >> > > - Péter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel