Re: [alsa-devel] [PATCH] ASoC: Intel: bytcr_5640.c:Refactored if statement and removed buffer

From: Hans de Goede
Date: Mon May 06 2019 - 11:44:02 EST


Hi Pierre-Louis,

Nariman and the author authors of these patches are a group of students doing
some kernel work for me and this is a warm-up assignment for them to get used
to the kernel development process.

On 06-05-19 17:21, Pierre-Louis Bossart wrote:

 static int byt_rt5640_suspend(struct snd_soc_card *card)
@@ -1268,28 +1266,12 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)
ÂÂÂÂÂ log_quirks(&pdev->dev);
ÂÂÂÂÂ if ((byt_rt5640_quirk & BYT_RT5640_SSP2_AIF2) ||
-ÂÂÂÂÂÂÂ (byt_rt5640_quirk & BYT_RT5640_SSP0_AIF2)) {
-
-ÂÂÂÂÂÂÂ /* fixup codec aif name */
-ÂÂÂÂÂÂÂ snprintf(byt_rt5640_codec_aif_name,
-ÂÂÂÂÂÂÂÂÂÂÂ sizeof(byt_rt5640_codec_aif_name),
-ÂÂÂÂÂÂÂÂÂÂÂ "%s", "rt5640-aif2");
-
-ÂÂÂÂÂÂÂ byt_rt5640_dais[dai_index].codec_dai_name =
-ÂÂÂÂÂÂÂÂÂÂÂ byt_rt5640_codec_aif_name;
-ÂÂÂ }
+ÂÂÂÂÂÂÂ (byt_rt5640_quirk & BYT_RT5640_SSP0_AIF2))
+ÂÂÂÂÂÂÂ byt_rt5640_dais[dai_index].codec_dai_name = "rt5640-aif2";

This is not equivalent, you don't deal with the (byt_rt5640_quirk & BYT_RT5640_SSP2_AIF2) case. The default is SSP_AIF1

I might be mistaken here, but look closer, the original:
if ((byt_rt5640_quirk & BYT_RT5640_SSP2_AIF2) ||

Line is kept, so the new code block is:

if ((byt_rt5640_quirk & BYT_RT5640_SSP2_AIF2) ||
(byt_rt5640_quirk & BYT_RT5640_SSP0_AIF2))
byt_rt5640_dais[dai_index].codec_dai_name = "rt5640-aif2";

Which does take the BYT_RT5640_SSP2_AIF2 into account.

ÂÂÂÂÂ if ((byt_rt5640_quirk & BYT_RT5640_SSP0_AIF1) ||
-ÂÂÂÂÂÂÂ (byt_rt5640_quirk & BYT_RT5640_SSP0_AIF2)) {
-
-ÂÂÂÂÂÂÂ /* fixup cpu dai name name */
-ÂÂÂÂÂÂÂ snprintf(byt_rt5640_cpu_dai_name,
-ÂÂÂÂÂÂÂÂÂÂÂ sizeof(byt_rt5640_cpu_dai_name),
-ÂÂÂÂÂÂÂÂÂÂÂ "%s", "ssp0-port");
-
-ÂÂÂÂÂÂÂ byt_rt5640_dais[dai_index].cpu_dai_name =
-ÂÂÂÂÂÂÂÂÂÂÂ byt_rt5640_cpu_dai_name;
-ÂÂÂ }
+ÂÂÂÂÂÂÂ (byt_rt5640_quirk & BYT_RT5640_SSP0_AIF2))
+ÂÂÂÂÂÂÂ byt_rt5640_dais[dai_index].cpu_dai_name = "ssp0-port";

Same here, this is not equivalent. the SSP0_AIF1 case is not handled.
it's fine to remove the intermediate buffers, but you can't remove support for 2 out of the 4 combinations supported.

Same remark here from me too :)

Regards,

Hans