Hi Raymond,
Honestly some of the Alsa code talk is a bit over my head, so maybe I should just stick to providing PCI/Vendor ID's and test results. :)
RY> How do you test ? Using sound preference or alsa speaker-test
I apply some of your code by retyping this into the mainline kernel 4.2-rc1 code, compile and install the kernel, and then test the audio. The subwoofer I test by playing music with my music player, Audacious. When testing different configurations and output profiles I use pavucontrol. For testing the microphone, I open pavucontrol, switch the input source between Internal Microphone and Microphone and look at the volumebar to see if the microphone works fine.
Do you have suggestions how to apply and test the provided patches?
On 10 July 2015 at 09:49, Raymond Yau superquad.vortex2@gmail.com wrote:
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/pc...
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=48f1b308cc66152eb...
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...
- hda default 2.1
{ .channels = 4, .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE , SNDRV_CHMAP_LFE } }, { }
- 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 */ { }
- 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/...
Did you found the message " lfe filter activated (LR4 type)" in pulseaudio verbose log ?