ALSA: HDA: Add a new model "asus" for Conexant 5066/205xx
Subsystems (2)
PATCH 2/2 ALSA: HDA: Add a new model "asus" for Conexant 5066/205xx
This new model, named "asus", is identical to the "hp_laptop" model, except for the location of the internal mic, which is at pin 0x1a. It is used for Asus K52JU and Lenovo G560.
Signature · 2 lines
David Henningsson, Canonical Ltd. http://launchpad.net/~diwic
Quoted 1 line
From
aa9c48a0b2264418728152ae2d1c697e2fd04fdeMon Sep 17 00:00:00 2001
From: David Henningsson <[email protected]>
Date: Fri, 21 Jan 2011 13:33:28 +0100
Subject: [PATCH 2/2] ALSA: HDA: Add a new model "asus" for Conexant 5066/205xx
This new model, named "asus", is identical to the "hp_laptop" model, except for the location of the internal mic, which is at pin 0x1a. It is used for Asus K52JU and Lenovo G560.
--- Documentation/sound/alsa/HD-Audio-Models.txt | 1 + sound/pci/hda/patch_conexant.c | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletions(-)
Documentation/sound/alsa/HD-Audio-Models.txt +1 -0
@@ -296,6 +296,7 @@ Conexant 5066 ============= laptop Basic Laptop config (default) hp-laptop HP laptops, e g G60 + asus Asus K52JU, Lenovo G560 dell-laptop Dell laptops dell-vostro Dell Vostro olpc-xo-1_5 OLPC XO 1.5
sound/pci/hda/patch_conexant.c +23 -1
@@ -127,6 +127,7 @@ struct conexant_spec { unsigned int ideapad:1; unsigned int thinkpad:1; unsigned int hp_laptop:1; + unsigned int asus:1;unsigned int ext_mic_present;unsigned int recording;
@@ -2312,6 +2313,19 @@ static void cxt5066_ideapad_automic(struct hda_codec *codec) } } + +/* toggle input of built-in digital mic and mic jack appropriately */ +static void cxt5066_asus_automic (struct hda_codec *codec) +{ +unsigned int present; + + present =snd_hda_jack_detect (codec,0x1b ); +snd_printdd ("CXT5066: external microphone present=%d\n" , present); +snd_hda_codec_write (codec,0x17 ,0 ,AC_VERB_SET_CONNECT_SEL , + present ?1 :0 ); +} + +/* toggle input of built-in digital mic and mic jack appropriately */ static void cxt5066_hp_laptop_automic (struct hda_codec *codec) {
@@ -2400,6 +2414,8 @@ static void cxt5066_automic(struct hda_codec *codec)cxt5066_thinkpad_automic (codec); else if (spec->hp_laptop) cxt5066_hp_laptop_automic(codec); + else if (spec->asus) + cxt5066_asus_automic(codec); }/* unsolicited event for jack sensing */
@@ -3045,6 +3061,7 @@ enum {CXT5066_DELL_VOSTRO ,/* Dell Vostro 1015i */ CXT5066_IDEAPAD ,/* Lenovo IdeaPad U150 */ CXT5066_THINKPAD ,/* Lenovo ThinkPad T410s, others? */ +CXT5066_ASUS ,/* Asus K52JU, Lenovo G560 - Int mic at 0x1a and Ext mic at 0x1b */ CXT5066_HP_LAPTOP ,/* HP Laptop */ CXT5066_MODELS };
@@ -3056,6 +3073,7 @@ static const char * const cxt5066_models[CXT5066_MODELS] = { [CXT5066_DELL_VOSTRO] = "dell-vostro", [CXT5066_IDEAPAD] = "ideapad", [CXT5066_THINKPAD] = "thinkpad", + [CXT5066_ASUS] = "asus", [CXT5066_HP_LAPTOP] = "hp-laptop", };
@@ -3068,6 +3086,7 @@ static struct snd_pci_quirk cxt5066_cfg_tbl[] = {SND_PCI_QUIRK (0x1028 ,0x0408 ,"Dell Inspiron One 19T" ,CXT5066_IDEAPAD ),SND_PCI_QUIRK (0x103c ,0x360b ,"HP G60" ,CXT5066_HP_LAPTOP ),SND_PCI_QUIRK (0x1043 ,0x13f3 ,"Asus A52J" ,CXT5066_HP_LAPTOP ), +SND_PCI_QUIRK (0x1043 ,0x1643 ,"Asus K52JU" ,CXT5066_ASUS ),SND_PCI_QUIRK (0x1179 ,0xff1e ,"Toshiba Satellite C650D" ,CXT5066_IDEAPAD ),SND_PCI_QUIRK (0x1179 ,0xff50 ,"Toshiba Satellite P500-PSPGSC-01800T" ,CXT5066_OLPC_XO_1_5 ), SND_PCI_QUIRK(0x1179, 0xffe0, "Toshiba Satellite Pro T130-15F", CXT5066_OLPC_XO_1_5),
@@ -3077,6 +3096,7 @@ static struct snd_pci_quirk cxt5066_cfg_tbl[] = {SND_PCI_QUIRK (0x17aa ,0x20f2 ,"Lenovo T400s" ,CXT5066_THINKPAD ),SND_PCI_QUIRK (0x17aa ,0x21c5 ,"Thinkpad Edge 13" ,CXT5066_THINKPAD ),SND_PCI_QUIRK (0x17aa ,0x215e ,"Lenovo Thinkpad" ,CXT5066_THINKPAD ), +SND_PCI_QUIRK (0x17aa ,0x38af ,"Lenovo G560" ,CXT5066_ASUS ), SND_PCI_QUIRK_VENDOR(0x17aa, "Lenovo", CXT5066_IDEAPAD), /* Fallback for Lenovos without dock mic */ {} };
@@ -3132,13 +3152,15 @@ static int patch_cxt5066(struct hda_codec *codec) spec->num_init_verbs++; spec->dell_automute =1 ;break ; +case CXT5066_ASUS :case CXT5066_HP_LAPTOP : codec->patch_ops.init = cxt5066_init; codec->patch_ops.unsol_event = cxt5066_unsol_event; spec->init_verbs[spec->num_init_verbs] = cxt5066_init_verbs_hp_laptop; spec->num_init_verbs++; - spec->hp_laptop =1 ; + spec->hp_laptop = board_config ==CXT5066_HP_LAPTOP ; + spec->asus = board_config ==CXT5066_ASUS ; spec->mixers[spec->num_mixers++] = cxt5066_mixer_master; spec->mixers[spec->num_mixers++] = cxt5066_mixers;/* no S/PDIF out */
Signature · 1 line
1.7.1
_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Thanks! This also works for the Asus U50F (0x1043 0x1993); however, the U50F has a SPDIF output, which the model disables. There is an additional issue with that.. on the U50F, the jack is connected to the digital output at node 0x12, not the node 0x21 that is currently used bu the cxt5066 patch.
Quoted 10 lines · David Henningsson
This new model, named "asus", is identical to the "
hp_laptop" model, except for the location of the internal mic, which is at pin0x1a. It is used for Asus K52JU and Lenovo G560.Signed-off-by David Henningsson <[email protected]>--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic
In addition, looking at
http://launchpadlibrarian.net/59412617/Card0.Codecs.codec.0.txt , the Asus A52J (0x1043 0x13f3) should use the asus model instead of the hp-laptop model that it now uses.
Quoted 19 lines · Andy Robinson
Thanks! This also works for the Asus U50F (
0x10430x1993); however, the U50F has a SPDIF output, which the model disables. There is an additional issue with that.. on the U50F, the jack is connected to the digital output at node0x12, not the node0x21that is currently used bu the cxt5066 patch.Quoted 10 lines · David Henningsson
This new model, named "asus", is identical to the "
hp_laptop" model, except for the location of the internal mic, which is at pin0x1a. It is used for Asus K52JU and Lenovo G560.Signed-off-by David Henningsson <[email protected]>--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic
Takashi Iwai
AppliedAt Fri, 21 Jan 2011 13:46:00 +0100,
Quoted 8 lines · David Henningsson
This new model, named "asus", is identical to the "
hp_laptop" model, except for the location of the internal mic, which is at pin0x1a. It is used for Asus K52JU and Lenovo G560.Signed-off-by David Henningsson <[email protected]>
Applied, but to topic/asoc branch, as these involve rewrites. Thanks.
Takashi
Quoted 126 lines
Signature · 3 lines
David Henningsson, Canonical Ltd. http://launchpad.net/~diwic [2 0002-ALSA-HDA-Add-a-new-model-asus-for-Conexant-5066-205x.patch <text/x-patch (7bit)>]Quoted 1 line
From
aa9c48a0b2264418728152ae2d1c697e2fd04fdeMon Sep 17 00:00:00 2001From: David Henningsson <[email protected]>
Date: Fri, 21 Jan 2011 13:33:28 +0100
Subject: [PATCH 2/2] ALSA: HDA: Add a new model "asus" for Conexant 5066/205xxThis new model, named "asus", is identical to the "
hp_laptop" model, except for the location of the internal mic, which is at pin0x1a. It is used for Asus K52JU and Lenovo G560.Signed-off-by David Henningsson <[email protected]>--- Documentation/sound/alsa/HD-Audio-Models.txt | 1 + sound/pci/hda/patch_conexant.c | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletions(-)Documentation/sound/alsa/HD-Audio-Models.txt +1
-0@@ -296,6 +296,7 @@ Conexant 5066 ============= laptop Basic Laptop config (default) hp-laptop HP laptops, e g G60 + asus Asus K52JU, Lenovo G560 dell-laptop Dell laptops dell-vostro Dell Vostro olpc-xo-1_5 OLPC XO 1.5sound/pci/hda/patch_conexant.c +23
-1@@ -127,6 +127,7 @@ struct conexant_spec { unsigned int ideapad:1; unsigned int thinkpad:1; unsigned int hp_laptop:1; + unsigned int asus:1;unsigned int ext_mic_present;unsigned int recording;@@ -2312,6 +2313,19 @@ static void cxt5066_ideapad_automic(struct hda_codec *codec) } } + +/* toggle input of built-in digital mic and mic jack appropriately */ +static void cxt5066_asus_automic (struct hda_codec *codec) +{ +unsigned int present; + + present =snd_hda_jack_detect (codec,0x1b ); +snd_printdd ("CXT5066: external microphone present=%d\n" , present); +snd_hda_codec_write (codec,0x17 ,0 ,AC_VERB_SET_CONNECT_SEL , + present ?1 :0 ); +} + +/* toggle input of built-in digital mic and mic jack appropriately */ static void cxt5066_hp_laptop_automic (struct hda_codec *codec) {@@ -2400,6 +2414,8 @@ static void cxt5066_automic(struct hda_codec *codec)cxt5066_thinkpad_automic (codec); else if (spec->hp_laptop) cxt5066_hp_laptop_automic(codec); + else if (spec->asus) + cxt5066_asus_automic(codec); }/* unsolicited event for jack sensing */ @@ -3045,6 +3061,7 @@ enum {CXT5066_DELL_VOSTRO ,/* Dell Vostro 1015i */ CXT5066_IDEAPAD ,/* Lenovo IdeaPad U150 */ CXT5066_THINKPAD ,/* Lenovo ThinkPad T410s, others? */ +CXT5066_ASUS ,/* Asus K52JU, Lenovo G560 - Int mic at 0x1a and Ext mic at 0x1b */ CXT5066_HP_LAPTOP ,/* HP Laptop */ CXT5066_MODELS };@@ -3056,6 +3073,7 @@ static const char * const cxt5066_models[CXT5066_MODELS] = { [CXT5066_DELL_VOSTRO] = "dell-vostro", [CXT5066_IDEAPAD] = "ideapad", [CXT5066_THINKPAD] = "thinkpad", + [CXT5066_ASUS] = "asus", [CXT5066_HP_LAPTOP] = "hp-laptop", };@@ -3068,6 +3086,7 @@ static struct snd_pci_quirk cxt5066_cfg_tbl[] = {SND_PCI_QUIRK (0x1028 ,0x0408 ,"Dell Inspiron One 19T" ,CXT5066_IDEAPAD ),SND_PCI_QUIRK (0x103c ,0x360b ,"HP G60" ,CXT5066_HP_LAPTOP ),SND_PCI_QUIRK (0x1043 ,0x13f3 ,"Asus A52J" ,CXT5066_HP_LAPTOP ), +SND_PCI_QUIRK (0x1043 ,0x1643 ,"Asus K52JU" ,CXT5066_ASUS ),SND_PCI_QUIRK (0x1179 ,0xff1e ,"Toshiba Satellite C650D" ,CXT5066_IDEAPAD ),SND_PCI_QUIRK (0x1179 ,0xff50 ,"Toshiba Satellite P500-PSPGSC-01800T" ,CXT5066_OLPC_XO_1_5 ), SND_PCI_QUIRK(0x1179, 0xffe0, "Toshiba Satellite Pro T130-15F", CXT5066_OLPC_XO_1_5),@@ -3077,6 +3096,7 @@ static struct snd_pci_quirk cxt5066_cfg_tbl[] = {SND_PCI_QUIRK (0x17aa ,0x20f2 ,"Lenovo T400s" ,CXT5066_THINKPAD ),SND_PCI_QUIRK (0x17aa ,0x21c5 ,"Thinkpad Edge 13" ,CXT5066_THINKPAD ),SND_PCI_QUIRK (0x17aa ,0x215e ,"Lenovo Thinkpad" ,CXT5066_THINKPAD ), +SND_PCI_QUIRK (0x17aa ,0x38af ,"Lenovo G560" ,CXT5066_ASUS ), SND_PCI_QUIRK_VENDOR(0x17aa, "Lenovo", CXT5066_IDEAPAD), /* Fallback for Lenovos without dock mic */ {} };@@ -3132,13 +3152,15 @@ static int patch_cxt5066(struct hda_codec *codec) spec->num_init_verbs++; spec->dell_automute =1 ;break ; +case CXT5066_ASUS :case CXT5066_HP_LAPTOP : codec->patch_ops.init = cxt5066_init; codec->patch_ops.unsol_event = cxt5066_unsol_event; spec->init_verbs[spec->num_init_verbs] = cxt5066_init_verbs_hp_laptop; spec->num_init_verbs++; - spec->hp_laptop =1 ; + spec->hp_laptop = board_config ==CXT5066_HP_LAPTOP ; + spec->asus = board_config ==CXT5066_ASUS ; spec->mixers[spec->num_mixers++] = cxt5066_mixer_master; spec->mixers[spec->num_mixers++] = cxt5066_mixers;/* no S/PDIF out */ Signature · 1 line
1.7.1
Quoted 5 lines · Takashi Iwai
At Fri, 21 Jan 2011 13:46:00 +0100,
Quoted 3 lines · David Henningsson
Quoted 8 lines
Quoted 5 lines
This new model, named "asus", is identical to the "
hp_laptop" model, except for the location of the internal mic, which is at pin0x1a. It is used for Asus K52JU and Lenovo G560.Signed-off-by David Henningsson<[email protected]>Applied, but to topic/asoc branch, as these involve rewrites. Thanks.
You mean the topic/hda branch, right? Does this mean it'll not be in 2.6.38, and will it be if I provide a backport for the second patch?
Signature · 2 lines
David Henningsson, Canonical Ltd. http://launchpad.net/~diwic
At Mon, 24 Jan 2011 13:12:39 +0100,
Quoted 11 lines · David Henningsson
Quoted 9 lines · Takashi Iwai
At Fri, 21 Jan 2011 13:46:00 +0100,
Quoted 7 lines · David Henningsson
This new model, named "asus", is identical to the "
hp_laptop" model, except for the location of the internal mic, which is at pin0x1a. It is used for Asus K52JU and Lenovo G560.
Quoted 6 lines
Quoted 4 lines
Quoted 1 line
Signed-off-by David Henningsson<[email protected]>Applied, but to topic/asoc branch, as these involve rewrites. Thanks.
You mean the topic/hda branch, right?
Argh, yes, of course...
Quoted 2 lines
Does this mean it'll not be in 2.6.38, and will it be if I provide a backport for the second patch?
Right.
Takashi
Quoted 18 lines · Takashi Iwai
At Mon, 24 Jan 2011 13:12:39 +0100,
Quoted 16 lines · David Henningsson
Quoted 13 lines · Takashi Iwai
At Fri, 21 Jan 2011 13:46:00 +0100,
Quoted 8 lines · David Henningsson
This new model, named "asus", is identical to the "
hp_laptop" model, except for the location of the internal mic, which is at pin0x1a. It is used for Asus K52JU and Lenovo G560.Signed-off-by David Henningsson<[email protected]>Applied, but to topic/asoc branch, as these involve rewrites. Thanks.
Quoted 8 lines
Quoted 1 line
You mean the topic/hda branch, right?
Argh, yes, of course...
Quoted 2 lines
Does this mean it'll not be in 2.6.38, and will it be if I provide a backport for the second patch?
Right.
Ok, here's a backport, although untested since I don't have the hardware here. Andy, would it be possible for you to test it for me?
Signature · 2 lines
David Henningsson, Canonical Ltd. http://launchpad.net/~diwic
Quoted 1 line
From
f36aad0b7f3541bfebc248a7c568b3be8481e050Mon Sep 17 00:00:00 2001
From: David Henningsson <[email protected]>
Date: Wed, 26 Jan 2011 14:27:18 +0100
Subject: [PATCH] ALSA: HDA: Add a new model "asus" for Conexant 5066/205xx
Backport of commit a1d6906e2d2b4655e248f490ab088c27876a600a (currently in linux/kernel/git/tiwai/sound-2.6.git tree), meant for kernel 2.6.38.
This new model, named "asus", is identical to the "hp_laptop" model, except for the location of the internal mic, which is at pin 0x1a. It is used for Asus K52JU and Lenovo G560.
--- Documentation/sound/alsa/HD-Audio-Models.txt | 1 + sound/pci/hda/patch_conexant.c | 41 ++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-)
Documentation/sound/alsa/HD-Audio-Models.txt +1 -0
@@ -296,6 +296,7 @@ Conexant 5066 ============= laptop Basic Laptop config (default) hp-laptop HP laptops, e g G60 + asus Asus K52JU, Lenovo G560 dell-laptop Dell laptops dell-vostro Dell Vostro olpc-xo-1_5 OLPC XO 1.5
sound/pci/hda/patch_conexant.c +39 -2
100 lines not on this page · raw message
Signature · 1 line
1.7.1
_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Certainly, I should be able test it sometime later today. I'll let you know the results.
I'm wondering how common this configuration is on Asus systems - that is, if the asus model should be the rule for Asus rather than the exception for a few specific ones. When I have some free time, maybe I'll delve into the alsa-info database to see what's been reported there. I suppose it could also be handled generically by checking to see if mics are on nodes 0x1a, 0x1b, 0x1c, 0x1d, and/or 0x23, and automatically selecting the correct automic logic based on that.
Quoted 37 lines · David Henningsson
Quoted 20 lines · Takashi Iwai
At Mon, 24 Jan 2011 13:12:39 +0100,
Quoted 17 lines · David Henningsson
Quoted 14 lines · Takashi Iwai
At Fri, 21 Jan 2011 13:46:00 +0100,
Quoted 8 lines · David Henningsson
This new model, named "asus", is identical to the "
hp_laptop" model, except for the location of the internal mic, which is at pin0x1a. It is used for Asus K52JU and Lenovo G560.Signed-off-by David Henningsson<[email protected]>Applied, but to topic/asoc branch, as these involve rewrites. Thanks.
Quoted 8 lines
Quoted 1 line
You mean the topic/hda branch, right?
Argh, yes, of course...
Quoted 2 lines
Does this mean it'll not be in 2.6.38, and will it be if I provide a backport for the second patch?
Right.
Ok, here's a backport, although untested since I don't have the hardware here. Andy, would it be possible for you to test it for me?
--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic
Tested the backport on an Asus U50F... works fine!
Quoted 51 lines · Andy Robinson
Certainly, I should be able test it sometime later today. I'll let you know the results.
I'm wondering how common this configuration is on Asus systems - that is, if the asus model should be the rule for Asus rather than the exception for a few specific ones. When I have some free time, maybe I'll delve into the alsa-info database to see what's been reported there. I suppose it could also be handled generically by checking to see if mics are on nodes
0x1a,0x1b,0x1c,0x1d, and/or0x23, and automatically selecting the correct automic logic based on that.Quoted 37 lines · David Henningsson
Quoted 20 lines · Takashi Iwai
At Mon, 24 Jan 2011 13:12:39 +0100,
Quoted 17 lines · David Henningsson
Quoted 14 lines · Takashi Iwai
At Fri, 21 Jan 2011 13:46:00 +0100,
Quoted 8 lines · David Henningsson
This new model, named "asus", is identical to the "
hp_laptop" model, except for the location of the internal mic, which is at pin0x1a. It is used for Asus K52JU and Lenovo G560.Signed-off-by David Henningsson<[email protected]>Applied, but to topic/asoc branch, as these involve rewrites. Thanks.
Quoted 8 lines
Quoted 1 line
You mean the topic/hda branch, right?
Argh, yes, of course...
Quoted 2 lines
Does this mean it'll not be in 2.6.38, and will it be if I provide a backport for the second patch?
Right.
Ok, here's a backport, although untested since I don't have the hardware here. Andy, would it be possible for you to test it for me?
--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic