• Home
  • Raw
  • Download

Lines Matching refs:drv

46 static int i2o_bus_match(struct device *dev, struct device_driver *drv)  in i2o_bus_match()  argument
49 struct i2o_driver *i2o_drv = to_i2o_driver(drv); in i2o_bus_match()
77 int i2o_driver_register(struct i2o_driver *drv) in i2o_driver_register() argument
84 osm_debug("Register driver %s\n", drv->name); in i2o_driver_register()
86 if (drv->event) { in i2o_driver_register()
87 drv->event_queue = alloc_workqueue("%s", WQ_MEM_RECLAIM, 1, in i2o_driver_register()
88 drv->name); in i2o_driver_register()
89 if (!drv->event_queue) { in i2o_driver_register()
91 "%s\n", drv->name); in i2o_driver_register()
94 osm_debug("Event queue initialized for driver %s\n", drv->name); in i2o_driver_register()
96 drv->event_queue = NULL; in i2o_driver_register()
98 drv->driver.name = drv->name; in i2o_driver_register()
99 drv->driver.bus = &i2o_bus_type; in i2o_driver_register()
112 drv->context = i; in i2o_driver_register()
113 i2o_drivers[i] = drv; in i2o_driver_register()
117 osm_debug("driver %s gets context id %d\n", drv->name, drv->context); in i2o_driver_register()
122 i2o_driver_notify_controller_add(drv, c); in i2o_driver_register()
124 i2o_driver_notify_device_add(drv, i2o_dev); in i2o_driver_register()
127 rc = driver_register(&drv->driver); in i2o_driver_register()
133 if (drv->event_queue) { in i2o_driver_register()
134 destroy_workqueue(drv->event_queue); in i2o_driver_register()
135 drv->event_queue = NULL; in i2o_driver_register()
148 void i2o_driver_unregister(struct i2o_driver *drv) in i2o_driver_unregister() argument
153 osm_debug("unregister driver %s\n", drv->name); in i2o_driver_unregister()
155 driver_unregister(&drv->driver); in i2o_driver_unregister()
161 i2o_driver_notify_device_remove(drv, i2o_dev); in i2o_driver_unregister()
163 i2o_driver_notify_controller_remove(drv, c); in i2o_driver_unregister()
167 i2o_drivers[drv->context] = NULL; in i2o_driver_unregister()
170 if (drv->event_queue) { in i2o_driver_unregister()
171 destroy_workqueue(drv->event_queue); in i2o_driver_unregister()
172 drv->event_queue = NULL; in i2o_driver_unregister()
173 osm_debug("event queue removed for %s\n", drv->name); in i2o_driver_unregister()
191 struct i2o_driver *drv; in i2o_driver_dispatch() local
203 drv = i2o_drivers[context]; in i2o_driver_dispatch()
206 if (unlikely(!drv)) { in i2o_driver_dispatch()
220 if (!drv->event) in i2o_driver_dispatch()
241 INIT_WORK(&evt->work, drv->event); in i2o_driver_dispatch()
242 queue_work(drv->event_queue, &evt->work); in i2o_driver_dispatch()
246 if (unlikely(!drv->reply)) { in i2o_driver_dispatch()
248 " defined!\n", c->name, drv->name); in i2o_driver_dispatch()
252 return drv->reply(c, m, msg); in i2o_driver_dispatch()
265 struct i2o_driver *drv; in i2o_driver_notify_controller_add_all() local
268 drv = i2o_drivers[i]; in i2o_driver_notify_controller_add_all()
270 if (drv) in i2o_driver_notify_controller_add_all()
271 i2o_driver_notify_controller_add(drv, c); in i2o_driver_notify_controller_add_all()
285 struct i2o_driver *drv; in i2o_driver_notify_controller_remove_all() local
288 drv = i2o_drivers[i]; in i2o_driver_notify_controller_remove_all()
290 if (drv) in i2o_driver_notify_controller_remove_all()
291 i2o_driver_notify_controller_remove(drv, c); in i2o_driver_notify_controller_remove_all()
304 struct i2o_driver *drv; in i2o_driver_notify_device_add_all() local
307 drv = i2o_drivers[i]; in i2o_driver_notify_device_add_all()
309 if (drv) in i2o_driver_notify_device_add_all()
310 i2o_driver_notify_device_add(drv, i2o_dev); in i2o_driver_notify_device_add_all()
323 struct i2o_driver *drv; in i2o_driver_notify_device_remove_all() local
326 drv = i2o_drivers[i]; in i2o_driver_notify_device_remove_all()
328 if (drv) in i2o_driver_notify_device_remove_all()
329 i2o_driver_notify_device_remove(drv, i2o_dev); in i2o_driver_notify_device_remove_all()