[alsa-devel] [PATCH] hda: Add logic to force HP mixer creation
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) {
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; }
} else {idx++;
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
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; }
} else {idx++;
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
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; }
} else {idx++;
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
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; }
} else {idx++;
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
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)>]
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 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:
- 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
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:
- 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)>]
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/pat... 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
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
participants (3)
-
Mario Limonciello
-
Matthew Ranostay
-
Takashi Iwai