X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fpnp%2Fdriver.c;fp=drivers%2Fpnp%2Fdriver.c;h=7cafacdd12b0a4dae9fea941b3b8efc0076fea85;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=e161423b4300d7f76c6f2b5a207362e2e4688ed1;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/drivers/pnp/driver.c b/drivers/pnp/driver.c index e161423b4..7cafacdd1 100644 --- a/drivers/pnp/driver.c +++ b/drivers/pnp/driver.c @@ -5,6 +5,7 @@ * */ +#include #include #include #include @@ -200,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)