Merge branch 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6
[powerpc.git] / drivers / usb / gadget / dummy_hcd.c
index f1f32d7..fcb5526 100644 (file)
@@ -40,9 +40,7 @@
 #include <linux/kernel.h>
 #include <linux/delay.h>
 #include <linux/ioport.h>
-#include <linux/sched.h>
 #include <linux/slab.h>
-#include <linux/smp_lock.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/timer.h>
@@ -779,7 +777,7 @@ usb_gadget_register_driver (struct usb_gadget_driver *driver)
                return -EINVAL;
        if (dum->driver)
                return -EBUSY;
-       if (!driver->bind || !driver->unbind || !driver->setup
+       if (!driver->bind || !driver->setup
                        || driver->speed == USB_SPEED_UNKNOWN)
                return -EINVAL;
 
@@ -837,7 +835,8 @@ usb_gadget_register_driver (struct usb_gadget_driver *driver)
 err_bind_driver:
        driver_unregister (&driver->driver);
 err_register:
-       driver->unbind (&dum->gadget);
+       if (driver->unbind)
+               driver->unbind (&dum->gadget);
        spin_lock_irq (&dum->lock);
        dum->pullup = 0;
        set_link_state (dum);
@@ -857,7 +856,7 @@ usb_gadget_unregister_driver (struct usb_gadget_driver *driver)
 
        if (!dum)
                return -ENODEV;
-       if (!driver || driver != dum->driver)
+       if (!driver || driver != dum->driver || !driver->unbind)
                return -EINVAL;
 
        dev_dbg (udc_dev(dum), "unregister gadget driver '%s'\n",