All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] hda: Add logic to force HP mixer creation
@ 2009-02-15 16:01 Matthew Ranostay
  2009-02-16  9:08 ` Takashi Iwai
  0 siblings, 1 reply; 11+ messages in thread
From: Matthew Ranostay @ 2009-02-15 16:01 UTC (permalink / raw)
  To: alsa-devel; +Cc: Takashi Iwai, Mario Limonciello

In some instances like a laptop PCI_QUIRK you may want to force a
headphone mixer otherwise a "Front" mixer would be in its place, this
is to aid user friendlyness.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
---
 sound/pci/hda/patch_sigmatel.c |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index aeb5d21..e02a187 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -168,6 +168,7 @@ struct sigmatel_spec {
 	unsigned int surr_switch: 1;
 	unsigned int alt_switch: 1;
 	unsigned int hp_detect: 1;
+	unsigned int hp_mixer: 1;
 	unsigned int spdif_mute: 1;
 	unsigned int check_volume_offset:1;
 
@@ -857,9 +858,9 @@ static struct hda_verb stac92hd73xx_10ch_core_init[] = {
 };
 
 static struct hda_verb stac92hd83xxx_core_init[] = {
-	{ 0xa, AC_VERB_SET_CONNECT_SEL, 0x1},
-	{ 0xb, AC_VERB_SET_CONNECT_SEL, 0x1},
-	{ 0xd, AC_VERB_SET_CONNECT_SEL, 0x0},
+	{ 0xa, AC_VERB_SET_CONNECT_SEL, 0x0},
+	{ 0xb, AC_VERB_SET_CONNECT_SEL, 0x0},
+	{ 0xd, AC_VERB_SET_CONNECT_SEL, 0x1},
 
 	/* power state controls amps */
 	{ 0x01, AC_VERB_SET_EAPD, 1 << 2},
@@ -3115,12 +3116,12 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
 		"Front", "Surround", NULL /*CLFE*/, "Side"
 	};
 	hda_nid_t nid = 0;
-	int i, err;
+	int i, idx = 0, err;
 	unsigned int wid_caps;
 
 	for (i = 0; i < cfg->line_outs && spec->multiout.dac_nids[i]; i++) {
 		nid = spec->multiout.dac_nids[i];
-		if (i == 2) {
+		if (idx == 2) {
 			/* Center/LFE */
 			err = create_controls(codec, "Center", nid, 1);
 			if (err < 0)
@@ -3139,9 +3140,9 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
 				if (err < 0)
 					return err;
 			}
-
+			idx++;
 		} else {
-			const char *name = chname[i];
+			const char *name = chname[idx];
 			/* if it's a single DAC, assign a better name */
 			if (!i && is_unique_dac(spec, nid)) {
 				switch (cfg->line_out_type) {
@@ -3153,6 +3154,10 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
 					break;
 				}
 			}
+			if (!i && spec->hp_mixer)
+				name = "Headphone";
+			else
+				idx++;
 			err = create_controls(codec, name, nid, 3);
 			if (err < 0)
 				return err;
@@ -4894,6 +4899,12 @@ again:
 		break;
 	}
 
+	switch (spec->board_config) {
+	case STAC_DELL_S14:
+		spec->hp_mixer = 1;
+		break;
+	}
+
 	err = stac92xx_parse_auto_config(codec, 0x1d, 0);
 	if (!err) {
 		if (spec->board_config < 0) {
-- 
1.5.6.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] hda: Add logic to force HP mixer creation
  2009-02-15 16:01 [PATCH] hda: Add logic to force HP mixer creation Matthew Ranostay
@ 2009-02-16  9:08 ` Takashi Iwai
  2009-02-16 23:34   ` Matthew Ranostay
  2009-02-17 18:02   ` Mario Limonciello
  0 siblings, 2 replies; 11+ messages in thread
From: Takashi Iwai @ 2009-02-16  9:08 UTC (permalink / raw)
  To: Matthew Ranostay; +Cc: alsa-devel, Mario Limonciello

At Sun, 15 Feb 2009 11:01:01 -0500,
Matthew Ranostay wrote:
> 
> In some instances like a laptop PCI_QUIRK you may want to force a
> headphone mixer otherwise a "Front" mixer would be in its place, this
> is to aid user friendlyness.
> 
> Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>

Well, the change looks a bit too ad hoc.
Could you give alsa-info.sh output for this?


thanks,

Takashi

