1
2
3
4
5
6
7
8
9
10#include <linux/device.h>
11#include <linux/errno.h>
12#include <sound/soc.h>
13#include <sound/soc-acpi.h>
14#include <sound/soc_sdw_utils.h>
15
16int asoc_sdw_rt_dmic_rtd_init(struct snd_soc_pcm_runtime *rtd, struct snd_soc_dai *dai)
17{
18 struct snd_soc_card *card = rtd->card;
19 struct snd_soc_component *component;
20 char *mic_name;
21
22 component = dai->component;
23
24
25
26
27
28 if (!strcmp(component->name_prefix, "rt714"))
29 mic_name = devm_kasprintf(card->dev, GFP_KERNEL, "rt715-sdca");
30 else
31 mic_name = devm_kasprintf(card->dev, GFP_KERNEL, "%s", component->name_prefix);
32 if (!mic_name)
33 return -ENOMEM;
34
35 card->components = devm_kasprintf(card->dev, GFP_KERNEL,
36 "%s mic:%s", card->components,
37 mic_name);
38 if (!card->components)
39 return -ENOMEM;
40
41 dev_dbg(card->dev, "card->components: %s\n", card->components);
42
43 return 0;
44}
45EXPORT_SYMBOL_NS(asoc_sdw_rt_dmic_rtd_init, "SND_SOC_SDW_UTILS");
46