]>
Commit | Line | Data |
---|---|---|
1cd2224c MR |
1 | /* |
2 | * Digital Beep Input Interface for HD-audio codec | |
3 | * | |
4 | * Author: Matthew Ranostay <mranostay@embeddedalley.com> | |
5 | * Copyright (c) 2008 Embedded Alley Solutions Inc | |
6 | * | |
7 | * This driver is free software; you can redistribute it and/or modify | |
8 | * it under the terms of the GNU General Public License as published by | |
9 | * the Free Software Foundation; either version 2 of the License, or | |
10 | * (at your option) any later version. | |
11 | * | |
12 | * This driver is distributed in the hope that it will be useful, | |
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | * GNU General Public License for more details. | |
16 | * | |
17 | * You should have received a copy of the GNU General Public License | |
18 | * along with this program; if not, write to the Free Software | |
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
20 | */ | |
21 | ||
22 | #ifndef __SOUND_HDA_BEEP_H | |
23 | #define __SOUND_HDA_BEEP_H | |
24 | ||
25 | #include "hda_codec.h" | |
26 | ||
9bb1fe39 TI |
27 | #define HDA_BEEP_MODE_OFF 0 |
28 | #define HDA_BEEP_MODE_ON 1 | |
2dca0bba JK |
29 | #define HDA_BEEP_MODE_SWREG 2 |
30 | ||
1cd2224c MR |
31 | /* beep information */ |
32 | struct hda_beep { | |
33 | struct input_dev *dev; | |
34 | struct hda_codec *codec; | |
2dca0bba | 35 | unsigned int mode; |
1cd2224c MR |
36 | char phys[32]; |
37 | int tone; | |
fa797966 TI |
38 | hda_nid_t nid; |
39 | unsigned int enabled:1; | |
123c07ae | 40 | unsigned int request_enable:1; |
fa797966 | 41 | unsigned int linear_tone:1; /* linear tone for IDT/STAC codec */ |
13dab080 JK |
42 | struct work_struct register_work; /* registration work */ |
43 | struct delayed_work unregister_work; /* unregistration work */ | |
1cd2224c | 44 | struct work_struct beep_work; /* scheduled task for beep event */ |
123c07ae | 45 | struct mutex mutex; |
1cd2224c MR |
46 | }; |
47 | ||
48 | #ifdef CONFIG_SND_HDA_INPUT_BEEP | |
123c07ae | 49 | int snd_hda_enable_beep_device(struct hda_codec *codec, int enable); |
1cd2224c MR |
50 | int snd_hda_attach_beep_device(struct hda_codec *codec, int nid); |
51 | void snd_hda_detach_beep_device(struct hda_codec *codec); | |
52 | #else | |
2308f4ad JP |
53 | static inline int snd_hda_attach_beep_device(struct hda_codec *codec, int nid) |
54 | { | |
55 | return 0; | |
56 | } | |
ca2585af | 57 | static inline void snd_hda_detach_beep_device(struct hda_codec *codec) |
2308f4ad JP |
58 | { |
59 | } | |
1cd2224c MR |
60 | #endif |
61 | #endif |