• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/sound/pci/hda/

Lines Matching defs:beep

38 	struct hda_beep *beep =
40 struct hda_codec *codec = beep->codec;
42 if (!beep->enabled)
46 snd_hda_codec_write(codec, beep->nid, 0,
47 AC_VERB_SET_BEEP_CONTROL, beep->tone);
50 /* (non-standard) Linear beep tone calculation for IDT/STAC codecs
52 * The tone frequency of beep generator on IDT/STAC codecs is
57 static int beep_linear_tone(struct hda_beep *beep, int hz)
65 hz = 0; /* turn off PC beep*/
75 /* HD-audio standard beep tone parameter calculation
81 static int beep_standard_tone(struct hda_beep *beep, int hz)
96 struct hda_beep *beep = input_get_drvdata(dev);
103 if (beep->linear_tone)
104 beep->tone = beep_linear_tone(beep, hz);
106 beep->tone = beep_standard_tone(beep, hz);
112 /* schedule beep event */
113 schedule_work(&beep->beep_work);
117 static void snd_hda_do_detach(struct hda_beep *beep)
119 input_unregister_device(beep->dev);
120 beep->dev = NULL;
121 cancel_work_sync(&beep->beep_work);
122 /* turn off beep for sure */
123 snd_hda_codec_write(beep->codec, beep->nid, 0,
127 static int snd_hda_do_attach(struct hda_beep *beep)
130 struct hda_codec *codec = beep->codec;
139 /* setup digital beep device */
141 input_dev->phys = beep->phys;
152 input_set_drvdata(input_dev, beep);
160 beep->dev = input_dev;
166 struct hda_beep *beep =
169 mutex_lock(&beep->mutex);
170 if (beep->enabled && !beep->dev)
171 snd_hda_do_attach(beep);
172 mutex_unlock(&beep->mutex);
177 struct hda_beep *beep =
180 mutex_lock(&beep->mutex);
181 if (!beep->enabled && beep->dev)
182 snd_hda_do_detach(beep);
183 mutex_unlock(&beep->mutex);
188 struct hda_beep *beep = codec->beep;
190 if (beep == NULL)
192 if (beep->enabled != enable) {
193 beep->enabled = enable;
195 /* turn off beep */
196 snd_hda_codec_write(beep->codec, beep->nid, 0,
199 if (beep->mode == HDA_BEEP_MODE_SWREG) {
201 cancel_delayed_work(&beep->unregister_work);
202 schedule_work(&beep->register_work);
204 schedule_delayed_work(&beep->unregister_work,
216 struct hda_beep *beep;
218 if (!snd_hda_get_bool_hint(codec, "beep"))
223 beep = kzalloc(sizeof(*beep), GFP_KERNEL);
224 if (beep == NULL)
226 snprintf(beep->phys, sizeof(beep->phys),
232 beep->nid = nid;
233 beep->codec = codec;
234 beep->mode = codec->beep_mode;
235 codec->beep = beep;
237 INIT_WORK(&beep->register_work, &snd_hda_do_register);
238 INIT_DELAYED_WORK(&beep->unregister_work, &snd_hda_do_unregister);
239 INIT_WORK(&beep->beep_work, &snd_hda_generate_beep);
240 mutex_init(&beep->mutex);
242 if (beep->mode == HDA_BEEP_MODE_ON) {
243 int err = snd_hda_do_attach(beep);
245 kfree(beep);
246 codec->beep = NULL;
257 struct hda_beep *beep = codec->beep;
258 if (beep) {
259 cancel_work_sync(&beep->register_work);
260 cancel_delayed_work(&beep->unregister_work);
261 if (beep->dev)
262 snd_hda_do_detach(beep);
263 codec->beep = NULL;
264 kfree(beep);