[alsa-devel] 2 speakers are assigned to the same DAC, this can't support 4.0/2.1 channles

Raymond Yau superquad.vortex2 at gmail.com
Thu Jun 11 03:15:13 CEST 2015


>>>>>
>>>>> I am trying to enable the subwoofer speaker on a HP laptop, on this
>>>>> machine, there are two speakers and one headphone, but the BIOS verb
>>>>> only enabled one speaker(nid 0xd) and one headphone(nid 0xb), I need
>>>>> to use quirk in the kernel driver to configure the second speaker
>>>>> (subwoofer speaker, nid 0x10). Under current alsa driver, the
>>>>> headphone will be assigned a dac (nid 0x13) and the 2 speakers will
>>>>> be assigned a dac (nid 0x14), this assignment is not good since 2
>>>>> speakers share the same dac, this means 2 speakers can't work
>>>>> at the same time to support 4.0/2.1 channels.
>>>>>
>>>>> On another Dell machine with realtek codec, there are also 2 speakers,
>>>>> 1 headphone and 2 dacs, on this machine, 1 speaker and 1 headphone are
>>>>
>>>> assigned
>>>>>
>>>>> 1 dac, and the other speaker is assigned another dac, so there is no
>>>>> problem for this machine to support 4.0/2.1 channels.
>>>>>
>>>>> Through debugging, I found on Dell machine, the speaker nid only has
>>>>> one connection to dac (hardwired), so when driver assign dac to it,
the
>>>>> map_single() can successfully assign the each dac to the 2 speakers
>>>>
>>>> respectively.
>>>>>
>>>>> But on that HP machine, the speaker has multiple connections for dac,
>>
>> the
>>>>>
>>>>> map_single() can't work for this machine.
>>>>>
>>>>>
>>>>> The alsa-info.txt for that HP machine is at
>>>>
>>>> http://pastebin.ubuntu.com/11667947/
>>>>
>>>> Refer to 92HD91, you don't need 4 channel when there is band pass
filter
>>>> for the subwoofer at the mono pin
>>>
>>> Yes, you are right.
>>>
>>>> 2.2. Mono Output
>>>> The Mono Out port source selection, power state, and mute
characteristics
>>>> are all independently
>>>> controlled by the mono output port controls. EQ does not apply to this
>>>> path. An internal 2nd order band-pass filter is provided to restrict
the
>>>> output frequencies when using mono out to drive an exter-
>>>> nal amplified sub-woofer
>>>
>>> Where did you find this text? Does it mean there is a hardware low
>>
>> frequency pass filter inside the codec?
>>
>> http://www.temposemi.com/products/pclaptop-hd/92hd91/
>>
>> 2.3. Mono output Band-Pass Filter
>> For many applications, the primary speakers are incapable of reproducing
>> low frequency audio. Therefore it is desirable to implement a woofer or
>> sub-woofer speaker. The mono output is ideal for this task. However, the
>> frequency response should be restricted to prevent interference with the
>> primary speakers. Typically an external filter, known as a cross-over
>> filter, is used. The mono processing path includes a band-pass filter
with
>> programmable high and low cut-off frequencies to eliminate the need for
an
>> external filter.
>>
>> 2.3.1. Mixer Filter Description The band-pass filter is derived from the
>> common biquadratic filter and provides a 12dB/octave roll-off. The filter
>> may be programmed for a -3dB lower band edge of: 63Hz, 80Hz, 100Hz,
120Hz,
>> 150Hz, 200Hz, 315Hz, or 400Hz.
>>
>> The filter may be programmed for a -3dB upper band edge of: 150Hz, 200Hz,
>> 250Hz, 315Hz, 400Hz, 500Hz, 630Hz, or 800Hz.
>>
>> The band-pass filter is enabled by default with a cut-off frequencies at
>> 120Hz and 250Hz. The filter may be bypassed using the associated verb
>> (processing state verb
>
> Thanks very much, very useful information.
>
>

Do your codec revision support this mono out volume ?

7.4.31.AFG (NID = 01h): DAC3OutAmp (Mono Out Volume)

How do you assign the two volume control to headphone, speaker and
subwoofet ?


More information about the Alsa-devel mailing list