Commit | Line | Data |
---|---|---|
1cd2224c MR |
1 | /* |
2 | * Digital Beep Input Interface for HD-audio codec | |
3 | * | |
f267f9df | 4 | * Author: Matt Ranostay <mranostay@gmail.com> |
1cd2224c MR |
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 | 29 | |
1cd2224c MR |
30 | /* beep information */ |
31 | struct hda_beep { | |
32 | struct input_dev *dev; | |
33 | struct hda_codec *codec; | |
34 | char phys[32]; | |
35 | int tone; | |
fa797966 | 36 | hda_nid_t nid; |
d604b399 | 37 | unsigned int registered:1; |
fa797966 TI |
38 | unsigned int enabled:1; |
39 | unsigned int linear_tone:1; /* linear tone for IDT/STAC codec */ | |
e914b25e | 40 | unsigned int playing:1; |
1cd2224c | 41 | struct work_struct beep_work; /* scheduled task for beep event */ |
123c07ae | 42 | struct mutex mutex; |
5ccf835c | 43 | void (*power_hook)(struct hda_beep *beep, bool on); |
1cd2224c MR |
44 | }; |
45 | ||
46 | #ifdef CONFIG_SND_HDA_INPUT_BEEP | |
123c07ae | 47 | int snd_hda_enable_beep_device(struct hda_codec *codec, int enable); |
1cd2224c MR |
48 | int snd_hda_attach_beep_device(struct hda_codec *codec, int nid); |
49 | void snd_hda_detach_beep_device(struct hda_codec *codec); | |
d604b399 | 50 | int snd_hda_register_beep_device(struct hda_codec *codec); |
1cd2224c | 51 | #else |
2308f4ad JP |
52 | static inline int snd_hda_attach_beep_device(struct hda_codec *codec, int nid) |
53 | { | |
54 | return 0; | |
55 | } | |
ca2585af | 56 | static inline void snd_hda_detach_beep_device(struct hda_codec *codec) |
2308f4ad JP |
57 | { |
58 | } | |
d604b399 TI |
59 | static inline int snd_hda_register_beep_device(struct hda_codec *codec) |
60 | { | |
61 | return 0; | |
62 | } | |
1cd2224c MR |
63 | #endif |
64 | #endif |