int sel = ucontrol->value.enumerated.item[0];
        unsigned int items = IN_SRC_NUM_OF_INPUTS;
 
+       /*
+        * The AE-7 has no front microphone, so limit items to 2: rear mic and
+        * line-in.
+        */
+       if (ca0132_quirk(spec) == QUIRK_AE7)
+               items = 2;
+
        if (sel >= items)
                return 0;
 
                }
        }
 
-       if (ca0132_quirk(spec) == QUIRK_AE5) {
+       switch (ca0132_quirk(spec)) {
+       case QUIRK_AE5:
+       case QUIRK_AE7:
                err = ae5_add_headphone_gain_enum(codec);
                if (err < 0)
                        return err;
                err = ae5_add_sound_filter_enum(codec);
                if (err < 0)
                        return err;
-       }
-
-       if (ca0132_quirk(spec) == QUIRK_ZXR) {
+               break;
+       case QUIRK_ZXR:
                err = zxr_add_headphone_gain_switch(codec);
                if (err < 0)
                        return err;
+               break;
+       default:
+               break;
        }
+
 #ifdef ENABLE_TUNING_CONTROLS
        add_tuning_ctls(codec);
 #endif