Skip to content

Commit 94142cc

Browse files
AngeloGioacchino Del Regnobroonie
authored andcommitted
ASoC: mediatek: mt8192: 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. Reviewed-by: Alexandre Mergnat <amergnat@baylibre.com> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://lore.kernel.org/r/20240416071410.75620-10-angelogioacchino.delregno@collabora.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 386fe4c commit 94142cc

1 file changed

Lines changed: 41 additions & 98 deletions

File tree

sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c

Lines changed: 41 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -389,100 +389,6 @@ static int mt8192_i2s_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
389389
return 0;
390390
}
391391

392-
static int
393-
mt8192_mt6359_cap1_startup(struct snd_pcm_substream *substream)
394-
{
395-
static const unsigned int channels[] = {
396-
1, 2, 4
397-
};
398-
static const struct snd_pcm_hw_constraint_list constraints_channels = {
399-
.count = ARRAY_SIZE(channels),
400-
.list = channels,
401-
.mask = 0,
402-
};
403-
static const unsigned int rates[] = {
404-
8000, 16000, 32000, 48000, 96000, 192000
405-
};
406-
static const struct snd_pcm_hw_constraint_list constraints_rates = {
407-
.count = ARRAY_SIZE(rates),
408-
.list = rates,
409-
.mask = 0,
410-
};
411-
412-
struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
413-
struct snd_pcm_runtime *runtime = substream->runtime;
414-
int ret;
415-
416-
ret = snd_pcm_hw_constraint_list(runtime, 0,
417-
SNDRV_PCM_HW_PARAM_CHANNELS,
418-
&constraints_channels);
419-
if (ret < 0) {
420-
dev_err(rtd->dev, "hw_constraint_list channels failed\n");
421-
return ret;
422-
}
423-
424-
ret = snd_pcm_hw_constraint_list(runtime, 0,
425-
SNDRV_PCM_HW_PARAM_RATE,
426-
&constraints_rates);
427-
if (ret < 0) {
428-
dev_err(rtd->dev, "hw_constraint_list rate failed\n");
429-
return ret;
430-
}
431-
432-
return 0;
433-
}
434-
435-
static const struct snd_soc_ops mt8192_mt6359_capture1_ops = {
436-
.startup = mt8192_mt6359_cap1_startup,
437-
};
438-
439-
static int
440-
mt8192_mt6359_rt5682_startup(struct snd_pcm_substream *substream)
441-
{
442-
static const unsigned int channels[] = {
443-
1, 2
444-
};
445-
static const struct snd_pcm_hw_constraint_list constraints_channels = {
446-
.count = ARRAY_SIZE(channels),
447-
.list = channels,
448-
.mask = 0,
449-
};
450-
static const unsigned int rates[] = {
451-
48000
452-
};
453-
static const struct snd_pcm_hw_constraint_list constraints_rates = {
454-
.count = ARRAY_SIZE(rates),
455-
.list = rates,
456-
.mask = 0,
457-
};
458-
459-
struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
460-
struct snd_pcm_runtime *runtime = substream->runtime;
461-
int ret;
462-
463-
ret = snd_pcm_hw_constraint_list(runtime, 0,
464-
SNDRV_PCM_HW_PARAM_CHANNELS,
465-
&constraints_channels);
466-
if (ret < 0) {
467-
dev_err(rtd->dev, "hw_constraint_list channels failed\n");
468-
return ret;
469-
}
470-
471-
ret = snd_pcm_hw_constraint_list(runtime, 0,
472-
SNDRV_PCM_HW_PARAM_RATE,
473-
&constraints_rates);
474-
if (ret < 0) {
475-
dev_err(rtd->dev, "hw_constraint_list rate failed\n");
476-
return ret;
477-
}
478-
479-
return 0;
480-
}
481-
482-
static const struct snd_soc_ops mt8192_mt6359_rt5682_ops = {
483-
.startup = mt8192_mt6359_rt5682_startup,
484-
};
485-
486392
/* FE */
487393
SND_SOC_DAILINK_DEFS(playback1,
488394
DAILINK_COMP_ARRAY(COMP_CPU("DL1")),
@@ -720,7 +626,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = {
720626
SND_SOC_DPCM_TRIGGER_PRE},
721627
.dynamic = 1,
722628
.dpcm_playback = 1,
723-
.ops = &mt8192_mt6359_rt5682_ops,
629+
.ops = &mtk_soundcard_common_playback_ops,
724630
SND_SOC_DAILINK_REG(playback3),
725631
},
726632
{
@@ -784,7 +690,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = {
784690
SND_SOC_DPCM_TRIGGER_PRE},
785691
.dynamic = 1,
786692
.dpcm_capture = 1,
787-
.ops = &mt8192_mt6359_capture1_ops,
693+
.ops = &mtk_soundcard_common_capture_ops,
788694
SND_SOC_DAILINK_REG(capture1),
789695
},
790696
{
@@ -794,7 +700,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = {
794700
SND_SOC_DPCM_TRIGGER_PRE},
795701
.dynamic = 1,
796702
.dpcm_capture = 1,
797-
.ops = &mt8192_mt6359_rt5682_ops,
703+
.ops = &mtk_soundcard_common_playback_ops,
798704
SND_SOC_DAILINK_REG(capture2),
799705
},
800706
{
@@ -1146,7 +1052,7 @@ static int mt8192_mt6359_legacy_probe(struct mtk_soc_card_data *soc_card_data)
11461052
struct device *dev = card->dev;
11471053
struct device_node *hdmi_codec, *headset_codec, *speaker_codec;
11481054
struct snd_soc_dai_link *dai_link;
1149-
int ret, i;
1055+
int i, ret = 0;
11501056

11511057
hdmi_codec = of_parse_phandle(dev->of_node, "mediatek,hdmi-codec", 0);
11521058
if (!hdmi_codec)
@@ -1235,11 +1141,44 @@ static int mt8192_mt6359_soc_card_probe(struct mtk_soc_card_data *soc_card_data,
12351141
return 0;
12361142
}
12371143

1144+
static const unsigned int mt8192_pcm_playback_channels[] = { 1, 2 };
1145+
static const unsigned int mt8192_pcm_playback_rates[] = { 48000 };
1146+
1147+
static const unsigned int mt8192_pcm_capture_channels[] = { 1, 2, 4 };
1148+
static const unsigned int mt8192_pcm_capture_rates[] = {
1149+
8000, 16000, 32000, 48000, 96000, 192000
1150+
};
1151+
1152+
static const struct mtk_pcm_constraints_data mt8192_pcm_constraints[MTK_CONSTRAINT_CAPTURE + 1] = {
1153+
[MTK_CONSTRAINT_PLAYBACK] = {
1154+
.channels = &(const struct snd_pcm_hw_constraint_list) {
1155+
.list = mt8192_pcm_playback_channels,
1156+
.count = ARRAY_SIZE(mt8192_pcm_playback_channels)
1157+
},
1158+
.rates = &(const struct snd_pcm_hw_constraint_list) {
1159+
.list = mt8192_pcm_playback_rates,
1160+
.count = ARRAY_SIZE(mt8192_pcm_playback_rates)
1161+
}
1162+
},
1163+
[MTK_CONSTRAINT_CAPTURE] = {
1164+
.channels = &(const struct snd_pcm_hw_constraint_list) {
1165+
.list = mt8192_pcm_capture_channels,
1166+
.count = ARRAY_SIZE(mt8192_pcm_capture_channels)
1167+
},
1168+
.rates = &(const struct snd_pcm_hw_constraint_list) {
1169+
.list = mt8192_pcm_capture_rates,
1170+
.count = ARRAY_SIZE(mt8192_pcm_capture_rates)
1171+
}
1172+
}
1173+
};
1174+
12381175
static const struct mtk_soundcard_pdata mt8192_mt6359_rt1015_rt5682_pdata = {
12391176
.card_name = RT1015_RT5682_CARD_NAME,
12401177
.card_data = &(struct mtk_platform_card_data) {
12411178
.card = &mt8192_mt6359_rt1015_rt5682_card,
12421179
.num_jacks = MT8192_JACK_MAX,
1180+
.pcm_constraints = mt8192_pcm_constraints,
1181+
.num_pcm_constraints = ARRAY_SIZE(mt8192_pcm_constraints),
12431182
},
12441183
.soc_probe = mt8192_mt6359_soc_card_probe
12451184
};
@@ -1249,6 +1188,8 @@ static const struct mtk_soundcard_pdata mt8192_mt6359_rt1015p_rt5682_pdata = {
12491188
.card_data = &(struct mtk_platform_card_data) {
12501189
.card = &mt8192_mt6359_rt1015p_rt5682x_card,
12511190
.num_jacks = MT8192_JACK_MAX,
1191+
.pcm_constraints = mt8192_pcm_constraints,
1192+
.num_pcm_constraints = ARRAY_SIZE(mt8192_pcm_constraints),
12521193
},
12531194
.soc_probe = mt8192_mt6359_soc_card_probe
12541195
};
@@ -1258,6 +1199,8 @@ static const struct mtk_soundcard_pdata mt8192_mt6359_rt1015p_rt5682s_pdata = {
12581199
.card_data = &(struct mtk_platform_card_data) {
12591200
.card = &mt8192_mt6359_rt1015p_rt5682x_card,
12601201
.num_jacks = MT8192_JACK_MAX,
1202+
.pcm_constraints = mt8192_pcm_constraints,
1203+
.num_pcm_constraints = ARRAY_SIZE(mt8192_pcm_constraints),
12611204
},
12621205
.soc_probe = mt8192_mt6359_soc_card_probe
12631206
};

0 commit comments

Comments
 (0)