All of 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.