2008-07-18 20:20:52 +04:00
/*
* Digital Beep Input Interface for HD - audio codec
*
* Author : Matthew Ranostay < mranostay @ embeddedalley . com >
* Copyright ( c ) 2008 Embedded Alley Solutions Inc
*
* This driver is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This driver is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
*/
# ifndef __SOUND_HDA_BEEP_H
# define __SOUND_HDA_BEEP_H
# include "hda_codec.h"
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 ) ;
2014-02-28 16:42:09 +04:00
int snd_hda_register_beep_device ( struct hda_codec * codec ) ;
2008-07-18 20:20:52 +04:00
# 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
{
}
2014-02-28 16:42:09 +04:00
static inline int snd_hda_register_beep_device ( struct hda_codec * codec )
{
return 0 ;
}
2008-07-18 20:20:52 +04:00
# endif
# endif