1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
2 | /* |
3 | * Digital Beep Input Interface for HD-audio codec |
4 | * |
5 | * Author: Matt Ranostay <matt.ranostay@konsulko.com> |
6 | * Copyright (c) 2008 Embedded Alley Solutions Inc |
7 | */ |
8 | |
9 | #ifndef __SOUND_HDA_BEEP_H |
10 | #define __SOUND_HDA_BEEP_H |
11 | |
12 | #include <sound/hda_codec.h> |
13 | |
14 | #define HDA_BEEP_MODE_OFF 0 |
15 | #define HDA_BEEP_MODE_ON 1 |
16 | |
17 | /* beep information */ |
18 | struct hda_beep { |
19 | struct input_dev *dev; |
20 | struct hda_codec *codec; |
21 | char phys[32]; |
22 | int tone; |
23 | hda_nid_t nid; |
24 | unsigned int registered:1; |
25 | unsigned int enabled:1; |
26 | unsigned int linear_tone:1; /* linear tone for IDT/STAC codec */ |
27 | unsigned int playing:1; |
28 | unsigned int keep_power_at_enable:1; /* set by driver */ |
29 | struct work_struct beep_work; /* scheduled task for beep event */ |
30 | void (*power_hook)(struct hda_beep *beep, bool on); |
31 | }; |
32 | |
33 | #ifdef CONFIG_SND_HDA_INPUT_BEEP |
34 | int snd_hda_enable_beep_device(struct hda_codec *codec, int enable); |
35 | int snd_hda_attach_beep_device(struct hda_codec *codec, int nid); |
36 | void snd_hda_detach_beep_device(struct hda_codec *codec); |
37 | #else |
38 | static inline int snd_hda_attach_beep_device(struct hda_codec *codec, int nid) |
39 | { |
40 | return 0; |
41 | } |
42 | static inline void snd_hda_detach_beep_device(struct hda_codec *codec) |
43 | { |
44 | } |
45 | #endif |
46 | #endif |
47 | |