Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/sound/hda/codecs/realtek/alc680.c
26565 views
1
// SPDX-License-Identifier: GPL-2.0-or-later
2
//
3
// Realtek ALC680 codec
4
//
5
6
#include <linux/init.h>
7
#include <linux/module.h>
8
#include "realtek.h"
9
10
static int alc680_parse_auto_config(struct hda_codec *codec)
11
{
12
return alc_parse_auto_config(codec, NULL, NULL);
13
}
14
15
/*
16
*/
17
static int alc680_probe(struct hda_codec *codec, const struct hda_device_id *id)
18
{
19
int err;
20
21
/* ALC680 has no aa-loopback mixer */
22
err = alc_alloc_spec(codec, 0);
23
if (err < 0)
24
return err;
25
26
/* automatic parse from the BIOS config */
27
err = alc680_parse_auto_config(codec);
28
if (err < 0) {
29
snd_hda_gen_remove(codec);
30
return err;
31
}
32
33
return 0;
34
}
35
36
static const struct hda_codec_ops alc680_codec_ops = {
37
.probe = alc680_probe,
38
.remove = snd_hda_gen_remove,
39
.build_controls = alc_build_controls,
40
.build_pcms = snd_hda_gen_build_pcms,
41
.init = alc_init,
42
.unsol_event = snd_hda_jack_unsol_event,
43
.resume = alc_resume,
44
.suspend = alc_suspend,
45
.check_power_status = snd_hda_gen_check_power_status,
46
.stream_pm = snd_hda_gen_stream_pm,
47
};
48
49
/*
50
* driver entries
51
*/
52
static const struct hda_device_id snd_hda_id_alc680[] = {
53
HDA_CODEC_ID(0x10ec0680, "ALC680"),
54
{} /* terminator */
55
};
56
MODULE_DEVICE_TABLE(hdaudio, snd_hda_id_alc680);
57
58
MODULE_LICENSE("GPL");
59
MODULE_DESCRIPTION("Realtek ALC680 HD-audio codec");
60
MODULE_IMPORT_NS("SND_HDA_CODEC_REALTEK");
61
62
static struct hda_codec_driver alc680_driver = {
63
.id = snd_hda_id_alc680,
64
.ops = &alc680_codec_ops,
65
};
66
67
module_hda_codec_driver(alc680_driver);
68
69