aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2007-07-23 09:42:26 -0400
committerJaroslav Kysela <perex@perex.cz>2007-10-16 09:57:45 -0400
commita5ce88909d3007caa7b65996a8f6784350beb2a6 (patch)
treee9882165ba7f7fe88dd8de817028edefadb0d496
parentb9ed4f2b68dc47b0c35c1a3ae8ae97c2517d5177 (diff)
[ALSA] Clean up with common snd_ctl_boolean_*_info callbacks
Clean up codes using the new common snd_ctl_boolean_*_info() callbacks. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
-rw-r--r--include/sound/soc.h3
-rw-r--r--sound/aoa/codecs/snd-aoa-codec-onyx.c20
-rw-r--r--sound/aoa/codecs/snd-aoa-codec-tas.c20
-rw-r--r--sound/aoa/fabrics/snd-aoa-fabric-layout.c10
-rw-r--r--sound/drivers/dummy.c10
-rw-r--r--sound/drivers/mts64.c10
-rw-r--r--sound/drivers/vx/vx_mixer.c18
-rw-r--r--sound/i2c/other/ak4114.c10
-rw-r--r--sound/i2c/other/ak4117.c10
-rw-r--r--sound/i2c/other/ak4xxx-adda.c10
-rw-r--r--sound/i2c/other/pt2258.c10
-rw-r--r--sound/i2c/tea6330t.c10
-rw-r--r--sound/isa/es18xx.c18
-rw-r--r--sound/isa/gus/gus_mixer.c9
-rw-r--r--sound/isa/opti9xx/miro.c18
-rw-r--r--sound/isa/sb/sb16_csp.c9
-rw-r--r--sound/pci/ac97/ac97_patch.c19
-rw-r--r--sound/pci/ali5451/ali5451.c10
-rw-r--r--sound/pci/au88x0/au88x0_eq.c10
-rw-r--r--sound/pci/bt87x.c10
-rw-r--r--sound/pci/ca0106/ca0106_mixer.c10
-rw-r--r--sound/pci/cmipci.c10
-rw-r--r--sound/pci/cs46xx/cs46xx_lib.c10
-rw-r--r--sound/pci/echoaudio/echoaudio.c33
-rw-r--r--sound/pci/emu10k1/emu10k1x.c9
-rw-r--r--sound/pci/emu10k1/emumixer.c28
-rw-r--r--sound/pci/ens1370.c40
-rw-r--r--sound/pci/es1938.c20
-rw-r--r--sound/pci/hda/hda_codec.c10
-rw-r--r--sound/pci/hda/patch_analog.c10
-rw-r--r--sound/pci/hda/patch_conexant.c10
-rw-r--r--sound/pci/hda/patch_realtek.c20
-rw-r--r--sound/pci/hda/patch_si3054.c10
-rw-r--r--sound/pci/hda/patch_sigmatel.c9
-rw-r--r--sound/pci/ice1712/aureon.c45
-rw-r--r--sound/pci/ice1712/delta.c11
-rw-r--r--sound/pci/ice1712/ews.c18
-rw-r--r--sound/pci/ice1712/ice1712.c48
-rw-r--r--sound/pci/ice1712/ice1724.c40
-rw-r--r--sound/pci/ice1712/phase.c23
-rw-r--r--sound/pci/ice1712/pontis.c27
-rw-r--r--sound/pci/ice1712/prodigy192.c27
-rw-r--r--sound/pci/ice1712/wtm.c29
-rw-r--r--sound/pci/mixart/mixart_mixer.c9
-rw-r--r--sound/pci/pcxhr/pcxhr_mixer.c9
-rw-r--r--sound/pci/rme32.c12
-rw-r--r--sound/pci/rme96.c11
-rw-r--r--sound/pci/rme9652/hdsp.c63
-rw-r--r--sound/pci/rme9652/hdspm.c70
-rw-r--r--sound/pci/rme9652/rme9652.c27
-rw-r--r--sound/pci/trident/trident_main.c20
-rw-r--r--sound/pci/via82xx.c10
-rw-r--r--sound/pci/ymfpci/ymfpci_main.c35
-rw-r--r--sound/pcmcia/vx/vxp_mixer.c9
-rw-r--r--sound/ppc/daca.c10
-rw-r--r--sound/ppc/pmac.c23
-rw-r--r--sound/ppc/pmac.h4
-rw-r--r--sound/sh/aica.c10
-rw-r--r--sound/soc/soc-core.c20
-rw-r--r--sound/usb/usbmixer.c9
60 files changed, 119 insertions, 973 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index db6edba8ef08..f47ef1f75f18 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -201,8 +201,7 @@ int snd_soc_info_volsw(struct snd_kcontrol *kcontrol,
201 struct snd_ctl_elem_info *uinfo); 201 struct snd_ctl_elem_info *uinfo);
202int snd_soc_info_volsw_ext(struct snd_kcontrol *kcontrol, 202int snd_soc_info_volsw_ext(struct snd_kcontrol *kcontrol,
203 struct snd_ctl_elem_info *uinfo); 203 struct snd_ctl_elem_info *uinfo);
204int snd_soc_info_bool_ext(struct snd_kcontrol *kcontrol, 204#define snd_soc_info_bool_ext snd_ctl_boolean_mono
205 struct snd_ctl_elem_info *uinfo);
206int snd_soc_get_volsw(struct snd_kcontrol *kcontrol, 205int snd_soc_get_volsw(struct snd_kcontrol *kcontrol,
207 struct snd_ctl_elem_value *ucontrol); 206 struct snd_ctl_elem_value *ucontrol);
208int snd_soc_put_volsw(struct snd_kcontrol *kcontrol, 207int snd_soc_put_volsw(struct snd_kcontrol *kcontrol,
diff --git a/sound/aoa/codecs/snd-aoa-codec-onyx.c b/sound/aoa/codecs/snd-aoa-codec-onyx.c
index 028852374f21..71e3f9360658 100644
--- a/sound/aoa/codecs/snd-aoa-codec-onyx.c
+++ b/sound/aoa/codecs/snd-aoa-codec-onyx.c
@@ -297,15 +297,7 @@ static struct snd_kcontrol_new capture_source_control = {
297 .put = onyx_snd_capture_source_put, 297 .put = onyx_snd_capture_source_put,
298}; 298};
299 299
300static int onyx_snd_mute_info(struct snd_kcontrol *kcontrol, 300#define onyx_snd_mute_info snd_ctl_boolean_stereo_info
301 struct snd_ctl_elem_info *uinfo)
302{
303 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
304 uinfo->count = 2;
305 uinfo->value.integer.min = 0;
306 uinfo->value.integer.max = 1;
307 return 0;
308}
309 301
310static int onyx_snd_mute_get(struct snd_kcontrol *kcontrol, 302static int onyx_snd_mute_get(struct snd_kcontrol *kcontrol,
311 struct snd_ctl_elem_value *ucontrol) 303 struct snd_ctl_elem_value *ucontrol)
@@ -359,15 +351,7 @@ static struct snd_kcontrol_new mute_control = {
359}; 351};
360 352
361 353
362static int onyx_snd_single_bit_info(struct snd_kcontrol *kcontrol, 354#define onyx_snd_single_bit_info snd_ctl_boolean_mono_info
363 struct snd_ctl_elem_info *uinfo)
364{
365 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
366 uinfo->count = 1;
367 uinfo->value.integer.min = 0;
368 uinfo->value.integer.max = 1;
369 return 0;
370}
371 355
372#define FLAG_POLARITY_INVERT 1 356#define FLAG_POLARITY_INVERT 1
373#define FLAG_SPDIFLOCK 2 357#define FLAG_SPDIFLOCK 2
diff --git a/sound/aoa/codecs/snd-aoa-codec-tas.c b/sound/aoa/codecs/snd-aoa-codec-tas.c
index 3cbfe4619aa8..70c341684794 100644
--- a/sound/aoa/codecs/snd-aoa-codec-tas.c
+++ b/sound/aoa/codecs/snd-aoa-codec-tas.c
@@ -272,15 +272,7 @@ static struct snd_kcontrol_new volume_control = {
272 .put = tas_snd_vol_put, 272 .put = tas_snd_vol_put,
273}; 273};
274 274
275static int tas_snd_mute_info(struct snd_kcontrol *kcontrol, 275#define tas_snd_mute_info snd_ctl_boolean_stereo_info
276 struct snd_ctl_elem_info *uinfo)
277{
278 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
279 uinfo->count = 2;
280 uinfo->value.integer.min = 0;
281 uinfo->value.integer.max = 1;
282 return 0;
283}
284 276
285static int tas_snd_mute_get(struct snd_kcontrol *kcontrol, 277static int tas_snd_mute_get(struct snd_kcontrol *kcontrol,
286 struct snd_ctl_elem_value *ucontrol) 278 struct snd_ctl_elem_value *ucontrol)
@@ -431,15 +423,7 @@ static struct snd_kcontrol_new drc_range_control = {
431 .put = tas_snd_drc_range_put, 423 .put = tas_snd_drc_range_put,
432}; 424};
433 425
434static int tas_snd_drc_switch_info(struct snd_kcontrol *kcontrol, 426#define tas_snd_drc_switch_info snd_ctl_boolean_mono_info
435 struct snd_ctl_elem_info *uinfo)
436{
437 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
438 uinfo->count = 1;
439 uinfo->value.integer.min = 0;
440 uinfo->value.integer.max = 1;
441 return 0;
442}
443 427
444static int tas_snd_drc_switch_get(struct snd_kcontrol *kcontrol, 428static int tas_snd_drc_switch_get(struct snd_kcontrol *kcontrol,
445 struct snd_ctl_elem_value *ucontrol) 429 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/aoa/fabrics/snd-aoa-fabric-layout.c b/sound/aoa/fabrics/snd-aoa-fabric-layout.c
index 98806283d1b2..8b2ba99d7f8a 100644
--- a/sound/aoa/fabrics/snd-aoa-fabric-layout.c
+++ b/sound/aoa/fabrics/snd-aoa-fabric-layout.c
@@ -582,15 +582,7 @@ static int layouts_list_items;
582 * make the fabric handle all the card stuff, etc... */ 582 * make the fabric handle all the card stuff, etc... */
583static struct layout_dev *layout_device; 583static struct layout_dev *layout_device;
584 584
585static int control_info(struct snd_kcontrol *kcontrol, 585#define control_info snd_ctl_boolean_mono_info
586 struct snd_ctl_elem_info *uinfo)
587{
588 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
589 uinfo->count = 1;
590 uinfo->value.integer.min = 0;
591 uinfo->value.integer.max = 1;
592 return 0;
593}
594 586
595#define AMP_CONTROL(n, description) \ 587#define AMP_CONTROL(n, description) \
596static int n##_control_get(struct snd_kcontrol *kcontrol, \ 588static int n##_control_get(struct snd_kcontrol *kcontrol, \
diff --git a/sound/drivers/dummy.c b/sound/drivers/dummy.c
index 4360ae9de19c..77bca5fdda50 100644
--- a/sound/drivers/dummy.c
+++ b/sound/drivers/dummy.c
@@ -510,15 +510,7 @@ static const DECLARE_TLV_DB_SCALE(db_scale_dummy, -4500, 30, 0);
510 .get = snd_dummy_capsrc_get, .put = snd_dummy_capsrc_put, \ 510 .get = snd_dummy_capsrc_get, .put = snd_dummy_capsrc_put, \
511 .private_value = addr } 511 .private_value = addr }
512 512
513static int snd_dummy_capsrc_info(struct snd_kcontrol *kcontrol, 513#define snd_dummy_capsrc_info snd_ctl_boolean_stereo_info
514 struct snd_ctl_elem_info *uinfo)
515{
516 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
517 uinfo->count = 2;
518 uinfo->value.integer.min = 0;
519 uinfo->value.integer.max = 1;
520 return 0;
521}
522 514
523static int snd_dummy_capsrc_get(struct snd_kcontrol *kcontrol, 515static int snd_dummy_capsrc_get(struct snd_kcontrol *kcontrol,
524 struct snd_ctl_elem_value *ucontrol) 516 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/drivers/mts64.c b/sound/drivers/mts64.c
index 2025db5947ae..911c159bb3d3 100644
--- a/sound/drivers/mts64.c
+++ b/sound/drivers/mts64.c
@@ -440,15 +440,7 @@ static void mts64_write_midi(struct mts64 *mts, u8 c,
440 *********************************************************************/ 440 *********************************************************************/
441 441
442/* SMPTE Switch */ 442/* SMPTE Switch */
443static int snd_mts64_ctl_smpte_switch_info(struct snd_kcontrol *kctl, 443#define snd_mts64_ctl_smpte_switch_info snd_ctl_boolean_mono_info
444 struct snd_ctl_elem_info *uinfo)
445{
446 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
447 uinfo->count = 1;
448 uinfo->value.integer.min = 0;
449 uinfo->value.integer.max = 1;
450 return 0;
451}
452 444
453static int snd_mts64_ctl_smpte_switch_get(struct snd_kcontrol* kctl, 445static int snd_mts64_ctl_smpte_switch_get(struct snd_kcontrol* kctl,
454 struct snd_ctl_elem_value *uctl) 446 struct snd_ctl_elem_value *uctl)
diff --git a/sound/drivers/vx/vx_mixer.c b/sound/drivers/vx/vx_mixer.c
index f63152a6a223..b8fcd79a7e11 100644
--- a/sound/drivers/vx/vx_mixer.c
+++ b/sound/drivers/vx/vx_mixer.c
@@ -647,14 +647,7 @@ static int vx_audio_monitor_put(struct snd_kcontrol *kcontrol, struct snd_ctl_el
647 return 0; 647 return 0;
648} 648}
649 649
650static int vx_audio_sw_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 650#define vx_audio_sw_info snd_ctl_boolean_stereo_info
651{
652 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
653 uinfo->count = 2;
654 uinfo->value.integer.min = 0;
655 uinfo->value.integer.max = 1;
656 return 0;
657}
658 651
659static int vx_audio_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 652static int vx_audio_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
660{ 653{
@@ -865,14 +858,7 @@ static int vx_peak_meter_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_
865 return 0; 858 return 0;
866} 859}
867 860
868static int vx_saturation_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 861#define vx_saturation_info snd_ctl_boolean_stereo_info
869{
870 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
871 uinfo->count = 2;
872 uinfo->value.integer.min = 0;
873 uinfo->value.integer.max = 1;
874 return 0;
875}
876 862
877static int vx_saturation_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 863static int vx_saturation_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
878{ 864{
diff --git a/sound/i2c/other/ak4114.c b/sound/i2c/other/ak4114.c
index 1efb973137a6..f2b81e39b8cf 100644
--- a/sound/i2c/other/ak4114.c
+++ b/sound/i2c/other/ak4114.c
@@ -200,15 +200,7 @@ static int snd_ak4114_in_error_get(struct snd_kcontrol *kcontrol,
200 return 0; 200 return 0;
201} 201}
202 202
203static int snd_ak4114_in_bit_info(struct snd_kcontrol *kcontrol, 203#define snd_ak4114_in_bit_info snd_ctl_boolean_mono_info
204 struct snd_ctl_elem_info *uinfo)
205{
206 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
207 uinfo->count = 1;
208 uinfo->value.integer.min = 0;
209 uinfo->value.integer.max = 1;
210 return 0;
211}
212 204
213static int snd_ak4114_in_bit_get(struct snd_kcontrol *kcontrol, 205static int snd_ak4114_in_bit_get(struct snd_kcontrol *kcontrol,
214 struct snd_ctl_elem_value *ucontrol) 206 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/i2c/other/ak4117.c b/sound/i2c/other/ak4117.c
index c022f29da2f7..1614973e4899 100644
--- a/sound/i2c/other/ak4117.c
+++ b/sound/i2c/other/ak4117.c
@@ -181,15 +181,7 @@ static int snd_ak4117_in_error_get(struct snd_kcontrol *kcontrol,
181 return 0; 181 return 0;
182} 182}
183 183
184static int snd_ak4117_in_bit_info(struct snd_kcontrol *kcontrol, 184#define snd_ak4117_in_bit_info snd_ctl_boolean_mono_info
185 struct snd_ctl_elem_info *uinfo)
186{
187 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
188 uinfo->count = 1;
189 uinfo->value.integer.min = 0;
190 uinfo->value.integer.max = 1;
191 return 0;
192}
193 185
194static int snd_ak4117_in_bit_get(struct snd_kcontrol *kcontrol, 186static int snd_ak4117_in_bit_get(struct snd_kcontrol *kcontrol,
195 struct snd_ctl_elem_value *ucontrol) 187 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/i2c/other/ak4xxx-adda.c b/sound/i2c/other/ak4xxx-adda.c
index fd335159f849..0fa107289527 100644
--- a/sound/i2c/other/ak4xxx-adda.c
+++ b/sound/i2c/other/ak4xxx-adda.c
@@ -463,15 +463,7 @@ static int snd_akm4xxx_deemphasis_put(struct snd_kcontrol *kcontrol,
463 return change; 463 return change;
464} 464}
465 465
466static int ak4xxx_switch_info(struct snd_kcontrol *kcontrol, 466#define ak4xxx_switch_info snd_ctl_boolean_mono_info
467 struct snd_ctl_elem_info *uinfo)
468{
469 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
470 uinfo->count = 1;
471 uinfo->value.integer.min = 0;
472 uinfo->value.integer.max = 1;
473 return 0;
474}
475 467
476static int ak4xxx_switch_get(struct snd_kcontrol *kcontrol, 468static int ak4xxx_switch_get(struct snd_kcontrol *kcontrol,
477 struct snd_ctl_elem_value *ucontrol) 469 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/i2c/other/pt2258.c b/sound/i2c/other/pt2258.c
index e91cc3b44de5..00c83d8b32b1 100644
--- a/sound/i2c/other/pt2258.c
+++ b/sound/i2c/other/pt2258.c
@@ -140,15 +140,7 @@ static int pt2258_stereo_volume_put(struct snd_kcontrol *kcontrol,
140 return -EIO; 140 return -EIO;
141} 141}
142 142
143static int pt2258_switch_info(struct snd_kcontrol *kcontrol, 143#define pt2258_switch_info snd_ctl_boolean_mono_info
144 struct snd_ctl_elem_info *uinfo)
145{
146 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
147 uinfo->count = 1;
148 uinfo->value.integer.min = 0;
149 uinfo->value.integer.max = 1;
150 return 0;
151}
152 144
153static int pt2258_switch_get(struct snd_kcontrol *kcontrol, 145static int pt2258_switch_get(struct snd_kcontrol *kcontrol,
154 struct snd_ctl_elem_value *ucontrol) 146 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/i2c/tea6330t.c b/sound/i2c/tea6330t.c
index ae5b1e3a68ce..21ff97405c41 100644
--- a/sound/i2c/tea6330t.c
+++ b/sound/i2c/tea6330t.c
@@ -142,15 +142,7 @@ static int snd_tea6330t_put_master_volume(struct snd_kcontrol *kcontrol,
142 .info = snd_tea6330t_info_master_switch, \ 142 .info = snd_tea6330t_info_master_switch, \
143 .get = snd_tea6330t_get_master_switch, .put = snd_tea6330t_put_master_switch } 143 .get = snd_tea6330t_get_master_switch, .put = snd_tea6330t_put_master_switch }
144 144
145static int snd_tea6330t_info_master_switch(struct snd_kcontrol *kcontrol, 145#define snd_tea6330t_info_master_switch snd_ctl_boolean_stereo_info
146 struct snd_ctl_elem_info *uinfo)
147{
148 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
149 uinfo->count = 2;
150 uinfo->value.integer.min = 0;
151 uinfo->value.integer.max = 1;
152 return 0;
153}
154 146
155static int snd_tea6330t_get_master_switch(struct snd_kcontrol *kcontrol, 147static int snd_tea6330t_get_master_switch(struct snd_kcontrol *kcontrol,
156 struct snd_ctl_elem_value *ucontrol) 148 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/isa/es18xx.c b/sound/isa/es18xx.c
index f7732bf90be3..816550c2afdc 100644
--- a/sound/isa/es18xx.c
+++ b/sound/isa/es18xx.c
@@ -1071,14 +1071,7 @@ static int snd_es18xx_put_mux(struct snd_kcontrol *kcontrol, struct snd_ctl_elem
1071 return (snd_es18xx_mixer_bits(chip, 0x1c, 0x07, val) != val) || retVal; 1071 return (snd_es18xx_mixer_bits(chip, 0x1c, 0x07, val) != val) || retVal;
1072} 1072}
1073 1073
1074static int snd_es18xx_info_spatializer_enable(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1074#define snd_es18xx_info_spatializer_enable snd_ctl_boolean_mono_info
1075{
1076 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1077 uinfo->count = 1;
1078 uinfo->value.integer.min = 0;
1079 uinfo->value.integer.max = 1;
1080 return 0;
1081}
1082 1075
1083static int snd_es18xx_get_spatializer_enable(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1076static int snd_es18xx_get_spatializer_enable(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1084{ 1077{
@@ -1120,14 +1113,7 @@ static int snd_es18xx_get_hw_volume(struct snd_kcontrol *kcontrol, struct snd_ct
1120 return 0; 1113 return 0;
1121} 1114}
1122 1115
1123static int snd_es18xx_info_hw_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1116#define snd_es18xx_info_hw_switch snd_ctl_boolean_stereo_info
1124{
1125 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1126 uinfo->count = 2;
1127 uinfo->value.integer.min = 0;
1128 uinfo->value.integer.max = 1;
1129 return 0;
1130}
1131 1117
1132static int snd_es18xx_get_hw_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1118static int snd_es18xx_get_hw_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1133{ 1119{
diff --git a/sound/isa/gus/gus_mixer.c b/sound/isa/gus/gus_mixer.c
index acc25a297200..7f6aefd4b074 100644
--- a/sound/isa/gus/gus_mixer.c
+++ b/sound/isa/gus/gus_mixer.c
@@ -36,14 +36,7 @@
36 .get = snd_gf1_get_single, .put = snd_gf1_put_single, \ 36 .get = snd_gf1_get_single, .put = snd_gf1_put_single, \
37 .private_value = shift | (invert << 8) } 37 .private_value = shift | (invert << 8) }
38 38
39static int snd_gf1_info_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 39#define snd_gf1_info_single snd_ctl_boolean_mono_info
40{
41 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
42 uinfo->count = 1;
43 uinfo->value.integer.min = 0;
44 uinfo->value.integer.max = 1;
45 return 0;
46}
47 40
48static int snd_gf1_get_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 41static int snd_gf1_get_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
49{ 42{
diff --git a/sound/isa/opti9xx/miro.c b/sound/isa/opti9xx/miro.c
index cd29b30b362e..d295936611f8 100644
--- a/sound/isa/opti9xx/miro.c
+++ b/sound/isa/opti9xx/miro.c
@@ -242,14 +242,7 @@ static int aci_setvalue(struct snd_miro * miro, unsigned char index, int value)
242 * MIXER part 242 * MIXER part
243 */ 243 */
244 244
245static int snd_miro_info_capture(struct snd_kcontrol *kcontrol, 245#define snd_miro_info_capture snd_ctl_boolean_mono_info
246 struct snd_ctl_elem_info *uinfo)
247{
248 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
249 uinfo->count = 1;
250
251 return 0;
252}
253 246
254static int snd_miro_get_capture(struct snd_kcontrol *kcontrol, 247static int snd_miro_get_capture(struct snd_kcontrol *kcontrol,
255 struct snd_ctl_elem_value *ucontrol) 248 struct snd_ctl_elem_value *ucontrol)
@@ -344,14 +337,7 @@ static int snd_miro_put_preamp(struct snd_kcontrol *kcontrol,
344 return change; 337 return change;
345} 338}
346 339
347static int snd_miro_info_amp(struct snd_kcontrol *kcontrol, 340#define snd_miro_info_amp snd_ctl_boolean_mono_info
348 struct snd_ctl_elem_info *uinfo)
349{
350 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
351 uinfo->count = 1;
352
353 return 0;
354}
355 341
356static int snd_miro_get_amp(struct snd_kcontrol *kcontrol, 342static int snd_miro_get_amp(struct snd_kcontrol *kcontrol,
357 struct snd_ctl_elem_value *ucontrol) 343 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/isa/sb/sb16_csp.c b/sound/isa/sb/sb16_csp.c
index b279f2308aef..3682059787ab 100644
--- a/sound/isa/sb/sb16_csp.c
+++ b/sound/isa/sb/sb16_csp.c
@@ -979,14 +979,7 @@ static int snd_sb_csp_restart(struct snd_sb_csp * p)
979 * QSound mixer control for PCM 979 * QSound mixer control for PCM
980 */ 980 */
981 981
982static int snd_sb_qsound_switch_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 982#define snd_sb_qsound_switch_info snd_ctl_boolean_mono_info
983{
984 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
985 uinfo->count = 1;
986 uinfo->value.integer.min = 0;
987 uinfo->value.integer.max = 1;
988 return 0;
989}
990 983
991static int snd_sb_qsound_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 984static int snd_sb_qsound_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
992{ 985{
diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c
index 581ebba4d1a7..630c961895dc 100644
--- a/sound/pci/ac97/ac97_patch.c
+++ b/sound/pci/ac97/ac97_patch.c
@@ -1880,14 +1880,7 @@ static int patch_ad1981b(struct snd_ac97 *ac97)
1880 return 0; 1880 return 0;
1881} 1881}
1882 1882
1883static int snd_ac97_ad1888_lohpsel_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1883#define snd_ac97_ad1888_lohpsel_info snd_ctl_boolean_mono_info
1884{
1885 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1886 uinfo->count = 1;
1887 uinfo->value.integer.min = 0;
1888 uinfo->value.integer.max = 1;
1889 return 0;
1890}
1891 1884
1892static int snd_ac97_ad1888_lohpsel_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1885static int snd_ac97_ad1888_lohpsel_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1893{ 1886{
@@ -2186,15 +2179,7 @@ static int patch_ad1985(struct snd_ac97 * ac97)
2186 return 0; 2179 return 0;
2187} 2180}
2188 2181
2189static int snd_ac97_ad1986_bool_info(struct snd_kcontrol *kcontrol, 2182#define snd_ac97_ad1986_bool_info snd_ctl_boolean_mono_info
2190 struct snd_ctl_elem_info *uinfo)
2191{
2192 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2193 uinfo->count = 1;
2194 uinfo->value.integer.min = 0;
2195 uinfo->value.integer.max = 1;
2196 return 0;
2197}
2198 2183
2199static int snd_ac97_ad1986_lososel_get(struct snd_kcontrol *kcontrol, 2184static int snd_ac97_ad1986_lososel_get(struct snd_kcontrol *kcontrol,
2200 struct snd_ctl_elem_value *ucontrol) 2185 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c
index 05b4c8696941..4c2bd7adf674 100644
--- a/sound/pci/ali5451/ali5451.c
+++ b/sound/pci/ali5451/ali5451.c
@@ -1804,15 +1804,7 @@ static int __devinit snd_ali_build_pcms(struct snd_ali *codec)
1804.info = snd_ali5451_spdif_info, .get = snd_ali5451_spdif_get, \ 1804.info = snd_ali5451_spdif_info, .get = snd_ali5451_spdif_get, \
1805.put = snd_ali5451_spdif_put, .private_value = value} 1805.put = snd_ali5451_spdif_put, .private_value = value}
1806 1806
1807static int snd_ali5451_spdif_info(struct snd_kcontrol *kcontrol, 1807#define snd_ali5451_spdif_info snd_ctl_boolean_mono_info
1808 struct snd_ctl_elem_info *uinfo)
1809{
1810 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1811 uinfo->count = 1;
1812 uinfo->value.integer.min = 0;
1813 uinfo->value.integer.max = 1;
1814 return 0;
1815}
1816 1808
1817static int snd_ali5451_spdif_get(struct snd_kcontrol *kcontrol, 1809static int snd_ali5451_spdif_get(struct snd_kcontrol *kcontrol,
1818 struct snd_ctl_elem_value *ucontrol) 1810 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/au88x0/au88x0_eq.c b/sound/pci/au88x0/au88x0_eq.c
index 0c86a31c4336..38602b85874d 100644
--- a/sound/pci/au88x0/au88x0_eq.c
+++ b/sound/pci/au88x0/au88x0_eq.c
@@ -728,15 +728,7 @@ static void vortex_Eqlzr_shutdown(vortex_t * vortex)
728/* ALSA interface */ 728/* ALSA interface */
729 729
730/* Control interface */ 730/* Control interface */
731static int 731#define snd_vortex_eqtoggle_info snd_ctl_boolean_mono_info
732snd_vortex_eqtoggle_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
733{
734 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
735 uinfo->count = 1;
736 uinfo->value.integer.min = 0;
737 uinfo->value.integer.max = 1;
738 return 0;
739}
740 732
741static int 733static int
742snd_vortex_eqtoggle_get(struct snd_kcontrol *kcontrol, 734snd_vortex_eqtoggle_get(struct snd_kcontrol *kcontrol,
diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c
index 131952f55857..f0e12985dc29 100644
--- a/sound/pci/bt87x.c
+++ b/sound/pci/bt87x.c
@@ -569,15 +569,7 @@ static struct snd_kcontrol_new snd_bt87x_capture_volume = {
569 .put = snd_bt87x_capture_volume_put, 569 .put = snd_bt87x_capture_volume_put,
570}; 570};
571 571
572static int snd_bt87x_capture_boost_info(struct snd_kcontrol *kcontrol, 572#define snd_bt87x_capture_boost_info snd_ctl_boolean_mono_info
573 struct snd_ctl_elem_info *info)
574{
575 info->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
576 info->count = 1;
577 info->value.integer.min = 0;
578 info->value.integer.max = 1;
579 return 0;
580}
581 573
582static int snd_bt87x_capture_boost_get(struct snd_kcontrol *kcontrol, 574static int snd_bt87x_capture_boost_get(struct snd_kcontrol *kcontrol,
583 struct snd_ctl_elem_value *value) 575 struct snd_ctl_elem_value *value)
diff --git a/sound/pci/ca0106/ca0106_mixer.c b/sound/pci/ca0106/ca0106_mixer.c
index 9c3a9c8d1dc2..a135b9c4c3c8 100644
--- a/sound/pci/ca0106/ca0106_mixer.c
+++ b/sound/pci/ca0106/ca0106_mixer.c
@@ -77,15 +77,7 @@
77static const DECLARE_TLV_DB_SCALE(snd_ca0106_db_scale1, -5175, 25, 1); 77static const DECLARE_TLV_DB_SCALE(snd_ca0106_db_scale1, -5175, 25, 1);
78static const DECLARE_TLV_DB_SCALE(snd_ca0106_db_scale2, -10350, 50, 1); 78static const DECLARE_TLV_DB_SCALE(snd_ca0106_db_scale2, -10350, 50, 1);
79 79
80static int snd_ca0106_shared_spdif_info(struct snd_kcontrol *kcontrol, 80#define snd_ca0106_shared_spdif_info snd_ctl_boolean_mono_info
81 struct snd_ctl_elem_info *uinfo)
82{
83 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
84 uinfo->count = 1;
85 uinfo->value.integer.min = 0;
86 uinfo->value.integer.max = 1;
87 return 0;
88}
89 81
90static int snd_ca0106_shared_spdif_get(struct snd_kcontrol *kcontrol, 82static int snd_ca0106_shared_spdif_get(struct snd_kcontrol *kcontrol,
91 struct snd_ctl_elem_value *ucontrol) 83 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c
index 7d3c5ee0005c..f38054ead176 100644
--- a/sound/pci/cmipci.c
+++ b/sound/pci/cmipci.c
@@ -2139,15 +2139,7 @@ struct cmipci_switch_args {
2139 */ 2139 */
2140}; 2140};
2141 2141
2142static int snd_cmipci_uswitch_info(struct snd_kcontrol *kcontrol, 2142#define snd_cmipci_uswitch_info snd_ctl_boolean_mono_info
2143 struct snd_ctl_elem_info *uinfo)
2144{
2145 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2146 uinfo->count = 1;
2147 uinfo->value.integer.min = 0;
2148 uinfo->value.integer.max = 1;
2149 return 0;
2150}
2151 2143
2152static int _snd_cmipci_uswitch_get(struct snd_kcontrol *kcontrol, 2144static int _snd_cmipci_uswitch_get(struct snd_kcontrol *kcontrol,
2153 struct snd_ctl_elem_value *ucontrol, 2145 struct snd_ctl_elem_value *ucontrol,
diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
index 71d7aab9d869..0dc69d071406 100644
--- a/sound/pci/cs46xx/cs46xx_lib.c
+++ b/sound/pci/cs46xx/cs46xx_lib.c
@@ -1818,15 +1818,7 @@ static int snd_cs46xx_vol_iec958_put(struct snd_kcontrol *kcontrol, struct snd_c
1818} 1818}
1819#endif 1819#endif
1820 1820
1821static int snd_mixer_boolean_info(struct snd_kcontrol *kcontrol, 1821#define snd_mixer_boolean_info snd_ctl_boolean_mono_info
1822 struct snd_ctl_elem_info *uinfo)
1823{
1824 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1825 uinfo->count = 1;
1826 uinfo->value.integer.min = 0;
1827 uinfo->value.integer.max = 1;
1828 return 0;
1829}
1830 1822
1831static int snd_cs46xx_iec958_get(struct snd_kcontrol *kcontrol, 1823static int snd_cs46xx_iec958_get(struct snd_kcontrol *kcontrol,
1832 struct snd_ctl_elem_value *ucontrol) 1824 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/echoaudio/echoaudio.c b/sound/pci/echoaudio/echoaudio.c
index f27b6a733b96..499ee1a5319d 100644
--- a/sound/pci/echoaudio/echoaudio.c
+++ b/sound/pci/echoaudio/echoaudio.c
@@ -1595,15 +1595,7 @@ static struct snd_kcontrol_new snd_echo_clock_source_switch __devinitdata = {
1595#ifdef ECHOCARD_HAS_PHANTOM_POWER 1595#ifdef ECHOCARD_HAS_PHANTOM_POWER
1596 1596
1597/******************* Phantom power switch *******************/ 1597/******************* Phantom power switch *******************/
1598static int snd_echo_phantom_power_info(struct snd_kcontrol *kcontrol, 1598#define snd_echo_phantom_power_info snd_ctl_boolean_mono_info
1599 struct snd_ctl_elem_info *uinfo)
1600{
1601 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1602 uinfo->count = 1;
1603 uinfo->value.integer.min = 0;
1604 uinfo->value.integer.max = 1;
1605 return 0;
1606}
1607 1599
1608static int snd_echo_phantom_power_get(struct snd_kcontrol *kcontrol, 1600static int snd_echo_phantom_power_get(struct snd_kcontrol *kcontrol,
1609 struct snd_ctl_elem_value *ucontrol) 1601 struct snd_ctl_elem_value *ucontrol)
@@ -1646,15 +1638,7 @@ static struct snd_kcontrol_new snd_echo_phantom_power_switch __devinitdata = {
1646#ifdef ECHOCARD_HAS_DIGITAL_IN_AUTOMUTE 1638#ifdef ECHOCARD_HAS_DIGITAL_IN_AUTOMUTE
1647 1639
1648/******************* Digital input automute switch *******************/ 1640/******************* Digital input automute switch *******************/
1649static int snd_echo_automute_info(struct snd_kcontrol *kcontrol, 1641#define snd_echo_automute_info snd_ctl_boolean_mono_info
1650 struct snd_ctl_elem_info *uinfo)
1651{
1652 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1653 uinfo->count = 1;
1654 uinfo->value.integer.min = 0;
1655 uinfo->value.integer.max = 1;
1656 return 0;
1657}
1658 1642
1659static int snd_echo_automute_get(struct snd_kcontrol *kcontrol, 1643static int snd_echo_automute_get(struct snd_kcontrol *kcontrol,
1660 struct snd_ctl_elem_value *ucontrol) 1644 struct snd_ctl_elem_value *ucontrol)
@@ -1695,18 +1679,7 @@ static struct snd_kcontrol_new snd_echo_automute_switch __devinitdata = {
1695 1679
1696 1680
1697/******************* VU-meters switch *******************/ 1681/******************* VU-meters switch *******************/
1698static int snd_echo_vumeters_switch_info(struct snd_kcontrol *kcontrol, 1682#define snd_echo_vumeters_switch_info snd_ctl_boolean_mono_info
1699 struct snd_ctl_elem_info *uinfo)
1700{
1701 struct echoaudio *chip;
1702
1703 chip = snd_kcontrol_chip(kcontrol);
1704 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1705 uinfo->count = 1;
1706 uinfo->value.integer.min = 0;
1707 uinfo->value.integer.max = 1;
1708 return 0;
1709}
1710 1683
1711static int snd_echo_vumeters_switch_put(struct snd_kcontrol *kcontrol, 1684static int snd_echo_vumeters_switch_put(struct snd_kcontrol *kcontrol,
1712 struct snd_ctl_elem_value *ucontrol) 1685 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c
index e4af7a9b808c..1ec7ebaff9e9 100644
--- a/sound/pci/emu10k1/emu10k1x.c
+++ b/sound/pci/emu10k1/emu10k1x.c
@@ -1062,14 +1062,7 @@ static int __devinit snd_emu10k1x_proc_init(struct emu10k1x * emu)
1062 return 0; 1062 return 0;
1063} 1063}
1064 1064
1065static int snd_emu10k1x_shared_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1065#define snd_emu10k1x_shared_spdif_info snd_ctl_boolean_mono_info
1066{
1067 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1068 uinfo->count = 1;
1069 uinfo->value.integer.min = 0;
1070 uinfo->value.integer.max = 1;
1071 return 0;
1072}
1073 1066
1074static int snd_emu10k1x_shared_spdif_get(struct snd_kcontrol *kcontrol, 1067static int snd_emu10k1x_shared_spdif_get(struct snd_kcontrol *kcontrol,
1075 struct snd_ctl_elem_value *ucontrol) 1068 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/emu10k1/emumixer.c b/sound/pci/emu10k1/emumixer.c
index 7b2c1dcc5337..6c26319430d7 100644
--- a/sound/pci/emu10k1/emumixer.c
+++ b/sound/pci/emu10k1/emumixer.c
@@ -400,15 +400,7 @@ static struct snd_kcontrol_new snd_emu1010_input_enum_ctls[] __devinitdata = {
400 400
401 401
402 402
403 403#define snd_emu1010_adc_pads_info snd_ctl_boolean_mono_info
404static int snd_emu1010_adc_pads_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
405{
406 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
407 uinfo->count = 1;
408 uinfo->value.integer.min = 0;
409 uinfo->value.integer.max = 1;
410 return 0;
411}
412 404
413static int snd_emu1010_adc_pads_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 405static int snd_emu1010_adc_pads_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
414{ 406{
@@ -456,14 +448,7 @@ static struct snd_kcontrol_new snd_emu1010_adc_pads[] __devinitdata = {
456 EMU1010_ADC_PADS("ADC1 14dB PAD 0202 Capture Switch", EMU_HANA_0202_ADC_PAD1), 448 EMU1010_ADC_PADS("ADC1 14dB PAD 0202 Capture Switch", EMU_HANA_0202_ADC_PAD1),
457}; 449};
458 450
459static int snd_emu1010_dac_pads_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 451#define snd_emu1010_dac_pads_info snd_ctl_boolean_mono_info
460{
461 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
462 uinfo->count = 1;
463 uinfo->value.integer.min = 0;
464 uinfo->value.integer.max = 1;
465 return 0;
466}
467 452
468static int snd_emu1010_dac_pads_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 453static int snd_emu1010_dac_pads_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
469{ 454{
@@ -1326,14 +1311,7 @@ static struct snd_kcontrol_new snd_emu10k1_efx_attn_control =
1326 .put = snd_emu10k1_efx_attn_put 1311 .put = snd_emu10k1_efx_attn_put
1327}; 1312};
1328 1313
1329static int snd_emu10k1_shared_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1314#define snd_emu10k1_shared_spdif_info snd_ctl_boolean_mono_info
1330{
1331 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1332 uinfo->count = 1;
1333 uinfo->value.integer.min = 0;
1334 uinfo->value.integer.max = 1;
1335 return 0;
1336}
1337 1315
1338static int snd_emu10k1_shared_spdif_get(struct snd_kcontrol *kcontrol, 1316static int snd_emu10k1_shared_spdif_get(struct snd_kcontrol *kcontrol,
1339 struct snd_ctl_elem_value *ucontrol) 1317 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c
index 21cb4268a59b..9017bdb513a1 100644
--- a/sound/pci/ens1370.c
+++ b/sound/pci/ens1370.c
@@ -1419,15 +1419,7 @@ static int snd_ens1373_spdif_stream_put(struct snd_kcontrol *kcontrol,
1419{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .info = snd_es1371_spdif_info, \ 1419{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .info = snd_es1371_spdif_info, \
1420 .get = snd_es1371_spdif_get, .put = snd_es1371_spdif_put } 1420 .get = snd_es1371_spdif_get, .put = snd_es1371_spdif_put }
1421 1421
1422static int snd_es1371_spdif_info(struct snd_kcontrol *kcontrol, 1422#define snd_es1371_spdif_info snd_ctl_boolean_mono_info
1423 struct snd_ctl_elem_info *uinfo)
1424{
1425 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1426 uinfo->count = 1;
1427 uinfo->value.integer.min = 0;
1428 uinfo->value.integer.max = 1;
1429 return 0;
1430}
1431 1423
1432static int snd_es1371_spdif_get(struct snd_kcontrol *kcontrol, 1424static int snd_es1371_spdif_get(struct snd_kcontrol *kcontrol,
1433 struct snd_ctl_elem_value *ucontrol) 1425 struct snd_ctl_elem_value *ucontrol)
@@ -1489,15 +1481,7 @@ static struct snd_kcontrol_new snd_es1371_mixer_spdif[] __devinitdata = {
1489}; 1481};
1490 1482
1491 1483
1492static int snd_es1373_rear_info(struct snd_kcontrol *kcontrol, 1484#define snd_es1373_rear_info snd_ctl_boolean_mono_info
1493 struct snd_ctl_elem_info *uinfo)
1494{
1495 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1496 uinfo->count = 1;
1497 uinfo->value.integer.min = 0;
1498 uinfo->value.integer.max = 1;
1499 return 0;
1500}
1501 1485
1502static int snd_es1373_rear_get(struct snd_kcontrol *kcontrol, 1486static int snd_es1373_rear_get(struct snd_kcontrol *kcontrol,
1503 struct snd_ctl_elem_value *ucontrol) 1487 struct snd_ctl_elem_value *ucontrol)
@@ -1542,15 +1526,7 @@ static struct snd_kcontrol_new snd_ens1373_rear __devinitdata =
1542 .put = snd_es1373_rear_put, 1526 .put = snd_es1373_rear_put,
1543}; 1527};
1544 1528
1545static int snd_es1373_line_info(struct snd_kcontrol *kcontrol, 1529#define snd_es1373_line_info snd_ctl_boolean_mono_info
1546 struct snd_ctl_elem_info *uinfo)
1547{
1548 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1549 uinfo->count = 1;
1550 uinfo->value.integer.min = 0;
1551 uinfo->value.integer.max = 1;
1552 return 0;
1553}
1554 1530
1555static int snd_es1373_line_get(struct snd_kcontrol *kcontrol, 1531static int snd_es1373_line_get(struct snd_kcontrol *kcontrol,
1556 struct snd_ctl_elem_value *ucontrol) 1532 struct snd_ctl_elem_value *ucontrol)
@@ -1707,15 +1683,7 @@ static int __devinit snd_ensoniq_1371_mixer(struct ensoniq *ensoniq,
1707 .get = snd_ensoniq_control_get, .put = snd_ensoniq_control_put, \ 1683 .get = snd_ensoniq_control_get, .put = snd_ensoniq_control_put, \
1708 .private_value = mask } 1684 .private_value = mask }
1709 1685
1710static int snd_ensoniq_control_info(struct snd_kcontrol *kcontrol, 1686#define snd_ensoniq_control_info snd_ctl_boolean_mono_info
1711 struct snd_ctl_elem_info *uinfo)
1712{
1713 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1714 uinfo->count = 1;
1715 uinfo->value.integer.min = 0;
1716 uinfo->value.integer.max = 1;
1717 return 0;
1718}
1719 1687
1720static int snd_ensoniq_control_get(struct snd_kcontrol *kcontrol, 1688static int snd_ensoniq_control_get(struct snd_kcontrol *kcontrol,
1721 struct snd_ctl_elem_value *ucontrol) 1689 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/es1938.c b/sound/pci/es1938.c
index fec29a108945..fc686db59ce8 100644
--- a/sound/pci/es1938.c
+++ b/sound/pci/es1938.c
@@ -1066,15 +1066,7 @@ static int snd_es1938_put_mux(struct snd_kcontrol *kcontrol,
1066 return snd_es1938_mixer_bits(chip, 0x1c, 0x07, val) != val; 1066 return snd_es1938_mixer_bits(chip, 0x1c, 0x07, val) != val;
1067} 1067}
1068 1068
1069static int snd_es1938_info_spatializer_enable(struct snd_kcontrol *kcontrol, 1069#define snd_es1938_info_spatializer_enable snd_ctl_boolean_mono_info
1070 struct snd_ctl_elem_info *uinfo)
1071{
1072 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1073 uinfo->count = 1;
1074 uinfo->value.integer.min = 0;
1075 uinfo->value.integer.max = 1;
1076 return 0;
1077}
1078 1070
1079static int snd_es1938_get_spatializer_enable(struct snd_kcontrol *kcontrol, 1071static int snd_es1938_get_spatializer_enable(struct snd_kcontrol *kcontrol,
1080 struct snd_ctl_elem_value *ucontrol) 1072 struct snd_ctl_elem_value *ucontrol)
@@ -1120,15 +1112,7 @@ static int snd_es1938_get_hw_volume(struct snd_kcontrol *kcontrol,
1120 return 0; 1112 return 0;
1121} 1113}
1122 1114
1123static int snd_es1938_info_hw_switch(struct snd_kcontrol *kcontrol, 1115#define snd_es1938_info_hw_switch snd_ctl_boolean_stereo_info
1124 struct snd_ctl_elem_info *uinfo)
1125{
1126 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1127 uinfo->count = 2;
1128 uinfo->value.integer.min = 0;
1129 uinfo->value.integer.max = 1;
1130 return 0;
1131}
1132 1116
1133static int snd_es1938_get_hw_switch(struct snd_kcontrol *kcontrol, 1117static int snd_es1938_get_hw_switch(struct snd_kcontrol *kcontrol,
1134 struct snd_ctl_elem_value *ucontrol) 1118 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index f87f8f088956..a05db2f214bd 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -1129,15 +1129,7 @@ static int snd_hda_spdif_default_put(struct snd_kcontrol *kcontrol,
1129 return change; 1129 return change;
1130} 1130}
1131 1131
1132static int snd_hda_spdif_out_switch_info(struct snd_kcontrol *kcontrol, 1132#define snd_hda_spdif_out_switch_info snd_ctl_boolean_mono_info
1133 struct snd_ctl_elem_info *uinfo)
1134{
1135 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1136 uinfo->count = 1;
1137 uinfo->value.integer.min = 0;
1138 uinfo->value.integer.max = 1;
1139 return 0;
1140}
1141 1133
1142static int snd_hda_spdif_out_switch_get(struct snd_kcontrol *kcontrol, 1134static int snd_hda_spdif_out_switch_get(struct snd_kcontrol *kcontrol,
1143 struct snd_ctl_elem_value *ucontrol) 1135 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index 4d7f8d11ad75..fafadf9fab8e 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -350,15 +350,7 @@ static struct hda_codec_ops ad198x_patch_ops = {
350 * EAPD control 350 * EAPD control
351 * the private value = nid | (invert << 8) 351 * the private value = nid | (invert << 8)
352 */ 352 */
353static int ad198x_eapd_info(struct snd_kcontrol *kcontrol, 353#define ad198x_eapd_info snd_ctl_boolean_mono_info
354 struct snd_ctl_elem_info *uinfo)
355{
356 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
357 uinfo->count = 1;
358 uinfo->value.integer.min = 0;
359 uinfo->value.integer.max = 1;
360 return 0;
361}
362 354
363static int ad198x_eapd_get(struct snd_kcontrol *kcontrol, 355static int ad198x_eapd_get(struct snd_kcontrol *kcontrol,
364 struct snd_ctl_elem_value *ucontrol) 356 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index 4d8e8af5c819..26034315197f 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -368,15 +368,7 @@ static struct hda_codec_ops conexant_patch_ops = {
368 * the private value = nid | (invert << 8) 368 * the private value = nid | (invert << 8)
369 */ 369 */
370 370
371static int cxt_eapd_info(struct snd_kcontrol *kcontrol, 371#define cxt_eapd_info snd_ctl_boolean_mono_info
372 struct snd_ctl_elem_info *uinfo)
373{
374 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
375 uinfo->count = 1;
376 uinfo->value.integer.min = 0;
377 uinfo->value.integer.max = 1;
378 return 0;
379}
380 372
381static int cxt_eapd_get(struct snd_kcontrol *kcontrol, 373static int cxt_eapd_get(struct snd_kcontrol *kcontrol,
382 struct snd_ctl_elem_value *ucontrol) 374 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 9a47eec5a27b..7e6cc01b521a 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -486,15 +486,7 @@ static int alc_pin_mode_put(struct snd_kcontrol *kcontrol,
486 * needed for any "production" models. 486 * needed for any "production" models.
487 */ 487 */
488#ifdef CONFIG_SND_DEBUG 488#ifdef CONFIG_SND_DEBUG
489static int alc_gpio_data_info(struct snd_kcontrol *kcontrol, 489#define alc_gpio_data_info snd_ctl_boolean_mono_info
490 struct snd_ctl_elem_info *uinfo)
491{
492 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
493 uinfo->count = 1;
494 uinfo->value.integer.min = 0;
495 uinfo->value.integer.max = 1;
496 return 0;
497}
498 490
499static int alc_gpio_data_get(struct snd_kcontrol *kcontrol, 491static int alc_gpio_data_get(struct snd_kcontrol *kcontrol,
500 struct snd_ctl_elem_value *ucontrol) 492 struct snd_ctl_elem_value *ucontrol)
@@ -547,15 +539,7 @@ static int alc_gpio_data_put(struct snd_kcontrol *kcontrol,
547 * necessary. 539 * necessary.
548 */ 540 */
549#ifdef CONFIG_SND_DEBUG 541#ifdef CONFIG_SND_DEBUG
550static int alc_spdif_ctrl_info(struct snd_kcontrol *kcontrol, 542#define alc_spdif_ctrl_info snd_ctl_boolean_mono_info
551 struct snd_ctl_elem_info *uinfo)
552{
553 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
554 uinfo->count = 1;
555 uinfo->value.integer.min = 0;
556 uinfo->value.integer.max = 1;
557 return 0;
558}
559 543
560static int alc_spdif_ctrl_get(struct snd_kcontrol *kcontrol, 544static int alc_spdif_ctrl_get(struct snd_kcontrol *kcontrol,
561 struct snd_ctl_elem_value *ucontrol) 545 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/hda/patch_si3054.c b/sound/pci/hda/patch_si3054.c
index 6d2ecc38905c..9838eac9ab59 100644
--- a/sound/pci/hda/patch_si3054.c
+++ b/sound/pci/hda/patch_si3054.c
@@ -94,15 +94,7 @@ struct si3054_spec {
94#define PRIVATE_REG(val) ((val>>16)&0xffff) 94#define PRIVATE_REG(val) ((val>>16)&0xffff)
95#define PRIVATE_MASK(val) (val&0xffff) 95#define PRIVATE_MASK(val) (val&0xffff)
96 96
97static int si3054_switch_info(struct snd_kcontrol *kcontrol, 97#define si3054_switch_info snd_ctl_boolean_mono_info
98 struct snd_ctl_elem_info *uinfo)
99{
100 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
101 uinfo->count = 1;
102 uinfo->value.integer.min = 0;
103 uinfo->value.integer.max = 1;
104 return 0;
105}
106 98
107static int si3054_switch_get(struct snd_kcontrol *kcontrol, 99static int si3054_switch_get(struct snd_kcontrol *kcontrol,
108 struct snd_ctl_elem_value *uvalue) 100 struct snd_ctl_elem_value *uvalue)
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 3f25de72966b..d2c340e45f9e 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -1069,14 +1069,7 @@ static void stac92xx_auto_set_pinctl(struct hda_codec *codec, hda_nid_t nid, int
1069 snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, pin_type); 1069 snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, pin_type);
1070} 1070}
1071 1071
1072static int stac92xx_io_switch_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1072#define stac92xx_io_switch_info snd_ctl_boolean_mono_info
1073{
1074 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1075 uinfo->count = 1;
1076 uinfo->value.integer.min = 0;
1077 uinfo->value.integer.max = 1;
1078 return 0;
1079}
1080 1073
1081static int stac92xx_io_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1074static int stac92xx_io_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1082{ 1075{
diff --git a/sound/pci/ice1712/aureon.c b/sound/pci/ice1712/aureon.c
index 66bacde1ead3..ec0699c89952 100644
--- a/sound/pci/ice1712/aureon.c
+++ b/sound/pci/ice1712/aureon.c
@@ -394,7 +394,7 @@ static int aureon_ac97_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_ele
394/* 394/*
395 * AC'97 mute controls 395 * AC'97 mute controls
396 */ 396 */
397#define aureon_ac97_mute_info aureon_mono_bool_info 397#define aureon_ac97_mute_info snd_ctl_boolean_mono_info
398 398
399static int aureon_ac97_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 399static int aureon_ac97_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
400{ 400{
@@ -430,7 +430,7 @@ static int aureon_ac97_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_el
430/* 430/*
431 * AC'97 mute controls 431 * AC'97 mute controls
432 */ 432 */
433#define aureon_ac97_micboost_info aureon_mono_bool_info 433#define aureon_ac97_micboost_info snd_ctl_boolean_mono_info
434 434
435static int aureon_ac97_micboost_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 435static int aureon_ac97_micboost_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
436{ 436{
@@ -621,19 +621,12 @@ static void wm_put(struct snd_ice1712 *ice, int reg, unsigned short val)
621 621
622/* 622/*
623 */ 623 */
624static int aureon_mono_bool_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo) 624#define aureon_mono_bool_info snd_ctl_boolean_mono_info
625{
626 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
627 uinfo->count = 1;
628 uinfo->value.integer.min = 0;
629 uinfo->value.integer.max = 1;
630 return 0;
631}
632 625
633/* 626/*
634 * AC'97 master playback mute controls (Mute on WM8770 chip) 627 * AC'97 master playback mute controls (Mute on WM8770 chip)
635 */ 628 */
636#define aureon_ac97_mmute_info aureon_mono_bool_info 629#define aureon_ac97_mmute_info snd_ctl_boolean_mono_info
637 630
638static int aureon_ac97_mmute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 631static int aureon_ac97_mmute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
639{ 632{
@@ -708,7 +701,7 @@ static void wm_set_vol(struct snd_ice1712 *ice, unsigned int index, unsigned sho
708/* 701/*
709 * DAC mute control 702 * DAC mute control
710 */ 703 */
711#define wm_pcm_mute_info aureon_mono_bool_info 704#define wm_pcm_mute_info snd_ctl_boolean_mono_info
712 705
713static int wm_pcm_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 706static int wm_pcm_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
714{ 707{
@@ -879,13 +872,7 @@ static int wm_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value
879/* 872/*
880 * WM8770 master mute control 873 * WM8770 master mute control
881 */ 874 */
882static int wm_master_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { 875#define wm_master_mute_info snd_ctl_boolean_stereo_info
883 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
884 uinfo->count = 2;
885 uinfo->value.integer.min = 0;
886 uinfo->value.integer.max = 1;
887 return 0;
888}
889 876
890static int wm_master_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 877static int wm_master_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
891{ 878{
@@ -969,14 +956,7 @@ static int wm_pcm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_val
969/* 956/*
970 * ADC mute control 957 * ADC mute control
971 */ 958 */
972static int wm_adc_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 959#define wm_adc_mute_info snd_ctl_boolean_stereo_info
973{
974 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
975 uinfo->count = 2;
976 uinfo->value.integer.min = 0;
977 uinfo->value.integer.max = 1;
978 return 0;
979}
980 960
981static int wm_adc_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 961static int wm_adc_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
982{ 962{
@@ -1210,12 +1190,7 @@ static int aureon_cs8415_rate_get (struct snd_kcontrol *kcontrol, struct snd_ctl
1210/* 1190/*
1211 * CS8415A Mute 1191 * CS8415A Mute
1212 */ 1192 */
1213static int aureon_cs8415_mute_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1193#define aureon_cs8415_mute_info snd_ctl_boolean_mono_info
1214{
1215 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1216 uinfo->count = 1;
1217 return 0;
1218}
1219 1194
1220static int aureon_cs8415_mute_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1195static int aureon_cs8415_mute_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1221{ 1196{
@@ -1316,7 +1291,7 @@ static int aureon_get_headphone_amp(struct snd_ice1712 *ice)
1316 return ( tmp & AUREON_HP_SEL )!= 0; 1291 return ( tmp & AUREON_HP_SEL )!= 0;
1317} 1292}
1318 1293
1319#define aureon_hpamp_info aureon_mono_bool_info 1294#define aureon_hpamp_info snd_ctl_boolean_mono_info
1320 1295
1321static int aureon_hpamp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1296static int aureon_hpamp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1322{ 1297{
@@ -1338,7 +1313,7 @@ static int aureon_hpamp_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_v
1338 * Deemphasis 1313 * Deemphasis
1339 */ 1314 */
1340 1315
1341#define aureon_deemp_info aureon_mono_bool_info 1316#define aureon_deemp_info snd_ctl_boolean_mono_info
1342 1317
1343static int aureon_deemp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1318static int aureon_deemp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1344{ 1319{
diff --git a/sound/pci/ice1712/delta.c b/sound/pci/ice1712/delta.c
index af659800c9b0..66886dff4845 100644
--- a/sound/pci/ice1712/delta.c
+++ b/sound/pci/ice1712/delta.c
@@ -393,15 +393,8 @@ static void delta_setup_spdif(struct snd_ice1712 *ice, int rate)
393 snd_ice1712_delta_cs8403_spdif_write(ice, tmp); 393 snd_ice1712_delta_cs8403_spdif_write(ice, tmp);
394} 394}
395 395
396static int snd_ice1712_delta1010lt_wordclock_status_info(struct snd_kcontrol *kcontrol, 396#define snd_ice1712_delta1010lt_wordclock_status_info \
397 struct snd_ctl_elem_info *uinfo) 397 snd_ctl_boolean_mono_info
398{
399 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
400 uinfo->count = 1;
401 uinfo->value.integer.min = 0;
402 uinfo->value.integer.max = 1;
403 return 0;
404}
405 398
406static int snd_ice1712_delta1010lt_wordclock_status_get(struct snd_kcontrol *kcontrol, 399static int snd_ice1712_delta1010lt_wordclock_status_get(struct snd_kcontrol *kcontrol,
407 struct snd_ctl_elem_value *ucontrol) 400 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/ice1712/ews.c b/sound/pci/ice1712/ews.c
index b135389fec6c..b2b4eff1ac6c 100644
--- a/sound/pci/ice1712/ews.c
+++ b/sound/pci/ice1712/ews.c
@@ -700,14 +700,7 @@ static struct snd_kcontrol_new snd_ice1712_ews88mt_output_sense __devinitdata =
700 * EWS88D specific controls 700 * EWS88D specific controls
701 */ 701 */
702 702
703static int snd_ice1712_ews88d_control_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 703#define snd_ice1712_ews88d_control_info snd_ctl_boolean_mono_info
704{
705 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
706 uinfo->count = 1;
707 uinfo->value.integer.min = 0;
708 uinfo->value.integer.max = 1;
709 return 0;
710}
711 704
712static int snd_ice1712_ews88d_control_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 705static int snd_ice1712_ews88d_control_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
713{ 706{
@@ -812,14 +805,7 @@ static int snd_ice1712_6fire_write_pca(struct snd_ice1712 *ice, unsigned char re
812 return 0; 805 return 0;
813} 806}
814 807
815static int snd_ice1712_6fire_control_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 808#define snd_ice1712_6fire_control_info snd_ctl_boolean_mono_info
816{
817 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
818 uinfo->count = 1;
819 uinfo->value.integer.min = 0;
820 uinfo->value.integer.max = 1;
821 return 0;
822}
823 809
824static int snd_ice1712_6fire_control_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 810static int snd_ice1712_6fire_control_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
825{ 811{
diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c
index 6630a0ae9527..cd41c7eb6c6b 100644
--- a/sound/pci/ice1712/ice1712.c
+++ b/sound/pci/ice1712/ice1712.c
@@ -256,14 +256,7 @@ static unsigned short snd_ice1712_pro_ac97_read(struct snd_ac97 *ac97,
256/* 256/*
257 * consumer ac97 digital mix 257 * consumer ac97 digital mix
258 */ 258 */
259static int snd_ice1712_digmix_route_ac97_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 259#define snd_ice1712_digmix_route_ac97_info snd_ctl_boolean_mono_info
260{
261 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
262 uinfo->count = 1;
263 uinfo->value.integer.min = 0;
264 uinfo->value.integer.max = 1;
265 return 0;
266}
267 260
268static int snd_ice1712_digmix_route_ac97_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 261static int snd_ice1712_digmix_route_ac97_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
269{ 262{
@@ -1300,14 +1293,7 @@ static void snd_ice1712_update_volume(struct snd_ice1712 *ice, int index)
1300 outw(val, ICEMT(ice, MONITOR_VOLUME)); 1293 outw(val, ICEMT(ice, MONITOR_VOLUME));
1301} 1294}
1302 1295
1303static int snd_ice1712_pro_mixer_switch_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1296#define snd_ice1712_pro_mixer_switch_info snd_ctl_boolean_stereo_info
1304{
1305 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1306 uinfo->count = 2;
1307 uinfo->value.integer.min = 0;
1308 uinfo->value.integer.max = 1;
1309 return 0;
1310}
1311 1297
1312static int snd_ice1712_pro_mixer_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1298static int snd_ice1712_pro_mixer_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1313{ 1299{
@@ -1759,15 +1745,7 @@ static struct snd_kcontrol_new snd_ice1712_spdif_stream __devinitdata =
1759 .put = snd_ice1712_spdif_stream_put 1745 .put = snd_ice1712_spdif_stream_put
1760}; 1746};
1761 1747
1762int snd_ice1712_gpio_info(struct snd_kcontrol *kcontrol, 1748#define snd_ice1712_gpio_info snd_ctl_boolean_mono_info
1763 struct snd_ctl_elem_info *uinfo)
1764{
1765 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1766 uinfo->count = 1;
1767 uinfo->value.integer.min = 0;
1768 uinfo->value.integer.max = 1;
1769 return 0;
1770}
1771 1749
1772int snd_ice1712_gpio_get(struct snd_kcontrol *kcontrol, 1750int snd_ice1712_gpio_get(struct snd_kcontrol *kcontrol,
1773 struct snd_ctl_elem_value *ucontrol) 1751 struct snd_ctl_elem_value *ucontrol)
@@ -1968,15 +1946,7 @@ static struct snd_kcontrol_new snd_ice1712_pro_internal_clock_default __devinitd
1968 .put = snd_ice1712_pro_internal_clock_default_put 1946 .put = snd_ice1712_pro_internal_clock_default_put
1969}; 1947};
1970 1948
1971static int snd_ice1712_pro_rate_locking_info(struct snd_kcontrol *kcontrol, 1949#define snd_ice1712_pro_rate_locking_info snd_ctl_boolean_mono_info
1972 struct snd_ctl_elem_info *uinfo)
1973{
1974 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1975 uinfo->count = 1;
1976 uinfo->value.integer.min = 0;
1977 uinfo->value.integer.max = 1;
1978 return 0;
1979}
1980 1950
1981static int snd_ice1712_pro_rate_locking_get(struct snd_kcontrol *kcontrol, 1951static int snd_ice1712_pro_rate_locking_get(struct snd_kcontrol *kcontrol,
1982 struct snd_ctl_elem_value *ucontrol) 1952 struct snd_ctl_elem_value *ucontrol)
@@ -2007,15 +1977,7 @@ static struct snd_kcontrol_new snd_ice1712_pro_rate_locking __devinitdata = {
2007 .put = snd_ice1712_pro_rate_locking_put 1977 .put = snd_ice1712_pro_rate_locking_put
2008}; 1978};
2009 1979
2010static int snd_ice1712_pro_rate_reset_info(struct snd_kcontrol *kcontrol, 1980#define snd_ice1712_pro_rate_reset_info snd_ctl_boolean_mono_info
2011 struct snd_ctl_elem_info *uinfo)
2012{
2013 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2014 uinfo->count = 1;
2015 uinfo->value.integer.min = 0;
2016 uinfo->value.integer.max = 1;
2017 return 0;
2018}
2019 1981
2020static int snd_ice1712_pro_rate_reset_get(struct snd_kcontrol *kcontrol, 1982static int snd_ice1712_pro_rate_reset_get(struct snd_kcontrol *kcontrol,
2021 struct snd_ctl_elem_value *ucontrol) 1983 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c
index ee620dea7ef3..32560cfb6c3f 100644
--- a/sound/pci/ice1712/ice1724.c
+++ b/sound/pci/ice1712/ice1724.c
@@ -1479,15 +1479,7 @@ static struct snd_kcontrol_new snd_vt1724_spdif_maskp __devinitdata =
1479 .get = snd_vt1724_spdif_maskp_get, 1479 .get = snd_vt1724_spdif_maskp_get,
1480}; 1480};
1481 1481
1482static int snd_vt1724_spdif_sw_info(struct snd_kcontrol *kcontrol, 1482#define snd_vt1724_spdif_sw_info snd_ctl_boolean_mono_info
1483 struct snd_ctl_elem_info *uinfo)
1484{
1485 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1486 uinfo->count = 1;
1487 uinfo->value.integer.min = 0;
1488 uinfo->value.integer.max = 1;
1489 return 0;
1490}
1491 1483
1492static int snd_vt1724_spdif_sw_get(struct snd_kcontrol *kcontrol, 1484static int snd_vt1724_spdif_sw_get(struct snd_kcontrol *kcontrol,
1493 struct snd_ctl_elem_value *ucontrol) 1485 struct snd_ctl_elem_value *ucontrol)
@@ -1532,15 +1524,7 @@ static struct snd_kcontrol_new snd_vt1724_spdif_switch __devinitdata =
1532 * GPIO access from extern 1524 * GPIO access from extern
1533 */ 1525 */
1534 1526
1535int snd_vt1724_gpio_info(struct snd_kcontrol *kcontrol, 1527#define snd_vt1724_gpio_info snd_ctl_boolean_mono_info
1536 struct snd_ctl_elem_info *uinfo)
1537{
1538 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1539 uinfo->count = 1;
1540 uinfo->value.integer.min = 0;
1541 uinfo->value.integer.max = 1;
1542 return 0;
1543}
1544 1528
1545int snd_vt1724_gpio_get(struct snd_kcontrol *kcontrol, 1529int snd_vt1724_gpio_get(struct snd_kcontrol *kcontrol,
1546 struct snd_ctl_elem_value *ucontrol) 1530 struct snd_ctl_elem_value *ucontrol)
@@ -1706,15 +1690,7 @@ static struct snd_kcontrol_new snd_vt1724_pro_internal_clock __devinitdata = {
1706 .put = snd_vt1724_pro_internal_clock_put 1690 .put = snd_vt1724_pro_internal_clock_put
1707}; 1691};
1708 1692
1709static int snd_vt1724_pro_rate_locking_info(struct snd_kcontrol *kcontrol, 1693#define snd_vt1724_pro_rate_locking_info snd_ctl_boolean_mono_info
1710 struct snd_ctl_elem_info *uinfo)
1711{
1712 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1713 uinfo->count = 1;
1714 uinfo->value.integer.min = 0;
1715 uinfo->value.integer.max = 1;
1716 return 0;
1717}
1718 1694
1719static int snd_vt1724_pro_rate_locking_get(struct snd_kcontrol *kcontrol, 1695static int snd_vt1724_pro_rate_locking_get(struct snd_kcontrol *kcontrol,
1720 struct snd_ctl_elem_value *ucontrol) 1696 struct snd_ctl_elem_value *ucontrol)
@@ -1745,15 +1721,7 @@ static struct snd_kcontrol_new snd_vt1724_pro_rate_locking __devinitdata = {
1745 .put = snd_vt1724_pro_rate_locking_put 1721 .put = snd_vt1724_pro_rate_locking_put
1746}; 1722};
1747 1723
1748static int snd_vt1724_pro_rate_reset_info(struct snd_kcontrol *kcontrol, 1724#define snd_vt1724_pro_rate_reset_info snd_ctl_boolean_mono_info
1749 struct snd_ctl_elem_info *uinfo)
1750{
1751 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1752 uinfo->count = 1;
1753 uinfo->value.integer.min = 0;
1754 uinfo->value.integer.max = 1;
1755 return 0;
1756}
1757 1725
1758static int snd_vt1724_pro_rate_reset_get(struct snd_kcontrol *kcontrol, 1726static int snd_vt1724_pro_rate_reset_get(struct snd_kcontrol *kcontrol,
1759 struct snd_ctl_elem_value *ucontrol) 1727 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/ice1712/phase.c b/sound/pci/ice1712/phase.c
index 40a9098af777..3ac25058bb58 100644
--- a/sound/pci/ice1712/phase.c
+++ b/sound/pci/ice1712/phase.c
@@ -270,7 +270,7 @@ static void wm_set_vol(struct snd_ice1712 *ice, unsigned int index, unsigned sho
270/* 270/*
271 * DAC mute control 271 * DAC mute control
272 */ 272 */
273#define wm_pcm_mute_info phase28_mono_bool_info 273#define wm_pcm_mute_info snd_ctl_boolean_mono_info
274 274
275static int wm_pcm_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 275static int wm_pcm_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
276{ 276{
@@ -527,13 +527,7 @@ static int wm_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value
527/* 527/*
528 * WM8770 master mute control 528 * WM8770 master mute control
529 */ 529 */
530static int wm_master_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { 530#define wm_master_mute_info snd_ctl_boolean_stereo_info
531 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
532 uinfo->count = 2;
533 uinfo->value.integer.min = 0;
534 uinfo->value.integer.max = 1;
535 return 0;
536}
537 531
538static int wm_master_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 532static int wm_master_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
539{ 533{
@@ -615,20 +609,9 @@ static int wm_pcm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_val
615} 609}
616 610
617/* 611/*
618 */
619static int phase28_mono_bool_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo)
620{
621 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
622 uinfo->count = 1;
623 uinfo->value.integer.min = 0;
624 uinfo->value.integer.max = 1;
625 return 0;
626}
627
628/*
629 * Deemphasis 612 * Deemphasis
630 */ 613 */
631#define phase28_deemp_info phase28_mono_bool_info 614#define phase28_deemp_info snd_ctl_boolean_mono_info
632 615
633static int phase28_deemp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 616static int phase28_deemp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
634{ 617{
diff --git a/sound/pci/ice1712/pontis.c b/sound/pci/ice1712/pontis.c
index 01c69453ddeb..faefd52c1b80 100644
--- a/sound/pci/ice1712/pontis.c
+++ b/sound/pci/ice1712/pontis.c
@@ -216,14 +216,7 @@ static int wm_adc_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_val
216/* 216/*
217 * ADC input mux mixer control 217 * ADC input mux mixer control
218 */ 218 */
219static int wm_adc_mux_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 219#define wm_adc_mux_info snd_ctl_boolean_mono_info
220{
221 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
222 uinfo->count = 1;
223 uinfo->value.integer.min = 0;
224 uinfo->value.integer.max = 1;
225 return 0;
226}
227 220
228static int wm_adc_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 221static int wm_adc_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
229{ 222{
@@ -260,14 +253,7 @@ static int wm_adc_mux_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_val
260/* 253/*
261 * Analog bypass (In -> Out) 254 * Analog bypass (In -> Out)
262 */ 255 */
263static int wm_bypass_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 256#define wm_bypass_info snd_ctl_boolean_mono_info
264{
265 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
266 uinfo->count = 1;
267 uinfo->value.integer.min = 0;
268 uinfo->value.integer.max = 1;
269 return 0;
270}
271 257
272static int wm_bypass_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 258static int wm_bypass_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
273{ 259{
@@ -302,14 +288,7 @@ static int wm_bypass_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_valu
302/* 288/*
303 * Left/Right swap 289 * Left/Right swap
304 */ 290 */
305static int wm_chswap_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 291#define wm_chswap_info snd_ctl_boolean_mono_info
306{
307 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
308 uinfo->count = 1;
309 uinfo->value.integer.min = 0;
310 uinfo->value.integer.max = 1;
311 return 0;
312}
313 292
314static int wm_chswap_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 293static int wm_chswap_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
315{ 294{
diff --git a/sound/pci/ice1712/prodigy192.c b/sound/pci/ice1712/prodigy192.c
index 4bae7305a79b..4180f9739ecb 100644
--- a/sound/pci/ice1712/prodigy192.c
+++ b/sound/pci/ice1712/prodigy192.c
@@ -81,14 +81,7 @@ static inline unsigned char stac9460_get(struct snd_ice1712 *ice, int reg)
81/* 81/*
82 * DAC mute control 82 * DAC mute control
83 */ 83 */
84static int stac9460_dac_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 84#define stac9460_dac_mute_info snd_ctl_boolean_mono_info
85{
86 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
87 uinfo->count = 1;
88 uinfo->value.integer.min = 0;
89 uinfo->value.integer.max = 1;
90 return 0;
91}
92 85
93static int stac9460_dac_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 86static int stac9460_dac_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
94{ 87{
@@ -177,14 +170,7 @@ static int stac9460_dac_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_el
177/* 170/*
178 * ADC mute control 171 * ADC mute control
179 */ 172 */
180static int stac9460_adc_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 173#define stac9460_adc_mute_info snd_ctl_boolean_stereo_info
181{
182 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
183 uinfo->count = 2;
184 uinfo->value.integer.min = 0;
185 uinfo->value.integer.max = 1;
186 return 0;
187}
188 174
189static int stac9460_adc_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 175static int stac9460_adc_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
190{ 176{
@@ -292,14 +278,7 @@ static int aureon_get_headphone_amp(struct snd_ice1712 *ice)
292 return ( tmp & AUREON_HP_SEL )!= 0; 278 return ( tmp & AUREON_HP_SEL )!= 0;
293} 279}
294 280
295static int aureon_bool_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo) 281#define aureon_bool_info snd_ctl_boolean_mono_info
296{
297 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
298 uinfo->count = 1;
299 uinfo->value.integer.min = 0;
300 uinfo->value.integer.max = 1;
301 return 0;
302}
303 282
304static int aureon_hpamp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 283static int aureon_hpamp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
305{ 284{
diff --git a/sound/pci/ice1712/wtm.c b/sound/pci/ice1712/wtm.c
index 04e535c8542b..7fcce0a506d6 100644
--- a/sound/pci/ice1712/wtm.c
+++ b/sound/pci/ice1712/wtm.c
@@ -71,14 +71,7 @@ static inline unsigned char stac9460_2_get(struct snd_ice1712 *ice, int reg)
71/* 71/*
72 * DAC mute control 72 * DAC mute control
73 */ 73 */
74static int stac9460_dac_mute_info(struct snd_kcontrol *kcontrol, 74#define stac9460_dac_mute_info snd_ctl_boolean_mono_info
75 struct snd_ctl_elem_info *uinfo)
76{
77 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
78 uinfo->count = 1;
79 uinfo->value.integer.min = 0;
80 return 0;
81}
82 75
83static int stac9460_dac_mute_get(struct snd_kcontrol *kcontrol, 76static int stac9460_dac_mute_get(struct snd_kcontrol *kcontrol,
84 struct snd_ctl_elem_value *ucontrol) 77 struct snd_ctl_elem_value *ucontrol)
@@ -218,15 +211,7 @@ static int stac9460_dac_vol_put(struct snd_kcontrol *kcontrol,
218/* 211/*
219 * ADC mute control 212 * ADC mute control
220 */ 213 */
221static int stac9460_adc_mute_info(struct snd_kcontrol *kcontrol, 214#define stac9460_adc_mute_info snd_ctl_boolean_stereo_info
222 struct snd_ctl_elem_info *uinfo)
223{
224 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
225 uinfo->count = 2;
226 uinfo->value.integer.min = 0;
227 uinfo->value.integer.max = 1;
228 return 0;
229}
230 215
231static int stac9460_adc_mute_get(struct snd_kcontrol *kcontrol, 216static int stac9460_adc_mute_get(struct snd_kcontrol *kcontrol,
232 struct snd_ctl_elem_value *ucontrol) 217 struct snd_ctl_elem_value *ucontrol)
@@ -357,15 +342,7 @@ static int stac9460_adc_vol_put(struct snd_kcontrol *kcontrol,
357 * MIC / LINE switch fonction 342 * MIC / LINE switch fonction
358 */ 343 */
359 344
360static int stac9460_mic_sw_info(struct snd_kcontrol *kcontrol, 345#define stac9460_mic_sw_info snd_ctl_boolean_mono_info
361 struct snd_ctl_elem_info *uinfo)
362{
363 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
364 uinfo->count = 1;
365 uinfo->value.integer.min = 0;
366 uinfo->value.integer.max = 1;
367 return 0;
368}
369 346
370static int stac9460_mic_sw_get(struct snd_kcontrol *kcontrol, 347static int stac9460_mic_sw_get(struct snd_kcontrol *kcontrol,
371 struct snd_ctl_elem_value *ucontrol) 348 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/mixart/mixart_mixer.c b/sound/pci/mixart/mixart_mixer.c
index d7d15c036e02..0e16512d25f7 100644
--- a/sound/pci/mixart/mixart_mixer.c
+++ b/sound/pci/mixart/mixart_mixer.c
@@ -403,14 +403,7 @@ static struct snd_kcontrol_new mixart_control_analog_level = {
403}; 403};
404 404
405/* shared */ 405/* shared */
406static int mixart_sw_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 406#define mixart_sw_info snd_ctl_boolean_stereo_info
407{
408 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
409 uinfo->count = 2;
410 uinfo->value.integer.min = 0;
411 uinfo->value.integer.max = 1;
412 return 0;
413}
414 407
415static int mixart_audio_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 408static int mixart_audio_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
416{ 409{
diff --git a/sound/pci/pcxhr/pcxhr_mixer.c b/sound/pci/pcxhr/pcxhr_mixer.c
index d9cc8d2beb6d..b913453063f8 100644
--- a/sound/pci/pcxhr/pcxhr_mixer.c
+++ b/sound/pci/pcxhr/pcxhr_mixer.c
@@ -144,14 +144,7 @@ static struct snd_kcontrol_new pcxhr_control_analog_level = {
144}; 144};
145 145
146/* shared */ 146/* shared */
147static int pcxhr_sw_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 147#define pcxhr_sw_info snd_ctl_boolean_stereo_info
148{
149 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
150 uinfo->count = 2;
151 uinfo->value.integer.min = 0;
152 uinfo->value.integer.max = 1;
153 return 0;
154}
155 148
156static int pcxhr_audio_sw_get(struct snd_kcontrol *kcontrol, 149static int pcxhr_audio_sw_get(struct snd_kcontrol *kcontrol,
157 struct snd_ctl_elem_value *ucontrol) 150 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/rme32.c b/sound/pci/rme32.c
index 618653e22561..ee0189b756d1 100644
--- a/sound/pci/rme32.c
+++ b/sound/pci/rme32.c
@@ -1582,16 +1582,8 @@ static void __devinit snd_rme32_proc_init(struct rme32 * rme32)
1582 * control interface 1582 * control interface
1583 */ 1583 */
1584 1584
1585static int 1585#define snd_rme32_info_loopback_control snd_ctl_boolean_mono_info
1586snd_rme32_info_loopback_control(struct snd_kcontrol *kcontrol, 1586
1587 struct snd_ctl_elem_info *uinfo)
1588{
1589 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1590 uinfo->count = 1;
1591 uinfo->value.integer.min = 0;
1592 uinfo->value.integer.max = 1;
1593 return 0;
1594}
1595static int 1587static int
1596snd_rme32_get_loopback_control(struct snd_kcontrol *kcontrol, 1588snd_rme32_get_loopback_control(struct snd_kcontrol *kcontrol,
1597 struct snd_ctl_elem_value *ucontrol) 1589 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/rme96.c b/sound/pci/rme96.c
index e3304b7ccbcb..9a4596f879e8 100644
--- a/sound/pci/rme96.c
+++ b/sound/pci/rme96.c
@@ -1826,15 +1826,8 @@ snd_rme96_proc_init(struct rme96 *rme96)
1826 * control interface 1826 * control interface
1827 */ 1827 */
1828 1828
1829static int 1829#define snd_rme96_info_loopback_control snd_ctl_boolean_mono_info
1830snd_rme96_info_loopback_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1830
1831{
1832 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1833 uinfo->count = 1;
1834 uinfo->value.integer.min = 0;
1835 uinfo->value.integer.max = 1;
1836 return 0;
1837}
1838static int 1831static int
1839snd_rme96_get_loopback_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1832snd_rme96_get_loopback_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1840{ 1833{
diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
index 3b3ef657f73e..8f798f2fc040 100644
--- a/sound/pci/rme9652/hdsp.c
+++ b/sound/pci/rme9652/hdsp.c
@@ -1623,14 +1623,7 @@ static int hdsp_set_spdif_output(struct hdsp *hdsp, int out)
1623 return 0; 1623 return 0;
1624} 1624}
1625 1625
1626static int snd_hdsp_info_spdif_bits(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1626#define snd_hdsp_info_spdif_bits snd_ctl_boolean_mono_info
1627{
1628 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1629 uinfo->count = 1;
1630 uinfo->value.integer.min = 0;
1631 uinfo->value.integer.max = 1;
1632 return 0;
1633}
1634 1627
1635static int snd_hdsp_get_spdif_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1628static int snd_hdsp_get_spdif_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1636{ 1629{
@@ -2111,14 +2104,7 @@ static int snd_hdsp_put_clock_source(struct snd_kcontrol *kcontrol, struct snd_c
2111 return change; 2104 return change;
2112} 2105}
2113 2106
2114static int snd_hdsp_info_clock_source_lock(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 2107#define snd_hdsp_info_clock_source_lock snd_ctl_boolean_mono_info
2115{
2116 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2117 uinfo->count = 1;
2118 uinfo->value.integer.min = 0;
2119 uinfo->value.integer.max = 1;
2120 return 0;
2121}
2122 2108
2123static int snd_hdsp_get_clock_source_lock(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 2109static int snd_hdsp_get_clock_source_lock(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
2124{ 2110{
@@ -2420,14 +2406,7 @@ static int hdsp_set_xlr_breakout_cable(struct hdsp *hdsp, int mode)
2420 return 0; 2406 return 0;
2421} 2407}
2422 2408
2423static int snd_hdsp_info_xlr_breakout_cable(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 2409#define snd_hdsp_info_xlr_breakout_cable snd_ctl_boolean_mono_info
2424{
2425 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2426 uinfo->count = 1;
2427 uinfo->value.integer.min = 0;
2428 uinfo->value.integer.max = 1;
2429 return 0;
2430}
2431 2410
2432static int snd_hdsp_get_xlr_breakout_cable(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 2411static int snd_hdsp_get_xlr_breakout_cable(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
2433{ 2412{
@@ -2483,14 +2462,7 @@ static int hdsp_set_aeb(struct hdsp *hdsp, int mode)
2483 return 0; 2462 return 0;
2484} 2463}
2485 2464
2486static int snd_hdsp_info_aeb(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 2465#define snd_hdsp_info_aeb snd_ctl_boolean_mono_info
2487{
2488 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2489 uinfo->count = 1;
2490 uinfo->value.integer.min = 0;
2491 uinfo->value.integer.max = 1;
2492 return 0;
2493}
2494 2466
2495static int snd_hdsp_get_aeb(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 2467static int snd_hdsp_get_aeb(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
2496{ 2468{
@@ -2729,14 +2701,7 @@ static int hdsp_set_line_output(struct hdsp *hdsp, int out)
2729 return 0; 2701 return 0;
2730} 2702}
2731 2703
2732static int snd_hdsp_info_line_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 2704#define snd_hdsp_info_line_out snd_ctl_boolean_mono_info
2733{
2734 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2735 uinfo->count = 1;
2736 uinfo->value.integer.min = 0;
2737 uinfo->value.integer.max = 1;
2738 return 0;
2739}
2740 2705
2741static int snd_hdsp_get_line_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 2706static int snd_hdsp_get_line_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
2742{ 2707{
@@ -2782,14 +2747,7 @@ static int hdsp_set_precise_pointer(struct hdsp *hdsp, int precise)
2782 return 0; 2747 return 0;
2783} 2748}
2784 2749
2785static int snd_hdsp_info_precise_pointer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 2750#define snd_hdsp_info_precise_pointer snd_ctl_boolean_mono_info
2786{
2787 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2788 uinfo->count = 1;
2789 uinfo->value.integer.min = 0;
2790 uinfo->value.integer.max = 1;
2791 return 0;
2792}
2793 2751
2794static int snd_hdsp_get_precise_pointer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 2752static int snd_hdsp_get_precise_pointer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
2795{ 2753{
@@ -2835,14 +2793,7 @@ static int hdsp_set_use_midi_tasklet(struct hdsp *hdsp, int use_tasklet)
2835 return 0; 2793 return 0;
2836} 2794}
2837 2795
2838static int snd_hdsp_info_use_midi_tasklet(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 2796#define snd_hdsp_info_use_midi_tasklet snd_ctl_boolean_mono_info
2839{
2840 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2841 uinfo->count = 1;
2842 uinfo->value.integer.min = 0;
2843 uinfo->value.integer.max = 1;
2844 return 0;
2845}
2846 2797
2847static int snd_hdsp_get_use_midi_tasklet(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 2798static int snd_hdsp_get_use_midi_tasklet(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
2848{ 2799{
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
index 143185e7e4dc..83ea4623e77c 100644
--- a/sound/pci/rme9652/hdspm.c
+++ b/sound/pci/rme9652/hdspm.c
@@ -1834,15 +1834,7 @@ static int hdspm_set_line_output(struct hdspm * hdspm, int out)
1834 return 0; 1834 return 0;
1835} 1835}
1836 1836
1837static int snd_hdspm_info_line_out(struct snd_kcontrol *kcontrol, 1837#define snd_hdspm_info_line_out snd_ctl_boolean_mono_info
1838 struct snd_ctl_elem_info *uinfo)
1839{
1840 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1841 uinfo->count = 1;
1842 uinfo->value.integer.min = 0;
1843 uinfo->value.integer.max = 1;
1844 return 0;
1845}
1846 1838
1847static int snd_hdspm_get_line_out(struct snd_kcontrol *kcontrol, 1839static int snd_hdspm_get_line_out(struct snd_kcontrol *kcontrol,
1848 struct snd_ctl_elem_value *ucontrol) 1840 struct snd_ctl_elem_value *ucontrol)
@@ -1897,15 +1889,7 @@ static int hdspm_set_tx_64(struct hdspm * hdspm, int out)
1897 return 0; 1889 return 0;
1898} 1890}
1899 1891
1900static int snd_hdspm_info_tx_64(struct snd_kcontrol *kcontrol, 1892#define snd_hdspm_info_tx_64 snd_ctl_boolean_mono_info
1901 struct snd_ctl_elem_info *uinfo)
1902{
1903 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1904 uinfo->count = 1;
1905 uinfo->value.integer.min = 0;
1906 uinfo->value.integer.max = 1;
1907 return 0;
1908}
1909 1893
1910static int snd_hdspm_get_tx_64(struct snd_kcontrol *kcontrol, 1894static int snd_hdspm_get_tx_64(struct snd_kcontrol *kcontrol,
1911 struct snd_ctl_elem_value *ucontrol) 1895 struct snd_ctl_elem_value *ucontrol)
@@ -1960,15 +1944,7 @@ static int hdspm_set_c_tms(struct hdspm * hdspm, int out)
1960 return 0; 1944 return 0;
1961} 1945}
1962 1946
1963static int snd_hdspm_info_c_tms(struct snd_kcontrol *kcontrol, 1947#define snd_hdspm_info_c_tms snd_ctl_boolean_mono_info
1964 struct snd_ctl_elem_info *uinfo)
1965{
1966 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1967 uinfo->count = 1;
1968 uinfo->value.integer.min = 0;
1969 uinfo->value.integer.max = 1;
1970 return 0;
1971}
1972 1948
1973static int snd_hdspm_get_c_tms(struct snd_kcontrol *kcontrol, 1949static int snd_hdspm_get_c_tms(struct snd_kcontrol *kcontrol,
1974 struct snd_ctl_elem_value *ucontrol) 1950 struct snd_ctl_elem_value *ucontrol)
@@ -2023,15 +1999,7 @@ static int hdspm_set_safe_mode(struct hdspm * hdspm, int out)
2023 return 0; 1999 return 0;
2024} 2000}
2025 2001
2026static int snd_hdspm_info_safe_mode(struct snd_kcontrol *kcontrol, 2002#define snd_hdspm_info_safe_mode snd_ctl_boolean_mono_info
2027 struct snd_ctl_elem_info *uinfo)
2028{
2029 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2030 uinfo->count = 1;
2031 uinfo->value.integer.min = 0;
2032 uinfo->value.integer.max = 1;
2033 return 0;
2034}
2035 2003
2036static int snd_hdspm_get_safe_mode(struct snd_kcontrol *kcontrol, 2004static int snd_hdspm_get_safe_mode(struct snd_kcontrol *kcontrol,
2037 struct snd_ctl_elem_value *ucontrol) 2005 struct snd_ctl_elem_value *ucontrol)
@@ -2086,15 +2054,7 @@ static int hdspm_set_emphasis(struct hdspm * hdspm, int emp)
2086 return 0; 2054 return 0;
2087} 2055}
2088 2056
2089static int snd_hdspm_info_emphasis(struct snd_kcontrol *kcontrol, 2057#define snd_hdspm_info_emphasis snd_ctl_boolean_mono_info
2090 struct snd_ctl_elem_info *uinfo)
2091{
2092 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2093 uinfo->count = 1;
2094 uinfo->value.integer.min = 0;
2095 uinfo->value.integer.max = 1;
2096 return 0;
2097}
2098 2058
2099static int snd_hdspm_get_emphasis(struct snd_kcontrol *kcontrol, 2059static int snd_hdspm_get_emphasis(struct snd_kcontrol *kcontrol,
2100 struct snd_ctl_elem_value *ucontrol) 2060 struct snd_ctl_elem_value *ucontrol)
@@ -2149,15 +2109,7 @@ static int hdspm_set_dolby(struct hdspm * hdspm, int dol)
2149 return 0; 2109 return 0;
2150} 2110}
2151 2111
2152static int snd_hdspm_info_dolby(struct snd_kcontrol *kcontrol, 2112#define snd_hdspm_info_dolby snd_ctl_boolean_mono_info
2153 struct snd_ctl_elem_info *uinfo)
2154{
2155 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2156 uinfo->count = 1;
2157 uinfo->value.integer.min = 0;
2158 uinfo->value.integer.max = 1;
2159 return 0;
2160}
2161 2113
2162static int snd_hdspm_get_dolby(struct snd_kcontrol *kcontrol, 2114static int snd_hdspm_get_dolby(struct snd_kcontrol *kcontrol,
2163 struct snd_ctl_elem_value *ucontrol) 2115 struct snd_ctl_elem_value *ucontrol)
@@ -2212,15 +2164,7 @@ static int hdspm_set_professional(struct hdspm * hdspm, int dol)
2212 return 0; 2164 return 0;
2213} 2165}
2214 2166
2215static int snd_hdspm_info_professional(struct snd_kcontrol *kcontrol, 2167#define snd_hdspm_info_professional snd_ctl_boolean_mono_info
2216 struct snd_ctl_elem_info *uinfo)
2217{
2218 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2219 uinfo->count = 1;
2220 uinfo->value.integer.min = 0;
2221 uinfo->value.integer.max = 1;
2222 return 0;
2223}
2224 2168
2225static int snd_hdspm_get_professional(struct snd_kcontrol *kcontrol, 2169static int snd_hdspm_get_professional(struct snd_kcontrol *kcontrol,
2226 struct snd_ctl_elem_value *ucontrol) 2170 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/rme9652/rme9652.c b/sound/pci/rme9652/rme9652.c
index 2de27405a0bd..34f96f12e5bf 100644
--- a/sound/pci/rme9652/rme9652.c
+++ b/sound/pci/rme9652/rme9652.c
@@ -1067,14 +1067,7 @@ static int rme9652_set_spdif_output(struct snd_rme9652 *rme9652, int out)
1067 return 0; 1067 return 0;
1068} 1068}
1069 1069
1070static int snd_rme9652_info_spdif_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1070#define snd_rme9652_info_spdif_out snd_ctl_boolean_mono_info
1071{
1072 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1073 uinfo->count = 1;
1074 uinfo->value.integer.min = 0;
1075 uinfo->value.integer.max = 1;
1076 return 0;
1077}
1078 1071
1079static int snd_rme9652_get_spdif_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1072static int snd_rme9652_get_spdif_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1080{ 1073{
@@ -1338,14 +1331,7 @@ static int snd_rme9652_put_thru(struct snd_kcontrol *kcontrol, struct snd_ctl_el
1338 .put = snd_rme9652_put_passthru, \ 1331 .put = snd_rme9652_put_passthru, \
1339 .get = snd_rme9652_get_passthru } 1332 .get = snd_rme9652_get_passthru }
1340 1333
1341static int snd_rme9652_info_passthru(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1334#define snd_rme9652_info_passthru snd_ctl_boolean_mono_info
1342{
1343 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1344 uinfo->count = 1;
1345 uinfo->value.integer.min = 0;
1346 uinfo->value.integer.max = 1;
1347 return 0;
1348}
1349 1335
1350static int snd_rme9652_get_passthru(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1336static int snd_rme9652_get_passthru(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1351{ 1337{
@@ -1445,14 +1431,7 @@ static int snd_rme9652_get_adat_sync(struct snd_kcontrol *kcontrol, struct snd_c
1445 .info = snd_rme9652_info_tc_valid, \ 1431 .info = snd_rme9652_info_tc_valid, \
1446 .get = snd_rme9652_get_tc_valid } 1432 .get = snd_rme9652_get_tc_valid }
1447 1433
1448static int snd_rme9652_info_tc_valid(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1434#define snd_rme9652_info_tc_valid snd_ctl_boolean_mono_info
1449{
1450 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1451 uinfo->count = 1;
1452 uinfo->value.integer.min = 0;
1453 uinfo->value.integer.max = 1;
1454 return 0;
1455}
1456 1435
1457static int snd_rme9652_get_tc_valid(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1436static int snd_rme9652_get_tc_valid(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1458{ 1437{
diff --git a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c
index 7ca606272460..00e4004d5638 100644
--- a/sound/pci/trident/trident_main.c
+++ b/sound/pci/trident/trident_main.c
@@ -2317,15 +2317,7 @@ int __devinit snd_trident_spdif_pcm(struct snd_trident * trident,
2317 Description: enable/disable S/PDIF out from ac97 mixer 2317 Description: enable/disable S/PDIF out from ac97 mixer
2318 ---------------------------------------------------------------------------*/ 2318 ---------------------------------------------------------------------------*/
2319 2319
2320static int snd_trident_spdif_control_info(struct snd_kcontrol *kcontrol, 2320#define snd_trident_spdif_control_info snd_ctl_boolean_mono_info
2321 struct snd_ctl_elem_info *uinfo)
2322{
2323 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2324 uinfo->count = 1;
2325 uinfo->value.integer.min = 0;
2326 uinfo->value.integer.max = 1;
2327 return 0;
2328}
2329 2321
2330static int snd_trident_spdif_control_get(struct snd_kcontrol *kcontrol, 2322static int snd_trident_spdif_control_get(struct snd_kcontrol *kcontrol,
2331 struct snd_ctl_elem_value *ucontrol) 2323 struct snd_ctl_elem_value *ucontrol)
@@ -2545,15 +2537,7 @@ static struct snd_kcontrol_new snd_trident_spdif_stream __devinitdata =
2545 Description: enable/disable rear path for ac97 2537 Description: enable/disable rear path for ac97
2546 ---------------------------------------------------------------------------*/ 2538 ---------------------------------------------------------------------------*/
2547 2539
2548static int snd_trident_ac97_control_info(struct snd_kcontrol *kcontrol, 2540#define snd_trident_ac97_control_info snd_ctl_boolean_mono_info
2549 struct snd_ctl_elem_info *uinfo)
2550{
2551 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
2552 uinfo->count = 1;
2553 uinfo->value.integer.min = 0;
2554 uinfo->value.integer.max = 1;
2555 return 0;
2556}
2557 2541
2558static int snd_trident_ac97_control_get(struct snd_kcontrol *kcontrol, 2542static int snd_trident_ac97_control_get(struct snd_kcontrol *kcontrol,
2559 struct snd_ctl_elem_value *ucontrol) 2543 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c
index 6ea09df0c73a..5faa57956ca9 100644
--- a/sound/pci/via82xx.c
+++ b/sound/pci/via82xx.c
@@ -1572,15 +1572,7 @@ static struct snd_kcontrol_new snd_via8233_capture_source __devinitdata = {
1572 .put = snd_via8233_capture_source_put, 1572 .put = snd_via8233_capture_source_put,
1573}; 1573};
1574 1574
1575static int snd_via8233_dxs3_spdif_info(struct snd_kcontrol *kcontrol, 1575#define snd_via8233_dxs3_spdif_info snd_ctl_boolean_mono_info
1576 struct snd_ctl_elem_info *uinfo)
1577{
1578 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1579 uinfo->count = 1;
1580 uinfo->value.integer.min = 0;
1581 uinfo->value.integer.max = 1;
1582 return 0;
1583}
1584 1576
1585static int snd_via8233_dxs3_spdif_get(struct snd_kcontrol *kcontrol, 1577static int snd_via8233_dxs3_spdif_get(struct snd_kcontrol *kcontrol,
1586 struct snd_ctl_elem_value *ucontrol) 1578 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
index ab7a81c35705..7fa57c9ecc5f 100644
--- a/sound/pci/ymfpci/ymfpci_main.c
+++ b/sound/pci/ymfpci/ymfpci_main.c
@@ -1443,22 +1443,7 @@ static struct snd_kcontrol_new snd_ymfpci_drec_source __devinitdata = {
1443 .get = snd_ymfpci_get_single, .put = snd_ymfpci_put_single, \ 1443 .get = snd_ymfpci_get_single, .put = snd_ymfpci_put_single, \
1444 .private_value = ((reg) | ((shift) << 16)) } 1444 .private_value = ((reg) | ((shift) << 16)) }
1445 1445
1446static int snd_ymfpci_info_single(struct snd_kcontrol *kcontrol, 1446#define snd_ymfpci_info_single snd_ctl_boolean_mono_info
1447 struct snd_ctl_elem_info *uinfo)
1448{
1449 int reg = kcontrol->private_value & 0xffff;
1450
1451 switch (reg) {
1452 case YDSXGR_SPDIFOUTCTRL: break;
1453 case YDSXGR_SPDIFINCTRL: break;
1454 default: return -EINVAL;
1455 }
1456 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1457 uinfo->count = 1;
1458 uinfo->value.integer.min = 0;
1459 uinfo->value.integer.max = 1;
1460 return 0;
1461}
1462 1447
1463static int snd_ymfpci_get_single(struct snd_kcontrol *kcontrol, 1448static int snd_ymfpci_get_single(struct snd_kcontrol *kcontrol,
1464 struct snd_ctl_elem_value *ucontrol) 1449 struct snd_ctl_elem_value *ucontrol)
@@ -1570,14 +1555,7 @@ static int snd_ymfpci_put_double(struct snd_kcontrol *kcontrol, struct snd_ctl_e
1570/* 1555/*
1571 * 4ch duplication 1556 * 4ch duplication
1572 */ 1557 */
1573static int snd_ymfpci_info_dup4ch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1558#define snd_ymfpci_info_dup4ch snd_ctl_boolean_mono_info
1574{
1575 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1576 uinfo->count = 1;
1577 uinfo->value.integer.min = 0;
1578 uinfo->value.integer.max = 1;
1579 return 0;
1580}
1581 1559
1582static int snd_ymfpci_get_dup4ch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1560static int snd_ymfpci_get_dup4ch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1583{ 1561{
@@ -1665,14 +1643,7 @@ static int snd_ymfpci_set_gpio_out(struct snd_ymfpci *chip, int pin, int enable)
1665 return 0; 1643 return 0;
1666} 1644}
1667 1645
1668static int snd_ymfpci_gpio_sw_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1646#define snd_ymfpci_gpio_sw_info snd_ctl_boolean_mono_info
1669{
1670 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1671 uinfo->count = 1;
1672 uinfo->value.integer.min = 0;
1673 uinfo->value.integer.max = 1;
1674 return 0;
1675}
1676 1647
1677static int snd_ymfpci_gpio_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1648static int snd_ymfpci_gpio_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1678{ 1649{
diff --git a/sound/pcmcia/vx/vxp_mixer.c b/sound/pcmcia/vx/vxp_mixer.c
index 2b1f996c898d..1eff158b8687 100644
--- a/sound/pcmcia/vx/vxp_mixer.c
+++ b/sound/pcmcia/vx/vxp_mixer.c
@@ -80,14 +80,7 @@ static struct snd_kcontrol_new vx_control_mic_level = {
80/* 80/*
81 * mic boost level control (for VXP440) 81 * mic boost level control (for VXP440)
82 */ 82 */
83static int vx_mic_boost_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 83#define vx_mic_boost_info snd_ctl_boolean_mono_info
84{
85 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
86 uinfo->count = 1;
87 uinfo->value.integer.min = 0;
88 uinfo->value.integer.max = 1;
89 return 0;
90}
91 84
92static int vx_mic_boost_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 85static int vx_mic_boost_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
93{ 86{
diff --git a/sound/ppc/daca.c b/sound/ppc/daca.c
index 57202b0f033e..c5a1f0be6a4d 100644
--- a/sound/ppc/daca.c
+++ b/sound/ppc/daca.c
@@ -91,15 +91,7 @@ static int daca_set_volume(struct pmac_daca *mix)
91 91
92 92
93/* deemphasis switch */ 93/* deemphasis switch */
94static int daca_info_deemphasis(struct snd_kcontrol *kcontrol, 94#define daca_info_deemphasis snd_ctl_boolean_mono_info
95 struct snd_ctl_elem_info *uinfo)
96{
97 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
98 uinfo->count = 1;
99 uinfo->value.integer.min = 0;
100 uinfo->value.integer.max = 1;
101 return 0;
102}
103 95
104static int daca_get_deemphasis(struct snd_kcontrol *kcontrol, 96static int daca_get_deemphasis(struct snd_kcontrol *kcontrol,
105 struct snd_ctl_elem_value *ucontrol) 97 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/ppc/pmac.c b/sound/ppc/pmac.c
index 7a22f0f3784a..adbc86855b09 100644
--- a/sound/ppc/pmac.c
+++ b/sound/ppc/pmac.c
@@ -1035,29 +1035,6 @@ static int __init snd_pmac_detect(struct snd_pmac *chip)
1035 return 0; 1035 return 0;
1036} 1036}
1037 1037
1038/*
1039 * exported - boolean info callbacks for ease of programming
1040 */
1041int snd_pmac_boolean_stereo_info(struct snd_kcontrol *kcontrol,
1042 struct snd_ctl_elem_info *uinfo)
1043{
1044 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1045 uinfo->count = 2;
1046 uinfo->value.integer.min = 0;
1047 uinfo->value.integer.max = 1;
1048 return 0;
1049}
1050
1051int snd_pmac_boolean_mono_info(struct snd_kcontrol *kcontrol,
1052 struct snd_ctl_elem_info *uinfo)
1053{
1054 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1055 uinfo->count = 1;
1056 uinfo->value.integer.min = 0;
1057 uinfo->value.integer.max = 1;
1058 return 0;
1059}
1060
1061#ifdef PMAC_SUPPORT_AUTOMUTE 1038#ifdef PMAC_SUPPORT_AUTOMUTE
1062/* 1039/*
1063 * auto-mute 1040 * auto-mute
diff --git a/sound/ppc/pmac.h b/sound/ppc/pmac.h
index 8394e66ceb00..25c512c2d74d 100644
--- a/sound/ppc/pmac.h
+++ b/sound/ppc/pmac.h
@@ -202,8 +202,8 @@ int snd_pmac_keywest_init(struct pmac_keywest *i2c);
202void snd_pmac_keywest_cleanup(struct pmac_keywest *i2c); 202void snd_pmac_keywest_cleanup(struct pmac_keywest *i2c);
203 203
204/* misc */ 204/* misc */
205int snd_pmac_boolean_stereo_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo); 205#define snd_pmac_boolean_stereo_info snd_ctl_boolean_stereo_info
206int snd_pmac_boolean_mono_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo); 206#define snd_pmac_boolean_mono_info snd_ctl_boolean_mono_info
207 207
208int snd_pmac_add_automute(struct snd_pmac *chip); 208int snd_pmac_add_automute(struct snd_pmac *chip);
209 209
diff --git a/sound/sh/aica.c b/sound/sh/aica.c
index 739786529ca5..131ec4812288 100644
--- a/sound/sh/aica.c
+++ b/sound/sh/aica.c
@@ -451,15 +451,7 @@ static int __init snd_aicapcmchip(struct snd_card_aica
451} 451}
452 452
453/* Mixer controls */ 453/* Mixer controls */
454static int aica_pcmswitch_info(struct snd_kcontrol *kcontrol, 454#define aica_pcmswitch_info snd_ctl_boolean_mono_info
455 struct snd_ctl_elem_info *uinfo)
456{
457 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
458 uinfo->count = 1;
459 uinfo->value.integer.min = 0;
460 uinfo->value.integer.max = 1;
461 return 0;
462}
463 455
464static int aica_pcmswitch_get(struct snd_kcontrol *kcontrol, 456static int aica_pcmswitch_get(struct snd_kcontrol *kcontrol,
465 struct snd_ctl_elem_value *ucontrol) 457 struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 92d5d917b73b..91651bdfa761 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1362,26 +1362,6 @@ int snd_soc_info_volsw_ext(struct snd_kcontrol *kcontrol,
1362EXPORT_SYMBOL_GPL(snd_soc_info_volsw_ext); 1362EXPORT_SYMBOL_GPL(snd_soc_info_volsw_ext);
1363 1363
1364/** 1364/**
1365 * snd_soc_info_bool_ext - external single boolean mixer info callback
1366 * @kcontrol: mixer control
1367 * @uinfo: control element information
1368 *
1369 * Callback to provide information about a single boolean external mixer control.
1370 *
1371 * Returns 0 for success.
1372 */
1373int snd_soc_info_bool_ext(struct snd_kcontrol *kcontrol,
1374 struct snd_ctl_elem_info *uinfo)
1375{
1376 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1377 uinfo->count = 1;
1378 uinfo->value.integer.min = 0;
1379 uinfo->value.integer.max = 1;
1380 return 0;
1381}
1382EXPORT_SYMBOL_GPL(snd_soc_info_bool_ext);
1383
1384/**
1385 * snd_soc_info_volsw - single mixer info callback 1365 * snd_soc_info_volsw - single mixer info callback
1386 * @kcontrol: mixer control 1366 * @kcontrol: mixer control
1387 * @uinfo: control element information 1367 * @uinfo: control element information
diff --git a/sound/usb/usbmixer.c b/sound/usb/usbmixer.c
index 325d4b6b54aa..98d54483fec7 100644
--- a/sound/usb/usbmixer.c
+++ b/sound/usb/usbmixer.c
@@ -1888,14 +1888,7 @@ static int snd_usb_soundblaster_remote_init(struct usb_mixer_interface *mixer)
1888 return 0; 1888 return 0;
1889} 1889}
1890 1890
1891static int snd_audigy2nx_led_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 1891#define snd_audigy2nx_led_info snd_ctl_boolean_mono_info
1892{
1893 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1894 uinfo->count = 1;
1895 uinfo->value.integer.min = 0;
1896 uinfo->value.integer.max = 1;
1897 return 0;
1898}
1899 1892
1900static int snd_audigy2nx_led_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1893static int snd_audigy2nx_led_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1901{ 1894{