Bug 67071

Summary: No multichannel support on Creative CA0132
Product: Drivers Reporter: thetallest
Component: Sound(ALSA)Assignee: Jaroslav Kysela (perex)
Status: NEW ---    
Severity: normal CC: 842mono, contact, kungfujesus06, sean_mccully, superquad.vortex2
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.11.0-14 Subsystem:
Regression: No Bisected commit-id:

Description thetallest 2013-12-16 03:17:06 UTC
Multichannel sound is not working on my Creative CA0132 sound card. Stereo is working just fine but I cannot get 5.1 to work. when I run 'speaker-test -c 6' sound only comes out of the front 2 speakers and if I add '-Dsurround51' it returns "Channels count (6) not available for playbacks: Invalid argument". My alsa info http://www.alsa-project.org/db/?f=3a5ca77035da6be08769128daa43dcbc59badb93
Comment 1 Sean McCully 2014-02-25 02:24:15 UTC
I have the exact same issue with same card, 

http://www.alsa-project.org/db/?f=a8ae0aa3c0da4d697c1df5f403001dff50bb6e51
Comment 2 Raymond 2014-02-27 01:31:40 UTC
https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/pci/hda/patch_ca0132.c?id=825315bc5b5c33e5af5124ff100ef05a30ad722f



since it no longer used snd_hda_multi_out_analog_xxx functions 

+ ca0132_setup_stream(codec, spec->dacs[0], stream_tag, 0, format);

only single DAC is used for stereo playback


- .channels_max = 2,
+ .channels_max = 6,

the change in channels_max has no effect since spec->multiout is not used anymore

 info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max =
spec->multiout.max_channels;
Comment 3 Mina William 2017-03-26 10:57:32 UTC
http://www.alsa-project.org/db/?f=f458ee979a3e2052a3095d0d1e958200a20c022f




I have the same issue. I have a g1 sniper z87. The only thing that works is stereo audio.





The card includes 5.1 audio ports and a headphone port. I can only get sound through the "front speaker out" of the 5.1 ports. See this from board's manual: https://drive.google.com/open?id=0B0f0nmVh2CHdb08xLWhYOElXa2c






Also microphone doesn't work at all.







Link to board's manual download.gigabyte.eu/FileList/Manual/mb_manual_g1.sniper-z87_e.pdf






Link to board's webpage http://www.gigabyte.us/Motherboard/G1Sniper-Z87-rev-11#kf
Comment 4 Adam Stylinski 2021-11-01 17:59:35 UTC
I too am seeing this issue with the onboard audio for an EVGA X299 Dark.  Manual:
https://www.evga.com/support/manuals/files/151-SX-E299.pdf

