At Wed, 13 Feb 2013 11:16:15 +0800, Raymond Yau wrote:
[1 <text/plain; UTF-8 (7bit)>]
> > > > ADI codecs have vendor defined widgets ( BIAS Power-Down and
VREF
> > Power-Down) which have connection list
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".
http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commit;h=5fdaecd...
do you have the connection list in node 0x12 of ad1986a ?
If you prefer the patch to blacklist specific widgets similar to power widget
Refer to Table 13.Connection List of AD1882 dartasheet
23 A2209811 BC30AE24 NID 11 1 18 20 1 22 24 1 2E 30 1 3C 2F 00171514 NID 14 15 17
Refer to Table 13.Connection List of AD1988 dartasheet
23 25249811 2120BD38 Length 8 NID 11 1 18 24 25 38 1 3D 20 21 2F 15141211 00001716 Length 6 NID 11 12 14 15 16 17
Blacklist ADI codec's vendor defined widgets ( BIAS Power-Down and VREF Power-Down) which have connection list for not sending AC_VERB_GET_CONNECT_SEL
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 && ((codec->vendor_id >> 16) != 0x11d4))
&& 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);
Care to send a proper patch please?
thanks,
Takashi