> ---
>  sound/pci/hda/patch_sigmatel.c |   25 ++++++++++++++++++-------
>  1 files changed, 18 insertions(+), 7 deletions(-)
> 
> diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
> index aeb5d21..e02a187 100644
> --- a/sound/pci/hda/patch_sigmatel.c
> +++ b/sound/pci/hda/patch_sigmatel.c
> @@ -168,6 +168,7 @@ struct sigmatel_spec {
>  	unsigned int surr_switch: 1;
>  	unsigned int alt_switch: 1;
>  	unsigned int hp_detect: 1;
> +	unsigned int hp_mixer: 1;
>  	unsigned int spdif_mute: 1;
>  	unsigned int check_volume_offset:1;
>  
> @@ -857,9 +858,9 @@ static struct hda_verb stac92hd73xx_10ch_core_init[] = {
>  };
>  
>  static struct hda_verb stac92hd83xxx_core_init[] = {
> -	{ 0xa, AC_VERB_SET_CONNECT_SEL, 0x1},
> -	{ 0xb, AC_VERB_SET_CONNECT_SEL, 0x1},
> -	{ 0xd, AC_VERB_SET_CONNECT_SEL, 0x0},
> +	{ 0xa, AC_VERB_SET_CONNECT_SEL, 0x0},
> +	{ 0xb, AC_VERB_SET_CONNECT_SEL, 0x0},
> +	{ 0xd, AC_VERB_SET_CONNECT_SEL, 0x1},
>  
>  	/* power state controls amps */
>  	{ 0x01, AC_VERB_SET_EAPD, 1 << 2},
> @@ -3115,12 +3116,12 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
>  		"Front", "Surround", NULL /*CLFE*/, "Side"
>  	};
>  	hda_nid_t nid = 0;
> -	int i, err;
> +	int i, idx = 0, err;
>  	unsigned int wid_caps;
>  
>  	for (i = 0; i < cfg->line_outs && spec->multiout.dac_nids[i]; i++) {
>  		nid = spec->multiout.dac_nids[i];
> -		if (i == 2) {
> +		if (idx == 2) {
>  			/* Center/LFE */
>  			err = create_controls(codec, "Center", nid, 1);
>  			if (err < 0)
> @@ -3139,9 +3140,9 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
>  				if (err < 0)
>  					return err;
>  			}
> -
> +			idx++;
>  		} else {
> -			const char *name = chname[i];
> +			const char *name = chname[idx];
>  			/* if it's a single DAC, assign a better name */
>  			if (!i && is_unique_dac(spec, nid)) {
>  				switch (cfg->line_out_type) {
> @@ -3153,6 +3154,10 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
>  					break;
>  				}
>  			}
> +			if (!i && spec->hp_mixer)
> +				name = "Headphone";
> +			else
> +				idx++;
>  			err = create_controls(codec, name, nid, 3);
>  			if (err < 0)
>  				return err;
> @@ -4894,6 +4899,12 @@ again:
>  		break;
>  	}
>  
> +	switch (spec->board_config) {
> +	case STAC_DELL_S14:
> +		spec->hp_mixer = 1;
> +		break;
> +	}
> +
>  	err = stac92xx_parse_auto_config(codec, 0x1d, 0);
>  	if (!err) {
>  		if (spec->board_config < 0) {
> -- 
> 1.5.6.3
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] hda: Add logic to force HP mixer creation
  2009-02-16  9:08 ` Takashi Iwai
@ 2009-02-16 23:34   ` Matthew Ranostay
  2009-02-17 17:16     ` Takashi Iwai
  2009-02-17 18:02   ` Mario Limonciello
  1 sibling, 1 reply; 11+ messages in thread
From: Matthew Ranostay @ 2009-02-16 23:34 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

Takashi Iwai wrote:
> At Sun, 15 Feb 2009 11:01:01 -0500,
> Matthew Ranostay wrote:
>> In some instances like a laptop PCI_QUIRK you may want to force a
>> headphone mixer otherwise a "Front" mixer would be in its place, this
>> is to aid user friendlyness.
>>
>> Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
> 
> Well, the change looks a bit too ad hoc.
> Could you give alsa-info.sh output for this?
> 

http://www.alsa-project.org/db/?f=1cd2363ec823c8c2db005acf996608da67ff7a3e

> 
> thanks,
> 
> Takashi
> 
>> ---
>>  sound/pci/hda/patch_sigmatel.c |   25 ++++++++++++++++++-------
>>  1 files changed, 18 insertions(+), 7 deletions(-)
>>
>> diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
>> index aeb5d21..e02a187 100644
>> --- a/sound/pci/hda/patch_sigmatel.c
>> +++ b/sound/pci/hda/patch_sigmatel.c
>> @@ -168,6 +168,7 @@ struct sigmatel_spec {
>>  	unsigned int surr_switch: 1;
>>  	unsigned int alt_switch: 1;
>>  	unsigned int hp_detect: 1;
>> +	unsigned int hp_mixer: 1;
>>  	unsigned int spdif_mute: 1;
>>  	unsigned int check_volume_offset:1;
>>  
>> @@ -857,9 +858,9 @@ static struct hda_verb stac92hd73xx_10ch_core_init[] = {
>>  };
>>  
>>  static struct hda_verb stac92hd83xxx_core_init[] = {
>> -	{ 0xa, AC_VERB_SET_CONNECT_SEL, 0x1},
>> -	{ 0xb, AC_VERB_SET_CONNECT_SEL, 0x1},
>> -	{ 0xd, AC_VERB_SET_CONNECT_SEL, 0x0},
>> +	{ 0xa, AC_VERB_SET_CONNECT_SEL, 0x0},
>> +	{ 0xb, AC_VERB_SET_CONNECT_SEL, 0x0},
>> +	{ 0xd, AC_VERB_SET_CONNECT_SEL, 0x1},
>>  
>>  	/* power state controls amps */
>>  	{ 0x01, AC_VERB_SET_EAPD, 1 << 2},
>> @@ -3115,12 +3116,12 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
>>  		"Front", "Surround", NULL /*CLFE*/, "Side"
>>  	};
>>  	hda_nid_t nid = 0;
>> -	int i, err;
>> +	int i, idx = 0, err;
>>  	unsigned int wid_caps;
>>  
>>  	for (i = 0; i < cfg->line_outs && spec->multiout.dac_nids[i]; i++) {
>>  		nid = spec->multiout.dac_nids[i];
>> -		if (i == 2) {
>> +		if (idx == 2) {
>>  			/* Center/LFE */
>>  			err = create_controls(codec, "Center", nid, 1);
>>  			if (err < 0)
>> @@ -3139,9 +3140,9 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
>>  				if (err < 0)
>>  					return err;
>>  			}
>> -
>> +			idx++;
>>  		} else {
>> -			const char *name = chname[i];
>> +			const char *name = chname[idx];
>>  			/* if it's a single DAC, assign a better name */
>>  			if (!i && is_unique_dac(spec, nid)) {
>>  				switch (cfg->line_out_type) {
>> @@ -3153,6 +3154,10 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
>>  					break;
>>  				}
>>  			}
>> +			if (!i && spec->hp_mixer)
>> +				name = "Headphone";
>> +			else
>> +				idx++;
>>  			err = create_controls(codec, name, nid, 3);
>>  			if (err < 0)
>>  				return err;
>> @@ -4894,6 +4899,12 @@ again:
>>  		break;
>>  	}
>>  
>> +	switch (spec->board_config) {
>> +	case STAC_DELL_S14:
>> +		spec->hp_mixer = 1;
>> +		break;
>> +	}
>> +
>>  	err = stac92xx_parse_auto_config(codec, 0x1d, 0);
>>  	if (!err) {
>>  		if (spec->board_config < 0) {
>> -- 
>> 1.5.6.3
>>
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] hda: Add logic to force HP mixer creation
  2009-02-16 23:34   ` Matthew Ranostay
@ 2009-02-17 17:16     ` Takashi Iwai
  0 siblings, 0 replies; 11+ messages in thread
From: Takashi Iwai @ 2009-02-17 17:16 UTC (permalink / raw)
  To: Matthew Ranostay; +Cc: alsa-devel

At Mon, 16 Feb 2009 18:34:35 -0500,
Matthew Ranostay wrote:
> 
> Takashi Iwai wrote:
> > At Sun, 15 Feb 2009 11:01:01 -0500,
> > Matthew Ranostay wrote:
> >> In some instances like a laptop PCI_QUIRK you may want to force a
> >> headphone mixer otherwise a "Front" mixer would be in its place, this
> >> is to aid user friendlyness.
> >>
> >> Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
> > 
> > Well, the change looks a bit too ad hoc.
> > Could you give alsa-info.sh output for this?
> > 
> 
> http://www.alsa-project.org/db/?f=1cd2363ec823c8c2db005acf996608da67ff7a3e

Thanks.

The problem here is "Headphone" volume control doesn't really mean
only headphones.  You have two headphones on the device, and if you
play the multi-channels, this volume control doesn't affect both but
only one.


Takashi

> 
> > 
> > thanks,
> > 
> > Takashi
> > 
> >> ---
> >>  sound/pci/hda/patch_sigmatel.c |   25 ++++++++++++++++++-------
> >>  1 files changed, 18 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
> >> index aeb5d21..e02a187 100644
> >> --- a/sound/pci/hda/patch_sigmatel.c
> >> +++ b/sound/pci/hda/patch_sigmatel.c
> >> @@ -168,6 +168,7 @@ struct sigmatel_spec {
> >>  	unsigned int surr_switch: 1;
> >>  	unsigned int alt_switch: 1;
> >>  	unsigned int hp_detect: 1;
> >> +	unsigned int hp_mixer: 1;
> >>  	unsigned int spdif_mute: 1;
> >>  	unsigned int check_volume_offset:1;
> >>  
> >> @@ -857,9 +858,9 @@ static struct hda_verb stac92hd73xx_10ch_core_init[] = {
> >>  };
> >>  
> >>  static struct hda_verb stac92hd83xxx_core_init[] = {
> >> -	{ 0xa, AC_VERB_SET_CONNECT_SEL, 0x1},
> >> -	{ 0xb, AC_VERB_SET_CONNECT_SEL, 0x1},
> >> -	{ 0xd, AC_VERB_SET_CONNECT_SEL, 0x0},
> >> +	{ 0xa, AC_VERB_SET_CONNECT_SEL, 0x0},
> >> +	{ 0xb, AC_VERB_SET_CONNECT_SEL, 0x0},
> >> +	{ 0xd, AC_VERB_SET_CONNECT_SEL, 0x1},
> >>  
> >>  	/* power state controls amps */
> >>  	{ 0x01, AC_VERB_SET_EAPD, 1 << 2},
> >> @@ -3115,12 +3116,12 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
> >>  		"Front", "Surround", NULL /*CLFE*/, "Side"
> >>  	};
> >>  	hda_nid_t nid = 0;
> >> -	int i, err;
> >> +	int i, idx = 0, err;
> >>  	unsigned int wid_caps;
> >>  
> >>  	for (i = 0; i < cfg->line_outs && spec->multiout.dac_nids[i]; i++) {
> >>  		nid = spec->multiout.dac_nids[i];
> >> -		if (i == 2) {
> >> +		if (idx == 2) {
> >>  			/* Center/LFE */
> >>  			err = create_controls(codec, "Center", nid, 1);
> >>  			if (err < 0)
> >> @@ -3139,9 +3140,9 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
> >>  				if (err < 0)
> >>  					return err;
> >>  			}
> >> -
> >> +			idx++;
> >>  		} else {
> >> -			const char *name = chname[i];
> >> +			const char *name = chname[idx];
> >>  			/* if it's a single DAC, assign a better name */
> >>  			if (!i && is_unique_dac(spec, nid)) {
> >>  				switch (cfg->line_out_type) {
> >> @@ -3153,6 +3154,10 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
> >>  					break;
> >>  				}
> >>  			}
> >> +			if (!i && spec->hp_mixer)
> >> +				name = "Headphone";
> >> +			else
> >> +				idx++;
> >>  			err = create_controls(codec, name, nid, 3);
> >>  			if (err < 0)
> >>  				return err;
> >> @@ -4894,6 +4899,12 @@ again:
> >>  		break;
> >>  	}
> >>  
> >> +	switch (spec->board_config) {
> >> +	case STAC_DELL_S14:
> >> +		spec->hp_mixer = 1;
> >> +		break;
> >> +	}
> >> +
> >>  	err = stac92xx_parse_auto_config(codec, 0x1d, 0);
> >>  	if (!err) {
> >>  		if (spec->board_config < 0) {
> >> -- 
> >> 1.5.6.3
> >>
> > 
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] hda: Add logic to force HP mixer creation
  2009-02-16  9:08 ` Takashi Iwai
  2009-02-16 23:34   ` Matthew Ranostay
@ 2009-02-17 18:02   ` Mario Limonciello
  2009-02-17 18:28     ` Takashi Iwai
  1 sibling, 1 reply; 11+ messages in thread
From: Mario Limonciello @ 2009-02-17 18:02 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Matthew Ranostay


[-- Attachment #1.1.1.1: Type: text/plain, Size: 3690 bytes --]

I've tested the patch, and it does greatly aid userfriendliness. the
"Surround" mixer no longer has a function, but it's clear that you need
to turn up the Headphone mixer to make headphones work.

Here's the alsa-info.sh output with that patch applied and the other s14
patch applied to the latest git snapshot from today. I thought you
mentioned the s14 patch was applied to git, but I didn't see it in the
snapshot for some reason.

Takashi Iwai wrote:
> At Sun, 15 Feb 2009 11:01:01 -0500,
> Matthew Ranostay wrote:
>   
>> In some instances like a laptop PCI_QUIRK you may want to force a
>> headphone mixer otherwise a "Front" mixer would be in its place, this
>> is to aid user friendlyness.
>>
>> Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
>>     
>
> Well, the change looks a bit too ad hoc.
> Could you give alsa-info.sh output for this?
>
>
> thanks,
>
> Takashi
>
>   
>> ---
>>  sound/pci/hda/patch_sigmatel.c |   25 ++++++++++++++++++-------
>>  1 files changed, 18 insertions(+), 7 deletions(-)
>>
>> diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
>> index aeb5d21..e02a187 100644
>> --- a/sound/pci/hda/patch_sigmatel.c
>> +++ b/sound/pci/hda/patch_sigmatel.c
>> @@ -168,6 +168,7 @@ struct sigmatel_spec {
>>  	unsigned int surr_switch: 1;
>>  	unsigned int alt_switch: 1;
>>  	unsigned int hp_detect: 1;
>> +	unsigned int hp_mixer: 1;
>>  	unsigned int spdif_mute: 1;
>>  	unsigned int check_volume_offset:1;
>>  
>> @@ -857,9 +858,9 @@ static struct hda_verb stac92hd73xx_10ch_core_init[] = {
>>  };
>>  
>>  static struct hda_verb stac92hd83xxx_core_init[] = {
>> -	{ 0xa, AC_VERB_SET_CONNECT_SEL, 0x1},
>> -	{ 0xb, AC_VERB_SET_CONNECT_SEL, 0x1},
>> -	{ 0xd, AC_VERB_SET_CONNECT_SEL, 0x0},
>> +	{ 0xa, AC_VERB_SET_CONNECT_SEL, 0x0},
>> +	{ 0xb, AC_VERB_SET_CONNECT_SEL, 0x0},
>> +	{ 0xd, AC_VERB_SET_CONNECT_SEL, 0x1},
>>  
>>  	/* power state controls amps */
>>  	{ 0x01, AC_VERB_SET_EAPD, 1 << 2},
>> @@ -3115,12 +3116,12 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
>>  		"Front", "Surround", NULL /*CLFE*/, "Side"
>>  	};
>>  	hda_nid_t nid = 0;
>> -	int i, err;
>> +	int i, idx = 0, err;
>>  	unsigned int wid_caps;
>>  
>>  	for (i = 0; i < cfg->line_outs && spec->multiout.dac_nids[i]; i++) {
>>  		nid = spec->multiout.dac_nids[i];
>> -		if (i == 2) {
>> +		if (idx == 2) {
>>  			/* Center/LFE */
>>  			err = create_controls(codec, "Center", nid, 1);
>>  			if (err < 0)
>> @@ -3139,9 +3140,9 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
>>  				if (err < 0)
>>  					return err;
>>  			}
>> -
>> +			idx++;
>>  		} else {
>> -			const char *name = chname[i];
>> +			const char *name = chname[idx];
>>  			/* if it's a single DAC, assign a better name */
>>  			if (!i && is_unique_dac(spec, nid)) {
>>  				switch (cfg->line_out_type) {
>> @@ -3153,6 +3154,10 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
>>  					break;
>>  				}
>>  			}
>> +			if (!i && spec->hp_mixer)
>> +				name = "Headphone";
>> +			else
>> +				idx++;
>>  			err = create_controls(codec, name, nid, 3);
>>  			if (err < 0)
>>  				return err;
>> @@ -4894,6 +4899,12 @@ again:
>>  		break;
>>  	}
>>  
>> +	switch (spec->board_config) {
>> +	case STAC_DELL_S14:
>> +		spec->hp_mixer = 1;
>> +		break;
>> +	}
>> +
>>  	err = stac92xx_parse_auto_config(codec, 0x1d, 0);
>>  	if (!err) {
>>  		if (spec->board_config < 0) {
>> -- 
>> 1.5.6.3
>>
>>     

-- 
Mario Limonciello
*Dell | Linux Engineering*
mario_limonciello@dell.com

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



[-- Attachment #1.1.2: 1.0.19.11.g5fc41.195.g772ce+s14+headphone_logic.alsa-info.txt --]
[-- Type: text/plain, Size: 27898 bytes --]

upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.4.54
!!################################

!!Script ran on: Tue Feb 17 17:47:36 UTC 2009


!!Linux Distribution
!!------------------

Ubuntu jaunty (development branch) \n \l DISTRIB_ID=Ubuntu DISTRIB_DESCRIPTION="Ubuntu jaunty (development branch)"


!!Kernel Information
!!------------------

Kernel release:    2.6.28-7-generic
Operating System:  GNU/Linux
Architecture:      i686
Processor:         unknown
SMP Enabled:       Yes


!!ALSA Version
!!------------

Driver version:     1.0.19.11.g5fc41.195.g772ce
Library version:    
Utilities version:  1.0.18


!!Loaded ALSA modules
!!-------------------

snd_hda_intel


!!Sound Servers on this system
!!----------------------------

Pulseaudio:
      Installed - Yes (/usr/bin/pulseaudio)
      Running - No

ESound Daemon:
      Installed - Yes (/usr/bin/esd)
      Running - No


!!Soundcards recognised by ALSA
!!-----------------------------

 0 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xf0980000 irq 17


!!PCI Soundcards installed in the system
!!--------------------------------------

00:08.0 Audio device: nVidia Corporation MCP79 High Definition Audio (rev b1)


!!Advanced information - PCI Vendor/Device/Susbsystem ID's
!!--------------------------------------------------------

00:08.0 0403: 10de:0ac0 (rev b1)
	Subsystem: 1028:02ba


!!Modprobe options (Sound related)
!!--------------------------------

snd-atiixp-modem: index=-2
snd-intel8x0m: index=-2
snd-via82xx-modem: index=-2
snd-usb-audio: index=-2
snd-usb-us122l: index=-2
snd-usb-usx2y: index=-2
snd-usb-caiaq: index=-2
snd-cmipci: mpu_port=0x330 fm_port=0x388
snd-pcsp: index=-2


!!Loaded sound module options
!!--------------------------

!!Module: snd_hda_intel
bdl_pos_adj : 32,-1,-1,-1,-1,-1,-1,-1
enable : Y,Y,Y,Y,Y,Y,Y,Y
enable_msi : 0
id : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>
index : -1,-1,-1,-1,-1,-1,-1,-1
model : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>
position_fix : 0,0,0,0,0,0,0,0
power_save : 0
power_save_controller : Y
probe_mask : -1,-1,-1,-1,-1,-1,-1,-1
probe_only : N,N,N,N,N,N,N,N
single_cmd : N


!!HDA-Intel Codec information
!!---------------------------
--startcollapse--

Codec: IDT 92HD83C1X5
Address: 0
Vendor Id: 0x111d7604
Subsystem Id: 0x102802ba
Revision Id: 0x100302
No Modem Function Group found
Default PCM:
    rates [0x5e0]: 44100 48000 88200 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
Default Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1
GPIO: io=3, o=0, i=0, unsolicited=1, wake=1
  IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
Power-Map: 0x00
Node 0x0a [Pin Complex] wcaps 0x400581: Stereo
  Pincap 0x0001001c: OUT HP EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x02214030: [Jack] HP Out at Ext Front
    Conn = 1/8, Color = Green
    DefAssociation = 0x3, Sequence = 0x0
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=02, enabled=1
  Power: setting=D0, actual=D0
  Connection: 4
     0x13 0x14* 0x1c 0x22
Node 0x0b [Pin Complex] wcaps 0x400581: Stereo
  Pincap 0x0001001c: OUT HP EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x02211010: [Jack] HP Out at Ext Front
    Conn = 1/8, Color = Black
    DefAssociation = 0x1, Sequence = 0x0
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=01, enabled=1
  Power: setting=D0, actual=D0
  Connection: 4
     0x13 0x14* 0x1c 0x22
Node 0x0c [Pin Complex] wcaps 0x400583: Stereo Amp-In
  Amp-In caps: N/A
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00011734: IN OUT EAPD Detect
    Vref caps: HIZ 50 GRD 80
  EAPD 0x2: EAPD
  Pin Default 0x02a19020: [Jack] Mic at Ext Front
    Conn = 1/8, Color = Pink
    DefAssociation = 0x2, Sequence = 0x0
  Pin-ctls: 0x24: IN VREF_80
  Unsolicited: tag=03, enabled=1
  Power: setting=D0, actual=D0
  Connection: 4
     0x13 0x14 0x1c 0x22*
Node 0x0d [Pin Complex] wcaps 0x400501: Stereo
  Pincap 0x00010050: OUT EAPD Balanced
  EAPD 0x2: EAPD
  Pin Default 0x01014050: [Jack] Line Out at Ext Rear
    Conn = 1/8, Color = Green
    DefAssociation = 0x5, Sequence = 0x0
  Pin-ctls: 0x40: OUT
  Power: setting=D0, actual=D0
  Connection: 4
     0x13* 0x14 0x1c 0x22
Node 0x0e [Pin Complex] wcaps 0x400583: Stereo Amp-In
  Amp-In caps: N/A
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00010034: IN OUT EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x40f000f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power: setting=D0, actual=D0
  Connection: 4
     0x13* 0x14 0x1c 0x22
Node 0x0f [Pin Complex] wcaps 0x400583: Stereo Amp-In
  Amp-In caps: N/A
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00011734: IN OUT EAPD Detect
    Vref caps: HIZ 50 GRD 80
  EAPD 0x2: EAPD
  Pin Default 0x01819040: [Jack] Line In at Ext Rear
    Conn = 1/8, Color = Pink
    DefAssociation = 0x4, Sequence = 0x0
  Pin-ctls: 0x20: IN VREF_HIZ
  Unsolicited: tag=04, enabled=1
  Power: setting=D0, actual=D0
  Connection: 4
     0x13 0x14 0x1c 0x22*
Node 0x10 [Pin Complex] wcaps 0x400500: Mono
  Pincap 0x00000010: OUT
  Pin Default 0x40f000f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Power: setting=D0, actual=D0
  Connection: 1
     0x1a
Node 0x11 [Pin Complex] wcaps 0x400483: Stereo Amp-In
  Amp-In caps: N/A
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000024: IN Detect
  Pin Default 0x90a60160: [Fixed] Mic at Int N/A
    Conn = Digital, Color = Unknown
    DefAssociation = 0x6, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x20: IN
  Unsolicited: tag=00, enabled=0
  Power: setting=D0, actual=D0
Node 0x12 [Vendor Defined Widget] wcaps 0xf00503: Stereo Amp-In
  Amp-In caps: N/A
  Amp-In vals:  [0x00 0x00]
  Power: setting=D0, actual=D0
  Connection: 1
     0x20
Node 0x13 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
  Amp-Out caps: N/A
  Amp-Out vals:  [0x77 0x77]
  Converter: stream=0, channel=0
  Power: setting=D0, actual=D0
  Delay: 13 samples
Node 0x14 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
  Amp-Out caps: N/A
  Amp-Out vals:  [0x7a 0x7a]
  Converter: stream=0, channel=0
  Power: setting=D0, actual=D0
  Delay: 13 samples
Node 0x15 [Audio Input] wcaps 0x1d0541: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Power: setting=D0, actual=D0
  Delay: 13 samples
  Connection: 1
     0x17
  Processing caps: benign=0, ncoeff=0
Node 0x16 [Audio Input] wcaps 0x1d0541: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Power: setting=D0, actual=D0
  Delay: 13 samples
  Connection: 1
     0x18
  Processing caps: benign=0, ncoeff=0
Node 0x17 [Audio Selector] wcaps 0x300d0d: Stereo Amp-Out R/L
  Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
  Amp-Out vals:  [0x80 0x80]
  Power: setting=D0, actual=D0
  Connection: 6
     0x0c 0x0e 0x0f 0x1b 0x11* 0x12
Node 0x18 [Audio Selector] wcaps 0x300d0d: Stereo Amp-Out R/L
  Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
  Amp-Out vals:  [0x80 0x80]
  Power: setting=D0, actual=D0
  Connection: 6
     0x0c* 0x0e 0x0f 0x1b 0x11 0x12
Node 0x19 [Audio Selector] wcaps 0x300501: Stereo
  Power: setting=D0, actual=D0
  Connection: 4
     0x13* 0x14 0x1c 0x22
Node 0x1a [Audio Mixer] wcaps 0x200500: Mono
  Power: setting=D0, actual=D0
  Connection: 1
     0x19
Node 0x1b [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
  Amp-In vals:  [0x97 0x97] [0x97 0x97] [0x97 0x97] [0x97 0x97] [0x97 0x97]
  Power: setting=D0, actual=D0
  Connection: 5
     0x0c 0x0e 0x0f 0x13 0x14
Node 0x1c [Audio Selector] wcaps 0x30050d: Stereo Amp-Out
  Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1
  Amp-Out vals:  [0x9f 0x9f]
  Power: setting=D0, actual=D0
  Connection: 1
     0x1b
Node 0x1d [Audio Output] wcaps 0x4061d: Stereo Digital Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  PCM:
    rates [0x5e0]: 44100 48000 88200 96000 192000
    bits [0xe]: 16 20 24
    formats [0x5]: PCM AC3
  Power: setting=D0, actual=D0
  Delay: 4 samples
Node 0x1e [Audio Output] wcaps 0x4061d: Stereo Digital Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  PCM:
    rates [0x5e0]: 44100 48000 88200 96000 192000
    bits [0xe]: 16 20 24
    formats [0x5]: PCM AC3
  Power: setting=D0, actual=D0
  Delay: 4 samples
Node 0x1f [Pin Complex] wcaps 0x400781: Stereo Digital
  Pincap 0x00000014: OUT Detect
  Pin Default 0x40f000f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power: setting=D0, actual=D0
  Connection: 1
     0x1d
Node 0x20 [Pin Complex] wcaps 0x400781: Stereo Digital
  Pincap 0x00000034: IN OUT Detect
  Pin Default 0x40f000f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power: setting=D0, actual=D0
  Connection: 1
     0x1e
Node 0x21 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
  Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=1
  Amp-Out vals:  [0x00]
Node 0x22 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
  Amp-Out caps: N/A
  Amp-Out vals:  [0xfa 0xfa]
  Converter: stream=0, channel=0
  Power: setting=D0, actual=D0
  Delay: 13 samples
Codec: Nvidia MCP7A HDMI
Address: 3
Vendor Id: 0x10de0007
Subsystem Id: 0x102802ba
Revision Id: 0x100100
No Modem Function Group found
Default PCM:
    rates [0x0]:
    bits [0x0]:
    formats [0x0]:
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
Node 0x04 [Audio Output] wcaps 0x211: Stereo Digital
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  PCM:
    rates [0xc0]: 48000 88200
    bits [0xf]: 8 16 20 24
    formats [0x1]: PCM
Node 0x05 [Pin Complex] wcaps 0x400381: Stereo Digital
  Pincap 0x00000014: OUT Detect
  Pin Default 0x18560110: [Jack] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Connection: 1
     0x04
Node 0x06 [Audio Output] wcaps 0x211: Stereo Digital
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  PCM:
    rates [0xc0]: 48000 88200
    bits [0xf]: 8 16 20 24
    formats [0x1]: PCM
Node 0x07 [Pin Complex] wcaps 0x400381: Stereo Digital
  Pincap 0x00000014: OUT Detect
  Pin Default 0x58560121: [N/A] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x2, Sequence = 0x1
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Connection: 1
     0x06
Node 0x08 [Audio Output] wcaps 0x211: Stereo Digital
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  PCM:
    rates [0xc0]: 48000 88200
    bits [0xf]: 8 16 20 24
    formats [0x1]: PCM
Node 0x09 [Pin Complex] wcaps 0x400381: Stereo Digital
  Pincap 0x00000014: OUT Detect
  Pin Default 0x58560122: [N/A] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x2, Sequence = 0x2
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Connection: 1
     0x08
Node 0x0a [Audio Output] wcaps 0x211: Stereo Digital
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  PCM:
    rates [0xc0]: 48000 88200
    bits [0xf]: 8 16 20 24
    formats [0x1]: PCM
Node 0x0b [Pin Complex] wcaps 0x400381: Stereo Digital
  Pincap 0x00000014: OUT Detect
  Pin Default 0x58560123: [N/A] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x2, Sequence = 0x3
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Connection: 1
     0x0a
Node 0x0c [Audio Output] wcaps 0x211: Stereo Digital
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  PCM:
    rates [0xc0]: 48000 88200
    bits [0xf]: 8 16 20 24
    formats [0x1]: PCM
Node 0x0d [Pin Complex] wcaps 0x400381: Stereo Digital
  Pincap 0x00000014: OUT Detect
  Pin Default 0x58560124: [N/A] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x2, Sequence = 0x4
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Connection: 1
     0x0c
--endcollapse--


!!ALSA Device nodes
!!-----------------

crw-rw----+ 1 root audio 116,  0 Feb 17 12:44 /dev/snd/controlC0
crw-rw----+ 1 root audio 116,  4 Feb 17 12:44 /dev/snd/hwC0D0
crw-rw----+ 1 root audio 116,  7 Feb 17 12:44 /dev/snd/hwC0D3
crw-rw----+ 1 root audio 116, 24 Feb 17 12:45 /dev/snd/pcmC0D0c
crw-rw----+ 1 root audio 116, 16 Feb 17 12:46 /dev/snd/pcmC0D0p
crw-rw----+ 1 root audio 116, 19 Feb 17 12:44 /dev/snd/pcmC0D3p
crw-rw----+ 1 root audio 116,  1 Feb 17 12:44 /dev/snd/seq
crw-rw----+ 1 root audio 116, 33 Feb 17 12:44 /dev/snd/timer


!!Aplay/Arecord output
!!------------

APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 0: STAC92xx Analog [STAC92xx Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ARECORD

**** List of CAPTURE Hardware Devices ****
card 0: NVidia [HDA NVidia], device 0: STAC92xx Analog [STAC92xx Analog]
  Subdevices: 2/2
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1

!!Amixer output
!!-------------

!!-------Mixer controls for card 0 [NVidia]

Card hw:0 'NVidia'/'HDA NVidia at 0xf0980000 irq 17'
  Mixer name	: 'Nvidia MCP7A HDMI'
  Components	: 'HDA:111d7604,102802ba,00100302 HDA:10de0007,102802ba,00100100'
  Controls      : 37
  Simple ctrls  : 22
Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 64
  Mono: Playback 59 [92%] [-3.75dB] [on]
Simple mixer control 'Headphone as Line Out',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'PCM',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Mono:
  Front Left: Playback 255 [100%] [0.00dB]
  Front Right: Playback 255 [100%] [0.00dB]
Simple mixer control 'Front',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 64
  Mono:
  Front Left: Playback 61 [95%] [-2.25dB] [on]
  Front Right: Playback 61 [95%] [-2.25dB] [on]
Simple mixer control 'Front Mic',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 31
  Front Left: Capture 23 [74%] [0.00dB] [off]
  Front Right: Capture 23 [74%] [0.00dB] [off]
Simple mixer control 'Surround',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 64
  Mono:
  Front Left: Playback 64 [100%] [0.00dB] [on]
  Front Right: Playback 64 [100%] [0.00dB] [on]
Simple mixer control 'Center',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 64
  Mono: Playback 64 [100%] [0.00dB] [off]
Simple mixer control 'LFE',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 64
  Mono: Playback 64 [100%] [0.00dB] [off]
Simple mixer control 'Line In',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 31
  Front Left: Capture 23 [74%] [0.00dB] [off]
  Front Right: Capture 23 [74%] [0.00dB] [off]
Simple mixer control 'Line In as Output',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Mic as Output',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Mono Mux',0
  Capabilities: enum
  Items: 'DAC0' 'DAC1' 'Mixer' 'DAC2'
  Item0: 'DAC0'
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 15
  Front Left: Capture 0 [0%] [0.00dB] [off]
  Front Right: Capture 0 [0%] [0.00dB] [off]
Simple mixer control 'Capture',1
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 15
  Front Left: Capture 0 [0%] [0.00dB] [off]
  Front Right: Capture 0 [0%] [0.00dB] [off]
Simple mixer control 'Amp',0
  Capabilities: cvolume
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 3
  Front Left: Capture 0 [0%] [0.00dB]
  Front Right: Capture 0 [0%] [0.00dB]
Simple mixer control 'DAC0',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 31
  Front Left: Capture 23 [74%] [0.00dB] [off]
  Front Right: Capture 23 [74%] [0.00dB] [off]
Simple mixer control 'DAC1',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 31
  Front Left: Capture 23 [74%] [0.00dB] [off]
  Front Right: Capture 23 [74%] [0.00dB] [off]
Simple mixer control 'Digital Input Source',0
  Capabilities: enum
  Items: 'Analog Inputs' 'Digital Mic 1' 'Digital Mic 2'
  Item0: 'Digital Mic 1'
Simple mixer control 'Digital Input Source',1
  Capabilities: enum
  Items: 'Analog Inputs' 'Digital Mic 1' 'Digital Mic 2'
  Item0: 'Analog Inputs'
Simple mixer control 'PC Beep',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 3
  Mono: Playback 1 [33%] [-12.00dB] [off]
Simple mixer control 'Swap Center/LFE',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]


!!Alsactl output
!!-------------

--startcollapse--
state.NVidia {
	control.1 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 15'
		comment.dbmin 0
		comment.dbmax 2250
		iface MIXER
		name 'Capture Volume'
		value.0 0
		value.1 0
	}
	control.2 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 2
		iface MIXER
		name 'Capture Switch'
		value.0 false
		value.1 false
	}
	control.3 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 15'
		comment.dbmin 0
		comment.dbmax 2250
		iface MIXER
		name 'Capture Volume'
		index 1
		value.0 0
		value.1 0
	}
	control.4 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 2
		iface MIXER
		name 'Capture Switch'
		index 1
		value.0 false
		value.1 false
	}
	control.5 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'DAC0 Capture Volume'
		value.0 23
		value.1 23
	}
	control.6 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 2
		iface MIXER
		name 'DAC0 Capture Switch'
		value.0 false
		value.1 false
	}
	control.7 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'DAC1 Capture Volume'
		value.0 23
		value.1 23
	}
	control.8 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 2
		iface MIXER
		name 'DAC1 Capture Switch'
		value.0 false
		value.1 false
	}
	control.9 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'Front Mic Capture Volume'
		value.0 23
		value.1 23
	}
	control.10 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 2
		iface MIXER
		name 'Front Mic Capture Switch'
		value.0 false
		value.1 false
	}
	control.11 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'Line In Capture Volume'
		value.0 23
		value.1 23
	}
	control.12 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 2
		iface MIXER
		name 'Line In Capture Switch'
		value.0 false
		value.1 false
	}
	control.13 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 64'
		comment.dbmin -4800
		comment.dbmax 0
		iface MIXER
		name 'Front Playback Volume'
		value.0 61
		value.1 61
	}
	control.14 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 2
		iface MIXER
		name 'Front Playback Switch'
		value.0 true
		value.1 true
	}
	control.15 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 64'
		comment.dbmin -4800
		comment.dbmax 0
		iface MIXER
		name 'Surround Playback Volume'
		value.0 64
		value.1 64
	}
	control.16 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 2
		iface MIXER
		name 'Surround Playback Switch'
		value.0 true
		value.1 true
	}
	control.17 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 64'
		comment.dbmin -4800
		comment.dbmax 0
		iface MIXER
		name 'Center Playback Volume'
		value 64
	}
	control.18 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Center Playback Switch'
		value false
	}
	control.19 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 64'
		comment.dbmin -4800
		comment.dbmax 0
		iface MIXER
		name 'LFE Playback Volume'
		value 64
	}
	control.20 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'LFE Playback Switch'
		value false
	}
	control.21 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Swap Center/LFE Playback Switch'
		value false
	}
	control.22 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Headphone as Line Out Switch'
		value false
	}
	control.23 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Line In as Output Switch'
		value false
	}
	control.24 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mic as Output Switch'
		value false
	}
	control.25 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'PC Beep Playback Switch'
		value false
	}
	control.26 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 3'
		comment.dbmin -1800
		comment.dbmax 0
		iface MIXER
		name 'PC Beep Playback Volume'
		value 1
	}
	control.27 {
		comment.access 'read write'
		comment.type ENUMERATED
		comment.count 1
		comment.item.0 DAC0
		comment.item.1 DAC1
		comment.item.2 Mixer
		comment.item.3 DAC2
		iface MIXER
		name 'Mono Mux'
		value DAC0
	}
	control.28 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 3'
		comment.dbmin 0
		comment.dbmax 3000
		iface MIXER
		name 'Amp Capture Volume'
		value.0 0
		value.1 0
	}
	control.29 {
		comment.access 'read write'
		comment.type ENUMERATED
		comment.count 1
		comment.item.0 'Analog Inputs'
		comment.item.1 'Digital Mic 1'
		comment.item.2 'Digital Mic 2'
		iface MIXER
		name 'Digital Input Source'
		value 'Digital Mic 1'
	}
	control.30 {
		comment.access 'read write'
		comment.type ENUMERATED
		comment.count 1
		comment.item.0 'Analog Inputs'
		comment.item.1 'Digital Mic 1'
		comment.item.2 'Digital Mic 2'
		iface MIXER
		name 'Digital Input Source'
		index 1
		value 'Analog Inputs'
	}
	control.31 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 64'
		comment.dbmin -4800
		comment.dbmax 0
		iface MIXER
		name 'Master Playback Volume'
		value 59
	}
	control.32 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Master Playback Switch'
		value true
	}
	control.33 {
		comment.access read
		comment.type IEC958
		comment.count 1
		iface MIXER
		name 'IEC958 Playback Con Mask'
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
	}
	control.34 {
		comment.access read
		comment.type IEC958
		comment.count 1
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
	}
	control.35 {
		comment.access 'read write'
		comment.type IEC958
		comment.count 1
		iface MIXER
		name 'IEC958 Playback Default'
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
	}
	control.36 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'IEC958 Playback Switch'
		value false
	}
	control.37 {
		comment.access 'read write user'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 255'
		comment.tlv '0000000100000008ffffec1400000014'
		comment.dbmin -5100
		comment.dbmax 0
		iface MIXER
		name 'PCM Playback Volume'
		value.0 255
		value.1 255
	}
}
--endcollapse--


