linux/sound/pci/hda/hda_beep.h
<<
>>
Prefs
   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
  47