At Wed, 15 Oct 2008 14:45:38 -0400, Matthew Ranostay wrote: > > Added support for jack detection reporting to userspace for > IDT/Sigmatel codecs. > > Signed-off-by: Matthew Ranostay <mranostay@xxxxxxxxxxxxxxxxx> Thanks, applied to topic/hda-next branch. I postpone this to 2.6.29. Takashi > --- > > diff --git a/pci/Kconfig b/pci/Kconfig > index 7003711..7e40890 100644 > --- a/pci/Kconfig > +++ b/pci/Kconfig > @@ -501,6 +501,7 @@ config SND_HDA_INTEL > tristate "Intel HD Audio" > select SND_PCM > select SND_VMASTER > + select SND_JACK if INPUT=y || INPUT=SND > help > Say Y here to include support for Intel "High Definition > Audio" (Azalia) motherboard devices. > diff --git a/pci/hda/patch_sigmatel.c b/pci/hda/patch_sigmatel.c > index a2ac720..f6c0b1d 100644 > --- a/pci/hda/patch_sigmatel.c > +++ b/pci/hda/patch_sigmatel.c > @@ -30,6 +30,7 @@ > #include <linux/pci.h> > #include <sound/core.h> > #include <sound/asoundef.h> > +#include <sound/jack.h> > #include "hda_codec.h" > #include "hda_local.h" > #include "hda_patch.h" > @@ -216,6 +217,9 @@ struct sigmatel_spec { > > struct hda_pcm pcm_rec[2]; /* PCM information */ > > + /* jack detection */ > + struct snd_jack *jack; > + > /* dynamic controls and input_mux */ > struct auto_pin_cfg autocfg; > unsigned int num_kctl_alloc, num_kctl_used; > @@ -3617,7 +3621,7 @@ static int stac92xx_init(struct hda_codec *codec) > { > struct sigmatel_spec *spec = codec->spec; > struct auto_pin_cfg *cfg = &spec->autocfg; > - int i; > + int i, err; > > snd_hda_sequence_write(codec, spec->init); > > @@ -3639,6 +3643,12 @@ static int stac92xx_init(struct hda_codec *codec) > stac92xx_auto_set_pinctl(codec, spec->autocfg.line_out_pins[0], > AC_PINCTL_OUT_EN); > stac92xx_auto_init_hp_out(codec); > + /* jack detection */ > + err = snd_jack_new(codec->bus->card, > + "Headphone Jack", > + SND_JACK_HEADPHONE, &spec->jack); > + if (err < 0) > + return err; > /* fake event to set up pins */ > codec->patch_ops.unsol_event(codec, STAC_HP_EVENT << 26); > } else { > @@ -3796,6 +3806,8 @@ static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res) > break; > presence = get_hp_pin_presence(codec, cfg->hp_pins[i]); > } > + snd_jack_report(spec->jack, > + presence ? SND_JACK_HEADPHONE : 0); > > if (presence) { > /* disable lineouts, enable hp */ > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@xxxxxxxxxxxxxxxx > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel