21 Feb
2023
21 Feb
'23
5:49 p.m.
+static int cs35l56_init_multiple(struct snd_soc_pcm_runtime *rtd, int count) +{
- struct snd_soc_card *card = rtd->card;
- struct snd_soc_dai *codec_dai;
- int i, ret;
- card->components = devm_kasprintf(card->dev, GFP_KERNEL,
"%s hs:cs35l56",
the string is wrong here, this is an amplifier so it should be amp:cs35l56 or spk:cs36l56 (not sure which of the two we ended-up using).
card->components);
- if (!card->components)
return -ENOMEM;
- ret = snd_soc_dapm_new_controls(&card->dapm,
cs35l56_sof_widgets, ARRAY_SIZE(cs35l56_sof_widgets));
- if (ret) {
dev_err(card->dev, "Widgets add failed: %d\n", ret);
return ret;
- }
- ret = snd_soc_dapm_add_routes(&card->dapm, cs35l56_sof_map, count);
- if (ret) {
dev_err(card->dev, "Map add %d failed: %d\n", count, ret);
return ret;
- }
- /* Enable one feedback TX per amp on different slots */
- for_each_rtd_codec_dais(rtd, i, codec_dai) {
ret = snd_soc_dai_set_tdm_slot(codec_dai, 0x3, 1 << i, 4, 16);
TDM slots? Not getting how this would work with SoundWire?
if (ret < 0)
return ret;
- }
- return 0;
+}