Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+22 -137
+8 -38
sound/pci/ice1712/aureon.c
··· 205 205 static const char * const texts[3] = 206 206 {"Internal Aux", "Wavetable", "Rear Line-In"}; 207 207 208 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 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; 208 + return snd_ctl_enum_info(uinfo, 1, 3, texts); 215 209 } 216 210 217 211 static int aureon_universe_inmux_get(struct snd_kcontrol *kcontrol, ··· 1100 1106 }; 1101 1107 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); 1102 1108 1103 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 1104 - uinfo->count = 2; 1105 - if (ice->eeprom.subvendor == VT1724_SUBDEVICE_AUREON71_UNIVERSE) { 1106 - uinfo->value.enumerated.items = 8; 1107 - if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items) 1108 - uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1; 1109 - strcpy(uinfo->value.enumerated.name, universe_texts[uinfo->value.enumerated.item]); 1110 - } else { 1111 - uinfo->value.enumerated.items = 5; 1112 - if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items) 1113 - uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1; 1114 - strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]); 1115 - } 1116 - return 0; 1109 + if (ice->eeprom.subvendor == VT1724_SUBDEVICE_AUREON71_UNIVERSE) 1110 + return snd_ctl_enum_info(uinfo, 2, 8, universe_texts); 1111 + else 1112 + return snd_ctl_enum_info(uinfo, 2, 5, texts); 1117 1113 } 1118 1114 1119 1115 static int wm_adc_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) ··· 1151 1167 "CD", 1152 1168 "Coax" 1153 1169 }; 1154 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 1155 - uinfo->count = 1; 1156 - uinfo->value.enumerated.items = 2; 1157 - if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items) 1158 - uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1; 1159 1170 if (ice->eeprom.subvendor == VT1724_SUBDEVICE_PRODIGY71) 1160 - strcpy(uinfo->value.enumerated.name, prodigy_texts[uinfo->value.enumerated.item]); 1171 + return snd_ctl_enum_info(uinfo, 1, 2, prodigy_texts); 1161 1172 else 1162 - strcpy(uinfo->value.enumerated.name, aureon_texts[uinfo->value.enumerated.item]); 1163 - return 0; 1173 + return snd_ctl_enum_info(uinfo, 1, 2, aureon_texts); 1164 1174 } 1165 1175 1166 1176 static int aureon_cs8415_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) ··· 1370 1392 { 1371 1393 static const char * const texts[2] = { "128x", "64x" }; 1372 1394 1373 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 1374 - uinfo->count = 1; 1375 - uinfo->value.enumerated.items = 2; 1376 - 1377 - if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items) 1378 - uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1; 1379 - strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]); 1380 - 1381 - return 0; 1395 + return snd_ctl_enum_info(uinfo, 1, 2, texts); 1382 1396 } 1383 1397 1384 1398 static int aureon_oversampling_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
+1 -7
sound/pci/ice1712/ice1724.c
··· 2049 2049 "IEC958 In L", "IEC958 In R", /* 3-4 */ 2050 2050 }; 2051 2051 2052 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 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; 2052 + return snd_ctl_enum_info(uinfo, 1, 5, texts); 2059 2053 } 2060 2054 2061 2055 static inline int analog_route_shift(int idx)
+2 -18
sound/pci/ice1712/maya44.c
··· 359 359 { 360 360 static const char * const texts[] = { "Line", "Mic" }; 361 361 362 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 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; 362 + return snd_ctl_enum_info(uinfo, 1, ARRAY_SIZE(texts), texts); 371 363 } 372 364 373 365 static int maya_rec_src_get(struct snd_kcontrol *kcontrol, ··· 403 411 "Input 1", "Input 2", "Input 3", "Input 4" 404 412 }; 405 413 406 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 407 - uinfo->count = 1; 408 - uinfo->value.enumerated.items = ARRAY_SIZE(texts); 409 - if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items) 410 - uinfo->value.enumerated.item = 411 - uinfo->value.enumerated.items - 1; 412 - strcpy(uinfo->value.enumerated.name, 413 - texts[uinfo->value.enumerated.item]); 414 - return 0; 414 + return snd_ctl_enum_info(uinfo, 1, ARRAY_SIZE(texts), texts); 415 415 } 416 416 417 417 static int maya_pb_route_shift(int idx)
+1 -11
sound/pci/ice1712/phase.c
··· 723 723 { 724 724 static const char * const texts[2] = { "128x", "64x" }; 725 725 726 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 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; 726 + return snd_ctl_enum_info(uinfo, 1, 2, texts); 737 727 } 738 728 739 729 static int phase28_oversampling_get(struct snd_kcontrol *kcontrol,
+1 -7
sound/pci/ice1712/pontis.c
··· 417 417 "Optical", /* RXP1 */ 418 418 "CD", /* RXP2 */ 419 419 }; 420 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 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; 420 + return snd_ctl_enum_info(uinfo, 1, 3, texts); 427 421 } 428 422 429 423 static int cs_source_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
+2 -16
sound/pci/ice1712/prodigy192.c
··· 284 284 { 285 285 static const char * const texts[2] = { "Line In", "Mic" }; 286 286 287 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 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; 287 + return snd_ctl_enum_info(uinfo, 1, 2, texts); 296 288 } 297 289 298 290 ··· 555 563 { 556 564 static const char * const texts[2] = { "Toslink", "Coax" }; 557 565 558 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 559 - uinfo->count = 1; 560 - uinfo->value.enumerated.items = 2; 561 - if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items) 562 - uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1; 563 - strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]); 564 - return 0; 566 + return snd_ctl_enum_info(uinfo, 1, 2, texts); 565 567 } 566 568 567 569
+2 -9
sound/pci/ice1712/prodigy_hifi.c
··· 537 537 static int wm_adc_mux_enum_info(struct snd_kcontrol *kcontrol, 538 538 struct snd_ctl_elem_info *uinfo) 539 539 { 540 - static char* texts[32] = { 540 + static const char * const texts[32] = { 541 541 "NULL", WM_AIN1, WM_AIN2, WM_AIN1 "+" WM_AIN2, 542 542 WM_AIN3, WM_AIN1 "+" WM_AIN3, WM_AIN2 "+" WM_AIN3, 543 543 WM_AIN1 "+" WM_AIN2 "+" WM_AIN3, ··· 560 560 WM_AIN1 "+" WM_AIN2 "+" WM_AIN3 "+" WM_AIN4 "+" WM_AIN5 561 561 }; 562 562 563 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 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; 563 + return snd_ctl_enum_info(uinfo, 1, 32, texts); 571 564 } 572 565 573 566 static int wm_adc_mux_enum_get(struct snd_kcontrol *kcontrol,
+4 -23
sound/pci/ice1712/quartet.c
··· 46 46 unsigned int bit; 47 47 void (*set_register)(struct snd_ice1712 *ice, unsigned int val); 48 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 52 52 enum { ··· 554 554 { 555 555 static const char * const texts[3] = 556 556 {"Line In 1/2", "Mic", "Mic + Low-cut"}; 557 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 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; 557 + return snd_ctl_enum_info(uinfo, 1, ARRAY_SIZE(texts), texts); 568 558 } 569 559 570 560 static int qtet_ain12_sw_get(struct snd_kcontrol *kcontrol, ··· 696 706 { 697 707 struct qtet_kcontrol_private private = 698 708 qtet_privates[kcontrol->private_value]; 699 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 700 - uinfo->count = 1; 701 - uinfo->value.enumerated.items = ARRAY_SIZE(private.texts); 702 - 703 - if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items) 704 - uinfo->value.enumerated.item = 705 - uinfo->value.enumerated.items - 1; 706 - strcpy(uinfo->value.enumerated.name, 707 - private.texts[uinfo->value.enumerated.item]); 708 - 709 - return 0; 709 + return snd_ctl_enum_info(uinfo, 1, ARRAY_SIZE(private.texts), 710 + private.texts); 710 711 } 711 712 712 713 static int qtet_sw_get(struct snd_kcontrol *kcontrol,
+1 -8
sound/pci/ice1712/se.c
··· 452 452 c = se200pci_get_enum_count(n); 453 453 if (!c) 454 454 return -EINVAL; 455 - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 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; 455 + return snd_ctl_enum_info(uinfo, 1, c, se200pci_cont[n].member); 463 456 } 464 457 465 458 static int se200pci_cont_volume_get(struct snd_kcontrol *kc,