[alsa-devel] Intel HDA / ca0132: Multichannel + S/PDIF support

Stefan Oltmanns stefan-oltmanns at gmx.net
Sun Jan 4 22:26:44 CET 2015


Am 04.01.2015 um 21:33 schrieb Dylan Reid:
> On Sat, Jan 3, 2015 at 2:43 AM, Stefan Oltmanns <stefan-oltmanns at 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 at 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.






More information about the Alsa-devel mailing list