struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
 
        mutex_lock(&ice->gpio_mutex);
-       ucontrol->value.integer.value[0] = wm_get(ice, WM_ADC_MUX) & 0x1f;
+       ucontrol->value.enumerated.item[0] = wm_get(ice, WM_ADC_MUX) & 0x1f;
        mutex_unlock(&ice->gpio_mutex);
        return 0;
 }
 
        mutex_lock(&ice->gpio_mutex);
        oval = wm_get(ice, WM_ADC_MUX);
-       nval = (oval & 0xe0) | ucontrol->value.integer.value[0];
+       nval = (oval & 0xe0) | ucontrol->value.enumerated.item[0];
        if (nval != oval) {
                wm_put(ice, WM_ADC_MUX, nval);
                change = 1;