@@ -332,98 +332,6 @@ static int mt8186_sof_dai_link_fixup(struct snd_soc_pcm_runtime *rtd,
332332 return ret ;
333333}
334334
335- static int mt8186_mt6366_rt1019_rt5682s_playback_startup (struct snd_pcm_substream * substream )
336- {
337- static const unsigned int rates [] = {
338- 48000
339- };
340- static const unsigned int channels [] = {
341- 2
342- };
343- static const struct snd_pcm_hw_constraint_list constraints_rates = {
344- .count = ARRAY_SIZE (rates ),
345- .list = rates ,
346- .mask = 0 ,
347- };
348- static const struct snd_pcm_hw_constraint_list constraints_channels = {
349- .count = ARRAY_SIZE (channels ),
350- .list = channels ,
351- .mask = 0 ,
352- };
353-
354- struct snd_soc_pcm_runtime * rtd = snd_soc_substream_to_rtd (substream );
355- struct snd_pcm_runtime * runtime = substream -> runtime ;
356- int ret ;
357-
358- ret = snd_pcm_hw_constraint_list (runtime , 0 ,
359- SNDRV_PCM_HW_PARAM_RATE ,
360- & constraints_rates );
361- if (ret < 0 ) {
362- dev_err (rtd -> dev , "hw_constraint_list rate failed\n" );
363- return ret ;
364- }
365-
366- ret = snd_pcm_hw_constraint_list (runtime , 0 ,
367- SNDRV_PCM_HW_PARAM_CHANNELS ,
368- & constraints_channels );
369- if (ret < 0 ) {
370- dev_err (rtd -> dev , "hw_constraint_list channel failed\n" );
371- return ret ;
372- }
373-
374- return 0 ;
375- }
376-
377- static const struct snd_soc_ops mt8186_mt6366_rt1019_rt5682s_playback_ops = {
378- .startup = mt8186_mt6366_rt1019_rt5682s_playback_startup ,
379- };
380-
381- static int mt8186_mt6366_rt1019_rt5682s_capture_startup (struct snd_pcm_substream * substream )
382- {
383- static const unsigned int rates [] = {
384- 48000
385- };
386- static const unsigned int channels [] = {
387- 1 , 2
388- };
389- static const struct snd_pcm_hw_constraint_list constraints_rates = {
390- .count = ARRAY_SIZE (rates ),
391- .list = rates ,
392- .mask = 0 ,
393- };
394- static const struct snd_pcm_hw_constraint_list constraints_channels = {
395- .count = ARRAY_SIZE (channels ),
396- .list = channels ,
397- .mask = 0 ,
398- };
399-
400- struct snd_soc_pcm_runtime * rtd = snd_soc_substream_to_rtd (substream );
401- struct snd_pcm_runtime * runtime = substream -> runtime ;
402- int ret ;
403-
404- ret = snd_pcm_hw_constraint_list (runtime , 0 ,
405- SNDRV_PCM_HW_PARAM_RATE ,
406- & constraints_rates );
407- if (ret < 0 ) {
408- dev_err (rtd -> dev , "hw_constraint_list rate failed\n" );
409- return ret ;
410- }
411-
412- ret = snd_pcm_hw_constraint_list (runtime , 0 ,
413- SNDRV_PCM_HW_PARAM_CHANNELS ,
414- & constraints_channels );
415- if (ret < 0 ) {
416- dev_err (rtd -> dev , "hw_constraint_list channel failed\n" );
417- return ret ;
418- }
419-
420- return 0 ;
421- }
422-
423- static const struct snd_soc_ops mt8186_mt6366_rt1019_rt5682s_capture_ops = {
424- .startup = mt8186_mt6366_rt1019_rt5682s_capture_startup ,
425- };
426-
427335/* FE */
428336SND_SOC_DAILINK_DEFS (playback1 ,
429337 DAILINK_COMP_ARRAY (COMP_CPU ("DL1" )),
@@ -644,7 +552,7 @@ static struct snd_soc_dai_link mt8186_mt6366_rt1019_rt5682s_dai_links[] = {
644552 .dpcm_merged_format = 1 ,
645553 .dpcm_merged_chan = 1 ,
646554 .dpcm_merged_rate = 1 ,
647- .ops = & mt8186_mt6366_rt1019_rt5682s_playback_ops ,
555+ .ops = & mtk_soundcard_common_playback_ops ,
648556 SND_SOC_DAILINK_REG (playback1 ),
649557 },
650558 {
@@ -678,7 +586,7 @@ static struct snd_soc_dai_link mt8186_mt6366_rt1019_rt5682s_dai_links[] = {
678586 .dpcm_merged_format = 1 ,
679587 .dpcm_merged_chan = 1 ,
680588 .dpcm_merged_rate = 1 ,
681- .ops = & mt8186_mt6366_rt1019_rt5682s_playback_ops ,
589+ .ops = & mtk_soundcard_common_playback_ops ,
682590 SND_SOC_DAILINK_REG (playback3 ),
683591 },
684592 {
@@ -745,7 +653,7 @@ static struct snd_soc_dai_link mt8186_mt6366_rt1019_rt5682s_dai_links[] = {
745653 .dpcm_merged_format = 1 ,
746654 .dpcm_merged_chan = 1 ,
747655 .dpcm_merged_rate = 1 ,
748- .ops = & mt8186_mt6366_rt1019_rt5682s_capture_ops ,
656+ .ops = & mtk_soundcard_common_capture_ops ,
749657 SND_SOC_DAILINK_REG (capture2 ),
750658 },
751659 {
@@ -767,7 +675,7 @@ static struct snd_soc_dai_link mt8186_mt6366_rt1019_rt5682s_dai_links[] = {
767675 .dpcm_merged_format = 1 ,
768676 .dpcm_merged_chan = 1 ,
769677 .dpcm_merged_rate = 1 ,
770- .ops = & mt8186_mt6366_rt1019_rt5682s_capture_ops ,
678+ .ops = & mtk_soundcard_common_capture_ops ,
771679 SND_SOC_DAILINK_REG (capture4 ),
772680 },
773681 {
@@ -1220,6 +1128,32 @@ static int mt8186_mt6366_soc_card_probe(struct mtk_soc_card_data *soc_card_data,
12201128 return 0 ;
12211129}
12221130
1131+ static const unsigned int mt8186_pcm_playback_channels [] = { 2 };
1132+ static const unsigned int mt8186_pcm_capture_channels [] = { 1 , 2 };
1133+ static const unsigned int mt8186_pcm_rates [] = { 48000 };
1134+
1135+ static const struct snd_pcm_hw_constraint_list mt8186_rate_constraint = {
1136+ .list = mt8186_pcm_rates ,
1137+ .count = ARRAY_SIZE (mt8186_pcm_rates )
1138+ };
1139+
1140+ static const struct mtk_pcm_constraints_data mt8186_pcm_constraints [MTK_CONSTRAINT_CAPTURE + 1 ] = {
1141+ [MTK_CONSTRAINT_PLAYBACK ] = {
1142+ .channels = & (const struct snd_pcm_hw_constraint_list ) {
1143+ .list = mt8186_pcm_playback_channels ,
1144+ .count = ARRAY_SIZE (mt8186_pcm_playback_channels )
1145+ },
1146+ .rates = & mt8186_rate_constraint ,
1147+ },
1148+ [MTK_CONSTRAINT_CAPTURE ] = {
1149+ .channels = & (const struct snd_pcm_hw_constraint_list ) {
1150+ .list = mt8186_pcm_capture_channels ,
1151+ .count = ARRAY_SIZE (mt8186_pcm_capture_channels )
1152+ },
1153+ .rates = & mt8186_rate_constraint ,
1154+ }
1155+ };
1156+
12231157static const struct mtk_sof_priv mt8186_sof_priv = {
12241158 .conn_streams = g_sof_conn_streams ,
12251159 .num_streams = ARRAY_SIZE (g_sof_conn_streams ),
@@ -1230,6 +1164,8 @@ static const struct mtk_soundcard_pdata mt8186_mt6366_rt1019_rt5682s_pdata = {
12301164 .card_data = & (struct mtk_platform_card_data ) {
12311165 .card = & mt8186_mt6366_rt1019_rt5682s_soc_card ,
12321166 .num_jacks = MT8186_JACK_MAX ,
1167+ .pcm_constraints = mt8186_pcm_constraints ,
1168+ .num_pcm_constraints = ARRAY_SIZE (mt8186_pcm_constraints ),
12331169 },
12341170 .sof_priv = & mt8186_sof_priv ,
12351171 .soc_probe = mt8186_mt6366_soc_card_probe
@@ -1239,6 +1175,8 @@ static const struct mtk_soundcard_pdata mt8186_mt6366_rt5682s_max98360_pdata = {
12391175 .card_data = & (struct mtk_platform_card_data ) {
12401176 .card = & mt8186_mt6366_rt5682s_max98360_soc_card ,
12411177 .num_jacks = MT8186_JACK_MAX ,
1178+ .pcm_constraints = mt8186_pcm_constraints ,
1179+ .num_pcm_constraints = ARRAY_SIZE (mt8186_pcm_constraints ),
12421180 },
12431181 .sof_priv = & mt8186_sof_priv ,
12441182 .soc_probe = mt8186_mt6366_soc_card_probe
@@ -1248,6 +1186,8 @@ static const struct mtk_soundcard_pdata mt8186_mt6366_rt5650_pdata = {
12481186 .card_data = & (struct mtk_platform_card_data ) {
12491187 .card = & mt8186_mt6366_rt5650_soc_card ,
12501188 .num_jacks = MT8186_JACK_MAX ,
1189+ .pcm_constraints = mt8186_pcm_constraints ,
1190+ .num_pcm_constraints = ARRAY_SIZE (mt8186_pcm_constraints ),
12511191 },
12521192 .sof_priv = & mt8186_sof_priv ,
12531193 .soc_probe = mt8186_mt6366_soc_card_probe
0 commit comments