!!All Loaded Modules
!!------------------

Module
binfmt_misc
bridge
stp
bnep
video
output
input_polldev
ppdev
parport_pc
lp
parport
snd_hda_codec_nvhdmi
joydev
snd_hda_codec_idt
snd_hda_intel
snd_hda_codec
snd_hwdep
snd_pcm_oss
snd_mixer_oss
snd_pcm
snd_seq_dummy
snd_seq_oss
psmouse
nvidia
pcspkr
dcdbas
serio_raw
snd_seq_midi
agpgart
snd_rawmidi
ieee80211_crypt_tkip
snd_seq_midi_event
wl
ieee80211_crypt
snd_seq
shpchp
uvcvideo
compat_ioctl32
snd_timer
snd_seq_device
videodev
v4l1_compat
snd
soundcore
snd_page_alloc
ohci1394
ieee1394
r8169
mii
ehci_hcd
ohci_hcd
fbcon
tileblit
font
bitblit
softcursor
fuse



[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] hda: Add logic to force HP mixer creation
  2009-02-17 18:02   ` Mario Limonciello
@ 2009-02-17 18:28     ` Takashi Iwai
  2009-02-17 19:27       ` Mario Limonciello
  0 siblings, 1 reply; 11+ messages in thread
From: Takashi Iwai @ 2009-02-17 18:28 UTC (permalink / raw)
  To: Mario Limonciello; +Cc: alsa-devel, Matthew Ranostay

At Tue, 17 Feb 2009 12:02:22 -0600,
Mario Limonciello wrote:
> 
> I've tested the patch, and it does greatly aid userfriendliness.  the
> "Surround" mixer no longer has a function, but it's clear that you need to
> turn up the Headphone mixer to make headphones work.

If "Surround" doesn't do anything, why should it be there?
And, does "Headphone" change both headphones even with 4 or 6 ch outputs
properly?   Doesn't "Headhpone" change any other output volumes?

The patch introduces another exception, and now nobody would understand
how the channels and outputs and mixers are assigned together.

Besides, also some another fix (changing the widget connection) is
found in a  single patch.  This must be split.

> Here's the alsa-info.sh output with that patch applied and the other s14 patch
> applied to the latest git snapshot from today.  I thought you mentioned the
> s14 patch was applied to git, but I didn't see it in the snapshot for some
> reason.

Hm, I thought I did.  Which patch exactly?


thanks,

Takashi

> 
> Takashi Iwai wrote:
> 
>     At Sun, 15 Feb 2009 11:01:01 -0500,
>     Matthew Ranostay wrote:
> 
>         In some instances like a laptop PCI_QUIRK you may want to force a
>         headphone mixer otherwise a "Front" mixer would be in its place, this
>         is to aid user friendlyness.
>         
>         Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
> 
>     Well, the change looks a bit too ad hoc.
>     Could you give alsa-info.sh output for this?
> 
>     thanks,
>     
>     Takashi
> 
>         ---
>          sound/pci/hda/patch_sigmatel.c |   25 ++++++++++++++++++-------
>          1 files changed, 18 insertions(+), 7 deletions(-)
>         
>         diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
>         index aeb5d21..e02a187 100644
>         --- a/sound/pci/hda/patch_sigmatel.c
>         +++ b/sound/pci/hda/patch_sigmatel.c
>         @@ -168,6 +168,7 @@ struct sigmatel_spec {
>                 unsigned int surr_switch: 1;
>                 unsigned int alt_switch: 1;
>                 unsigned int hp_detect: 1;
>         +       unsigned int hp_mixer: 1;
>                 unsigned int spdif_mute: 1;
>                 unsigned int check_volume_offset:1;
>          
>         @@ -857,9 +858,9 @@ static struct hda_verb stac92hd73xx_10ch_core_init[] = {
>          };
>          
>          static struct hda_verb stac92hd83xxx_core_init[] = {
>         -       { 0xa, AC_VERB_SET_CONNECT_SEL, 0x1},
>         -       { 0xb, AC_VERB_SET_CONNECT_SEL, 0x1},
>         -       { 0xd, AC_VERB_SET_CONNECT_SEL, 0x0},
>         +       { 0xa, AC_VERB_SET_CONNECT_SEL, 0x0},
>         +       { 0xb, AC_VERB_SET_CONNECT_SEL, 0x0},
>         +       { 0xd, AC_VERB_SET_CONNECT_SEL, 0x1},
>          
>                 /* power state controls amps */
>                 { 0x01, AC_VERB_SET_EAPD, 1 << 2},
>         @@ -3115,12 +3116,12 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
>                         "Front", "Surround", NULL /*CLFE*/, "Side"
>                 };
>                 hda_nid_t nid = 0;
>         -       int i, err;
>         +       int i, idx = 0, err;
>                 unsigned int wid_caps;
>          
>                 for (i = 0; i < cfg->line_outs && spec->multiout.dac_nids[i]; i++) {
>                         nid = spec->multiout.dac_nids[i];
>         -               if (i == 2) {
>         +               if (idx == 2) {
>                                 /* Center/LFE */
>                                 err = create_controls(codec, "Center", nid, 1);
>                                 if (err < 0)
>         @@ -3139,9 +3140,9 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
>                                         if (err < 0)
>                                                 return err;
>                                 }
>         -
>         +                       idx++;
>                         } else {
>         -                       const char *name = chname[i];
>         +                       const char *name = chname[idx];
>                                 /* if it's a single DAC, assign a better name */
>                                 if (!i && is_unique_dac(spec, nid)) {
>                                         switch (cfg->line_out_type) {
>         @@ -3153,6 +3154,10 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
>                                                 break;
>                                         }
>                                 }
>         +                       if (!i && spec->hp_mixer)
>         +                               name = "Headphone";
>         +                       else
>         +                               idx++;
>                                 err = create_controls(codec, name, nid, 3);
>                                 if (err < 0)
>                                         return err;
>         @@ -4894,6 +4899,12 @@ again:
>                         break;
>                 }
>          
>         +       switch (spec->board_config) {
>         +       case STAC_DELL_S14:
>         +               spec->hp_mixer = 1;
>         +               break;
>         +       }
>         +
>                 err = stac92xx_parse_auto_config(codec, 0x1d, 0);
>                 if (!err) {
>                         if (spec->board_config < 0) {
>         -- 
>         1.5.6.3
> 
> --
> Mario Limonciello
> Dell | Linux Engineering
> mario_limonciello@dell.com
> 
> 
> [1.2 1.0.19.11.g5fc41.195.g772ce+s14+headphone_logic.alsa-info.txt <text/plain (quoted-printable)>]
> upload=true&script=true&cardinfo=
> !!################################
> !!ALSA Information Script v 0.4.54
> !!################################
> 
> !!Script ran on: Tue Feb 17 17:47:36 UTC 2009
> 
> 
> !!Linux Distribution
> !!------------------
> 
> Ubuntu jaunty (development branch) \n \l DISTRIB_ID=Ubuntu DISTRIB_DESCRIPTION="Ubuntu jaunty (development branch)"
> 
> 
> !!Kernel Information
> !!------------------
> 
> Kernel release:    2.6.28-7-generic
> Operating System:  GNU/Linux
> Architecture:      i686
> Processor:         unknown
> SMP Enabled:       Yes
> 
> 
> !!ALSA Version
> !!------------
> 
> Driver version:     1.0.19.11.g5fc41.195.g772ce
> Library version:    
> Utilities version:  1.0.18
> 
> 
> !!Loaded ALSA modules
> !!-------------------
> 
> snd_hda_intel
> 
> 
> !!Sound Servers on this system
> !!----------------------------
> 
> Pulseaudio:
>       Installed - Yes (/usr/bin/pulseaudio)
>       Running - No
> 
> ESound Daemon:
>       Installed - Yes (/usr/bin/esd)
>       Running - No
> 
> 
> !!Soundcards recognised by ALSA
> !!-----------------------------
> 
>  0 [NVidia         ]: HDA-Intel - HDA NVidia
>                       HDA NVidia at 0xf0980000 irq 17
> 
> 
> !!PCI Soundcards installed in the system
> !!--------------------------------------
> 
> 00:08.0 Audio device: nVidia Corporation MCP79 High Definition Audio (rev b1)
> 
> 
> !!Advanced information - PCI Vendor/Device/Susbsystem ID's
> !!--------------------------------------------------------
> 
> 00:08.0 0403: 10de:0ac0 (rev b1)
> 	Subsystem: 1028:02ba
> 
> 
> !!Modprobe options (Sound related)
> !!--------------------------------
> 
> snd-atiixp-modem: index=-2
> snd-intel8x0m: index=-2
> snd-via82xx-modem: index=-2
> snd-usb-audio: index=-2
> snd-usb-us122l: index=-2
> snd-usb-usx2y: index=-2
> snd-usb-caiaq: index=-2
> snd-cmipci: mpu_port=0x330 fm_port=0x388
> snd-pcsp: index=-2
> 
> 
> !!Loaded sound module options
> !!--------------------------
> 
> !!Module: snd_hda_intel
> bdl_pos_adj : 32,-1,-1,-1,-1,-1,-1,-1
> enable : Y,Y,Y,Y,Y,Y,Y,Y
> enable_msi : 0
> id : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>
> index : -1,-1,-1,-1,-1,-1,-1,-1
> model : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>
> position_fix : 0,0,0,0,0,0,0,0
> power_save : 0
> power_save_controller : Y
> probe_mask : -1,-1,-1,-1,-1,-1,-1,-1
> probe_only : N,N,N,N,N,N,N,N
> single_cmd : N
> 
> 
> !!HDA-Intel Codec information
> !!---------------------------
> --startcollapse--
> 
> Codec: IDT 92HD83C1X5
> Address: 0
> Vendor Id: 0x111d7604
> Subsystem Id: 0x102802ba
> Revision Id: 0x100302
> No Modem Function Group found
> Default PCM:
>     rates [0x5e0]: 44100 48000 88200 96000 192000
>     bits [0xe]: 16 20 24
>     formats [0x1]: PCM
> Default Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
> Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1
> GPIO: io=3, o=0, i=0, unsolicited=1, wake=1
>   IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
> Power-Map: 0x00
> Node 0x0a [Pin Complex] wcaps 0x400581: Stereo
>   Pincap 0x0001001c: OUT HP EAPD Detect
>   EAPD 0x2: EAPD
>   Pin Default 0x02214030: [Jack] HP Out at Ext Front
>     Conn = 1/8, Color = Green
>     DefAssociation = 0x3, Sequence = 0x0
>   Pin-ctls: 0xc0: OUT HP
>   Unsolicited: tag=02, enabled=1
>   Power: setting=D0, actual=D0
>   Connection: 4
>      0x13 0x14* 0x1c 0x22
> Node 0x0b [Pin Complex] wcaps 0x400581: Stereo
>   Pincap 0x0001001c: OUT HP EAPD Detect
>   EAPD 0x2: EAPD
>   Pin Default 0x02211010: [Jack] HP Out at Ext Front
>     Conn = 1/8, Color = Black
>     DefAssociation = 0x1, Sequence = 0x0
>   Pin-ctls: 0xc0: OUT HP
>   Unsolicited: tag=01, enabled=1
>   Power: setting=D0, actual=D0
>   Connection: 4
>      0x13 0x14* 0x1c 0x22
> Node 0x0c [Pin Complex] wcaps 0x400583: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x00011734: IN OUT EAPD Detect
>     Vref caps: HIZ 50 GRD 80
>   EAPD 0x2: EAPD
>   Pin Default 0x02a19020: [Jack] Mic at Ext Front
>     Conn = 1/8, Color = Pink
>     DefAssociation = 0x2, Sequence = 0x0
>   Pin-ctls: 0x24: IN VREF_80
>   Unsolicited: tag=03, enabled=1
>   Power: setting=D0, actual=D0
>   Connection: 4
>      0x13 0x14 0x1c 0x22*
> Node 0x0d [Pin Complex] wcaps 0x400501: Stereo
>   Pincap 0x00010050: OUT EAPD Balanced
>   EAPD 0x2: EAPD
>   Pin Default 0x01014050: [Jack] Line Out at Ext Rear
>     Conn = 1/8, Color = Green
>     DefAssociation = 0x5, Sequence = 0x0
>   Pin-ctls: 0x40: OUT
>   Power: setting=D0, actual=D0
>   Connection: 4
>      0x13* 0x14 0x1c 0x22
> Node 0x0e [Pin Complex] wcaps 0x400583: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x00010034: IN OUT EAPD Detect
>   EAPD 0x2: EAPD
>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Power: setting=D0, actual=D0
>   Connection: 4
>      0x13* 0x14 0x1c 0x22
> Node 0x0f [Pin Complex] wcaps 0x400583: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x00011734: IN OUT EAPD Detect
>     Vref caps: HIZ 50 GRD 80
>   EAPD 0x2: EAPD
>   Pin Default 0x01819040: [Jack] Line In at Ext Rear
>     Conn = 1/8, Color = Pink
>     DefAssociation = 0x4, Sequence = 0x0
>   Pin-ctls: 0x20: IN VREF_HIZ
>   Unsolicited: tag=04, enabled=1
>   Power: setting=D0, actual=D0
>   Connection: 4
>      0x13 0x14 0x1c 0x22*
> Node 0x10 [Pin Complex] wcaps 0x400500: Mono
>   Pincap 0x00000010: OUT
>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Power: setting=D0, actual=D0
>   Connection: 1
>      0x1a
> Node 0x11 [Pin Complex] wcaps 0x400483: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x00000024: IN Detect
>   Pin Default 0x90a60160: [Fixed] Mic at Int N/A
>     Conn = Digital, Color = Unknown
>     DefAssociation = 0x6, Sequence = 0x0
>     Misc = NO_PRESENCE
>   Pin-ctls: 0x20: IN
>   Unsolicited: tag=00, enabled=0
>   Power: setting=D0, actual=D0
> Node 0x12 [Vendor Defined Widget] wcaps 0xf00503: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Power: setting=D0, actual=D0
>   Connection: 1
>      0x20
> Node 0x13 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>   Amp-Out caps: N/A
>   Amp-Out vals:  [0x77 0x77]
>   Converter: stream=0, channel=0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
> Node 0x14 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>   Amp-Out caps: N/A
>   Amp-Out vals:  [0x7a 0x7a]
>   Converter: stream=0, channel=0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
> Node 0x15 [Audio Input] wcaps 0x1d0541: Stereo
>   Converter: stream=0, channel=0
>   SDI-Select: 0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
>   Connection: 1
>      0x17
>   Processing caps: benign=0, ncoeff=0
> Node 0x16 [Audio Input] wcaps 0x1d0541: Stereo
>   Converter: stream=0, channel=0
>   SDI-Select: 0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
>   Connection: 1
>      0x18
>   Processing caps: benign=0, ncoeff=0
> Node 0x17 [Audio Selector] wcaps 0x300d0d: Stereo Amp-Out R/L
>   Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
>   Amp-Out vals:  [0x80 0x80]
>   Power: setting=D0, actual=D0
>   Connection: 6
>      0x0c 0x0e 0x0f 0x1b 0x11* 0x12
> Node 0x18 [Audio Selector] wcaps 0x300d0d: Stereo Amp-Out R/L
>   Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
>   Amp-Out vals:  [0x80 0x80]
>   Power: setting=D0, actual=D0
>   Connection: 6
>      0x0c* 0x0e 0x0f 0x1b 0x11 0x12
> Node 0x19 [Audio Selector] wcaps 0x300501: Stereo
>   Power: setting=D0, actual=D0
>   Connection: 4
>      0x13* 0x14 0x1c 0x22
> Node 0x1a [Audio Mixer] wcaps 0x200500: Mono
>   Power: setting=D0, actual=D0
>   Connection: 1
>      0x19
> Node 0x1b [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
>   Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
>   Amp-In vals:  [0x97 0x97] [0x97 0x97] [0x97 0x97] [0x97 0x97] [0x97 0x97]
>   Power: setting=D0, actual=D0
>   Connection: 5
>      0x0c 0x0e 0x0f 0x13 0x14
> Node 0x1c [Audio Selector] wcaps 0x30050d: Stereo Amp-Out
>   Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1
>   Amp-Out vals:  [0x9f 0x9f]
>   Power: setting=D0, actual=D0
>   Connection: 1
>      0x1b
> Node 0x1d [Audio Output] wcaps 0x4061d: Stereo Digital Amp-Out
>   Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
>   Amp-Out vals:  [0x00 0x00]
>   Converter: stream=0, channel=0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0x5e0]: 44100 48000 88200 96000 192000
>     bits [0xe]: 16 20 24
>     formats [0x5]: PCM AC3
>   Power: setting=D0, actual=D0
>   Delay: 4 samples
> Node 0x1e [Audio Output] wcaps 0x4061d: Stereo Digital Amp-Out
>   Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
>   Amp-Out vals:  [0x00 0x00]
>   Converter: stream=0, channel=0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0x5e0]: 44100 48000 88200 96000 192000
>     bits [0xe]: 16 20 24
>     formats [0x5]: PCM AC3
>   Power: setting=D0, actual=D0
>   Delay: 4 samples
> Node 0x1f [Pin Complex] wcaps 0x400781: Stereo Digital
>   Pincap 0x00000014: OUT Detect
>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Power: setting=D0, actual=D0
>   Connection: 1
>      0x1d
> Node 0x20 [Pin Complex] wcaps 0x400781: Stereo Digital
>   Pincap 0x00000034: IN OUT Detect
>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Power: setting=D0, actual=D0
>   Connection: 1
>      0x1e
> Node 0x21 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
>   Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=1
>   Amp-Out vals:  [0x00]
> Node 0x22 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>   Amp-Out caps: N/A
>   Amp-Out vals:  [0xfa 0xfa]
>   Converter: stream=0, channel=0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
> Codec: Nvidia MCP7A HDMI
> Address: 3
> Vendor Id: 0x10de0007
> Subsystem Id: 0x102802ba
> Revision Id: 0x100100
> No Modem Function Group found
> Default PCM:
>     rates [0x0]:
>     bits [0x0]:
>     formats [0x0]:
> Default Amp-In caps: N/A
> Default Amp-Out caps: N/A
> GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
> Node 0x04 [Audio Output] wcaps 0x211: Stereo Digital
>   Converter: stream=0, channel=0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0xc0]: 48000 88200
>     bits [0xf]: 8 16 20 24
>     formats [0x1]: PCM
> Node 0x05 [Pin Complex] wcaps 0x400381: Stereo Digital
>   Pincap 0x00000014: OUT Detect
>   Pin Default 0x18560110: [Jack] Digital Out at Int HDMI
>     Conn = Digital, Color = Unknown
>     DefAssociation = 0x1, Sequence = 0x0
>     Misc = NO_PRESENCE
>   Pin-ctls: 0x40: OUT
>   Unsolicited: tag=00, enabled=0
>   Connection: 1
>      0x04
> Node 0x06 [Audio Output] wcaps 0x211: Stereo Digital
>   Converter: stream=0, channel=0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0xc0]: 48000 88200
>     bits [0xf]: 8 16 20 24
>     formats [0x1]: PCM
> Node 0x07 [Pin Complex] wcaps 0x400381: Stereo Digital
>   Pincap 0x00000014: OUT Detect
>   Pin Default 0x58560121: [N/A] Digital Out at Int HDMI
>     Conn = Digital, Color = Unknown
>     DefAssociation = 0x2, Sequence = 0x1
>     Misc = NO_PRESENCE
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Connection: 1
>      0x06
> Node 0x08 [Audio Output] wcaps 0x211: Stereo Digital
>   Converter: stream=0, channel=0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0xc0]: 48000 88200
>     bits [0xf]: 8 16 20 24
>     formats [0x1]: PCM
> Node 0x09 [Pin Complex] wcaps 0x400381: Stereo Digital
>   Pincap 0x00000014: OUT Detect
>   Pin Default 0x58560122: [N/A] Digital Out at Int HDMI
>     Conn = Digital, Color = Unknown
>     DefAssociation = 0x2, Sequence = 0x2
>     Misc = NO_PRESENCE
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Connection: 1
>      0x08
> Node 0x0a [Audio Output] wcaps 0x211: Stereo Digital
>   Converter: stream=0, channel=0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0xc0]: 48000 88200
>     bits [0xf]: 8 16 20 24
>     formats [0x1]: PCM
> Node 0x0b [Pin Complex] wcaps 0x400381: Stereo Digital
>   Pincap 0x00000014: OUT Detect
>   Pin Default 0x58560123: [N/A] Digital Out at Int HDMI
>     Conn = Digital, Color = Unknown
>     DefAssociation = 0x2, Sequence = 0x3
>     Misc = NO_PRESENCE
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Connection: 1
>      0x0a
> Node 0x0c [Audio Output] wcaps 0x211: Stereo Digital
>   Converter: stream=0, channel=0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0xc0]: 48000 88200
>     bits [0xf]: 8 16 20 24
>     formats [0x1]: PCM
> Node 0x0d [Pin Complex] wcaps 0x400381: Stereo Digital
>   Pincap 0x00000014: OUT Detect
>   Pin Default 0x58560124: [N/A] Digital Out at Int HDMI
>     Conn = Digital, Color = Unknown
>     DefAssociation = 0x2, Sequence = 0x4
>     Misc = NO_PRESENCE
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Connection: 1
>      0x0c
> --endcollapse--
> 
> 
> !!ALSA Device nodes
> !!-----------------
> 
> crw-rw----+ 1 root audio 116,  0 Feb 17 12:44 /dev/snd/controlC0
> crw-rw----+ 1 root audio 116,  4 Feb 17 12:44 /dev/snd/hwC0D0
> crw-rw----+ 1 root audio 116,  7 Feb 17 12:44 /dev/snd/hwC0D3
> crw-rw----+ 1 root audio 116, 24 Feb 17 12:45 /dev/snd/pcmC0D0c
> crw-rw----+ 1 root audio 116, 16 Feb 17 12:46 /dev/snd/pcmC0D0p
> crw-rw----+ 1 root audio 116, 19 Feb 17 12:44 /dev/snd/pcmC0D3p
> crw-rw----+ 1 root audio 116,  1 Feb 17 12:44 /dev/snd/seq
> crw-rw----+ 1 root audio 116, 33 Feb 17 12:44 /dev/snd/timer
> 
> 
> !!Aplay/Arecord output
> !!------------
> 
> APLAY
> 
> **** List of PLAYBACK Hardware Devices ****
> card 0: NVidia [HDA NVidia], device 0: STAC92xx Analog [STAC92xx Analog]
>   Subdevices: 1/1
>   Subdevice #0: subdevice #0
> card 0: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
>   Subdevices: 1/1
>   Subdevice #0: subdevice #0
> 
> ARECORD
> 
> **** List of CAPTURE Hardware Devices ****
> card 0: NVidia [HDA NVidia], device 0: STAC92xx Analog [STAC92xx Analog]
>   Subdevices: 2/2
>   Subdevice #0: subdevice #0
>   Subdevice #1: subdevice #1
> 
> !!Amixer output
> !!-------------
> 
> !!-------Mixer controls for card 0 [NVidia]
> 
> Card hw:0 'NVidia'/'HDA NVidia at 0xf0980000 irq 17'
>   Mixer name	: 'Nvidia MCP7A HDMI'
>   Components	: 'HDA:111d7604,102802ba,00100302 HDA:10de0007,102802ba,00100100'
>   Controls      : 37
>   Simple ctrls  : 22
> Simple mixer control 'Master',0
>   Capabilities: pvolume pvolume-joined pswitch pswitch-joined
>   Playback channels: Mono
>   Limits: Playback 0 - 64
>   Mono: Playback 59 [92%] [-3.75dB] [on]
> Simple mixer control 'Headphone as Line Out',0
>   Capabilities: pswitch pswitch-joined
>   Playback channels: Mono
>   Mono: Playback [off]
> Simple mixer control 'PCM',0
>   Capabilities: pvolume
>   Playback channels: Front Left - Front Right
>   Limits: Playback 0 - 255
>   Mono:
>   Front Left: Playback 255 [100%] [0.00dB]
>   Front Right: Playback 255 [100%] [0.00dB]
> Simple mixer control 'Front',0
>   Capabilities: pvolume pswitch
>   Playback channels: Front Left - Front Right
>   Limits: Playback 0 - 64
>   Mono:
>   Front Left: Playback 61 [95%] [-2.25dB] [on]
>   Front Right: Playback 61 [95%] [-2.25dB] [on]
> Simple mixer control 'Front Mic',0
>   Capabilities: cvolume cswitch
>   Capture channels: Front Left - Front Right
>   Limits: Capture 0 - 31
>   Front Left: Capture 23 [74%] [0.00dB] [off]
>   Front Right: Capture 23 [74%] [0.00dB] [off]
> Simple mixer control 'Surround',0
>   Capabilities: pvolume pswitch
>   Playback channels: Front Left - Front Right
>   Limits: Playback 0 - 64
>   Mono:
>   Front Left: Playback 64 [100%] [0.00dB] [on]
>   Front Right: Playback 64 [100%] [0.00dB] [on]
> Simple mixer control 'Center',0
>   Capabilities: pvolume pvolume-joined pswitch pswitch-joined
>   Playback channels: Mono
>   Limits: Playback 0 - 64
>   Mono: Playback 64 [100%] [0.00dB] [off]
> Simple mixer control 'LFE',0
>   Capabilities: pvolume pvolume-joined pswitch pswitch-joined
>   Playback channels: Mono
>   Limits: Playback 0 - 64
>   Mono: Playback 64 [100%] [0.00dB] [off]
> Simple mixer control 'Line In',0
>   Capabilities: cvolume cswitch
>   Capture channels: Front Left - Front Right
>   Limits: Capture 0 - 31
>   Front Left: Capture 23 [74%] [0.00dB] [off]
>   Front Right: Capture 23 [74%] [0.00dB] [off]
> Simple mixer control 'Line In as Output',0
>   Capabilities: pswitch pswitch-joined
>   Playback channels: Mono
>   Mono: Playback [off]
> Simple mixer control 'Mic as Output',0
>   Capabilities: pswitch pswitch-joined
>   Playback channels: Mono
>   Mono: Playback [off]
> Simple mixer control 'IEC958',0
>   Capabilities: pswitch pswitch-joined
>   Playback channels: Mono
>   Mono: Playback [off]
> Simple mixer control 'Mono Mux',0
>   Capabilities: enum
>   Items: 'DAC0' 'DAC1' 'Mixer' 'DAC2'
>   Item0: 'DAC0'
> Simple mixer control 'Capture',0
>   Capabilities: cvolume cswitch
>   Capture channels: Front Left - Front Right
>   Limits: Capture 0 - 15
>   Front Left: Capture 0 [0%] [0.00dB] [off]
>   Front Right: Capture 0 [0%] [0.00dB] [off]
> Simple mixer control 'Capture',1
>   Capabilities: cvolume cswitch
>   Capture channels: Front Left - Front Right
>   Limits: Capture 0 - 15
>   Front Left: Capture 0 [0%] [0.00dB] [off]
>   Front Right: Capture 0 [0%] [0.00dB] [off]
> Simple mixer control 'Amp',0
>   Capabilities: cvolume
>   Capture channels: Front Left - Front Right
>   Limits: Capture 0 - 3
>   Front Left: Capture 0 [0%] [0.00dB]
>   Front Right: Capture 0 [0%] [0.00dB]
> Simple mixer control 'DAC0',0
>   Capabilities: cvolume cswitch
>   Capture channels: Front Left - Front Right
>   Limits: Capture 0 - 31
>   Front Left: Capture 23 [74%] [0.00dB] [off]
>   Front Right: Capture 23 [74%] [0.00dB] [off]
> Simple mixer control 'DAC1',0
>   Capabilities: cvolume cswitch
>   Capture channels: Front Left - Front Right
>   Limits: Capture 0 - 31
>   Front Left: Capture 23 [74%] [0.00dB] [off]
>   Front Right: Capture 23 [74%] [0.00dB] [off]
> Simple mixer control 'Digital Input Source',0
>   Capabilities: enum
>   Items: 'Analog Inputs' 'Digital Mic 1' 'Digital Mic 2'
>   Item0: 'Digital Mic 1'
> Simple mixer control 'Digital Input Source',1
>   Capabilities: enum
>   Items: 'Analog Inputs' 'Digital Mic 1' 'Digital Mic 2'
>   Item0: 'Analog Inputs'
> Simple mixer control 'PC Beep',0
>   Capabilities: pvolume pvolume-joined pswitch pswitch-joined
>   Playback channels: Mono
>   Limits: Playback 0 - 3
>   Mono: Playback 1 [33%] [-12.00dB] [off]
> Simple mixer control 'Swap Center/LFE',0
>   Capabilities: pswitch pswitch-joined
>   Playback channels: Mono
>   Mono: Playback [off]
> 
> 
> !!Alsactl output
> !!-------------
> 
> --startcollapse--
> state.NVidia {
> 	control.1 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 15'
> 		comment.dbmin 0
> 		comment.dbmax 2250
> 		iface MIXER
> 		name 'Capture Volume'
> 		value.0 0
> 		value.1 0
> 	}
> 	control.2 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 2
> 		iface MIXER
> 		name 'Capture Switch'
> 		value.0 false
> 		value.1 false
> 	}
> 	control.3 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 15'
> 		comment.dbmin 0
> 		comment.dbmax 2250
> 		iface MIXER
> 		name 'Capture Volume'
> 		index 1
> 		value.0 0
> 		value.1 0
> 	}
> 	control.4 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 2
> 		iface MIXER
> 		name 'Capture Switch'
> 		index 1
> 		value.0 false
> 		value.1 false
> 	}
> 	control.5 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 31'
> 		comment.dbmin -3450
> 		comment.dbmax 1200
> 		iface MIXER
> 		name 'DAC0 Capture Volume'
> 		value.0 23
> 		value.1 23
> 	}
> 	control.6 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 2
> 		iface MIXER
> 		name 'DAC0 Capture Switch'
> 		value.0 false
> 		value.1 false
> 	}
> 	control.7 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 31'
> 		comment.dbmin -3450
> 		comment.dbmax 1200
> 		iface MIXER
> 		name 'DAC1 Capture Volume'
> 		value.0 23
> 		value.1 23
> 	}
> 	control.8 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 2
> 		iface MIXER
> 		name 'DAC1 Capture Switch'
> 		value.0 false
> 		value.1 false
> 	}
> 	control.9 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 31'
> 		comment.dbmin -3450
> 		comment.dbmax 1200
> 		iface MIXER
> 		name 'Front Mic Capture Volume'
> 		value.0 23
> 		value.1 23
> 	}
> 	control.10 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 2
> 		iface MIXER
> 		name 'Front Mic Capture Switch'
> 		value.0 false
> 		value.1 false
> 	}
> 	control.11 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 31'
> 		comment.dbmin -3450
> 		comment.dbmax 1200
> 		iface MIXER
> 		name 'Line In Capture Volume'
> 		value.0 23
> 		value.1 23
> 	}
> 	control.12 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 2
> 		iface MIXER
> 		name 'Line In Capture Switch'
> 		value.0 false
> 		value.1 false
> 	}
> 	control.13 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 64'
> 		comment.dbmin -4800
> 		comment.dbmax 0
> 		iface MIXER
> 		name 'Front Playback Volume'
> 		value.0 61
> 		value.1 61
> 	}
> 	control.14 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 2
> 		iface MIXER
> 		name 'Front Playback Switch'
> 		value.0 true
> 		value.1 true
> 	}
> 	control.15 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 64'
> 		comment.dbmin -4800
> 		comment.dbmax 0
> 		iface MIXER
> 		name 'Surround Playback Volume'
> 		value.0 64
> 		value.1 64
> 	}
> 	control.16 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 2
> 		iface MIXER
> 		name 'Surround Playback Switch'
> 		value.0 true
> 		value.1 true
> 	}
> 	control.17 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 1
> 		comment.range '0 - 64'
> 		comment.dbmin -4800
> 		comment.dbmax 0
> 		iface MIXER
> 		name 'Center Playback Volume'
> 		value 64
> 	}
> 	control.18 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 1
> 		iface MIXER
> 		name 'Center Playback Switch'
> 		value false
> 	}
> 	control.19 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 1
> 		comment.range '0 - 64'
> 		comment.dbmin -4800
> 		comment.dbmax 0
> 		iface MIXER
> 		name 'LFE Playback Volume'
> 		value 64
> 	}
> 	control.20 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 1
> 		iface MIXER
> 		name 'LFE Playback Switch'
> 		value false
> 	}
> 	control.21 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 1
> 		iface MIXER
> 		name 'Swap Center/LFE Playback Switch'
> 		value false
> 	}
> 	control.22 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 1
> 		iface MIXER
> 		name 'Headphone as Line Out Switch'
> 		value false
> 	}
> 	control.23 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 1
> 		iface MIXER
> 		name 'Line In as Output Switch'
> 		value false
> 	}
> 	control.24 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 1
> 		iface MIXER
> 		name 'Mic as Output Switch'
> 		value false
> 	}
> 	control.25 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 1
> 		iface MIXER
> 		name 'PC Beep Playback Switch'
> 		value false
> 	}
> 	control.26 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 1
> 		comment.range '0 - 3'
> 		comment.dbmin -1800
> 		comment.dbmax 0
> 		iface MIXER
> 		name 'PC Beep Playback Volume'
> 		value 1
> 	}
> 	control.27 {
> 		comment.access 'read write'
> 		comment.type ENUMERATED
> 		comment.count 1
> 		comment.item.0 DAC0
> 		comment.item.1 DAC1
> 		comment.item.2 Mixer
> 		comment.item.3 DAC2
> 		iface MIXER
> 		name 'Mono Mux'
> 		value DAC0
> 	}
> 	control.28 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 3'
> 		comment.dbmin 0
> 		comment.dbmax 3000
> 		iface MIXER
> 		name 'Amp Capture Volume'
> 		value.0 0
> 		value.1 0
> 	}
> 	control.29 {
> 		comment.access 'read write'
> 		comment.type ENUMERATED
> 		comment.count 1
> 		comment.item.0 'Analog Inputs'
> 		comment.item.1 'Digital Mic 1'
> 		comment.item.2 'Digital Mic 2'
> 		iface MIXER
> 		name 'Digital Input Source'
> 		value 'Digital Mic 1'
> 	}
> 	control.30 {
> 		comment.access 'read write'
> 		comment.type ENUMERATED
> 		comment.count 1
> 		comment.item.0 'Analog Inputs'
> 		comment.item.1 'Digital Mic 1'
> 		comment.item.2 'Digital Mic 2'
> 		iface MIXER
> 		name 'Digital Input Source'
> 		index 1
> 		value 'Analog Inputs'
> 	}
> 	control.31 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 1
> 		comment.range '0 - 64'
> 		comment.dbmin -4800
> 		comment.dbmax 0
> 		iface MIXER
> 		name 'Master Playback Volume'
> 		value 59
> 	}
> 	control.32 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 1
> 		iface MIXER
> 		name 'Master Playback Switch'
> 		value true
> 	}
> 	control.33 {
> 		comment.access read
> 		comment.type IEC958
> 		comment.count 1
> 		iface MIXER
> 		name 'IEC958 Playback Con Mask'
> 		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> 	}
> 	control.34 {
> 		comment.access read
> 		comment.type IEC958
> 		comment.count 1
> 		iface MIXER
> 		name 'IEC958 Playback Pro Mask'
> 		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> 	}
> 	control.35 {
> 		comment.access 'read write'
> 		comment.type IEC958
> 		comment.count 1
> 		iface MIXER
> 		name 'IEC958 Playback Default'
> 		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> 	}
> 	control.36 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 1
> 		iface MIXER
> 		name 'IEC958 Playback Switch'
> 		value false
> 	}
> 	control.37 {
> 		comment.access 'read write user'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 255'
> 		comment.tlv '0000000100000008ffffec1400000014'
> 		comment.dbmin -5100
> 		comment.dbmax 0
> 		iface MIXER
> 		name 'PCM Playback Volume'
> 		value.0 255
> 		value.1 255
> 	}
> }
> --endcollapse--
> 
> 
> !!All Loaded Modules
> !!------------------
> 
> Module
> binfmt_misc
> bridge
> stp
> bnep
> video
> output
> input_polldev
> ppdev
> parport_pc
> lp
> parport
> snd_hda_codec_nvhdmi
> joydev
> snd_hda_codec_idt
> snd_hda_intel
> snd_hda_codec
> snd_hwdep
> snd_pcm_oss
> snd_mixer_oss
> snd_pcm
> snd_seq_dummy
> snd_seq_oss
> psmouse
> nvidia
> pcspkr
> dcdbas
> serio_raw
> snd_seq_midi
> agpgart
> snd_rawmidi
> ieee80211_crypt_tkip
> snd_seq_midi_event
> wl
> ieee80211_crypt
> snd_seq
> shpchp
> uvcvideo
> compat_ioctl32
> snd_timer
> snd_seq_device
> videodev
> v4l1_compat
> snd
> soundcore
> snd_page_alloc
> ohci1394
> ieee1394
> r8169
> mii
> ehci_hcd
> ohci_hcd
> fbcon
> tileblit
> font
> bitblit
> softcursor
> fuse
> 
> 
> [2 OpenPGP digital signature <application/pgp-signature (7bit)>]
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] hda: Add logic to force HP mixer creation
  2009-02-17 18:28     ` Takashi Iwai
