Lines Matching refs:drv

41 int driver_for_each_device(struct device_driver *drv, struct device *start,  in driver_for_each_device()  argument
48 if (!drv) in driver_for_each_device()
51 klist_iter_init_node(&drv->p->klist_devices, &i, in driver_for_each_device()
75 struct device *driver_find_device(struct device_driver *drv, in driver_find_device() argument
82 if (!drv || !drv->p) in driver_find_device()
85 klist_iter_init_node(&drv->p->klist_devices, &i, in driver_find_device()
100 int driver_create_file(struct device_driver *drv, in driver_create_file() argument
105 if (drv) in driver_create_file()
106 error = sysfs_create_file(&drv->p->kobj, &attr->attr); in driver_create_file()
118 void driver_remove_file(struct device_driver *drv, in driver_remove_file() argument
121 if (drv) in driver_remove_file()
122 sysfs_remove_file(&drv->p->kobj, &attr->attr); in driver_remove_file()
126 int driver_add_groups(struct device_driver *drv, in driver_add_groups() argument
129 return sysfs_create_groups(&drv->p->kobj, groups); in driver_add_groups()
132 void driver_remove_groups(struct device_driver *drv, in driver_remove_groups() argument
135 sysfs_remove_groups(&drv->p->kobj, groups); in driver_remove_groups()
146 int driver_register(struct device_driver *drv) in driver_register() argument
151 if (!drv->bus->p) { in driver_register()
153 drv->name, drv->bus->name); in driver_register()
157 if ((drv->bus->probe && drv->probe) || in driver_register()
158 (drv->bus->remove && drv->remove) || in driver_register()
159 (drv->bus->shutdown && drv->shutdown)) in driver_register()
161 "bus_type methods\n", drv->name); in driver_register()
163 other = driver_find(drv->name, drv->bus); in driver_register()
166 "aborting...\n", drv->name); in driver_register()
170 ret = bus_add_driver(drv); in driver_register()
173 ret = driver_add_groups(drv, drv->groups); in driver_register()
175 bus_remove_driver(drv); in driver_register()
178 kobject_uevent(&drv->p->kobj, KOBJ_ADD); in driver_register()
190 void driver_unregister(struct device_driver *drv) in driver_unregister() argument
192 if (!drv || !drv->p) { in driver_unregister()
196 driver_remove_groups(drv, drv->groups); in driver_unregister()
197 bus_remove_driver(drv); in driver_unregister()