X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fpnp%2Fdriver.c;h=7cafacdd12b0a4dae9fea941b3b8efc0076fea85;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=e54c153831937f8985a28ded2ccd71a4f55458e5;hpb=f7ed79d23a47594e7834d66a8f14449796d4f3e6;p=linux-2.6.git diff --git a/drivers/pnp/driver.c b/drivers/pnp/driver.c index e54c15383..7cafacdd1 100644 --- a/drivers/pnp/driver.c +++ b/drivers/pnp/driver.c @@ -201,14 +201,31 @@ struct bus_type pnp_bus_type = { .resume = pnp_bus_resume, }; + +static int count_devices(struct device * dev, void * c) +{ + int * count = c; + (*count)++; + return 0; +} + int pnp_register_driver(struct pnp_driver *drv) { + int count; + pnp_dbg("the driver '%s' has been registered", drv->name); drv->driver.name = drv->name; drv->driver.bus = &pnp_bus_type; - return driver_register(&drv->driver); + count = driver_register(&drv->driver); + + /* get the number of initial matches */ + if (count >= 0){ + count = 0; + driver_for_each_device(&drv->driver, NULL, &count, count_devices); + } + return count; } void pnp_unregister_driver(struct pnp_driver *drv)