linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / dio / dio-driver.c
index e4c48e3..ca8e69d 100644 (file)
@@ -71,17 +71,22 @@ static int dio_device_probe(struct device *dev)
         *  @drv: the driver structure to register
         *
         *  Adds the driver structure to the list of registered drivers
-        *  Returns zero or a negative error value.
+        *  Returns the number of DIO devices which were claimed by the driver
+        *  during registration.  The driver remains registered even if the
+        *  return value is zero.
         */
 
 int dio_register_driver(struct dio_driver *drv)
 {
+       int count = 0;
+
        /* initialize common driver fields */
        drv->driver.name = drv->name;
        drv->driver.bus = &dio_bus_type;
 
        /* register with core */
-       return driver_register(&drv->driver);
+       count = driver_register(&drv->driver);
+       return count ? count : 1;
 }