At Mon, 20 Oct 2014 12:15:37 +0200, David Henningsson wrote:
On 2014-10-20 12:02, Takashi Iwai wrote:
At Mon, 20 Oct 2014 11:59:30 +0200, David Henningsson wrote:
On 2014-10-20 11:55, Raymond Yau wrote:
> > > > >> > > > >> > In the scenario where there is one "Line Out", one "Speaker" and one > > >> > "Headphone", and there are only two DACs, two outputs will share a DAC. > > >> > Currently any mixer on such a DAC will get the "PCM" name, which is > > >> > misleading. Instead use "Headphone+LO" or "Speaker+LO" to
better
> > >> > specify what the volume actually controls. > > >> > > >> Are there any examples ? > > >> > > > > > > I used "hda-emu > > codecs/canonical/alc3226-dell-precision-m2800-ccert-201404-14986 -i 1" when > > developing the patches. > > > > > > I don't have any hardware available myself that exposes this behavior, > > but I can maybe fake one with hdajackretask, if that counts... > > > > > > > How about adding these names to slaves of virtual master volume/switch ? > > > > hdajackretask won't help if the topology of the codecs are
different
> > > > Seem the badness still prevent the driver to support surround
5.1 with
> > three rear panel jacks, internal speaker and front panel
headphone for
> > Thinkcenter A58 using alc662 > > > >
https://www.mail-archive.com/alsa-user@lists.sourceforge.net/msg29203.html
> > > > Why 3stack desktops with 6 channels codecs not using "Headphone+LO" or > > "Speaker+LO" ? > > The problem is just the lack of DACs, so it cannot cover all three > outputs, no matter how the pins are chosen. That is, it's no 6 > channels at all but 4 channels at most. > >
http://shop.lenovo.com/us/en/desktops/thinkcentre/a-series/a58/
The technical specification of a58
2 pin internal speaker connector Alc662 5.1
https://bbs.archlinux.org/viewtopic.php?id=156433
Seem windows support surround 5.1
Raymond, there can certainly be cases which this patch does not cover
- after all, it's mostly a band aid given the lack of topology
information - but do you see cases where this patch actually causes a *regression*? If so, could you point me to alsa-info for the machine where this patch causes a regression?
www.realtek.com.tw/products/productsView.aspx?Langid=1&PNid=24&PFid=27&Level=5&Conn=4 http://www.realtek.com.tw/products/productsView.aspx?Langid=1&PNid=24&PFid=27&Level=5&Conn=4
I expect those desktop with 2+2 HD Audio codec support independent headphone
This mean the driver should not create "Lineout+HP" Playback volume
Line out and headphone cannot share same DAC
I doubt that, but if they cannot share the same DAC, that needs to be addressed in a separate patch. This patch just deals with the naming, given that the previous logic has determined that headphone and Line out should share the same DAC.
Takashi, are you planning to apply this patch? Or are you looking for more testing first?
I'll test a bit more. I have a machine that is affected by this issue, so I can test on a real machine.
How about the changes in PA side, BTW? Is it ready?
I will cook up a quick patch once you have merged.
Both kernel and PA patches shouldn't give regressions and should be applicable individually, so you don't have to wait for me merging it. I'm fine with the new control names, so just go ahead.
But there will not be any big regression: we already control the vmaster, which in turn controls the hw volume of the DAC. So I will expect things to just work, assume the new controls will be initialized correctly. I'm attaching an (untested) alsa-utils patch for that.
Actually these initializations are superfluous when they are vmaster slaves. Nowadays the slaves are initialized as 0dB.
But, in your patch, one piece is missing: the addition to slave controls. The additional fix patch is below.
With a quick test, it seems working fine.
thanks,
Takashi
--- diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c index 3ffbf94a6ce6..06d721085e72 100644 --- a/sound/pci/hda/hda_generic.c +++ b/sound/pci/hda/hda_generic.c @@ -4537,7 +4537,7 @@ static const char * const slave_pfxs[] = { "CLFE", "Bass Speaker", "PCM", "Speaker Front", "Speaker Surround", "Speaker CLFE", "Speaker Side", "Headphone Front", "Headphone Surround", "Headphone CLFE", - "Headphone Side", + "Headphone Side", "Headphone+LO", "Speaker+LO", NULL, };