Browse Source

ALSA: hda - Fix no NID error with VIA codecs

The via driver spews warnigs like
	hda-codec: no NID for mapping control Independent HP:0:0
with some codecs because snd_hda_add_nid() is called with nid=0.
This patch fixes it by skipping the call when no corresponding widget
is found.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 14 years ago
parent
commit
ad2409413d
1 changed files with 7 additions and 4 deletions
  1. 7 4
      sound/pci/hda/patch_via.c

+ 7 - 4
sound/pci/hda/patch_via.c

@@ -832,10 +832,13 @@ static int via_hp_build(struct hda_codec *codec)
 	knew->subdevice = HDA_SUBDEV_NID_FLAG | nid;
 	knew->private_value = nid;
 
-	knew = via_clone_control(spec, &via_hp_mixer[1]);
-	if (knew == NULL)
-		return -ENOMEM;
-	knew->subdevice = side_mute_channel(spec);
+	nid = side_mute_channel(spec);
+	if (nid) {
+		knew = via_clone_control(spec, &via_hp_mixer[1]);
+		if (knew == NULL)
+			return -ENOMEM;
+		knew->subdevice = nid;
+	}
 
 	return 0;
 }