At Tue, 12 May 2015 14:38:15 +0200,
David Henningsson wrote:
>
> ALC662 does not need any special verbs to change the jack functionality,
> and enables mic in through the headphone jack mode by changing the
> direction of the headphone pin node.
>
> BugLink: https://bugs.launchpad.net/bugs/1454235
> Signed-off-by: David Henningsson <email address hidden>
At Tue, 12 May 2015 14:38:15 +0200, /bugs.launchpad .net/bugs/ 1454235
David Henningsson wrote:
>
> ALC662 does not need any special verbs to change the jack functionality,
> and enables mic in through the headphone jack mode by changing the
> direction of the headphone pin node.
>
> BugLink: https:/
> Signed-off-by: David Henningsson <email address hidden>
Applied, thanks.
Takashi
> --- hda/patch_ realtek. c | 46 +++++++ +++++++ +++++++ +++++++ +++++++ +++++++ - pci/hda/ patch_realtek. c b/sound/ pci/hda/ patch_realtek. c pci/hda/ patch_realtek. c pci/hda/ patch_realtek. c mode_mic_ in(struct hda_codec *codec, hda_nid_t hp_pin, coef_fw( codec, coef0293); set_pin_ ctl_cache( codec, mic_pin, PIN_VREF50); set_pin_ ctl_cache( codec, hp_pin, 0); set_pin_ ctl_cache( codec, mic_pin, PIN_VREF50); coef_idx( codec, 0x11, 0x0001); set_pin_ ctl_cache( codec, hp_pin, 0); headset_ mode(struct hda_codec *codec) MODE_MIC) { set_pin_ ctl_cache( codec, hp_pin, headphone_ mic_pin) headphone_ mic_pin && spec->headphone _mic_pin != hp_pin) set_pin_ ctl_cache( codec, spec->headphone _mic_pin, dell_xps13( struct hda_codec *codec, headset_ mode_alc662( struct hda_codec *codec, ACT_PRE_ PROBE) { HEADSET_ MIC; headset_ mode(codec, fix, action); headset_ mode_alc668( struct hda_codec *codec, FIXUP_NO_ JACK_DETECT, FIXUP_ZOTAC_ Z68, FIXUP_INV_ DMIC, FIXUP_DELL_ MIC_NO_ PRESENCE, FIXUP_DELL_ MIC_NO_ PRESENCE, FIXUP_HEADSET_ MODE, FIXUP_HEADSET_ MODE, FIXUP_BASS_ MODE4_CHMAP, FIXUP_BASS_ 16, FIXUP_DELL_ MIC_NO_ PRESENCE FIXUP_DELL_ MIC_NO_ PRESENCE] = { FIXUP_HEADSET_ MODE FIXUP_HEADSET_ MODE] = { headset_ mode_alc662, FIXUP_DELL_ MIC_NO_ PRESENCE] = { fixup_models[ ] = { pin_fixup_ tbl[] = { PIN_QUIRK( 0x10ec0662, 0x1028, "Dell", ALC662_ FIXUP_DELL_ MIC_NO_ PRESENCE, PIN_QUIRK( 0x10ec0668, 0x1028, "Dell", ALC668_ FIXUP_AUTO_ MUTE, STANDARD_ PINS,
> sound/pci/
> 1 file changed, 45 insertions(+), 1 deletion(-)
>
> diff --git a/sound/
> index ce41271..30ec30f 100644
> --- a/sound/
> +++ b/sound/
> @@ -3674,6 +3674,10 @@ static void alc_headset_
> alc_process_
> snd_hda_
> break;
> + case 0x10ec0662:
> + snd_hda_
> + snd_hda_
> + break;
> case 0x10ec0668:
> alc_write_
> snd_hda_
> @@ -4012,7 +4016,7 @@ static void alc_update_
> if (new_headset_mode != ALC_HEADSET_
> snd_hda_
> AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN);
> - if (spec->
> + if (spec->
> snd_hda_
> PIN_VREFHIZ);
> }
> @@ -4215,6 +4219,18 @@ static void alc_fixup_
> }
> }
>
> +static void alc_fixup_
> + const struct hda_fixup *fix, int action)
> +{
> + struct alc_spec *spec = codec->spec;
> +
> + if (action == HDA_FIXUP_
> + spec->parse_flags |= HDA_PINCFG_
> + spec->gen.hp_mic = 1; /* Mic-in is same pin as headphone */
> + } else
> + alc_fixup_
> +}
> +
> static void alc_fixup_
> const struct hda_fixup *fix, int action)
> {
> @@ -6080,7 +6096,9 @@ enum {
> ALC662_
> ALC662_
> ALC662_
> + ALC662_
> ALC668_
> + ALC662_
> ALC668_
> ALC662_
> ALC662_
> @@ -6273,6 +6291,20 @@ static const struct hda_fixup alc662_fixups[] = {
> .chained = true,
> .chain_id = ALC668_
> },
> + [ALC662_
> + .type = HDA_FIXUP_PINS,
> + .v.pins = (const struct hda_pintbl[]) {
> + { 0x19, 0x03a1113c }, /* use as headset mic, without its own jack detect */
> + /* headphone mic by setting pin control of 0x1b (headphone out) to in + vref_50 */
> + { }
> + },
> + .chained = true,
> + .chain_id = ALC662_
> + },
> + [ALC662_
> + .type = HDA_FIXUP_FUNC,
> + .v.func = alc_fixup_
> + },
> [ALC668_
> .type = HDA_FIXUP_PINS,
> .v.pins = (const struct hda_pintbl[]) {
> @@ -6432,6 +6464,18 @@ static const struct hda_model_fixup alc662_
> {0x1f, 0x411111f0}
>
> static const struct snd_hda_pin_quirk alc662_
> + SND_HDA_
> + {0x12, 0x4004c000},
> + {0x14, 0x01014010},
> + {0x15, 0x411111f0},
> + {0x16, 0x411111f0},
> + {0x18, 0x01a19020},
> + {0x19, 0x411111f0},
> + {0x1a, 0x0181302f},
> + {0x1b, 0x0221401f},
> + {0x1c, 0x411111f0},
> + {0x1d, 0x4054c601},
> + {0x1e, 0x411111f0}),
> SND_HDA_
> ALC668_
> {0x12, 0x99a30130},
> --
> 1.9.1
>