Skip to content

Commit f103ce4

Browse files
AngeloGioacchino Del Regnobroonie
authored andcommitted
ASoC: mediatek: mt8186-rt1019: Migrate to the common mtk_soundcard_startup
Add a const mtk_pcm_constraints_data struct array with all of the (again, constant) constraints for all of the supported usecases, remove the duplicated functions and call mtk_soundcard_startup() instead in all of the .startup() callbacks. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://lore.kernel.org/r/20240416071410.75620-11-angelogioacchino.delregno@collabora.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 94142cc commit f103ce4

1 file changed

Lines changed: 36 additions & 96 deletions

File tree

sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c

Lines changed: 36 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -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 */
428336
SND_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+
12231157
static 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

Comments
 (0)