{
int err;
err = stac92xx_add_control_idx(codec->spec, STAC_CTL_WIDGET_VOL, idx,
- "Captuer Volume", vol);
+ "Capture Volume", vol);
if (err < 0)
return err;
err = stac92xx_add_control_idx(codec->spec, STAC_CTL_WIDGET_MUTE, idx,
- "Captuer Switch", sw);
+ "Capture Switch", sw);
if (err < 0)
return err;
return 0;
stac_toggle_power_map(codec, cfg->hp_pins[i], 1);
}
if (spec->auto_mic) {
+ /* initialize connection to analog input */
+ snd_hda_codec_write_cache(codec, spec->dmux_nids[0], 0,
+ AC_VERB_SET_CONNECT_SEL, 0);
if (enable_pin_detect(codec, spec->ext_mic.pin, STAC_MIC_EVENT))
stac_issue_unsol_event(codec, spec->ext_mic.pin);
}
}
break;
case 0x111d7608: /* 5 Port with Analog Mixer */
- memcpy(&spec->private_dimux, &stac92hd71bxx_dmux_amixer,
- sizeof(stac92hd71bxx_dmux_amixer));
spec->private_dimux.num_items--;
switch (spec->board_config) {
case STAC_HP_M4:
/* no output amps */
spec->num_pwrs = 0;
- if (snd_hda_get_bool_hint(codec, "analog_mixer") == 1)
+ if (snd_hda_get_bool_hint(codec, "analog_mixer") == 1) {
spec->mixer = stac92hd71bxx_analog_mixer;
-
+ memcpy(&spec->private_dimux, &stac92hd71bxx_dmux_amixer,
+ sizeof(stac92hd71bxx_dmux_amixer));
+ } else {
+ memcpy(&spec->private_dimux,
+ &stac92hd71bxx_dmux_nomixer,
+ sizeof(stac92hd71bxx_dmux_nomixer));
+ }
/* disable VSW */
spec->init = stac92hd71bxx_core_init;
unmute_init++;
spec->num_pwrs = 0;
/* fallthru */
default:
- memcpy(&spec->private_dimux, &stac92hd71bxx_dmux_amixer,
- sizeof(stac92hd71bxx_dmux_amixer));
- if (snd_hda_get_bool_hint(codec, "analog_mixer") == 1)
+ if (snd_hda_get_bool_hint(codec, "analog_mixer") == 1) {
spec->mixer = stac92hd71bxx_analog_mixer;
+ memcpy(&spec->private_dimux, &stac92hd71bxx_dmux_amixer,
+ sizeof(stac92hd71bxx_dmux_amixer));
+ } else {
+ memcpy(&spec->private_dimux,
+ &stac92hd71bxx_dmux_nomixer,
+ sizeof(stac92hd71bxx_dmux_nomixer));
+ }
spec->init = stac92hd71bxx_core_init;
codec->slave_dig_outs = stac92hd71bxx_slave_dig_outs;
spec->num_dmics = stac92hd71bxx_connected_ports(codec,