[alsa-devel] hda-codec conexant - no external mic on FSC V5505 (with patch)

Marek Lotke lollul at wp.pl
Thu Jul 10 21:56:49 CEST 2008


On Thursday 10 July 2008, Takashi Iwai wrote:
> At Wed, 9 Jul 2008 18:22:40 +0200,
>
> Marek Lotke wrote:
> > Hi,
> > I've tried all conextant models for my new laptop... External mic would
> > work only with benq but then the external headphones don't work.
> >
> > I managed to get the external mic working with this little patch:
> > --- a/sound/pci/hda/patch_conexant.c
> > +++ b/sound/pci/hda/patch_conexant.c
> > @@ -686,7 +686,7 @@ static struct snd_kcontrol_new cxt5045_mixers_hp530[]
> > = {
> >
> >  static struct hda_verb cxt5045_init_verbs[] = {
> >         /* Line in, Mic */
> > -       {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN },
> > +       {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_80
> > }, {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_80 }, /*
> > HP, Amp  */
> >         {0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
> >
> > Now I can switch between the mics with mixer. Still no mic auto sensing
> > though but maybe there is none in hardware.
> > Attached are the outputs of alsa-info.sh: default, with model benq and
> > with default model with my patch with mixer set to external.
> >
> > I'll be glad to provide any info or try any patch...
>
> How about the patch below?  Your device is already listed in the
> config, so basically it has to work without specifying the model
> option.
>
>
> Takashi
>

Works nicely! Thanks!

Marek
> ---
> diff --git a/sound/pci/hda/patch_conexant.c
> b/sound/pci/hda/patch_conexant.c index 95e3367..7c1eb23 100644
> --- a/sound/pci/hda/patch_conexant.c
> +++ b/sound/pci/hda/patch_conexant.c
> @@ -686,7 +686,7 @@ static struct snd_kcontrol_new cxt5045_mixers_hp530[] =
> {
>
>  static struct hda_verb cxt5045_init_verbs[] = {
>  	/* Line in, Mic */
> -	{0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN },
> +	{0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_80 },
>  	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_80 },
>  	/* HP, Amp  */
>  	{0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
> @@ -910,7 +910,8 @@ static struct snd_pci_quirk cxt5045_cfg_tbl[] = {
>  	SND_PCI_QUIRK(0x152d, 0x0753, "Benq R55E", CXT5045_BENQ),
>  	SND_PCI_QUIRK(0x1734, 0x10ad, "Fujitsu Si1520", CXT5045_LAPTOP_MICSENSE),
>  	SND_PCI_QUIRK(0x1734, 0x10cb, "Fujitsu Si3515",
> CXT5045_LAPTOP_HPMICSENSE), -	SND_PCI_QUIRK(0x1734, 0x110e, "Fujitsu
> V5505", CXT5045_LAPTOP_HPSENSE), +	SND_PCI_QUIRK(0x1734, 0x110e, "Fujitsu
> V5505",
> +		      CXT5045_LAPTOP_HPMICSENSE),
>  	SND_PCI_QUIRK(0x1509, 0x1e40, "FIC", CXT5045_LAPTOP_HPMICSENSE),
>  	SND_PCI_QUIRK(0x1509, 0x2f05, "FIC", CXT5045_LAPTOP_HPMICSENSE),
>  	SND_PCI_QUIRK(0x1509, 0x2f06, "FIC", CXT5045_LAPTOP_HPMICSENSE),
> @@ -962,6 +963,7 @@ static int patch_cxt5045(struct hda_codec *codec)
>  		codec->patch_ops.init = cxt5045_init;
>  		break;
>  	case CXT5045_LAPTOP_MICSENSE:
> +		codec->patch_ops.unsol_event = cxt5045_hp_unsol_event;
>  		spec->input_mux = &cxt5045_capture_source;
>  		spec->num_init_verbs = 2;
>  		spec->init_verbs[1] = cxt5045_mic_sense_init_verbs;
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel




More information about the Alsa-devel mailing list