@ 2009-02-17 19:27       ` Mario Limonciello
  2009-02-17 20:42         ` Matthew Ranostay
  2009-02-17 20:44         ` Takashi Iwai
  0 siblings, 2 replies; 11+ messages in thread
From: Mario Limonciello @ 2009-02-17 19:27 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Matthew Ranostay


[-- Attachment #1.1: Type: text/plain, Size: 2348 bytes --]

Hi Takashi:

Takashi Iwai wrote:
> If "Surround" doesn't do anything, why should it be there?
> And, does "Headphone" change both headphones even with 4 or 6 ch outputs
> properly?   Doesn't "Headhpone" change any other output volumes?
>   
I found what the surround mixer is being used for. If "Mic as Output" is
turned on, "Surround" acts as the mixer to control that jack.

The Headphone mixer changes both of the regular headphone jack's
volumes. Changing the "Headphone" volume doesn't affect the speaker
outputs at all, only the two headphone jacks.
> The patch introduces another exception, and now nobody would understand
> how the channels and outputs and mixers are assigned together.
>   
Two points:
1) I'm not sure this is as much of a problem as you raise. I don't
believe many people even know how the channels and mixers are assigned
in the first place. I see plenty of support requests for "why doesn't
this second headphone jack work with headphones". I've never seen one of
"I can't hook up my 7.1 surround system to my consumer grade laptop and
have all of my speakers work". These machines come with DisplayPort and
HDMI ports which people will generally be using for hooking up to their
television sets. I seem to think it's not very common to use the
analogue jacks to independently hook up pairs of speakers assigned to
say Front or Surround.
2) You are still able to hook up a separate set of speakers to the mic
output jack and since those are assigned surround have things work as
expected.

>
> Hm, I thought I did.  Which patch exactly?
>
>   
The patch title was [PATCH] hda: Add STA_DELL_S14 quirk. Here's the
starting part of it:

Add STAC_DELL_S14 quirk for new laptop series. Removed un-needed pins in pin_nids
for stac92hd83xxx. Also reorganized connection selection code for the respective ports
per quirk define.

---
 sound/pci/hda/patch_sigmatel.c <imap://mario_limonciello@outlook.dell.com:143/fetch%3EUID%3E/INBOX%3E13699#sound/pci/hda/patch_sigmatel.c> |   52 +++++++++++++++++++++++++++-------------


 1 files changed, 35 insertions(+), 17 deletions(-)


You responded to the mail saying it was applied, but I seem to not be
able to find it in current ALSA git.

Regards
-- 
Mario Limonciello
*Dell | Linux Engineering*
mario_limonciello@dell.com

[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] hda: Add logic to force HP mixer creation
  2009-02-17 19:27       ` Mario Limonciello
