|
@@ -64,6 +64,10 @@ static int enable_msi = -1;
|
|
|
#ifdef CONFIG_SND_HDA_PATCH_LOADER
|
|
|
static char *patch[SNDRV_CARDS];
|
|
|
#endif
|
|
|
+#ifdef CONFIG_SND_HDA_INPUT_BEEP
|
|
|
+static int beep_mode[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] =
|
|
|
+ CONFIG_SND_HDA_INPUT_BEEP_MODE};
|
|
|
+#endif
|
|
|
|
|
|
module_param_array(index, int, NULL, 0444);
|
|
|
MODULE_PARM_DESC(index, "Index value for Intel HD audio interface.");
|
|
@@ -91,6 +95,11 @@ MODULE_PARM_DESC(enable_msi, "Enable Message Signaled Interrupt (MSI)");
|
|
|
module_param_array(patch, charp, NULL, 0444);
|
|
|
MODULE_PARM_DESC(patch, "Patch file for Intel HD audio interface.");
|
|
|
#endif
|
|
|
+#ifdef CONFIG_SND_HDA_INPUT_BEEP
|
|
|
+module_param_array(beep_mode, int, NULL, 0444);
|
|
|
+MODULE_PARM_DESC(beep_mode, "Select HDA Beep registration mode "
|
|
|
+ "(0=off, 1=on, 2=mute switch on/off) (default=1).");
|
|
|
+#endif
|
|
|
|
|
|
#ifdef CONFIG_SND_HDA_POWER_SAVE
|
|
|
static int power_save = CONFIG_SND_HDA_POWER_SAVE_DEFAULT;
|
|
@@ -404,6 +413,7 @@ struct azx {
|
|
|
unsigned short codec_mask;
|
|
|
int codec_probe_mask; /* copied from probe_mask option */
|
|
|
struct hda_bus *bus;
|
|
|
+ unsigned int beep_mode;
|
|
|
|
|
|
/* CORB/RIRB */
|
|
|
struct azx_rb corb;
|
|
@@ -1404,6 +1414,7 @@ static int __devinit azx_codec_create(struct azx *chip, const char *model)
|
|
|
err = snd_hda_codec_new(chip->bus, c, &codec);
|
|
|
if (err < 0)
|
|
|
continue;
|
|
|
+ codec->beep_mode = chip->beep_mode;
|
|
|
codecs++;
|
|
|
}
|
|
|
}
|
|
@@ -2579,6 +2590,10 @@ static int __devinit azx_probe(struct pci_dev *pci,
|
|
|
goto out_free;
|
|
|
card->private_data = chip;
|
|
|
|
|
|
+#ifdef CONFIG_SND_HDA_INPUT_BEEP
|
|
|
+ chip->beep_mode = beep_mode[dev];
|
|
|
+#endif
|
|
|
+
|
|
|
/* create codec instances */
|
|
|
err = azx_codec_create(chip, model[dev]);
|
|
|
if (err < 0)
|