I have tested the patch by manually adding the lines of code into mainline kernel 4.1.1.
The base speakers works. The headset microphone works. The headphone, headset microphone and microphone jack detection seems to work in PulseAudio (showing by plugged or unplugged status). However it does not automatically switch the (un)plugged microphone. My guess is that it does not know if it should use the headset microphone or the microphone (instead of the default internal microphone).
Do you think there is a way to automate the forward and backward switching between the internal microphone and headset microphone?
On 4 July 2015 at 07:56, Raymond Yau superquad.vortex2@gmail.com wrote:
2015-7-4 上午5:03於 "Arthur Borsboom" arthurborsboom@gmail.com寫道:
The jack test gives
Without external speaker plugged in:
Pin 0x12 (Internal Mic): present = No Pin 0x14 (Internal Speaker): present = No Pin 0x15 (Black Headphone, Left side): present = No Pin 0x16 (Not connected): present = No Pin 0x18 (Not connected): present = No Pin 0x19 (Not connected): present = No Pin 0x1a (Not connected): present = No Pin 0x1b (Not connected): present = No Pin 0x1d (Not connected): present = No Pin 0x1e (Not connected): present = No Pin 0x1f (Not connected): present = No
With external speaker plugged in:
Pin 0x12 (Internal Mic): present = No Pin 0x14 (Internal Speaker): present = No Pin 0x15 (Black Headphone, Left side): present = No Pin 0x16 (Not connected): present = No Pin 0x18 (Not connected): present = No Pin 0x19 (Not connected): present = No Pin 0x1a (Not connected): present = Yes Pin 0x1b (Not connected): present = No Pin 0x1d (Not connected): present = No Pin 0x1e (Not connected): present = No Pin 0x1f (Not connected): present = No
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 8e02cdf..174c5e5 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -6179,6 +6179,8 @@ enum { ALC668_FIXUP_AUTO_MUTE, ALC668_FIXUP_DELL_DISABLE_AAMIX, ALC668_FIXUP_DELL_XPS13,
- ALC668_FIXUP_BASS_CHMAP,
- ALC668_FIXUP_ASUS_N751JK,
};
static const struct hda_fixup alc662_fixups[] = { @@ -6419,6 +6421,23 @@ static const struct hda_fixup alc662_fixups[] = { .type = HDA_FIXUP_FUNC, .v.func = alc_fixup_bass_chmap, },
- [ALC668_FIXUP_BASS_CHMAP] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc_fixup_bass_chmap,
.chained = true,
.chain_id = ALC668_FIXUP_HEADSET_MODE
- },
- [ALC668_FIXUP_ASUS_N751JK] = {
.type = HDA_FIXUP_PINS,
.v.pins = (const struct hda_pintbl[]) {
{ 0x19, 0x03a1913d }, /* use as headphone mic, without its
own jack detect */
{ 0x1a, 0x04110011 }, /* bass speaker at Ext Right with jack
detect */
{ 0x1b, 0x03a1113c }, /* use as headset mic, without its own
jack detect */
{}
},
.chained = true,
.chain_id = ALC668_FIXUP_BASS_CHMAP,
- },
};
static const struct snd_pci_quirk alc662_fixup_tbl[] = { @@ -6441,6 +6460,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800), SND_PCI_QUIRK(0x1043, 0x11cd, "Asus N550", ALC662_FIXUP_BASS_1A), SND_PCI_QUIRK(0x1043, 0x1477, "ASUS N56VZ", ALC662_FIXUP_BASS_MODE4_CHMAP),
- SND_PCI_QUIRK(0x1043, 0x17bd, "Asus N751JK",
ALC668_FIXUP_ASUS_N751JK), SND_PCI_QUIRK(0x1043, 0x15a7, "ASUS UX51VZH", ALC662_FIXUP_BASS_16), SND_PCI_QUIRK(0x1043, 0x1b73, "ASUS N55SF", ALC662_FIXUP_BASS_16), SND_PCI_QUIRK(0x1043, 0x1bf3, "ASUS N76VZ", ALC662_FIXUP_BASS_MODE4_CHMAP),