@ 2009-02-17 20:42         ` Matthew Ranostay
  2009-02-17 20:44         ` Takashi Iwai
  1 sibling, 0 replies; 11+ messages in thread
From: Matthew Ranostay @ 2009-02-17 20:42 UTC (permalink / raw)
  To: Mario Limonciello; +Cc: Takashi Iwai, alsa-devel

Mario Limonciello wrote:
> Hi Takashi:
> 
> Takashi Iwai wrote:
>> If "Surround" doesn't do anything, why should it be there?
>> And, does "Headphone" change both headphones even with 4 or 6 ch outputs
>> properly?   Doesn't "Headhpone" change any other output volumes?
>>   
> I found what the surround mixer is being used for. If "Mic as Output" is
> turned on, "Surround" acts as the mixer to control that jack.
> 
Correct. 

The the reason the headphone mixer isn't created without my patch is the "mic as output"
and "line in as output" switches.

> The Headphone mixer changes both of the regular headphone jack's
> volumes. Changing the "Headphone" volume doesn't affect the speaker
> outputs at all, only the two headphone jacks.
>> The patch introduces another exception, and now nobody would understand
>> how the channels and outputs and mixers are assigned together.
>>   
> Two points:
> 1) I'm not sure this is as much of a problem as you raise. I don't
> believe many people even know how the channels and mixers are assigned
> in the first place. I see plenty of support requests for "why doesn't
> this second headphone jack work with headphones". I've never seen one of
> "I can't hook up my 7.1 surround system to my consumer grade laptop and
> have all of my speakers work". These machines come with DisplayPort and
> HDMI ports which people will generally be using for hooking up to their
> television sets. I seem to think it's not very common to use the
> analogue jacks to independently hook up pairs of speakers assigned to
> say Front or Surround.
> 2) You are still able to hook up a separate set of speakers to the mic
> output jack and since those are assigned surround have things work as
> expected.
> 
>> Hm, I thought I did.  Which patch exactly?
>>
>>   
> The patch title was [PATCH] hda: Add STA_DELL_S14 quirk. Here's the
> starting part of it:
> 
> Add STAC_DELL_S14 quirk for new laptop series. Removed un-needed pins in pin_nids
> for stac92hd83xxx. Also reorganized connection selection code for the respective ports
> per quirk define.
> 
> ---
>  sound/pci/hda/patch_sigmatel.c <imap://mario_limonciello@outlook.dell.com:143/fetch%3EUID%3E/INBOX%3E13699#sound/pci/hda/patch_sigmatel.c> |   52 +++++++++++++++++++++++++++-------------
> 
> 
>  1 files changed, 35 insertions(+), 17 deletions(-)
> 
> 
> You responded to the mail saying it was applied, but I seem to not be
> able to find it in current ALSA git.
> 
> Regards

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] hda: Add logic to force HP mixer creation
  2009-02-17 19:27       ` Mario Limonciello
  2009-02-17 20:42         ` Matthew Ranostay
