All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Henningsson <david.henningsson@canonical.com>
To: "Ingo Brückl" <ib@wupperonline.de>, alsa-devel@alsa-project.org
Cc: tiwai@suse.de, superquad.vortex2@gmail.com
Subject: Re: [PATCH] ALSA: hda - Fix wrong detection of "Headphone+LO" or "Speaker+LO"
Date: Tue, 03 Mar 2015 14:24:28 +0100	[thread overview]
Message-ID: <54F5B60C.1050808@canonical.com> (raw)
In-Reply-To: <54f5995b.7e5343ac.bm001@wupperonline.de>

Hi Ingo and thanks for trying to improve the driver,

I've been reading through the alsa-devel thread but your alsa-info was 
removed when it was posted to the list so it's a bit hard to see the 
context.

If I understand correctly, you have three DACs, one internal speaker, 
one headphone jack, and three jacks that are both used for 5.1 surround 
and line out/mic/line in. Is this correct?

How do the DACs get assigned in this case? One would assume that you'd 
get 02 -> Front LO, HP, Speaker, 03 -> Rear LO, 04 -> CLFE LO. And then 
the volume/mute control for DAC node 02 would be called "PCM" (since 
both hp_lo_shared and spk_lo_shared are true), but in fact it would be 
more appropriate to call it "Front".

Anyhow, I'd say that the typical case where we want the "Headphone+LO" 
names is where we have only one LO, and then multiout.num_dacs would be 
1, not 2. (I think, it was a while since I looked into that part of the 
driver...)

// David

On 2015-03-03 12:22, Ingo Brückl wrote:
> Add the constraint mentioned in the comment.
>
> It does not apply to a scenario with three DACs and multi-IO where we
> would normally get a "Master Playback Volume" and a "Front Playback
> Volume" (prevented without checking for num_dacs).
>
> Signed-off-by: Ingo Brückl <ib@wupperonline.de>
>
> diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
> index ecee349..4c8910c 100644
> --- a/sound/pci/hda/hda_generic.c
> +++ b/sound/pci/hda/hda_generic.c
> @@ -1097,7 +1097,7 @@ static const char *get_line_out_pfx(struct hda_codec *codec, int ch,
>   	case AUTO_PIN_LINE_OUT:
>   		/* This deals with the case where we have two DACs and
>   		 * one LO, one HP and one Speaker */
> -		if (!ch && cfg->speaker_outs && cfg->hp_outs) {
> +		if (!ch && spec->multiout.num_dacs == 2 && cfg->speaker_outs && cfg->hp_outs) {
>   			bool hp_lo_shared = !path_has_mixer(codec, spec->hp_paths[0], ctl_type);
>   			bool spk_lo_shared = !path_has_mixer(codec, spec->speaker_paths[0], ctl_type);
>   			if (hp_lo_shared && spk_lo_shared)
> --
> 1.7.10
>

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

  reply	other threads:[~2015-03-03 13:24 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-03 11:22 [PATCH] ALSA: hda - Fix wrong detection of "Headphone+LO" or "Speaker+LO" Ingo Brückl
2015-03-03 13:24 ` David Henningsson [this message]
2015-03-03 15:04   ` Ingo Brückl
2015-03-03 16:02     ` David Henningsson
2015-03-05 10:06       ` Ingo Brückl
2015-03-05 11:43         ` Raymond Yau
2015-03-03 15:18 ` 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=54F5B60C.1050808@canonical.com \
    --to=david.henningsson@canonical.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=ib@wupperonline.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.