* @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 Zorro devices which were claimed by the driver
+ * during registration. The driver remains registered even if the
+ * return value is zero.
*/
int zorro_register_driver(struct zorro_driver *drv)
{
+ int count = 0;
+
/* initialize common driver fields */
drv->driver.name = drv->name;
drv->driver.bus = &zorro_bus_type;
/* register with core */
- return driver_register(&drv->driver);
+ count = driver_register(&drv->driver);
+ return count ? count : 1;
}