--- patch_realtek.c.orig 2010-05-18 09:30:14.254249965 +0200 +++ patch_realtek.c 2010-05-22 17:43:36.581654312 +0200 @@ -6937,6 +6937,38 @@ }, }; +static struct hda_input_mux alc883_vaiott_capture_sources[3] = { + /* Internal mic only available on one ADC */ + { + .num_items = 5, + .items = { + { "Ext Mic", 0x0 }, + { "Front Mic", 0x1 }, + { "Line In", 0x2 }, + { "CD", 0x4 }, + { "Int Mic", 0xb }, + }, + }, + { + .num_items = 4, + .items = { + { "Mic", 0x0 }, + { "Front Mic", 0x1 }, + { "Line In", 0x2 }, + { "CD", 0x4 }, + }, + }, + { + .num_items = 4, + .items = { + { "Mic", 0x0 }, + { "Front Mic", 0x1 }, + { "Line In", 0x2 }, + { "CD", 0x4 }, + }, + }, +}; + /* * 2ch mode */ @@ -8830,6 +8862,10 @@ }; static struct hda_verb alc883_vaiott_verbs[] = { + /* Internal Mic */ + {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + {0x12, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x24, AC_VERB_SET_CONNECT_SEL, 11}, /* HP */ {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, @@ -10141,11 +10177,16 @@ [ALC883_SONY_VAIO_TT] = { .mixers = { alc883_vaiott_mixer }, .init_verbs = { alc883_init_verbs, alc883_vaiott_verbs }, + .adc_nids = alc882_adc_nids, + .num_adc_nids = ARRAY_SIZE(alc882_adc_nids), + .capsrc_nids = alc882_capsrc_nids, .num_dacs = ARRAY_SIZE(alc883_dac_nids), .dac_nids = alc883_dac_nids, .num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes), .channel_mode = alc883_3ST_2ch_modes, - .input_mux = &alc883_capture_source, + .num_mux_defs = + ARRAY_SIZE(alc883_vaiott_capture_sources), + .input_mux = alc883_vaiott_capture_sources, .unsol_event = alc_automute_amp_unsol_event, .setup = alc883_vaiott_setup, .init_hook = alc_automute_amp,