aboutsummaryrefslogtreecommitdiff
path: root/sound/pci/hda/hda_beep.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-11-18 08:05:05 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2008-11-18 08:05:05 -0800
commitaf94ce063ce5e496f0da0434dc925dd9a665d24f (patch)
treea8345cdebc71ceb58881a714ee6d03e83da63fcd /sound/pci/hda/hda_beep.c
parent4e14e833ac3b97a4aa8803eea49f899adc5bb5f4 (diff)
parentef71b1b87521ff93ed77b3e8f3e149afb392761c (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: hda - Fix resume of GPIO unsol event for STAC/IDT ALSA: hda - Add quirks for HP Pavilion DV models ALSA: hda - Fix GPIO initialization in patch_stac92hd71bxx() ALSA: hda - Check model type instead of SSID in patch_92hd71bxx() ALSA: sound/pci/pcxhr/pcxhr.c: introduce missing kfree and pci_disable_device ALSA: hda: STAC_VREF_EVENT value change ALSA: hda - Missing NULL check in hda_beep.c ALSA: hda - Add digital beep playback switch for STAC/IDT codecs
Diffstat (limited to 'sound/pci/hda/hda_beep.c')
-rw-r--r--sound/pci/hda/hda_beep.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_beep.c b/sound/pci/hda/hda_beep.c
index 9b77b3e0fa9..3ecd7e797de 100644
--- a/sound/pci/hda/hda_beep.c
+++ b/sound/pci/hda/hda_beep.c
@@ -37,6 +37,9 @@ static void snd_hda_generate_beep(struct work_struct *work)
container_of(work, struct hda_beep, beep_work);
struct hda_codec *codec = beep->codec;
+ if (!beep->enabled)
+ return;
+
/* generate tone */
snd_hda_codec_write_cache(codec, beep->nid, 0,
AC_VERB_SET_BEEP_CONTROL, beep->tone);
@@ -85,6 +88,10 @@ int snd_hda_attach_beep_device(struct hda_codec *codec, int nid)
snprintf(beep->phys, sizeof(beep->phys),
"card%d/codec#%d/beep0", codec->bus->card->number, codec->addr);
input_dev = input_allocate_device();
+ if (!input_dev) {
+ kfree(beep);
+ return -ENOMEM;
+ }
/* setup digital beep device */
input_dev->name = "HDA Digital PCBeep";
@@ -115,6 +122,7 @@ int snd_hda_attach_beep_device(struct hda_codec *codec, int nid)
beep->nid = nid;
beep->dev = input_dev;
beep->codec = codec;
+ beep->enabled = 1;
codec->beep = beep;
INIT_WORK(&beep->beep_work, &snd_hda_generate_beep);