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 <david.hennings...@canonical.com>
Applied, thanks. Takashi > --- > sound/pci/hda/patch_realtek.c | 46 > ++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 45 insertions(+), 1 deletion(-) > > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c > index ce41271..30ec30f 100644 > --- a/sound/pci/hda/patch_realtek.c > +++ b/sound/pci/hda/patch_realtek.c > @@ -3674,6 +3674,10 @@ static void alc_headset_mode_mic_in(struct hda_codec > *codec, hda_nid_t hp_pin, > alc_process_coef_fw(codec, coef0293); > snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50); > break; > + case 0x10ec0662: > + snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); > + snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50); > + break; > case 0x10ec0668: > alc_write_coef_idx(codec, 0x11, 0x0001); > snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); > @@ -4012,7 +4016,7 @@ static void alc_update_headset_mode(struct hda_codec > *codec) > if (new_headset_mode != ALC_HEADSET_MODE_MIC) { > snd_hda_set_pin_ctl_cache(codec, hp_pin, > AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN); > - if (spec->headphone_mic_pin) > + if (spec->headphone_mic_pin && spec->headphone_mic_pin != > hp_pin) > snd_hda_set_pin_ctl_cache(codec, > spec->headphone_mic_pin, > PIN_VREFHIZ); > } > @@ -4215,6 +4219,18 @@ static void alc_fixup_dell_xps13(struct hda_codec > *codec, > } > } > > +static void alc_fixup_headset_mode_alc662(struct hda_codec *codec, > + const struct hda_fixup *fix, int action) > +{ > + struct alc_spec *spec = codec->spec; > + > + if (action == HDA_FIXUP_ACT_PRE_PROBE) { > + spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; > + spec->gen.hp_mic = 1; /* Mic-in is same pin as headphone */ > + } else > + alc_fixup_headset_mode(codec, fix, action); > +} > + > static void alc_fixup_headset_mode_alc668(struct hda_codec *codec, > const struct hda_fixup *fix, int action) > { > @@ -6080,7 +6096,9 @@ enum { > ALC662_FIXUP_NO_JACK_DETECT, > ALC662_FIXUP_ZOTAC_Z68, > ALC662_FIXUP_INV_DMIC, > + ALC662_FIXUP_DELL_MIC_NO_PRESENCE, > ALC668_FIXUP_DELL_MIC_NO_PRESENCE, > + ALC662_FIXUP_HEADSET_MODE, > ALC668_FIXUP_HEADSET_MODE, > ALC662_FIXUP_BASS_MODE4_CHMAP, > ALC662_FIXUP_BASS_16, > @@ -6273,6 +6291,20 @@ static const struct hda_fixup alc662_fixups[] = { > .chained = true, > .chain_id = ALC668_FIXUP_DELL_MIC_NO_PRESENCE > }, > + [ALC662_FIXUP_DELL_MIC_NO_PRESENCE] = { > + .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_FIXUP_HEADSET_MODE > + }, > + [ALC662_FIXUP_HEADSET_MODE] = { > + .type = HDA_FIXUP_FUNC, > + .v.func = alc_fixup_headset_mode_alc662, > + }, > [ALC668_FIXUP_DELL_MIC_NO_PRESENCE] = { > .type = HDA_FIXUP_PINS, > .v.pins = (const struct hda_pintbl[]) { > @@ -6432,6 +6464,18 @@ static const struct hda_model_fixup > alc662_fixup_models[] = { > {0x1f, 0x411111f0} > > static const struct snd_hda_pin_quirk alc662_pin_fixup_tbl[] = { > + SND_HDA_PIN_QUIRK(0x10ec0662, 0x1028, "Dell", > ALC662_FIXUP_DELL_MIC_NO_PRESENCE, > + {0x12, 0x4004c000}, > + {0x14, 0x01014010}, > + {0x15, 0x411111f0}, > + {0x16, 0x411111f0}, > + {0x18, 0x01a19020}, > + {0x19, 0x411111f0}, > + {0x1a, 0x0181302f}, > + {0x1b, 0x0221401f}, > + {0x1c, 0x411111f0}, > + {0x1d, 0x4054c601}, > + {0x1e, 0x411111f0}), > SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE, > ALC668_STANDARD_PINS, > {0x12, 0x99a30130}, > -- > 1.9.1 > -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1454235 Title: Fix headset jack on two Dell machines Status in HWE Next Project: New Status in linux package in Ubuntu: Fix Committed Bug description: This bug is for tracking purposes. Please do not triage. To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1454235/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp