Am 06.01.2015 um 10:47 schrieb Takashi Iwai:
At Tue, 06 Jan 2015 02:06:36 +0100, Stefan Oltmanns wrote:
Am 05.01.2015 um 09:05 schrieb Takashi Iwai:
At Sun, 04 Jan 2015 22:26:44 +0100, Stefan Oltmanns wrote:
Am 04.01.2015 um 21:33 schrieb Dylan Reid:
On Sat, Jan 3, 2015 at 2:43 AM, Stefan Oltmanns stefan-oltmanns@gmx.net wrote:
Am 03.01.2015 um 02:30 schrieb Dylan Reid: > On Tue, Dec 30, 2014 at 8:05 AM, Stefan Oltmanns > stefan-oltmanns@gmx.net wrote: >> Hi, >> >> I own a Gigabyte G1.Sniper M3 Z77 mainboard with ca0132 onboard audio. >> Currently only stereo out and headphone out (at the back, always same >> signal) work by default. >> I was able to fix S/PDIF out by changing the headphone pin in function >> ca0132_config to something below 0x0d, like: >> >> spec->out_pins[1] = 0x0a; >> >> No idea why this fixes S/PDIF, but no other effects noticed. No idea if >> it´s going to break something on other devices. Original value is 0x10. >> >> In this function also 3 DACs are listed. The board has a total of 5 >> stereo outputs: >> >> -Frontpanel (HDA pin connector on mainboard) >> 4x 3,5mm output at backpanel: >> -Stereo out >> -Headphone out >> -Rear out >> -Center/LFE out >> >> I tried to increase the number of channels and create additional outputs >> and connected to the other DACs. The maximum I´m able to is to get >> different signals out of stereo out and front headphone (not useful, >> just some weird mixes) or same signal from all 3 outputs. Rear and c/lfe >> out always no signal. >> >> During initialization snd_hda_parse_pin_def_config is called and two >> outputs are found. I tried to override that and change spec->autocfg >> after that function is called, no success. >> Also no matter what I change there, a little later I get this kernel >> messages: >> >> kernel: [ 2.642972] input: HDA Intel PCH Line Out as >> /devices/pci0000:00/0000:00:1b.0/sound/card0/input8 >> kernel: [ 2.643142] input: HDA Intel PCH Front Headphone as >> /devices/pci0000:00/0000:00:1b.0/sound/card0/input7 >> kernel: [ 2.644932] input: HDA Intel PCH Line as >> /devices/pci0000:00/0000:00:1b.0/sound/card0/input6 >> kernel: [ 2.645050] input: HDA Intel PCH Mic as >> /devices/pci0000:00/0000:00:1b.0/sound/card0/input5 >> >> I could not find the code where this messages are generated, where is that? >> >> Any ideas what I could/should try to get multichannel support working? >> Is there any kind of documentation on the ca0132 that could be helpful? > > A lot of these capabilities need to be exposed by the DSP on the > ca0132. What firmware are you loading on it?
I tried the one included and none, makes no difference for that problem. Also the firmware gets loaded after all the input/output configuration, you´re sure the firmware is needed for multichannel support? Is it possible/legal to extract it from the windows driver somehow?
I'm not sure you need the DSP to do this. You could try the widows firmware, but I don't think the driver will know how to communicate with it. Sorry I don't have anything more encouraging.
The firmware seems to be directly included in the driver (file is called ctHda.sys), as I can find the byte sequence MXFL many times in it (this is how the ctefx.bin file starts). Unfortunately it does not even to be in one part (there are strings in between). Is there any information available of the file format of the firmware, like header structure, so I can find out length of it?
Still the question remains, the input/outputs seem to be generated before the firmware is loaded, how is that done? How does the driver know that there are this 4 I/Os and that they are named like that? That´s not from the patch_ca1032.c. I cannot find any code for that.
It's parsed from the pin-default config values set by the hardware. In the case of onboard audio, usually this is set by BIOS. Stand-alone boards should set it by themselves, too.
The SPDIF I/O itself has worked even without the DSP (but some volume controls didn't), IIRC, at least on a Recon3D board I've tested in the past.
Reassigning the pin is the right fix for your board. The correct way would be to add a fixup entry depending on the PCI or codec SSID.
thanks,
Takashi
I was able to extract the firmware from the windows driver, it is loaded without any problem "ca0132 DOWNLOAD OK :-) DSP IS RUNNING" Unfortunately after that no analog output at all, digital out is still working.
You still need your patch, right? Or does it work without patching if the firmawre is loaded?
I tried the non-modified driver with the new frimware, S/PDIF not working (nothing is working).
I tried the inputs, while device 0,0 gives me digital silence, device 0,2 (mic 2) is only analog silence (there is some very silent random background noise), so there is an ADC working (tried both inputs-> no success). There is still no difference at all in the I/Os found. Where/how are this fix-up entries done? Is there an good example for a similar device?
Looking back at patch_ca0132, I have to correct my memory. The pins are hard-coded there, and this might be a part of the problem. We need a bit more surgery there...
I got analog stereo audio working again by changeing spec->out_pins[0] to anything between 0x1 and 0x4 (function ca0132_config). With 0x5 I get a mono downmix ("speaker-test -D hw:0,0 -c 2" gives a constant signal on both channels). Values above 0x5 result in no output all. I only get output from stereo out and headphone out (always same signal). I also tried increasing number of channels, same weird downmix as before. I looked into the inf file of the windows driver to see if there are some settings like pin ids in plaintext (unfortunately no), but what I noticed lspci reports the device as 8086:1e20, the windows driver is for 1102:0011. Subsys is in both cases 1458a016. Why the difference?
Stefan