Lines Matching defs:drv
104 * @drv: Driver we're iterating.
109 * Iterate over the @drv's list of devices calling @fn for each one.
111 int driver_for_each_device(struct device_driver *drv, struct device *start,
118 if (!drv)
121 klist_iter_init_node(&drv->p->klist_devices, &i,
132 * @drv: The device's driver
145 struct device *driver_find_device(struct device_driver *drv,
152 if (!drv || !drv->p)
155 klist_iter_init_node(&drv->p->klist_devices, &i,
167 * @drv: driver.
170 int driver_create_file(struct device_driver *drv,
175 if (drv)
176 error = sysfs_create_file(&drv->p->kobj, &attr->attr);
185 * @drv: driver.
188 void driver_remove_file(struct device_driver *drv,
191 if (drv)
192 sysfs_remove_file(&drv->p->kobj, &attr->attr);
196 int driver_add_groups(struct device_driver *drv,
199 return sysfs_create_groups(&drv->p->kobj, groups);
202 void driver_remove_groups(struct device_driver *drv,
205 sysfs_remove_groups(&drv->p->kobj, groups);
210 * @drv: driver to register
216 int driver_register(struct device_driver *drv)
221 if (!drv->bus->p) {
223 drv->name, drv->bus->name);
227 if ((drv->bus->probe && drv->probe) ||
228 (drv->bus->remove && drv->remove) ||
229 (drv->bus->shutdown && drv->shutdown))
231 "bus_type methods\n", drv->name);
233 other = driver_find(drv->name, drv->bus);
236 "aborting...\n", drv->name);
240 ret = bus_add_driver(drv);
243 ret = driver_add_groups(drv, drv->groups);
245 bus_remove_driver(drv);
248 kobject_uevent(&drv->p->kobj, KOBJ_ADD);
256 * @drv: driver.
260 void driver_unregister(struct device_driver *drv)
262 if (!drv || !drv->p) {
266 driver_remove_groups(drv, drv->groups);
267 bus_remove_driver(drv);