ALSA: azt3328: Use snd_ctl_enum_info()
authorTakashi Iwai <tiwai@suse.de>
Mon, 20 Oct 2014 16:16:13 +0000 (18:16 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 21 Oct 2014 06:53:54 +0000 (08:53 +0200)
... and reduce the open codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/azt3328.c

index 5a69e26cb2fb43e26b68c365159b3564a7171dde..fdbb9c05c77b74274ee7c07e4056fc7fbc7944e6 100644 (file)
@@ -1034,11 +1034,6 @@ snd_azf3328_info_mixer_enum(struct snd_kcontrol *kcontrol,
        const char * const *p = NULL;
 
        snd_azf3328_mixer_reg_decode(&reg, kcontrol->private_value);
-        uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
-        uinfo->count = (reg.reg == IDX_MIXER_REC_SELECT) ? 2 : 1;
-        uinfo->value.enumerated.items = reg.enum_c;
-        if (uinfo->value.enumerated.item > reg.enum_c - 1U)
-                uinfo->value.enumerated.item = reg.enum_c - 1U;
        if (reg.reg == IDX_MIXER_ADVCTL2) {
                switch(reg.lchan_shift) {
                case 8: /* modem out sel */
@@ -1051,12 +1046,12 @@ snd_azf3328_info_mixer_enum(struct snd_kcontrol *kcontrol,
                        p = texts4;
                        break;
                }
-       } else
-       if (reg.reg == IDX_MIXER_REC_SELECT)
+       } else if (reg.reg == IDX_MIXER_REC_SELECT)
                p = texts3;
 
-       strcpy(uinfo->value.enumerated.name, p[uinfo->value.enumerated.item]);
-        return 0;
+       return snd_ctl_enum_info(uinfo,
+                                (reg.reg == IDX_MIXER_REC_SELECT) ? 2 : 1,
+                                reg.enum_c, p);
 }
 
 static int