@ 2009-02-17 20:44         ` Takashi Iwai
  2009-02-17 21:06           ` Mario Limonciello
  1 sibling, 1 reply; 11+ messages in thread
From: Takashi Iwai @ 2009-02-17 20:44 UTC (permalink / raw)
  To: Mario Limonciello; +Cc: alsa-devel, Matthew Ranostay

At Tue, 17 Feb 2009 13:27:12 -0600,
Mario Limonciello wrote:
> 
> Hi Takashi:
> 
> Takashi Iwai wrote:
> 
>     If "Surround" doesn't do anything, why should it be there?
>     And, does "Headphone" change both headphones even with 4 or 6 ch outputs
>     properly?   Doesn't "Headhpone" change any other output volumes?
> 
> I found what the surround mixer is being used for.  If "Mic as Output" is
> turned on, "Surround"  acts as the mixer to control that jack.

Ah, OK, then the mic jack is connected to the surround DAC.
But don't you have Center and LFE?

> The Headphone mixer changes both of the regular headphone jack's volumes. 
> Changing the "Headphone" volume doesn't affect the speaker outputs at all,
> only the two headphone jacks.

And any control of speaker volume?

>     The patch introduces another exception, and now nobody would understand
>     how the channels and outputs and mixers are assigned together.
> 
> Two points:
> 1) I'm not sure this is as much of a problem as you raise.   I don't believe
> many people even know how the channels and mixers are assigned in the first
> place.  I see plenty of support requests for "why doesn't this second
> headphone jack work with headphones".

