Lines Matching refs:drv

110  * @drv: Driver we're iterating.
115 * Iterate over the @drv's list of devices calling @fn for each one.
117 int driver_for_each_device(struct device_driver *drv, struct device *start,
124 if (!drv)
127 klist_iter_init_node(&drv->p->klist_devices, &i,
138 * @drv: The device's driver
151 struct device *driver_find_device(struct device_driver *drv,
158 if (!drv || !drv->p)
161 klist_iter_init_node(&drv->p->klist_devices, &i,
173 * @drv: driver.
176 int driver_create_file(struct device_driver *drv,
181 if (drv)
182 error = sysfs_create_file(&drv->p->kobj, &attr->attr);
191 * @drv: driver.
194 void driver_remove_file(struct device_driver *drv,
197 if (drv)
198 sysfs_remove_file(&drv->p->kobj, &attr->attr);
202 int driver_add_groups(struct device_driver *drv,
205 return sysfs_create_groups(&drv->p->kobj, groups);
208 void driver_remove_groups(struct device_driver *drv,
211 sysfs_remove_groups(&drv->p->kobj, groups);
216 * @drv: driver to register
222 int driver_register(struct device_driver *drv)
227 if (!bus_is_registered(drv->bus)) {
229 drv->name, drv->bus->name);
233 if ((drv->bus->probe && drv->probe) ||
234 (drv->bus->remove && drv->remove) ||
235 (drv->bus->shutdown && drv->shutdown))
237 "bus_type methods\n", drv->name);
239 other = driver_find(drv->name, drv->bus);
242 "aborting...\n", drv->name);
246 ret = bus_add_driver(drv);
249 ret = driver_add_groups(drv, drv->groups);
251 bus_remove_driver(drv);
254 kobject_uevent(&drv->p->kobj, KOBJ_ADD);
263 * @drv: driver.
267 void driver_unregister(struct device_driver *drv)
269 if (!drv || !drv->p) {
273 driver_remove_groups(drv, drv->groups);
274 bus_remove_driver(drv);