hda_beep.h (1186B)
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 */ 18struct 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 struct work_struct beep_work; /* scheduled task for beep event */ 29 struct mutex mutex; 30 void (*power_hook)(struct hda_beep *beep, bool on); 31}; 32 33#ifdef CONFIG_SND_HDA_INPUT_BEEP 34int snd_hda_enable_beep_device(struct hda_codec *codec, int enable); 35int snd_hda_attach_beep_device(struct hda_codec *codec, int nid); 36void snd_hda_detach_beep_device(struct hda_codec *codec); 37#else 38static inline int snd_hda_attach_beep_device(struct hda_codec *codec, int nid) 39{ 40 return 0; 41} 42static inline void snd_hda_detach_beep_device(struct hda_codec *codec) 43{ 44} 45#endif 46#endif