Lines Matching refs:trig

31 trigger_relevant(struct led_classdev *led_cdev, struct led_trigger *trig)  in trigger_relevant()  argument
33 return !trig->trigger_type || trig->trigger_type == led_cdev->trigger_type; in trigger_relevant()
42 struct led_trigger *trig; in led_trigger_write() local
58 list_for_each_entry(trig, &trigger_list, next_trig) { in led_trigger_write()
59 if (sysfs_streq(buf, trig->name) && trigger_relevant(led_cdev, trig)) { in led_trigger_write()
61 led_trigger_set(led_cdev, trig); in led_trigger_write()
97 struct led_trigger *trig; in led_trigger_format() local
101 list_for_each_entry(trig, &trigger_list, next_trig) { in led_trigger_format()
104 if (!trigger_relevant(led_cdev, trig)) in led_trigger_format()
107 hit = led_cdev->trigger && !strcmp(led_cdev->trigger->name, trig->name); in led_trigger_format()
111 trig->name, hit ? "]" : ""); in led_trigger_format()
158 int led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig) in led_trigger_set() argument
165 if (!led_cdev->trigger && !trig) in led_trigger_set()
168 name = trig ? trig->name : "none"; in led_trigger_set()
191 if (trig) { in led_trigger_set()
192 spin_lock(&trig->leddev_list_lock); in led_trigger_set()
193 list_add_tail_rcu(&led_cdev->trig_list, &trig->led_cdevs); in led_trigger_set()
194 spin_unlock(&trig->leddev_list_lock); in led_trigger_set()
195 led_cdev->trigger = trig; in led_trigger_set()
197 if (trig->activate) in led_trigger_set()
198 ret = trig->activate(led_cdev); in led_trigger_set()
205 ret = device_add_groups(led_cdev->dev, trig->groups); in led_trigger_set()
225 if (trig->deactivate) in led_trigger_set()
226 trig->deactivate(led_cdev); in led_trigger_set()
252 struct led_trigger *trig; in led_trigger_set_default() local
259 list_for_each_entry(trig, &trigger_list, next_trig) { in led_trigger_set_default()
260 if (!strcmp(led_cdev->default_trigger, trig->name) && in led_trigger_set_default()
261 trigger_relevant(led_cdev, trig)) { in led_trigger_set_default()
263 led_trigger_set(led_cdev, trig); in led_trigger_set_default()
272 void led_trigger_rename_static(const char *name, struct led_trigger *trig) in led_trigger_rename_static() argument
275 BUG_ON(name == trig->name); in led_trigger_rename_static()
280 strcpy((char *)trig->name, name); in led_trigger_rename_static()
287 int led_trigger_register(struct led_trigger *trig) in led_trigger_register() argument
292 spin_lock_init(&trig->leddev_list_lock); in led_trigger_register()
293 INIT_LIST_HEAD(&trig->led_cdevs); in led_trigger_register()
298 if (!strcmp(_trig->name, trig->name) && in led_trigger_register()
299 (trig->trigger_type == _trig->trigger_type || in led_trigger_register()
300 !trig->trigger_type || !_trig->trigger_type)) { in led_trigger_register()
306 list_add_tail(&trig->next_trig, &trigger_list); in led_trigger_register()
314 !strcmp(led_cdev->default_trigger, trig->name) && in led_trigger_register()
315 trigger_relevant(led_cdev, trig)) { in led_trigger_register()
317 led_trigger_set(led_cdev, trig); in led_trigger_register()
327 void led_trigger_unregister(struct led_trigger *trig) in led_trigger_unregister() argument
331 if (list_empty_careful(&trig->next_trig)) in led_trigger_unregister()
336 list_del_init(&trig->next_trig); in led_trigger_unregister()
343 if (led_cdev->trigger == trig) in led_trigger_unregister()
357 struct led_trigger *trig) in devm_led_trigger_register() argument
367 *dr = trig; in devm_led_trigger_register()
369 rc = led_trigger_register(trig); in devm_led_trigger_register()
381 void led_trigger_event(struct led_trigger *trig, in led_trigger_event() argument
386 if (!trig) in led_trigger_event()
390 list_for_each_entry_rcu(led_cdev, &trig->led_cdevs, trig_list) in led_trigger_event()
396 static void led_trigger_blink_setup(struct led_trigger *trig, in led_trigger_blink_setup() argument
404 if (!trig) in led_trigger_blink_setup()
408 list_for_each_entry_rcu(led_cdev, &trig->led_cdevs, trig_list) { in led_trigger_blink_setup()
418 void led_trigger_blink(struct led_trigger *trig, in led_trigger_blink() argument
422 led_trigger_blink_setup(trig, delay_on, delay_off, 0, 0); in led_trigger_blink()
426 void led_trigger_blink_oneshot(struct led_trigger *trig, in led_trigger_blink_oneshot() argument
431 led_trigger_blink_setup(trig, delay_on, delay_off, 1, invert); in led_trigger_blink_oneshot()
437 struct led_trigger *trig; in led_trigger_register_simple() local
440 trig = kzalloc(sizeof(struct led_trigger), GFP_KERNEL); in led_trigger_register_simple()
442 if (trig) { in led_trigger_register_simple()
443 trig->name = name; in led_trigger_register_simple()
444 err = led_trigger_register(trig); in led_trigger_register_simple()
446 kfree(trig); in led_trigger_register_simple()
447 trig = NULL; in led_trigger_register_simple()
455 *tp = trig; in led_trigger_register_simple()
459 void led_trigger_unregister_simple(struct led_trigger *trig) in led_trigger_unregister_simple() argument
461 if (trig) in led_trigger_unregister_simple()
462 led_trigger_unregister(trig); in led_trigger_unregister_simple()
463 kfree(trig); in led_trigger_unregister_simple()