Browse Source

Merge branch 'fix/hda' into topic/hda

Takashi Iwai 16 years ago
parent
commit
d2f57cd54a
1 changed files with 8 additions and 7 deletions
  1. 8 7
      sound/pci/hda/hda_hwdep.c

+ 8 - 7
sound/pci/hda/hda_hwdep.c

@@ -277,18 +277,19 @@ static ssize_t init_verbs_store(struct device *dev,
 {
 {
 	struct snd_hwdep *hwdep = dev_get_drvdata(dev);
 	struct snd_hwdep *hwdep = dev_get_drvdata(dev);
 	struct hda_codec *codec = hwdep->private_data;
 	struct hda_codec *codec = hwdep->private_data;
-	char *p;
-	struct hda_verb verb, *v;
+	struct hda_verb *v;
+	int nid, verb, param;
 
 
-	verb.nid = simple_strtoul(buf, &p, 0);
-	verb.verb = simple_strtoul(p, &p, 0);
-	verb.param = simple_strtoul(p, &p, 0);
-	if (!verb.nid || !verb.verb || !verb.param)
+	if (sscanf(buf, "%i %i %i", &nid, &verb, &param) != 3)
+		return -EINVAL;
+	if (!nid || !verb)
 		return -EINVAL;
 		return -EINVAL;
 	v = snd_array_new(&codec->init_verbs);
 	v = snd_array_new(&codec->init_verbs);
 	if (!v)
 	if (!v)
 		return -ENOMEM;
 		return -ENOMEM;
-	*v = verb;
+	v->nid = nid;
+	v->verb = verb;
+	v->param = param;
 	return count;
 	return count;
 }
 }