Lines Matching refs:sr

301 	struct wf_sensor *sr = container_of(kref, struct wf_sensor, ref);  in wf_sensor_release()  local
303 DBG("wf: Deleting sensor %s\n", sr->name); in wf_sensor_release()
305 if (sr->ops && sr->ops->release) in wf_sensor_release()
306 sr->ops->release(sr); in wf_sensor_release()
308 kfree(sr); in wf_sensor_release()
326 struct wf_sensor *sr; in wf_register_sensor() local
329 list_for_each_entry(sr, &wf_sensors, link) { in wf_register_sensor()
330 if (!strcmp(sr->name, new_sr->name)) { in wf_register_sensor()
332 " duplicate sensor %s\n", sr->name); in wf_register_sensor()
359 void wf_unregister_sensor(struct wf_sensor *sr) in wf_unregister_sensor() argument
362 list_del(&sr->link); in wf_unregister_sensor()
365 DBG("wf: Unregistered sensor %s\n", sr->name); in wf_unregister_sensor()
367 wf_put_sensor(sr); in wf_unregister_sensor()
373 struct wf_sensor *sr; in wf_find_sensor() local
376 list_for_each_entry(sr, &wf_sensors, link) { in wf_find_sensor()
377 if (!strcmp(sr->name, name)) { in wf_find_sensor()
378 if (wf_get_sensor(sr)) in wf_find_sensor()
379 sr = NULL; in wf_find_sensor()
381 return sr; in wf_find_sensor()
389 int wf_get_sensor(struct wf_sensor *sr) in wf_get_sensor() argument
391 if (!try_module_get(sr->ops->owner)) in wf_get_sensor()
393 kref_get(&sr->ref); in wf_get_sensor()
398 void wf_put_sensor(struct wf_sensor *sr) in wf_put_sensor() argument
400 struct module *mod = sr->ops->owner; in wf_put_sensor()
401 kref_put(&sr->ref, wf_sensor_release); in wf_put_sensor()
415 struct wf_sensor *sr; in wf_register_client() local
424 list_for_each_entry(sr, &wf_sensors, link) in wf_register_client()
425 wf_notify(WF_EVENT_NEW_SENSOR, sr); in wf_register_client()