2018-02-17 08:53:15 +03:00
/* SPDX-License-Identifier: GPL-2.0+ */
2008-07-18 20:20:52 +04:00
/*
* Digital Beep Input Interface for HD - audio codec
*
2018-02-17 08:53:15 +03:00
* Author : Matt Ranostay < matt . ranostay @ konsulko . com >
2008-07-18 20:20:52 +04:00
* Copyright ( c ) 2008 Embedded Alley Solutions Inc
*/
# ifndef __SOUND_HDA_BEEP_H
# define __SOUND_HDA_BEEP_H
2018-08-22 23:24:57 +03:00
# include <sound/hda_codec.h>
2008-07-18 20:20:52 +04:00
2009-11-16 17:33:49 +03:00
# define HDA_BEEP_MODE_OFF 0
# define HDA_BEEP_MODE_ON 1
2009-11-13 20:41:52 +03:00
2008-07-18 20:20:52 +04:00
/* beep information */
struct hda_beep {
struct input_dev * dev ;
struct hda_codec * codec ;
char phys [ 32 ] ;
int tone ;
2009-05-19 14:50:04 +04:00
hda_nid_t nid ;
2014-02-28 16:42:09 +04:00
unsigned int registered : 1 ;
2009-05-19 14:50:04 +04:00
unsigned int enabled : 1 ;
unsigned int linear_tone : 1 ; /* linear tone for IDT/STAC codec */
2013-03-18 14:29:56 +04:00
unsigned int playing : 1 ;
2008-07-18 20:20:52 +04:00
struct work_struct beep_work ; /* scheduled task for beep event */
2009-10-21 16:48:23 +04:00
struct mutex mutex ;
2015-03-18 11:23:10 +03:00
void ( * power_hook ) ( struct hda_beep * beep , bool on ) ;
2008-07-18 20:20:52 +04:00
} ;
# ifdef CONFIG_SND_HDA_INPUT_BEEP
2009-10-21 16:48:23 +04:00
int snd_hda_enable_beep_device ( struct hda_codec * codec , int enable ) ;
2008-07-18 20:20:52 +04:00
int snd_hda_attach_beep_device ( struct hda_codec * codec , int nid ) ;
void snd_hda_detach_beep_device ( struct hda_codec * codec ) ;
# else
2011-06-13 00:02:43 +04:00
static inline int snd_hda_attach_beep_device ( struct hda_codec * codec , int nid )
{
return 0 ;
}
2011-06-14 10:14:32 +04:00
static inline void snd_hda_detach_beep_device ( struct hda_codec * codec )
2011-06-13 00:02:43 +04:00
{
}
2008-07-18 20:20:52 +04:00
# endif
# endif