Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: David Henningsson <david.henningsson@canonical.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: Raymond Yau <superquad.vortex2@gmail.com>,
	alsa-devel@alsa-project.org, ruedi@battle-eggs.de
Subject: Re: [RFC PATCH 1/2] ALSA: hda - Fix "PCM" name being used on one DAC when there are two DACs
Date: Mon, 20 Oct 2014 12:15:37 +0200	[thread overview]
Message-ID: <5444E0C9.70200@canonical.com> (raw)
In-Reply-To: <s5hiojf3vqb.wl-tiwai@suse.de>

[-- Attachment #1: Type: text/plain, Size: 4075 bytes --]



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. 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.

-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic

[-- Attachment #2: 0001-alsactl-init-Add-init-of-Headphone-LO-and-Speaker-LO.patch --]
[-- Type: text/x-patch, Size: 2168 bytes --]

>From 002353dd6cba2622da748e91f9d8848ed2dc68d3 Mon Sep 17 00:00:00 2001
From: David Henningsson <david.henningsson@canonical.com>
Date: Mon, 20 Oct 2014 12:12:57 +0200
Subject: [PATCH] alsactl init: Add init of "Headphone+LO" and "Speaker+LO"
 controls

These two were recently added to the HDA driver, so make sure they
are initialized correctly.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
---
 alsactl/init/default | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/alsactl/init/default b/alsactl/init/default
index 5fb0113..fe0511a 100644
--- a/alsactl/init/default
+++ b/alsactl/init/default
@@ -104,6 +104,16 @@ CTL{name}="Headphone Playback Switch",CTL{index}="1",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
+CTL{name}="Headphone+LO Playback Volume",PROGRAM!="__ctl_search",GOTO=""
+# if master volume control is present, turn headphone+LO volume to max
+ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
+ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
+CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
+LABEL=""
+CTL{name}="Headphone+LO Playback Switch",CTL{do_search}=="1", \
+  CTL{values}="on"
+
+CTL{reset}="mixer"
 CTL{name}="Speaker Playback Volume",PROGRAM!="__ctl_search",GOTO=""
 # if master volume control is present, turn speaker volume to max
 ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
@@ -114,6 +124,16 @@ CTL{name}="Speaker Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
+CTL{name}="Speaker+LO Playback Volume",PROGRAM!="__ctl_search",GOTO=""
+# if master volume control is present, turn speaker+LO volume to max
+ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
+ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
+CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
+LABEL=""
+CTL{name}="Speaker+LO Playback Switch",CTL{do_search}=="1", \
+  CTL{values}="on"
+
+CTL{reset}="mixer"
 CTL{name}="Front Speaker Playback Volume",PROGRAM!="__ctl_search",GOTO=""
 # if master volume control is present, turn speaker volume to max
 ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
-- 
1.9.1


[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



  reply	other threads:[~2014-10-20 10:15 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-16 13:33 [RFC PATCH 1/2] ALSA: hda - Fix "PCM" name being used on one DAC when there are two DACs David Henningsson
2014-10-16 13:33 ` [RFC PATCH 2/2] ALSA: hda - Use "Line Out" name instead of "PCM" when there are other outputs David Henningsson
2014-10-16 14:54 ` [RFC PATCH 1/2] ALSA: hda - Fix "PCM" name being used on one DAC when there are two DACs Takashi Iwai
2014-10-16 15:02 ` Raymond Yau
2014-10-16 15:10   ` David Henningsson
2014-10-18 12:33     ` Raymond Yau
2014-10-18 18:28       ` Takashi Iwai
2014-10-18 23:02         ` Raymond Yau
2014-10-19  9:02           ` Takashi Iwai
2014-10-20  1:10             ` Raymond Yau
2014-10-20  5:54               ` Takashi Iwai
2014-10-20  6:29           ` David Henningsson
2014-10-20  9:55             ` Raymond Yau
2014-10-20  9:58               ` Takashi Iwai
2014-10-20 11:31                 ` Raymond Yau
2014-10-20 11:48                   ` Takashi Iwai
2014-10-20 14:24                     ` Raymond Yau
2014-10-20 14:33                       ` Takashi Iwai
2014-10-20 23:37                         ` Raymond Yau
2014-10-21  2:29                       ` Robert Hancock
2014-10-21  7:55                         ` Raymond Yau
2014-10-21 13:06                           ` Raymond Yau
2014-10-22  7:43                     ` Raymond Yau
2014-10-20  9:59               ` David Henningsson
2014-10-20 10:02                 ` Takashi Iwai
2014-10-20 10:15                   ` David Henningsson [this message]
2014-10-20 11:27                     ` Takashi Iwai
2014-10-22  7:29                   ` Takashi Iwai
2014-10-20 14:38                 ` 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=5444E0C9.70200@canonical.com \
    --to=david.henningsson@canonical.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=ruedi@battle-eggs.de \
    --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