ALSA: hda - Remove beep_mode=2
authorTakashi Iwai <tiwai@suse.de>
Tue, 3 Jul 2012 14:58:48 +0000 (16:58 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 3 Jul 2012 16:31:20 +0000 (18:31 +0200)
The beep_mode=2 option was introduced to make the beep mixer
controlling the beep input allocation/deallocation dynamically, so
that a user can switch between HD-audio codec digital beep and the
system beep only via mixer API.  This was necessary because the
keyboard driver took only the first input beep instance at that time.

However, the recent keyboard driver already processes the multiple
input instances, thus there is no point to keep this mode.

Let's remove it.

Acked-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Documentation/sound/alsa/ALSA-Configuration.txt
sound/pci/hda/Kconfig
sound/pci/hda/hda_beep.c
sound/pci/hda/hda_beep.h
sound/pci/hda/hda_intel.c

index 221b81016dba75e48b8ec0e253c13d97f5be5127..4e4d0bc9816f9d25f1c185d795f98b476bb50a2c 100644 (file)
@@ -875,8 +875,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
                setup before initializing the codecs.  This option is
                available only when CONFIG_SND_HDA_PATCH_LOADER=y is set.
                See HD-Audio.txt for details.
-    beep_mode  - Selects the beep registration mode (0=off, 1=on, 2=
-               dynamic registration via mute switch on/off); the default
+    beep_mode  - Selects the beep registration mode (0=off, 1=on); default
                value is set via CONFIG_SND_HDA_INPUT_BEEP_MODE kconfig.
     
     [Single (global) options]
index d03079764189dedef68484f72b649aabd460006c..194d625c1f83b31cf231783474c9e4f77769458b 100644 (file)
@@ -53,15 +53,14 @@ config SND_HDA_INPUT_BEEP
          driver. This interface is used to generate digital beeps.
 
 config SND_HDA_INPUT_BEEP_MODE
-       int "Digital beep registration mode (0=off, 1=on, 2=mute sw on/off)"
+       int "Digital beep registration mode (0=off, 1=on)"
        depends on SND_HDA_INPUT_BEEP=y
        default "1"
-       range 0 2
+       range 0 1
        help
          Set 0 to disable the digital beep interface for HD-audio by default.
          Set 1 to always enable the digital beep interface for HD-audio by
-         default. Set 2 to control the beep device registration to input
-         layer using a "Beep Switch" in mixer applications.
+         default.
 
 config SND_HDA_INPUT_JACK
        bool "Support jack plugging notification via input layer"
index 60738e52b8f9becb3ccd74786a2326748df11cb9..662de6e58b6fec627262579462bf5af9d93adc01 100644 (file)
@@ -162,28 +162,6 @@ static int snd_hda_do_attach(struct hda_beep *beep)
        return 0;
 }
 
-static void snd_hda_do_register(struct work_struct *work)
-{
-       struct hda_beep *beep =
-               container_of(work, struct hda_beep, register_work);
-
-       mutex_lock(&beep->mutex);
-       if (beep->enabled && !beep->dev)
-               snd_hda_do_attach(beep);
-       mutex_unlock(&beep->mutex);
-}
-
-static void snd_hda_do_unregister(struct work_struct *work)
-{
-       struct hda_beep *beep =
-               container_of(work, struct hda_beep, unregister_work.work);
-
-       mutex_lock(&beep->mutex);
-       if (!beep->enabled && beep->dev)
-               snd_hda_do_detach(beep);
-       mutex_unlock(&beep->mutex);
-}
-
 int snd_hda_enable_beep_device(struct hda_codec *codec, int enable)
 {
        struct hda_beep *beep = codec->beep;
@@ -197,15 +175,6 @@ int snd_hda_enable_beep_device(struct hda_codec *codec, int enable)
                        snd_hda_codec_write(beep->codec, beep->nid, 0,
                                                  AC_VERB_SET_BEEP_CONTROL, 0);
                }
-               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;
@@ -235,12 +204,10 @@ int snd_hda_attach_beep_device(struct hda_codec *codec, int nid)
        beep->mode = codec->beep_mode;
        codec->beep = beep;
 
-       INIT_WORK(&beep->register_work, &snd_hda_do_register);
-       INIT_DELAYED_WORK(&beep->unregister_work, &snd_hda_do_unregister);
        INIT_WORK(&beep->beep_work, &snd_hda_generate_beep);
        mutex_init(&beep->mutex);
 
-       if (beep->mode == HDA_BEEP_MODE_ON) {
+       if (beep->mode) {
                int err = snd_hda_do_attach(beep);
                if (err < 0) {
                        kfree(beep);
@@ -257,8 +224,6 @@ void snd_hda_detach_beep_device(struct hda_codec *codec)
 {
        struct hda_beep *beep = codec->beep;
        if (beep) {
-               cancel_work_sync(&beep->register_work);
-               cancel_delayed_work(&beep->unregister_work);
                if (beep->dev)
                        snd_hda_do_detach(beep);
                codec->beep = NULL;
index 55f0647458c70aebb79028d3131e6f520d63eb19..30e79d16f9f82da7d406126bfac98db3180743a7 100644 (file)
@@ -26,7 +26,6 @@
 
 #define HDA_BEEP_MODE_OFF      0
 #define HDA_BEEP_MODE_ON       1
-#define HDA_BEEP_MODE_SWREG    2
 
 /* beep information */
 struct hda_beep {
@@ -37,10 +36,7 @@ struct hda_beep {
        int tone;
        hda_nid_t nid;
        unsigned int enabled:1;
-       unsigned int request_enable:1;
        unsigned int linear_tone:1;     /* linear tone for IDT/STAC codec */
-       struct work_struct register_work; /* registration work */
-       struct delayed_work unregister_work; /* unregistration work */
        struct work_struct beep_work; /* scheduled task for beep event */
        struct mutex mutex;
 };
index 7757536b9d5faccfdd33d5ff2ece304d4282a2d0..334c0ba7d04b462ae75e740caeb0b5421b2beff4 100644 (file)
@@ -72,7 +72,7 @@ static int enable_msi = -1;
 static char *patch[SNDRV_CARDS];
 #endif
 #ifdef CONFIG_SND_HDA_INPUT_BEEP
-static int beep_mode[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] =
+static bool beep_mode[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] =
                                        CONFIG_SND_HDA_INPUT_BEEP_MODE};
 #endif
 
@@ -103,9 +103,9 @@ 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_param_array(beep_mode, bool, NULL, 0444);
 MODULE_PARM_DESC(beep_mode, "Select HDA Beep registration mode "
-                           "(0=off, 1=on, 2=mute switch on/off) (default=1).");
+                           "(0=off, 1=on) (default=1).");
 #endif
 
 #ifdef CONFIG_SND_HDA_POWER_SAVE