else
                        type_idx = 0;
                label = hda_get_autocfg_input_label(codec, cfg, i);
-               err = via_new_analog_input(spec, label, type_idx, idx, cap_nid);
+               if (spec->codec_type == VT1708S ||
+                   spec->codec_type == VT1702 ||
+                   spec->codec_type == VT1716S)
+                       err = via_new_analog_input(spec, label, type_idx,
+                                                  idx+1, cap_nid);
+               else
+                       err = via_new_analog_input(spec, label, type_idx,
+                                                  idx, cap_nid);
                if (err < 0)
                        return err;
                snd_hda_add_imux_item(imux, label, idx, NULL);