aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/ice1712
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2014-10-20 12:18:50 -0400
committerTakashi Iwai <tiwai@suse.de>2014-10-21 03:02:50 -0400
commit597da2e4dfa04c8ee66b09fce931ab6825bc3e75 (patch)
treed130e83bdb4dff46addb77f01f1ac6831f202203 /sound/pci/ice1712
parentc4fa251f6f3ed00d59d0d8ee63bf346e6dd6b664 (diff)
ALSA: ice1724: Use snd_ctl_enum_info()
... and reduce the open codes. Also add missing const to text arrays. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/ice1712')
-rw-r--r--sound/pci/ice1712/aureon.c46
-rw-r--r--sound/pci/ice1712/ice1724.c8
-rw-r--r--sound/pci/ice1712/maya44.c20
-rw-r--r--sound/pci/ice1712/phase.c12
-rw-r--r--sound/pci/ice1712/pontis.c8
-rw-r--r--sound/pci/ice1712/prodigy192.c18
-rw-r--r--sound/pci/ice1712/prodigy_hifi.c11
-rw-r--r--sound/pci/ice1712/quartet.c27
-rw-r--r--sound/pci/ice1712/se.c9
9 files changed, 22 insertions, 137 deletions
diff --git a/sound/pci/ice1712/aureon.c b/sound/pci/ice1712/aureon.c
index 3b3cf4ac9060..c9411dfff5a4 100644
--- a/sound/pci/ice1712/aureon.c
+++ b/sound/pci/ice1712/aureon.c
@@ -205,13 +205,7 @@ static int aureon_universe_inmux_info(struct snd_kcontrol *kcontrol,
205 static const char * const texts[3] = 205 static const char * const texts[3] =
206 {"Internal Aux", "Wavetable", "Rear Line-In"}; 206 {"Internal Aux", "Wavetable", "Rear Line-In"};
207 207
208 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 208 return snd_ctl_enum_info(uinfo, 1, 3, texts);
209 uinfo->count = 1;
210 uinfo->value.enumerated.items = 3;
211 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
212 uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
213 strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]);
214 return 0;
215} 209}
216 210
217static int aureon_universe_inmux_get(struct snd_kcontrol *kcontrol, 211static int aureon_universe_inmux_get(struct snd_kcontrol *kcontrol,
@@ -1106,20 +1100,10 @@ static int wm_adc_mux_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_in
1106 }; 1100 };
1107 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); 1101 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
1108 1102
1109 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 1103 if (ice->eeprom.subvendor == VT1724_SUBDEVICE_AUREON71_UNIVERSE)
1110 uinfo->count = 2; 1104 return snd_ctl_enum_info(uinfo, 2, 8, universe_texts);
1111 if (ice->eeprom.subvendor == VT1724_SUBDEVICE_AUREON71_UNIVERSE) { 1105 else
1112 uinfo->value.enumerated.items = 8; 1106 return snd_ctl_enum_info(uinfo, 2, 5, texts);
1113 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
1114 uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
1115 strcpy(uinfo->value.enumerated.name, universe_texts[uinfo->value.enumerated.item]);
1116 } else {
1117 uinfo->value.enumerated.items = 5;
1118 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
1119 uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
1120 strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]);
1121 }
1122 return 0;
1123} 1107}
1124 1108
1125static int wm_adc_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1109static int wm_adc_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
@@ -1167,16 +1151,10 @@ static int aureon_cs8415_mux_info(struct snd_kcontrol *kcontrol, struct snd_ctl_
1167 "CD", 1151 "CD",
1168 "Coax" 1152 "Coax"
1169 }; 1153 };
1170 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
1171 uinfo->count = 1;
1172 uinfo->value.enumerated.items = 2;
1173 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
1174 uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
1175 if (ice->eeprom.subvendor == VT1724_SUBDEVICE_PRODIGY71) 1154 if (ice->eeprom.subvendor == VT1724_SUBDEVICE_PRODIGY71)
1176 strcpy(uinfo->value.enumerated.name, prodigy_texts[uinfo->value.enumerated.item]); 1155 return snd_ctl_enum_info(uinfo, 1, 2, prodigy_texts);
1177 else 1156 else
1178 strcpy(uinfo->value.enumerated.name, aureon_texts[uinfo->value.enumerated.item]); 1157 return snd_ctl_enum_info(uinfo, 1, 2, aureon_texts);
1179 return 0;
1180} 1158}
1181 1159
1182static int aureon_cs8415_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1160static int aureon_cs8415_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
@@ -1392,15 +1370,7 @@ static int aureon_oversampling_info(struct snd_kcontrol *k, struct snd_ctl_elem_
1392{ 1370{
1393 static const char * const texts[2] = { "128x", "64x" }; 1371 static const char * const texts[2] = { "128x", "64x" };
1394 1372
1395 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 1373 return snd_ctl_enum_info(uinfo, 1, 2, texts);
1396 uinfo->count = 1;
1397 uinfo->value.enumerated.items = 2;
1398
1399 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
1400 uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
1401 strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]);
1402
1403 return 0;
1404} 1374}
1405 1375
1406static int aureon_oversampling_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 1376static int aureon_oversampling_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c
index 08cb08ac85e6..f633e3bb4c43 100644
--- a/sound/pci/ice1712/ice1724.c
+++ b/sound/pci/ice1712/ice1724.c
@@ -2049,13 +2049,7 @@ static int snd_vt1724_pro_route_info(struct snd_kcontrol *kcontrol,
2049 "IEC958 In L", "IEC958 In R", /* 3-4 */ 2049 "IEC958 In L", "IEC958 In R", /* 3-4 */
2050 }; 2050 };
2051 2051
2052 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 2052 return snd_ctl_enum_info(uinfo, 1, 5, texts);
2053 uinfo->count = 1;
2054 uinfo->value.enumerated.items = 5;
2055 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
2056 uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
2057 strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]);
2058 return 0;
2059} 2053}
2060 2054
2061static inline int analog_route_shift(int idx) 2055static inline int analog_route_shift(int idx)
diff --git a/sound/pci/ice1712/maya44.c b/sound/pci/ice1712/maya44.c
index 63aa39f06f02..7de25c4807fd 100644
--- a/sound/pci/ice1712/maya44.c
+++ b/sound/pci/ice1712/maya44.c
@@ -359,15 +359,7 @@ static int maya_rec_src_info(struct snd_kcontrol *kcontrol,
359{ 359{
360 static const char * const texts[] = { "Line", "Mic" }; 360 static const char * const texts[] = { "Line", "Mic" };
361 361
362 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 362 return snd_ctl_enum_info(uinfo, 1, ARRAY_SIZE(texts), texts);
363 uinfo->count = 1;
364 uinfo->value.enumerated.items = ARRAY_SIZE(texts);
365 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
366 uinfo->value.enumerated.item =
367 uinfo->value.enumerated.items - 1;
368 strcpy(uinfo->value.enumerated.name,
369 texts[uinfo->value.enumerated.item]);
370 return 0;
371} 363}
372 364
373static int maya_rec_src_get(struct snd_kcontrol *kcontrol, 365static int maya_rec_src_get(struct snd_kcontrol *kcontrol,
@@ -411,15 +403,7 @@ static int maya_pb_route_info(struct snd_kcontrol *kcontrol,
411 "Input 1", "Input 2", "Input 3", "Input 4" 403 "Input 1", "Input 2", "Input 3", "Input 4"
412 }; 404 };
413 405
414 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 406 return snd_ctl_enum_info(uinfo, 1, ARRAY_SIZE(texts), texts);
415 uinfo->count = 1;
416 uinfo->value.enumerated.items = ARRAY_SIZE(texts);
417 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
418 uinfo->value.enumerated.item =
419 uinfo->value.enumerated.items - 1;
420 strcpy(uinfo->value.enumerated.name,
421 texts[uinfo->value.enumerated.item]);
422 return 0;
423} 407}
424 408
425static int maya_pb_route_shift(int idx) 409static int maya_pb_route_shift(int idx)
diff --git a/sound/pci/ice1712/phase.c b/sound/pci/ice1712/phase.c
index 0011e04f36a2..e9ca89c9174b 100644
--- a/sound/pci/ice1712/phase.c
+++ b/sound/pci/ice1712/phase.c
@@ -723,17 +723,7 @@ static int phase28_oversampling_info(struct snd_kcontrol *k,
723{ 723{
724 static const char * const texts[2] = { "128x", "64x" }; 724 static const char * const texts[2] = { "128x", "64x" };
725 725
726 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 726 return snd_ctl_enum_info(uinfo, 1, 2, texts);
727 uinfo->count = 1;
728 uinfo->value.enumerated.items = 2;
729
730 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
731 uinfo->value.enumerated.item = uinfo->value.enumerated.items -
732 1;
733 strcpy(uinfo->value.enumerated.name,
734 texts[uinfo->value.enumerated.item]);
735
736 return 0;
737} 727}
738 728
739static int phase28_oversampling_get(struct snd_kcontrol *kcontrol, 729static int phase28_oversampling_get(struct snd_kcontrol *kcontrol,
diff --git a/sound/pci/ice1712/pontis.c b/sound/pci/ice1712/pontis.c
index 5555eb4b2400..5101f40f6fbd 100644
--- a/sound/pci/ice1712/pontis.c
+++ b/sound/pci/ice1712/pontis.c
@@ -417,13 +417,7 @@ static int cs_source_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_inf
417 "Optical", /* RXP1 */ 417 "Optical", /* RXP1 */
418 "CD", /* RXP2 */ 418 "CD", /* RXP2 */
419 }; 419 };
420 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 420 return snd_ctl_enum_info(uinfo, 1, 3, texts);
421 uinfo->count = 1;
422 uinfo->value.enumerated.items = 3;
423 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
424 uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
425 strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]);
426 return 0;
427} 421}
428 422
429static int cs_source_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 423static int cs_source_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
diff --git a/sound/pci/ice1712/prodigy192.c b/sound/pci/ice1712/prodigy192.c
index f3b491aa3e22..1eb151aaa965 100644
--- a/sound/pci/ice1712/prodigy192.c
+++ b/sound/pci/ice1712/prodigy192.c
@@ -284,15 +284,7 @@ static int stac9460_mic_sw_info(struct snd_kcontrol *kcontrol,
284{ 284{
285 static const char * const texts[2] = { "Line In", "Mic" }; 285 static const char * const texts[2] = { "Line In", "Mic" };
286 286
287 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 287 return snd_ctl_enum_info(uinfo, 1, 2, texts);
288 uinfo->count = 1;
289 uinfo->value.enumerated.items = 2;
290
291 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
292 uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
293 strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]);
294
295 return 0;
296} 288}
297 289
298 290
@@ -563,13 +555,7 @@ static int ak4114_input_sw_info(struct snd_kcontrol *kcontrol,
563{ 555{
564 static const char * const texts[2] = { "Toslink", "Coax" }; 556 static const char * const texts[2] = { "Toslink", "Coax" };
565 557
566 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 558 return snd_ctl_enum_info(uinfo, 1, 2, texts);
567 uinfo->count = 1;
568 uinfo->value.enumerated.items = 2;
569 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
570 uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
571 strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]);
572 return 0;
573} 559}
574 560
575 561
diff --git a/sound/pci/ice1712/prodigy_hifi.c b/sound/pci/ice1712/prodigy_hifi.c
index 2261d1e49150..2697402b5195 100644
--- a/sound/pci/ice1712/prodigy_hifi.c
+++ b/sound/pci/ice1712/prodigy_hifi.c
@@ -537,7 +537,7 @@ static int wm_master_vol_put(struct snd_kcontrol *kcontrol,
537static int wm_adc_mux_enum_info(struct snd_kcontrol *kcontrol, 537static int wm_adc_mux_enum_info(struct snd_kcontrol *kcontrol,
538 struct snd_ctl_elem_info *uinfo) 538 struct snd_ctl_elem_info *uinfo)
539{ 539{
540 static char* texts[32] = { 540 static const char * const texts[32] = {
541 "NULL", WM_AIN1, WM_AIN2, WM_AIN1 "+" WM_AIN2, 541 "NULL", WM_AIN1, WM_AIN2, WM_AIN1 "+" WM_AIN2,
542 WM_AIN3, WM_AIN1 "+" WM_AIN3, WM_AIN2 "+" WM_AIN3, 542 WM_AIN3, WM_AIN1 "+" WM_AIN3, WM_AIN2 "+" WM_AIN3,
543 WM_AIN1 "+" WM_AIN2 "+" WM_AIN3, 543 WM_AIN1 "+" WM_AIN2 "+" WM_AIN3,
@@ -560,14 +560,7 @@ static int wm_adc_mux_enum_info(struct snd_kcontrol *kcontrol,
560 WM_AIN1 "+" WM_AIN2 "+" WM_AIN3 "+" WM_AIN4 "+" WM_AIN5 560 WM_AIN1 "+" WM_AIN2 "+" WM_AIN3 "+" WM_AIN4 "+" WM_AIN5
561 }; 561 };
562 562
563 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 563 return snd_ctl_enum_info(uinfo, 1, 32, texts);
564 uinfo->count = 1;
565 uinfo->value.enumerated.items = 32;
566 if (uinfo->value.enumerated.item > 31)
567 uinfo->value.enumerated.item = 31;
568 strcpy(uinfo->value.enumerated.name,
569 texts[uinfo->value.enumerated.item]);
570 return 0;
571} 564}
572 565
573static int wm_adc_mux_enum_get(struct snd_kcontrol *kcontrol, 566static int wm_adc_mux_enum_get(struct snd_kcontrol *kcontrol,
diff --git a/sound/pci/ice1712/quartet.c b/sound/pci/ice1712/quartet.c
index 2c2df4b74e01..d4caf9d05922 100644
--- a/sound/pci/ice1712/quartet.c
+++ b/sound/pci/ice1712/quartet.c
@@ -46,7 +46,7 @@ struct qtet_kcontrol_private {
46 unsigned int bit; 46 unsigned int bit;
47 void (*set_register)(struct snd_ice1712 *ice, unsigned int val); 47 void (*set_register)(struct snd_ice1712 *ice, unsigned int val);
48 unsigned int (*get_register)(struct snd_ice1712 *ice); 48 unsigned int (*get_register)(struct snd_ice1712 *ice);
49 unsigned char * const texts[2]; 49 const char * const texts[2];
50}; 50};
51 51
52enum { 52enum {
@@ -554,17 +554,7 @@ static int qtet_ain12_enum_info(struct snd_kcontrol *kcontrol,
554{ 554{
555 static const char * const texts[3] = 555 static const char * const texts[3] =
556 {"Line In 1/2", "Mic", "Mic + Low-cut"}; 556 {"Line In 1/2", "Mic", "Mic + Low-cut"};
557 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 557 return snd_ctl_enum_info(uinfo, 1, ARRAY_SIZE(texts), texts);
558 uinfo->count = 1;
559 uinfo->value.enumerated.items = ARRAY_SIZE(texts);
560
561 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
562 uinfo->value.enumerated.item =
563 uinfo->value.enumerated.items - 1;
564 strcpy(uinfo->value.enumerated.name,
565 texts[uinfo->value.enumerated.item]);
566
567 return 0;
568} 558}
569 559
570static int qtet_ain12_sw_get(struct snd_kcontrol *kcontrol, 560static int qtet_ain12_sw_get(struct snd_kcontrol *kcontrol,
@@ -706,17 +696,8 @@ static int qtet_enum_info(struct snd_kcontrol *kcontrol,
706{ 696{
707 struct qtet_kcontrol_private private = 697 struct qtet_kcontrol_private private =
708 qtet_privates[kcontrol->private_value]; 698 qtet_privates[kcontrol->private_value];
709 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 699 return snd_ctl_enum_info(uinfo, 1, ARRAY_SIZE(private.texts),
710 uinfo->count = 1; 700 private.texts);
711 uinfo->value.enumerated.items = ARRAY_SIZE(private.texts);
712
713 if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
714 uinfo->value.enumerated.item =
715 uinfo->value.enumerated.items - 1;
716 strcpy(uinfo->value.enumerated.name,
717 private.texts[uinfo->value.enumerated.item]);
718
719 return 0;
720} 701}
721 702
722static int qtet_sw_get(struct snd_kcontrol *kcontrol, 703static int qtet_sw_get(struct snd_kcontrol *kcontrol,
diff --git a/sound/pci/ice1712/se.c b/sound/pci/ice1712/se.c
index ffd894bb4507..1c5d5b22c7a0 100644
--- a/sound/pci/ice1712/se.c
+++ b/sound/pci/ice1712/se.c
@@ -452,14 +452,7 @@ static int se200pci_cont_enum_info(struct snd_kcontrol *kc,
452 c = se200pci_get_enum_count(n); 452 c = se200pci_get_enum_count(n);
453 if (!c) 453 if (!c)
454 return -EINVAL; 454 return -EINVAL;
455 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 455 return snd_ctl_enum_info(uinfo, 1, c, se200pci_cont[n].member);
456 uinfo->count = 1;
457 uinfo->value.enumerated.items = c;
458 if (uinfo->value.enumerated.item >= c)
459 uinfo->value.enumerated.item = c - 1;
460 strcpy(uinfo->value.enumerated.name,
461 se200pci_cont[n].member[uinfo->value.enumerated.item]);
462 return 0;
463} 456}
464 457
465static int se200pci_cont_volume_get(struct snd_kcontrol *kc, 458static int se200pci_cont_volume_get(struct snd_kcontrol *kc,