mutex_lock(&ice->gpio_mutex);
        val = wm_get(ice, WM_ADC_MUX);
-       ucontrol->value.integer.value[0] = val & 7;
-       ucontrol->value.integer.value[1] = (val >> 4) & 7;
+       ucontrol->value.enumerated.item[0] = val & 7;
+       ucontrol->value.enumerated.item[1] = (val >> 4) & 7;
        mutex_unlock(&ice->gpio_mutex);
        return 0;
 }
        snd_ice1712_save_gpio_status(ice);
        oval = wm_get(ice, WM_ADC_MUX);
        nval = oval & ~0x77;
-       nval |= ucontrol->value.integer.value[0] & 7;
-       nval |= (ucontrol->value.integer.value[1] & 7) << 4;
+       nval |= ucontrol->value.enumerated.item[0] & 7;
+       nval |= (ucontrol->value.enumerated.item[1] & 7) << 4;
        change = (oval != nval);
        if (change)
                wm_put(ice, WM_ADC_MUX, nval);
 
        //snd_ice1712_save_gpio_status(ice);
        //val = aureon_cs8415_get(ice, CS8415_CTRL2);
-       ucontrol->value.integer.value[0] = ice->spec.aureon.cs8415_mux;
+       ucontrol->value.enumerated.item[0] = ice->spec.aureon.cs8415_mux;
        //snd_ice1712_restore_gpio_status(ice);
        return 0;
 }
        snd_ice1712_save_gpio_status(ice);
        oval = aureon_cs8415_get(ice, CS8415_CTRL2);
        nval = oval & ~0x07;
-       nval |= ucontrol->value.integer.value[0] & 7;
+       nval |= ucontrol->value.enumerated.item[0] & 7;
        change = (oval != nval);
        if (change)
                aureon_cs8415_put(ice, CS8415_CTRL2, nval);
        snd_ice1712_restore_gpio_status(ice);
-       ice->spec.aureon.cs8415_mux = ucontrol->value.integer.value[0];
+       ice->spec.aureon.cs8415_mux = ucontrol->value.enumerated.item[0];
        return change;
 }