[alsa-devel] [ALC668]: Asus N751JK - Incorrect default pin assignment for external base speaker and external microphone not working

Arthur Borsboom arthurborsboom at gmail.com
Fri Jul 3 23:03:05 CEST 2015


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

For the other parts, I lack the experience.
I have just set up a test environment, so I can recompile and test kernels
without breaking my main system.

If you have any patches to suggest and test (for the external speaker and
the auto switch of headset), I am all ears.
If not, I will try to dig in it myself.

On 3 July 2015 at 04:20, Raymond Yau <superquad.vortex2 at gmail.com> wrote:

>
> >
> > "hdajacksensetest -a" gives
> >
> > Pin 0x05 ( Digital Out, HDMI): present = No
> > Pin 0x06 ( Digital Out, HDMI): present = No
> > Pin 0x07 (Not connected): present = No
> >
> > which is a bit of a surprise to me, since at least the headphones (of
> the headset I plugin) has working jack detection. I would expect to see at
> least to have 1 non-HDMI pin connected.
>
> You need to specify card number
>
> hdajacksensetest -c1 -a
>
> If the external subwoofer can be detected with other unconnected pin
> complex instead of node 0x1a jack sense, you need to call
> snd_hda_jack_add_kctl in your fixup
>
> snd_hda_jack_add_kctl(struct hda_codec *codec, hda_nid_t nid,
>   const char *name)
>
> >
> > ----
> >
> > > Can user giveup some combo jack capability (remove the support of
> headphone and mic jack and only support headset ) by early patching to
> reenable auto mic selection ?
> >
> > To this I don't know the answer.
> >
> > An image of the side with the different jacks:
> >
> http://www.notebookcheck.net/fileadmin/Notebooks/Asus/N751JK-T4144H/rechts.jpg
> >
> > The yellow is the external speaker
> > The one next to the USB ports is the headset with a logo of a headset
> and a microphone drawn in it.
>
>
> https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/pci/hda?id=73bdd597823e2231dc882577dbbaf8df92fe1775
>
> [ALC668_FIXUP_DELL_MIC_NO_PRESENCE] = {
> + .type = HDA_FIXUP_PINS,
> + .v.pins = (const struct hda_pintbl[]) {
> + { 0x19, 0x03a1913d }, /* use as headphone mic, without its own jack
> detect */
> + { 0x1b, 0x03a1113c }, /* use as headset mic, without its own jack detect
> */
> + { }
> + },
> + .chained = true,
> + .chain_id = ALC668_FIXUP_HEADSET_MODE
> + },
> + [ALC668_FIXUP_HEADSET_MODE] = {
> + .type = HDA_FIXUP_FUNC,
> + .v.func = alc_fixup_headset_mode_alc668,
> + },
>
> No need to change if you are using headphone since default is headphone
>
> Support of Headphone mic can be removed by
> alc_fixup_headset_mode_no_hp_mic()
>
> You need to hack the driver to set current_headset_type to cita or omtp
> instead of unknown
>
> spec->current_headset_type = ALC_HEADSET_MODE_UNKNOWN;
>
>


-- 
Arthur Borsboom
Lieven de Keystraat 77
3067 KG, Rotterdam
The Netherlands
Mob: +31629089953
Email: arthurborsboom at gmail.com
Skype: Arthur Borsboom, The Hague, The Netherlands

[image: View Arthur's LinkedIn profile]
<http://uk.linkedin.com/in/arthurborsboom>


More information about the Alsa-devel mailing list