Lines Matching refs:sr
282 struct wf_sensor *sr = container_of(kref, struct wf_sensor, ref); in wf_sensor_release() local
284 DBG("wf: Deleting sensor %s\n", sr->name); in wf_sensor_release()
286 if (sr->ops && sr->ops->release) in wf_sensor_release()
287 sr->ops->release(sr); in wf_sensor_release()
289 kfree(sr); in wf_sensor_release()
307 struct wf_sensor *sr; in wf_register_sensor() local
310 list_for_each_entry(sr, &wf_sensors, link) { in wf_register_sensor()
311 if (!strcmp(sr->name, new_sr->name)) { in wf_register_sensor()
313 " duplicate sensor %s\n", sr->name); in wf_register_sensor()
340 void wf_unregister_sensor(struct wf_sensor *sr) in wf_unregister_sensor() argument
343 list_del(&sr->link); in wf_unregister_sensor()
346 DBG("wf: Unregistered sensor %s\n", sr->name); in wf_unregister_sensor()
348 wf_put_sensor(sr); in wf_unregister_sensor()
352 int wf_get_sensor(struct wf_sensor *sr) in wf_get_sensor() argument
354 if (!try_module_get(sr->ops->owner)) in wf_get_sensor()
356 kref_get(&sr->ref); in wf_get_sensor()
361 void wf_put_sensor(struct wf_sensor *sr) in wf_put_sensor() argument
363 struct module *mod = sr->ops->owner; in wf_put_sensor()
364 kref_put(&sr->ref, wf_sensor_release); in wf_put_sensor()
378 struct wf_sensor *sr; in wf_register_client() local
387 list_for_each_entry(sr, &wf_sensors, link) in wf_register_client()
388 wf_notify(WF_EVENT_NEW_SENSOR, sr); in wf_register_client()