Exactly this is why I complained.  The current code is already way too
complex and you have no idea how the I/O jacks are connected to which
channel.  Now you add another flag.  That seems to shift the DAC index
by some reason.  And, make the first one as "Headphone" by some 
reason.  But what reason is it exactly?  My inner voice says that
something gets wrong now.  The time to clean up, make things straight
than adding another short-cut.

>  I've never seen one of "I can't hook up
> my 7.1 surround system to my consumer grade laptop and have all of my speakers
> work".

And exactly this is another point why I feel the necessity of
cleanup.  If the feature isn't needed, we should get rid of it.  Or,
implement in a better form.

> These machines come with DisplayPort and HDMI ports which people will
> generally be using for hooking up to their television sets.  I seem to think
> it's not very common to use the analogue jacks to independently hook up pairs
> of speakers assigned to say Front or Surround.
> 2) You are still able to hook up a separate set of speakers to the mic output
> jack and since those are assigned surround have things work as expected.

One more another problem is that this setup thingy isn't described
at all, or pretty hard to guess from the mixer control.  There are
knobs, but you don't know the combination.


>     Hm, I thought I did.  Which patch exactly?
> 
> The patch title was [PATCH] hda: Add STA_DELL_S14 quirk.  Here's the starting
> part of it:
> 
> Add STAC_DELL_S14 quirk for new laptop series. Removed un-needed pins in pin_nids
> for stac92hd83xxx. Also reorganized connection selection code for the respective ports
> per quirk define.

