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

Raymond Yau superquad.vortex2 at gmail.com
Fri Jul 10 09:49:47 CEST 2015


>
> First I think I am going to split this mail into two topics, starting
with the easiest one, the External Base speaker.
>
> The code above added two new options: Surround 2.1 and Surround 4.0.
> After plugging in the base speaker:
>
> - The Base speaker plays without this code (but the previous code was
necessary) on the Speakers.
> - The Base speaker does not play on Surround 2.1
> - The Base speaker does play on Surround 4.0
> - The Base speaker does not switch automatically to any Surround when
plugged in.

How do you test ? Using sound preference or alsa speaker-test

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/pci/hda?id=8e38395360844806041ea69ab9690f5f174bc40c

Seem pulseaudio bug since driver only define stereo and 2.1 channel map
and  there is no surround 4.0 channel map

http://git.alsa-project.org/?p=alsa-lib.git;a=commitdiff;h=48f1b308cc66152eb6db66742dd0d08d888cda8d;hp=5c4cd46810cef8850b037fca9e38ffd43b0bff22

+       ttable.0.FL 1
+       ttable.1.FR 1
+       ttable.2.LFE 1

surround21 is supposed to be also used on 5.1 speaker since it only check

Do you mean it only work on 5.1 speaker since there are three combination
of 2.1 chmap ?

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound?id=ee81abb623cb5e03c182d16871bb4fb34fdc9b4f

1) hda default 2.1

{ .channels = 4,
  .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR,
   SNDRV_CHMAP_LFE , SNDRV_CHMAP_LFE } },
{ }

2) acer aspire /* LFE only on left */

{ .channels = 4,
  .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR,
   SNDRV_CHMAP_LFE, SNDRV_CHMAP_NA} }, /* LFE only on left */
{ }

3) LFE only on right on asus latop external sonic master subwoofer
{ .channels = 4,
  .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR,
   SNDRV_CHMAP_NA, SNDRV_CHMAP_LFE } }, /* LFE only on right */
{ }

speaker-test  don't check channel map

Those asus n series laptop with alc663 seem use  node 0x1e to for the
detection of external subwoofer but node 0x1e pincap does not support
detect and unsol event

This mean those subwoofer need to use __snd_hda_jack_add_kctl() which does
not check pincap and unsol event

This require change of __snd_hda_jack_add_kctl() by adding new parameter
sense_nid to use another nid for jack sense without enable unsol event

However there is bug in hda_jack implementation , snd_hda_jack_detect() can
be called in patch_realtek.c before creation of the jacktbl entry (i.e.
before snd_hda_jack_add_kctls()

https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1040873/comments/115

Did you found the message  " lfe filter activated (LR4 type)" in pulseaudio
verbose log ?


More information about the Alsa-devel mailing list