I've not yet tried to install Windows somewhere, configure the sound card there, and reboot.
Comment 5 Adam Stylinski 2021-11-01 17:59:59 UTC
Oh, and kernel:
5.14.13
Comment 6 Adam Stylinski 2021-11-01 18:29:40 UTC
So, I managed to get at least 5 channels working (not sure what's up with LFE) by adding to the quirks table the PCI ID presented by my motherboard to match the X99 one.  So, something is likely not working entirely correctly with the model=auto stuff?
Comment 7 Adam Stylinski 2021-11-01 18:49:52 UTC
So, I know the "quirks" bit has been looked down on a bit and model=auto is the preferred way to setup things with pin arrangements but...this fix worked for me and as far as I can tell, everything works, including DSP effects.

--- /tmp/patch_ca0132_old.c	2021-11-01 14:47:55.720188567 -0400
+++ patch_ca0132.c	2021-11-01 14:10:04.334728000 -0400
@@ -1306,6 +1306,7 @@
 	SND_PCI_QUIRK(0x1458, 0xA026, "Gigabyte G1.Sniper Z97", QUIRK_R3DI),
 	SND_PCI_QUIRK(0x1458, 0xA036, "Gigabyte GA-Z170X-Gaming 7", QUIRK_R3DI),
 	SND_PCI_QUIRK(0x3842, 0x1038, "EVGA X99 Classified", QUIRK_R3DI),
+	SND_PCI_QUIRK(0x3842, 0x104b, "EVGA X299 Dark", QUIRK_R3DI),
 	SND_PCI_QUIRK(0x1102, 0x0013, "Recon3D", QUIRK_R3D),
 	SND_PCI_QUIRK(0x1102, 0x0018, "Recon3D", QUIRK_R3D),
 	SND_PCI_QUIRK(0x1102, 0x0051, "Sound Blaster AE-5", QUIRK_AE5),

As in, the builtin 2 - 5.1 upmix works, the dialog clarity boost, the crossover, the frequency range for front and rear speakers, everything.  This went from a terribly annoying experience to a great one in one line.
Comment 8 Adam Stylinski 2021-11-10 15:46:24 UTC
To be clear:
this fix hasn't been all sunshine and rainbows.  It seems that there's a randomly probability at bootup that some of the pins don't connect right and I only get L,R,RR or some weird variation of this.  Sometimes power cycling the system eventually corrects this to get at least 5 of the 5.1 channels.  The bass redirect seems to pass things to LFE, but LFE as a discrete channel doesn't really seem happen very often for some reason.

And even weird, mythtv (using the ALSA support), I have to select surround50 as the device or the channels get mismapped.  Running hdajackretask seems to _completely_ screw things up, so that's a no go.  

Maybe a kernel/ALSA dev can chime in and maybe have a rough idea of what's happening?  I assume the powercycling reloads the firmware on the DSP, and something during that initialization kind of haphazardly maps pins.  I've never booted this system into windows to know if that would have any real side effects.
Comment 9 Adam Stylinski 2022-07-31 19:05:56 UTC
Several kernels later and it still seems that randomly the port configuration works on boot and other times not.  It seems like maybe a race condition after loading the DSP firmware?  Maybe there needs to be a waiting period before resetting the device after the firmware download?  There's code in there for other chipsets that seems to suggest that's happening elsewhere.
Comment 10 Etienne Maheu 2023-02-21 04:44:19 UTC
(In reply to Adam Stylinski from comment #9)
> Several kernels later and it still seems that randomly the port
> configuration works on boot and other times not.  It seems like maybe a race
> condition after loading the DSP firmware?  Maybe there needs to be a waiting
> period before resetting the device after the firmware download?  There's
> code in there for other chipsets that seems to suggest that's happening
> elsewhere.

I've been using a Sound Blaster Z for 2 years (from kernel 5.14) and never
experienced the issue you mentioned, but since the last kernel update
(6.1.12 I think), I completely lost surround sound. The issue surfaces in a
similar way as you, L+R only, no matter the settings in alsamixer or
speaker-test.

This is what alsa-info.sh dmesg section looks like for me:

[    6.256560] snd_hda_codec_ca0132 hdaudioC3D1: autoconfig for Sound Blaster Z: line_outs=3 (0xb/0x11/0x10/0x0/0x0) type:line
[    6.256568] snd_hda_codec_ca0132 hdaudioC3D1:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    6.256571] snd_hda_codec_ca0132 hdaudioC3D1:    hp_outs=1 (0xf/0x0/0x0/0x0/0x0)
[    6.256573] snd_hda_codec_ca0132 hdaudioC3D1:    mono: mono_out=0x0
[    6.256574] snd_hda_codec_ca0132 hdaudioC3D1:    dig-out=0xc/0xd
[    6.256576] snd_hda_codec_ca0132 hdaudioC3D1:    inputs:
[    6.256578] snd_hda_codec_ca0132 hdaudioC3D1:      Mic=0x12
[    6.256580] snd_hda_codec_ca0132 hdaudioC3D1:      Line=0x13
[    6.256581] snd_hda_codec_ca0132 hdaudioC3D1:    dig-in=0xe
[    6.795248] snd_hda_codec_ca0132 hdaudioC3D1: ca0132 DSP downloaded and running

[    7.202572] input: HDA Creative Mic as /devices/pci0000:80/0000:80:00.0/0000:81:00.0/sound/card3/input32
[    7.264138] input: HDA Creative Line Out Front as /devices/pci0000:80/0000:80:00.0/0000:81:00.0/sound/card3/input33
[    7.277203] input: HDA Creative Line Out Surround as /devices/pci0000:80/0000:80:00.0/0000:81:00.0/sound/card3/input34
[    7.277332] input: HDA Creative Line Out CLFE as /devices/pci0000:80/0000:80:00.0/0000:81:00.0/sound/card3/input35
[    7.277536] input: HDA Creative Front Headphone as /devices/pci0000:80/0000:80:00.0/0000:81:00.0/sound/card3/input36
Comment 11 Etienne Maheu 2023-02-21 04:57:53 UTC
EDIT:
I owe you a beer/coffee, if we ever meet.

I thought you meant reboot and not actually turning off the computer entirely. I have the exact same behavior as you on an official Creative Sound Blaster Z. Actually power cycling the computer seem to "fix" it somehow. Whatever is causing this, it must be a very rare race condition.