]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/w1/w1_family.c
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
[linux-2.6-omap-h63xx.git] / drivers / w1 / w1_family.c
index 3941fb05b8e1631984a0f96ea0093e785c790e61..9e293e139a0e8e05737ebf4d555116aef745c684 100644 (file)
 
 #include <linux/spinlock.h>
 #include <linux/list.h>
+#include <linux/sched.h>       /* schedule_timeout() */
 #include <linux/delay.h>
 
 #include "w1_family.h"
 
 DEFINE_SPINLOCK(w1_flock);
 static LIST_HEAD(w1_families);
-
-static int w1_check_family(struct w1_family *f)
-{
-       if (!f->fops->rname || !f->fops->rbin || !f->fops->rval || !f->fops->rvalname)
-               return -EINVAL;
-
-       return 0;
-}
+extern void w1_reconnect_slaves(struct w1_family *f);
 
 int w1_register_family(struct w1_family *newf)
 {
@@ -42,9 +36,6 @@ int w1_register_family(struct w1_family *newf)
        struct w1_family *f;
        int ret = 0;
 
-       if (w1_check_family(newf))
-               return -EINVAL;
-
        spin_lock(&w1_flock);
        list_for_each_safe(ent, n, &w1_families) {
                f = list_entry(ent, struct w1_family, family_entry);
@@ -60,9 +51,10 @@ int w1_register_family(struct w1_family *newf)
                newf->need_exit = 0;
                list_add_tail(&newf->family_entry, &w1_families);
        }
-
        spin_unlock(&w1_flock);
 
+       w1_reconnect_slaves(newf);
+
        return ret;
 }