X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fdio%2Fdio-driver.c;fp=drivers%2Fdio%2Fdio-driver.c;h=ca8e69d2f64d632118c32e9c05c63a5ae660a71e;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=e4c48e329367d93617635e65a671ffb2816a47f7;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/drivers/dio/dio-driver.c b/drivers/dio/dio-driver.c index e4c48e329..ca8e69d2f 100644 --- a/drivers/dio/dio-driver.c +++ b/drivers/dio/dio-driver.c @@ -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; }