int snd_ctl_boolean_stereo_info(struct snd_kcontrol *kcontrol,
                                struct snd_ctl_elem_info *uinfo);
 
+/*
+ * virtual master control
+ */
+struct snd_kcontrol *snd_ctl_make_virtual_master(char *name,
+                                                const unsigned int *tlv);
+int snd_ctl_add_slave(struct snd_kcontrol *master, struct snd_kcontrol *slave);
+                     
 #endif /* __SOUND_CONTROL_H */
 
          It is usually not required, but if you have trouble with
          sound clicking when system is loaded, it may help to determine
          the process or driver which causes the scheduling gaps.
+
+config SND_VMASTER
+       bool
+       depends on SND
 
 snd-y     := sound.o init.o memory.o info.o control.o misc.o device.o
 snd-$(CONFIG_ISA_DMA_API) += isadma.o
 snd-$(CONFIG_SND_OSSEMUL) += sound_oss.o info_oss.o
+snd-$(CONFIG_SND_VMASTER) += vmaster.o
 
 snd-pcm-objs := pcm.o pcm_native.o pcm_lib.o pcm_timer.o pcm_misc.o \
                pcm_memory.o
 
        return 0;
 }
 
+EXPORT_SYMBOL(snd_ctl_add_slave);
+
 /*
  * ctl callbacks for master controls
  */
        }
        return kctl;
 }
+
+EXPORT_SYMBOL(snd_ctl_make_virtual_master);
 
        tristate "Intel HD Audio"
        depends on SND
        select SND_PCM
+       select SND_VMASTER
        help
          Say Y here to include support for Intel "High Definition
          Audio" (Azalia) motherboard devices.
 
                                 hda_nid_t nid);
 #endif /* CONFIG_SND_HDA_POWER_SAVE */
 
-/*
- * virtual master control
- */
-struct snd_kcontrol *snd_ctl_make_virtual_master(char *name,
-                                                const unsigned int *tlv);
-int snd_ctl_add_slave(struct snd_kcontrol *master, struct snd_kcontrol *slave);
-                     
 #endif /* __SOUND_HDA_LOCAL_H */