From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [PATCH 2/2] ALSA: HDA: Add a new model "asus" for Conexant 5066/205xx Date: Sat, 22 Jan 2011 17:31:01 +0100 Message-ID: References: <4D398008.8080707@canonical.com> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by alsa0.perex.cz (Postfix) with ESMTP id 26397103800 for ; Sat, 22 Jan 2011 17:31:06 +0100 (CET) In-Reply-To: <4D398008.8080707@canonical.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: David Henningsson Cc: ALSA Development Mailing List List-Id: alsa-devel@alsa-project.org At Fri, 21 Jan 2011 13:46:00 +0100, David Henningsson wrote: > > BugLink: http://bugs.launchpad.net/bugs/701271 > > 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. > > Signed-off-by: David Henningsson Applied, but to topic/asoc branch, as these involve rewrites. Thanks. Takashi > -- > David Henningsson, Canonical Ltd. > http://launchpad.net/~diwic > [2 0002-ALSA-HDA-Add-a-new-model-asus-for-Conexant-5066-205x.patch ] > >From aa9c48a0b2264418728152ae2d1c697e2fd04fde Mon Sep 17 00:00:00 2001 > From: David Henningsson > Date: Fri, 21 Jan 2011 13:33:28 +0100 > Subject: [PATCH 2/2] ALSA: HDA: Add a new model "asus" for Conexant 5066/205xx > > BugLink: http://bugs.launchpad.net/bugs/701271 > > 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. > > Signed-off-by: David Henningsson > --- > Documentation/sound/alsa/HD-Audio-Models.txt | 1 + > sound/pci/hda/patch_conexant.c | 24 +++++++++++++++++++++++- > 2 files changed, 24 insertions(+), 1 deletions(-) > > diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt > index 16ae430..0caf77e 100644 > --- a/Documentation/sound/alsa/HD-Audio-Models.txt > +++ b/Documentation/sound/alsa/HD-Audio-Models.txt > @@ -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 > diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c > index 7cd59b9..19f0daf 100644 > --- a/sound/pci/hda/patch_conexant.c > +++ b/sound/pci/hda/patch_conexant.c > @@ -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 */ > -- > 1.7.1 >