2015-6-11 下午4:33 於 "Hui Wang" hui.wang@canonical.com 寫道:
On 06/11/2015 03:37 PM, Raymond Yau wrote:
>>> >>> 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)
I looks like the current driver does not use this to control the volume.
You can use hda-verb and use vendor specific get verb with afg node to find out whether you can get back the default values 0x7f
How do you assign the two volume control to headphone, speaker and subwoofet ?
speaker and headphone are assigned to DAC0 (nid: 0x13), they use the DAC
amplifier to control the volume.
subwoofer speaker is assigned to DAC1 (nid: 0x14), it use the DAC
amplifier to contorl the volume. Do pulseaudio like this config since there is no mute switch at pin
complex
of idt codecs and no headphone playback volume/switch?
After applied your patch
Front playback volume/switch are shared by headphone and speaker Base speaker playback volume/switch
But the other 4 channels hda codecs vt1802 have speaker playback switch and subwoofer playback switch
Even without this patch, the base speaker and headphone already shared
the same DAC and use single "Front Playback Volume" to control their volume, I did not see any problem from the pulseaudio/desktop so far.
It won't happen with realtek alc2xx codec since the pin complex of most Realtek codec support mute
About the sharing the switch between headphone and base speaker, this is
a new situation, but I did not see obvious problem from pusleaudio/desktop as well.
http://git.kernel.org/cgit/linux/kernel/git/tiwai/hda-emu.git/tree/codecs/vt...
Independent headphone should be disabled when headphone and internal speaker of notebook share same DAC or only enabled on desktop with codecs support 2+2 , 7.1+2