Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/sound/soc/intel/avs/boards/probe.c
26607 views
1
// SPDX-License-Identifier: GPL-2.0-only
2
//
3
// Copyright(c) 2021-2022 Intel Corporation
4
//
5
// Authors: Cezary Rojewski <[email protected]>
6
// Amadeusz Slawinski <[email protected]>
7
//
8
9
#include <linux/device.h>
10
#include <linux/module.h>
11
#include <sound/soc.h>
12
#include <sound/soc-acpi.h>
13
14
SND_SOC_DAILINK_DEF(dummy, DAILINK_COMP_ARRAY(COMP_DUMMY()));
15
SND_SOC_DAILINK_DEF(probe_cp, DAILINK_COMP_ARRAY(COMP_CPU("Probe Extraction CPU DAI")));
16
SND_SOC_DAILINK_DEF(platform, DAILINK_COMP_ARRAY(COMP_PLATFORM("probe-platform")));
17
18
static struct snd_soc_dai_link probe_mb_dai_links[] = {
19
{
20
.name = "Compress Probe Capture",
21
.nonatomic = 1,
22
SND_SOC_DAILINK_REG(probe_cp, dummy, platform),
23
},
24
};
25
26
static int avs_probe_mb_probe(struct platform_device *pdev)
27
{
28
struct device *dev = &pdev->dev;
29
struct snd_soc_acpi_mach *mach;
30
struct snd_soc_card *card;
31
int ret;
32
33
mach = dev_get_platdata(dev);
34
35
card = devm_kzalloc(dev, sizeof(*card), GFP_KERNEL);
36
if (!card)
37
return -ENOMEM;
38
39
card->driver_name = "avs_probe_mb";
40
card->long_name = card->name = "AVS PROBE";
41
card->dev = dev;
42
card->owner = THIS_MODULE;
43
card->dai_link = probe_mb_dai_links;
44
card->num_links = ARRAY_SIZE(probe_mb_dai_links);
45
card->fully_routed = true;
46
47
ret = snd_soc_fixup_dai_links_platform_name(card, mach->mach_params.platform);
48
if (ret)
49
return ret;
50
51
return devm_snd_soc_register_deferrable_card(dev, card);
52
}
53
54
static const struct platform_device_id avs_probe_mb_driver_ids[] = {
55
{
56
.name = "avs_probe_mb",
57
},
58
{},
59
};
60
MODULE_DEVICE_TABLE(platform, avs_probe_mb_driver_ids);
61
62
static struct platform_driver avs_probe_mb_driver = {
63
.probe = avs_probe_mb_probe,
64
.driver = {
65
.name = "avs_probe_mb",
66
.pm = &snd_soc_pm_ops,
67
},
68
.id_table = avs_probe_mb_driver_ids,
69
};
70
71
module_platform_driver(avs_probe_mb_driver);
72
73
MODULE_DESCRIPTION("Intel probe machine driver");
74
MODULE_LICENSE("GPL");
75
76