Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Hui Wang <hui.wang@canonical.com>
To: Raymond Yau <superquad.vortex2@gmail.com>
Cc: Takashi Iwai <tiwai@suse.de>,
	ALSA Development Mailing List <alsa-devel@alsa-project.org>,
	David Henningsson <david.henningsson@canonical.com>
Subject: Re: 2 speakers are assigned to the same DAC, this can't support 4.0/2.1 channles
Date: Thu, 11 Jun 2015 16:33:12 +0800	[thread overview]
Message-ID: <557947C8.6020102@canonical.com> (raw)
In-Reply-To: <CAN8cciYXJ7sBr3iorNQ5j4ZB2VcStzaHZKu-A701QaBPJghxcw@mail.gmail.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.
>>
>>> 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.

http://pastebin.ubuntu.com/11667982/

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/vt1802-asus-g75
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
>

  reply	other threads:[~2015-06-11  8:33 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-09  9:38 2 speakers are assigned to the same DAC, this can't support 4.0/2.1 channles hwang4
2015-06-09 11:50 ` Raymond Yau
2015-06-09 13:20   ` Hui Wang
2015-06-10  1:30     ` Raymond Yau
2015-06-10  3:18       ` hwang4
2015-06-11  1:15         ` Raymond Yau
2015-06-11  2:15           ` Hui Wang
2015-06-11  7:37             ` Raymond Yau
2015-06-11  8:33               ` Hui Wang [this message]
2015-06-11 16:44                 ` Raymond Yau
2015-06-10  4:59     ` Raymond Yau
2015-06-10  6:42       ` hwang4
2015-06-12  1:34     ` Raymond Yau
2015-06-12  3:32       ` Hui Wang
2015-06-09 11:51 ` Takashi Iwai
2015-06-09 13:26   ` Hui Wang
2015-06-10  4:19     ` hwang4
2015-06-10 10:28       ` Takashi Iwai
2015-06-11 15:10         ` Takashi Iwai
2015-06-12  1:07           ` Hui Wang
2015-06-12  1:22             ` Raymond Yau
2015-06-12  3:25               ` Hui Wang
2015-06-12  4:42           ` Raymond Yau
2015-06-12  6:07           ` David Henningsson
2015-06-12  9:40             ` Raymond Yau
2015-06-12 16:05             ` Takashi Iwai
2015-06-13  2:43             ` Raymond Yau
2015-06-14  6:48   ` Raymond Yau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=557947C8.6020102@canonical.com \
    --to=hui.wang@canonical.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=david.henningsson@canonical.com \
    --cc=superquad.vortex2@gmail.com \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox