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 &&
wid_type != AC_WID_POWER)wide_type != AC_WID_VENDOR &&
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
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", };