From: Takashi Iwai Date: Mon, 27 Jul 2009 10:56:26 +0000 (+0200) Subject: ALSA: hda - Add exception for volume-knob in snd_hda_get_connections() X-Git-Tag: v2.6.32-rc3~9^2^2~76 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1ba7a7c650bd8ee567e25d9b68e9081d131c70f6;p=platform%2Fkernel%2Flinux-3.10.git ALSA: hda - Add exception for volume-knob in snd_hda_get_connections() Volume-knob widgets may have connections even if they have no CONN_LIST cap bit. Allow the query exceptionally in snd_hda_get_connections(). Signed-off-by: Takashi Iwai --- diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index b8c656c..3a603cd 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -301,12 +301,15 @@ int snd_hda_get_connections(struct hda_codec *codec, hda_nid_t nid, unsigned int parm; int i, conn_len, conns; unsigned int shift, num_elems, mask; + unsigned int wcaps; hda_nid_t prev_nid; if (snd_BUG_ON(!conn_list || max_conns <= 0)) return -EINVAL; - if ((get_wcaps(codec, nid) & AC_WCAP_CONN_LIST) == 0) { + wcaps = get_wcaps(codec, nid); + if (!(wcaps & AC_WCAP_CONN_LIST) && + get_wcaps_type(wcaps) != AC_WID_VOL_KNB) { snd_printk(KERN_WARNING "hda_codec: " "connection list not available for 0x%x\n", nid); return -EINVAL;