[alsa-devel] [RFC]Connection list of hda widget

Takashi Iwai tiwai at suse.de
Fri Feb 8 10:22:53 CET 2013


At Fri, 8 Feb 2013 16:37:51 +0800,
Raymond Yau wrote:
> 
> > >
> > > > > >
> > > > > > Treat vendor defined widget different from audio selector/audio
> input
> > > > > > widget since hda_proc.c query the connection list of vendor
> defined
> > > widget
> > > > > >
> > > > > > ADI codecs  have vendor defined widgets ( BIAS Power-Down and VREF
> > > > > > Power-Down) which have connection list
> > > > > >
> > > > > > static void print_conn_list(struct snd_info_buffer *buffer,
> > > > > >      struct hda_codec *codec, hda_nid_t nid,
> > > > > >      unsigned int wid_type, hda_nid_t *conn,
> > > > > >      int conn_len)
> > > > > > {
> > > > > > int c, curr = -1;
> > > > > >
> > > > > > if (conn_len > 1 &&
> > > > > >      wid_type != AC_WID_AUD_MIX &&
> > > > > >      wid_type != AC_WID_VOL_KNB &&
> > > > > > +     wide_type != AC_WID_VENDOR &&
> > > > > >      wid_type != AC_WID_POWER)
> > > > > > curr = snd_hda_codec_read(codec, nid, 0,
> > > > > >    AC_VERB_GET_CONNECT_SEL, 0);
> > > > > > snd_iprintf(buffer, "  Connection: %d\n", conn_len);
> > > > > >
> 
> >
> > > Node 0x2f [Vendor Defined Widget] wcaps 0xf00100: Mono
> > >     Connection: 6
> > > 0x11* 0x12 0x14 0x15 0x16 0x17
> > >
> > > My proposed patch just remove "*" from the connection list since there
> is
> > > no way to know the vendor defined widget support the verb
> GET_CONNECT_SELECT
> >
> > You should have written _this_ text at the first place!
> > The biggest problem is that your description doesn't match with what
> > you write in your patch.
> >
> > But still, it's still an open question.  In the specification, the use
> > of selector isn't prohibited for vendor-spec widgets.  So, some crazy
> > h/w designer may think of it.
> >
> 
> Yes, it depend on how you interept "Other"
> 
> 7.3.3.2 Connection Select Control
> Applies to:
> Input Converter
> Selector Widget
> Pin Complex
> Other

Heh, and obviously h/w manufacturers thought vendor-spec widget
belongs to "Other".

> I think your patch is not necessary, what is missing are the codec
> responses when error occur on ad1882
> 
> -static const char * const ad1882_models[AD1986A_MODELS] = {
> +static const char * const ad1882_models[AD19882_MODELS] = {
>          [AD1882_AUTO]           = "auto",
>          [AD1882_3STACK]         = "3stack",
>          [AD1882_6STACK]         = "6stack",
>          [AD1882_3STACK_AUTOMUTE] = "3stack-automute",
> };

More context please.  Which response is missing?


Takashi


More information about the Alsa-devel mailing list