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