Lines Matching refs:sr
281 struct wf_sensor *sr = container_of(kref, struct wf_sensor, ref); in wf_sensor_release() local
283 DBG("wf: Deleting sensor %s\n", sr->name); in wf_sensor_release()
285 if (sr->ops && sr->ops->release) in wf_sensor_release()
286 sr->ops->release(sr); in wf_sensor_release()
288 kfree(sr); in wf_sensor_release()
306 struct wf_sensor *sr; in wf_register_sensor() local
309 list_for_each_entry(sr, &wf_sensors, link) { in wf_register_sensor()
310 if (!strcmp(sr->name, new_sr->name)) { in wf_register_sensor()
312 " duplicate sensor %s\n", sr->name); in wf_register_sensor()
339 void wf_unregister_sensor(struct wf_sensor *sr) in wf_unregister_sensor() argument
342 list_del(&sr->link); in wf_unregister_sensor()
345 DBG("wf: Unregistered sensor %s\n", sr->name); in wf_unregister_sensor()
347 wf_put_sensor(sr); in wf_unregister_sensor()
351 int wf_get_sensor(struct wf_sensor *sr) in wf_get_sensor() argument
353 if (!try_module_get(sr->ops->owner)) in wf_get_sensor()
355 kref_get(&sr->ref); in wf_get_sensor()
360 void wf_put_sensor(struct wf_sensor *sr) in wf_put_sensor() argument
362 struct module *mod = sr->ops->owner; in wf_put_sensor()
363 kref_put(&sr->ref, wf_sensor_release); in wf_put_sensor()
377 struct wf_sensor *sr; in wf_register_client() local
386 list_for_each_entry(sr, &wf_sensors, link) in wf_register_client()
387 wf_notify(WF_EVENT_NEW_SENSOR, sr); in wf_register_client()