Loading sound/pci/hda/patch_realtek.c +73 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,7 @@ enum { ALC882_ASUS_A7M, ALC885_MACPRO, ALC885_MBP3, ALC885_MB5, ALC885_IMAC24, ALC882_AUTO, ALC882_MODEL_LAST, Loading Loading @@ -6164,6 +6165,16 @@ static struct hda_input_mux alc882_capture_source = { { "CD", 0x4 }, }, }; static struct hda_input_mux mb5_capture_source = { .num_items = 3, .items = { { "Mic", 0x1 }, { "Line", 0x2 }, { "CD", 0x4 }, }, }; /* * 2ch mode */ Loading Loading @@ -6293,6 +6304,20 @@ static struct snd_kcontrol_new alc885_mbp3_mixer[] = { HDA_CODEC_VOLUME("Mic Boost", 0x18, 0x00, HDA_INPUT), { } /* end */ }; static struct snd_kcontrol_new alc885_mb5_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x0d, 0x00, HDA_OUTPUT), HDA_BIND_MUTE ("Front Playback Switch", 0x0d, 0x02, HDA_INPUT), HDA_CODEC_VOLUME("Line-Out Playback Volume", 0x0c, 0x00, HDA_OUTPUT), HDA_BIND_MUTE ("Line-Out Playback Switch", 0x0c, 0x02, HDA_INPUT), HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), HDA_CODEC_MUTE ("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), HDA_CODEC_MUTE ("Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), HDA_CODEC_VOLUME("Line Boost", 0x15, 0x00, HDA_INPUT), HDA_CODEC_VOLUME("Mic Boost", 0x19, 0x00, HDA_INPUT), { } /* end */ }; static struct snd_kcontrol_new alc882_w2jc_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), Loading Loading @@ -6520,6 +6545,38 @@ static struct hda_verb alc882_macpro_init_verbs[] = { { } }; /* Macbook 5,1 */ static struct hda_verb alc885_mb5_init_verbs[] = { /* Front mixer */ {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, /* LineOut mixer */ {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, /* Front Pin: output 0 (0x0d) */ {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT | 0x01}, {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, {0x18, AC_VERB_SET_CONNECT_SEL, 0x01}, /* HP Pin: output 0 (0x0c) */ {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, {0x14, AC_VERB_SET_CONNECT_SEL, 0x00}, /* Front Mic pin: input vref at 80% */ {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, /* Line In pin */ {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)}, {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)}, {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)}, { } }; /* Macbook Pro rev3 */ static struct hda_verb alc885_mbp3_init_verbs[] = { /* Front mixer: unmute input/output amp left and right (volume = 0) */ Loading Loading @@ -6864,6 +6921,7 @@ static const char *alc882_models[ALC882_MODEL_LAST] = { [ALC882_ASUS_A7J] = "asus-a7j", [ALC882_ASUS_A7M] = "asus-a7m", [ALC885_MACPRO] = "macpro", [ALC885_MB5] = "mb5", [ALC885_MBP3] = "mbp3", [ALC885_IMAC24] = "imac24", [ALC882_AUTO] = "auto", Loading Loading @@ -6944,6 +7002,18 @@ static struct alc_config_preset alc882_presets[] = { .unsol_event = alc885_mbp3_unsol_event, .init_hook = alc885_mbp3_automute, }, [ALC885_MB5] = { .mixers = { alc885_mb5_mixer }, .init_verbs = { alc885_mb5_init_verbs, alc880_gpio1_init_verbs }, .num_dacs = ARRAY_SIZE(alc882_dac_nids), .dac_nids = alc882_dac_nids, .channel_mode = alc885_mbp_6ch_modes, .num_channel_mode = ARRAY_SIZE(alc885_mbp_6ch_modes), .input_mux = &mb5_capture_source, .dig_out_nid = ALC882_DIGOUT_NID, .dig_in_nid = ALC882_DIGIN_NID, }, [ALC885_MACPRO] = { .mixers = { alc882_macpro_mixer }, .init_verbs = { alc882_macpro_init_verbs }, Loading Loading @@ -7249,6 +7319,9 @@ static int patch_alc882(struct hda_codec *codec) case 0x106b3800: /* MacbookPro4,1 - latter revision */ board_config = ALC885_MBP3; break; case 0x106b3f00: /* Macbook 5,1 */ board_config = ALC885_MB5; break; default: /* ALC889A is handled better as ALC888-compatible */ if (codec->revision_id == 0x100101 || Loading Loading
sound/pci/hda/patch_realtek.c +73 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,7 @@ enum { ALC882_ASUS_A7M, ALC885_MACPRO, ALC885_MBP3, ALC885_MB5, ALC885_IMAC24, ALC882_AUTO, ALC882_MODEL_LAST, Loading Loading @@ -6164,6 +6165,16 @@ static struct hda_input_mux alc882_capture_source = { { "CD", 0x4 }, }, }; static struct hda_input_mux mb5_capture_source = { .num_items = 3, .items = { { "Mic", 0x1 }, { "Line", 0x2 }, { "CD", 0x4 }, }, }; /* * 2ch mode */ Loading Loading @@ -6293,6 +6304,20 @@ static struct snd_kcontrol_new alc885_mbp3_mixer[] = { HDA_CODEC_VOLUME("Mic Boost", 0x18, 0x00, HDA_INPUT), { } /* end */ }; static struct snd_kcontrol_new alc885_mb5_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x0d, 0x00, HDA_OUTPUT), HDA_BIND_MUTE ("Front Playback Switch", 0x0d, 0x02, HDA_INPUT), HDA_CODEC_VOLUME("Line-Out Playback Volume", 0x0c, 0x00, HDA_OUTPUT), HDA_BIND_MUTE ("Line-Out Playback Switch", 0x0c, 0x02, HDA_INPUT), HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), HDA_CODEC_MUTE ("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), HDA_CODEC_MUTE ("Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), HDA_CODEC_VOLUME("Line Boost", 0x15, 0x00, HDA_INPUT), HDA_CODEC_VOLUME("Mic Boost", 0x19, 0x00, HDA_INPUT), { } /* end */ }; static struct snd_kcontrol_new alc882_w2jc_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), Loading Loading @@ -6520,6 +6545,38 @@ static struct hda_verb alc882_macpro_init_verbs[] = { { } }; /* Macbook 5,1 */ static struct hda_verb alc885_mb5_init_verbs[] = { /* Front mixer */ {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, /* LineOut mixer */ {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, /* Front Pin: output 0 (0x0d) */ {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT | 0x01}, {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, {0x18, AC_VERB_SET_CONNECT_SEL, 0x01}, /* HP Pin: output 0 (0x0c) */ {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, {0x14, AC_VERB_SET_CONNECT_SEL, 0x00}, /* Front Mic pin: input vref at 80% */ {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, /* Line In pin */ {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)}, {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)}, {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)}, { } }; /* Macbook Pro rev3 */ static struct hda_verb alc885_mbp3_init_verbs[] = { /* Front mixer: unmute input/output amp left and right (volume = 0) */ Loading Loading @@ -6864,6 +6921,7 @@ static const char *alc882_models[ALC882_MODEL_LAST] = { [ALC882_ASUS_A7J] = "asus-a7j", [ALC882_ASUS_A7M] = "asus-a7m", [ALC885_MACPRO] = "macpro", [ALC885_MB5] = "mb5", [ALC885_MBP3] = "mbp3", [ALC885_IMAC24] = "imac24", [ALC882_AUTO] = "auto", Loading Loading @@ -6944,6 +7002,18 @@ static struct alc_config_preset alc882_presets[] = { .unsol_event = alc885_mbp3_unsol_event, .init_hook = alc885_mbp3_automute, }, [ALC885_MB5] = { .mixers = { alc885_mb5_mixer }, .init_verbs = { alc885_mb5_init_verbs, alc880_gpio1_init_verbs }, .num_dacs = ARRAY_SIZE(alc882_dac_nids), .dac_nids = alc882_dac_nids, .channel_mode = alc885_mbp_6ch_modes, .num_channel_mode = ARRAY_SIZE(alc885_mbp_6ch_modes), .input_mux = &mb5_capture_source, .dig_out_nid = ALC882_DIGOUT_NID, .dig_in_nid = ALC882_DIGIN_NID, }, [ALC885_MACPRO] = { .mixers = { alc882_macpro_mixer }, .init_verbs = { alc882_macpro_init_verbs }, Loading Loading @@ -7249,6 +7319,9 @@ static int patch_alc882(struct hda_codec *codec) case 0x106b3800: /* MacbookPro4,1 - latter revision */ board_config = ALC885_MBP3; break; case 0x106b3f00: /* Macbook 5,1 */ board_config = ALC885_MB5; break; default: /* ALC889A is handled better as ALC888-compatible */ if (codec->revision_id == 0x100101 || Loading