static void snd_hda_do_detach(struct hda_beep *beep) { if (beep->registered) input_unregister_device(beep->dev); else input_free_device(beep->dev); beep->dev = NULL; turn_off_beep(beep); }
static int beep_dev_disconnect(struct snd_device *device) { struct hda_beep *beep = device->device_data; if (beep->registered) input_unregister_device(beep->dev); else input_free_device(beep->dev); turn_off_beep(beep); return 0; }
/** * snd_hda_enable_beep_device - Turn on/off beep sound * @codec: the HDA codec * @enable: flag to turn on/off */ int snd_hda_enable_beep_device(struct hda_codec *codec, int enable) { struct hda_beep *beep = codec->beep; if (!beep) return 0; enable = !!enable; if (beep->enabled != enable) { beep->enabled = enable; if (!enable) turn_off_beep(beep); return 1; } return 0; }
/** * snd_hda_enable_beep_device - Turn on/off beep sound * @codec: the HDA codec * @enable: flag to turn on/off */ int snd_hda_enable_beep_device(struct hda_codec *codec, int enable) { struct hda_beep *beep = codec->beep; if (!beep) return 0; enable = !!enable; if (beep->enabled != enable) { beep->enabled = enable; if (!enable) turn_off_beep(beep); if (beep->mode == HDA_BEEP_MODE_SWREG) { if (enable) { cancel_delayed_work(&beep->unregister_work); schedule_work(&beep->register_work); } else { schedule_delayed_work(&beep->unregister_work, HZ); } } return 1; } return 0; }