This must be included.  Check commit
8bb0ac5573ff0879fef511e1a80a4a4db0316daa
in sound git tree.


thanks,

Takashi

> ---
>  sound/pci/hda/patch_sigmatel.c |   52 +++++++++++++++++++++++++++-------------
> 
>  1 files changed, 35 insertions(+), 17 deletions(-)
> 
> You responded to the mail saying it was applied, but I seem to not be able to
> find it in current ALSA git.
> 
> Regards
> --
> Mario Limonciello
> Dell | Linux Engineering
> mario_limonciello@dell.com
> 
> 
> [2 OpenPGP digital signature <application/pgp-signature (7bit)>]
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] hda: Add logic to force HP mixer creation
  2009-02-17 20:44         ` Takashi Iwai
@ 2009-02-17 21:06           ` Mario Limonciello
  2009-02-18  6:43             ` Takashi Iwai
  0 siblings, 1 reply; 11+ messages in thread
From: Mario Limonciello @ 2009-02-17 21:06 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Matthew Ranostay


[-- Attachment #1.1: Type: text/plain, Size: 2189 bytes --]

Hi Takashi:

Takashi Iwai wrote:
> At Tue, 17 Feb 2009 13:27:12 -0600,
> Mario Limonciello wrote:
>   
>
> Ah, OK, then the mic jack is connected to the surround DAC.
> But don't you have Center and LFE?
>   
There aren't mixers for Center or LFE at all.  Again going back to my
feelings about mixer names, for the purposes of a laptop I think
providing a knob called Center or another called LFE just adds to the
confusion.
> And any control of speaker volume?
>   
Speaker volume is handled by the combination of Master, PCM, and Front
mixers.  The headphone mixer has no bearing on the volume of the speakers.
>
> And exactly this is another point why I feel the necessity of
> cleanup.  If the feature isn't needed, we should get rid of it.  Or,
> implement in a better form.
>   
If I was to put a vote towards this, I think attempting to support 6
channel analog in the mobile space is a feature that needs to go.  It
causes confusion and complicates the code. 
> One more another problem is that this setup thingy isn't described
> at all, or pretty hard to guess from the mixer control.  There are
> knobs, but you don't know the combination.
>   
I think knobs, switches, do-hickeys, etc are great to have when they
serve an explicit purpose.  I look at the mixers being presented to me,
and I've no idea what

"Mono Mux" is there for, or why I've got several "Digital Input Source"
areas. 
> This must be included.  Check commit
> 8bb0ac5573ff0879fef511e1a80a4a4db0316daa
> in sound git tree.
>   
I suppose i've got some confusion for when these commits are showing up
on
http://git.alsa-project.org/?p=alsa-kernel.git;a=history;f=sound/pci/hda/patch_sigmatel.c;h=3c84817ccd2e0d4bd1eee4f2882047ae84165e10;hb=HEAD
My understanding was that the tree alsa-kernel tree was merged into the
alsa-driver and alsa-kmirror trees on a regular basis.  I have been
operating off of web snapshots of alsa-driver from
http://www.alsa-project.org/snapshot/ since I can't do GIT internally
here, but I'm not seeing the patch show up in alsa-driver there.

Regards
-- 
Mario Limonciello
*Dell | Linux Engineering*
mario_limonciello@dell.com

[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] hda: Add logic to force HP mixer creation
  2009-02-17 21:06           ` Mario Limonciello
@ 2009-02-18  6:43             ` Takashi Iwai
  0 siblings, 0 replies; 11+ messages in thread
From: Takashi Iwai @ 2009-02-18  6:43 UTC (permalink / raw)
  To: Mario Limonciello; +Cc: alsa-devel, Matthew Ranostay

At Tue, 17 Feb 2009 15:06:38 -0600,
Mario Limonciello wrote:
> 
> Hi Takashi:
> 
> Takashi Iwai wrote:
> 
>     At Tue, 17 Feb 2009 13:27:12 -0600,
>     Mario Limonciello wrote:
> 
>     Ah, OK, then the mic jack is connected to the surround DAC.
>     But don't you have Center and LFE?
> 
> There aren't mixers for Center or LFE at all.  Again going back to my feelings
> about mixer names, for the purposes of a laptop I think providing a knob
> called Center or another called LFE just adds to the confusion.

Right.  Though, "Front", "Surround", "Center" and "LFE" are basically
for logical channels, not the physical I/O volumes.  So, their
meanings don't conflict conceptually.  However, in the case of laptop,
the mapping between the channel and the phyiscal I/O is unclear, which
causes confusion.

>     And any control of speaker volume?
> 
> Speaker volume is handled by the combination of Master, PCM, and Front
> mixers.  The headphone mixer has no bearing on the volume of the speakers.

OK, that's a good news at least.

>     And exactly this is another point why I feel the necessity of
>     cleanup.  If the feature isn't needed, we should get rid of it.  Or,
>     implement in a better form.
> 
> If I was to put a vote towards this, I think attempting to support 6 channel
> analog in the mobile space is a feature that needs to go.  It causes confusion
> and complicates the code. 

Yep.

>     One more another problem is that this setup thingy isn't described
>     at all, or pretty hard to guess from the mixer control.  There are
>     knobs, but you don't know the combination.
> 
> I think knobs, switches, do-hickeys, etc are great to have when they serve an
> explicit purpose.  I look at the mixers being presented to me, and I've no
> idea what
> 
> "Mono Mux" is there for, or why I've got several "Digital Input Source"
> areas. 

This is another area that must be cleaned up, yes.

>     This must be included.  Check commit
>     8bb0ac5573ff0879fef511e1a80a4a4db0316daa
>     in sound git tree.
> 
> I suppose i've got some confusion for when these commits are showing up on 
> http://git.alsa-project.org/?p=alsa-kernel.git;a=history;f=sound/pci/hda/
> patch_sigmatel.c;h=3c84817ccd2e0d4bd1eee4f2882047ae84165e10;hb=HEAD
> My understanding was that the tree alsa-kernel tree was merged into the
> alsa-driver and alsa-kmirror trees on a regular basis.  I have been operating
> off of web snapshots of alsa-driver from http://www.alsa-project.org/snapshot/
> since I can't do GIT internally here, but I'm not seeing the patch show up in
> alsa-driver there.

The tree I'm maintaining, sound git tree, is not on alsa-project.org.
It's found on kernel.org, 

    git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git

and the snapshot tarball is 

    ftp://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/alsa-driver-snapshot.tar.gz

The above tree is used as a reference tree to the linux-next.

Some other information is found in
$LINUX/Documentation/sound/alsa/HD-Audio.txt in the recent kernel tree.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2009-02-18  6:43 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-15 16:01 [PATCH] hda: Add logic to force HP mixer creation Matthew Ranostay
2009-02-16  9:08 ` Takashi Iwai
2009-02-16 23:34   ` Matthew Ranostay
2009-02-17 17:16     ` Takashi Iwai
2009-02-17 18:02   ` Mario Limonciello
2009-02-17 18:28     ` Takashi Iwai
2009-02-17 19:27       ` Mario Limonciello
2009-02-17 20:42         ` Matthew Ranostay
2009-02-17 20:44         ` Takashi Iwai
2009-02-17 21:06           ` Mario Limonciello
2009-02-18  6:43             ` Takashi Iwai

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.