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()
190 if (trig) { in led_trigger_set()
191 spin_lock(&trig->leddev_list_lock); in led_trigger_set()
192 list_add_tail_rcu(&led_cdev->trig_list, &trig->led_cdevs); in led_trigger_set()
193 spin_unlock(&trig->leddev_list_lock); in led_trigger_set()
194 led_cdev->trigger = trig; in led_trigger_set()
196 if (trig->activate) in led_trigger_set()
197 ret = trig->activate(led_cdev); in led_trigger_set()
204 ret = device_add_groups(led_cdev->dev, trig->groups); in led_trigger_set()
224 if (trig->deactivate) in led_trigger_set()
225 trig->deactivate(led_cdev); in led_trigger_set()
251 struct led_trigger *trig; in led_trigger_set_default() local
258 list_for_each_entry(trig, &trigger_list, next_trig) { in led_trigger_set_default()
259 if (!strcmp(led_cdev->default_trigger, trig->name) && in led_trigger_set_default()
260 trigger_relevant(led_cdev, trig)) { in led_trigger_set_default()
262 led_trigger_set(led_cdev, trig); in led_trigger_set_default()
271 void led_trigger_rename_static(const char *name, struct led_trigger *trig) in led_trigger_rename_static() argument
274 BUG_ON(name == trig->name); in led_trigger_rename_static()
279 strcpy((char *)trig->name, name); in led_trigger_rename_static()
286 int led_trigger_register(struct led_trigger *trig) in led_trigger_register() argument
291 spin_lock_init(&trig->leddev_list_lock); in led_trigger_register()
292 INIT_LIST_HEAD(&trig->led_cdevs); in led_trigger_register()
297 if (!strcmp(_trig->name, trig->name) && in led_trigger_register()
298 (trig->trigger_type == _trig->trigger_type || in led_trigger_register()
299 !trig->trigger_type || !_trig->trigger_type)) { in led_trigger_register()
305 list_add_tail(&trig->next_trig, &trigger_list); in led_trigger_register()
313 !strcmp(led_cdev->default_trigger, trig->name) && in led_trigger_register()
314 trigger_relevant(led_cdev, trig)) { in led_trigger_register()
316 led_trigger_set(led_cdev, trig); in led_trigger_register()
326 void led_trigger_unregister(struct led_trigger *trig) in led_trigger_unregister() argument
330 if (list_empty_careful(&trig->next_trig)) in led_trigger_unregister()
335 list_del_init(&trig->next_trig); in led_trigger_unregister()
342 if (led_cdev->trigger == trig) in led_trigger_unregister()
356 struct led_trigger *trig) in devm_led_trigger_register() argument
366 *dr = trig; in devm_led_trigger_register()
368 rc = led_trigger_register(trig); in devm_led_trigger_register()
380 void led_trigger_event(struct led_trigger *trig, in led_trigger_event() argument
385 if (!trig) in led_trigger_event()
389 list_for_each_entry_rcu(led_cdev, &trig->led_cdevs, trig_list) in led_trigger_event()
395 static void led_trigger_blink_setup(struct led_trigger *trig, in led_trigger_blink_setup() argument
403 if (!trig) in led_trigger_blink_setup()
407 list_for_each_entry_rcu(led_cdev, &trig->led_cdevs, trig_list) { in led_trigger_blink_setup()
417 void led_trigger_blink(struct led_trigger *trig, in led_trigger_blink() argument
421 led_trigger_blink_setup(trig, delay_on, delay_off, 0, 0); in led_trigger_blink()
425 void led_trigger_blink_oneshot(struct led_trigger *trig, in led_trigger_blink_oneshot() argument
430 led_trigger_blink_setup(trig, delay_on, delay_off, 1, invert); in led_trigger_blink_oneshot()
436 struct led_trigger *trig; in led_trigger_register_simple() local
439 trig = kzalloc(sizeof(struct led_trigger), GFP_KERNEL); in led_trigger_register_simple()
441 if (trig) { in led_trigger_register_simple()
442 trig->name = name; in led_trigger_register_simple()
443 err = led_trigger_register(trig); in led_trigger_register_simple()
445 kfree(trig); in led_trigger_register_simple()
446 trig = NULL; in led_trigger_register_simple()
454 *tp = trig; in led_trigger_register_simple()
458 void led_trigger_unregister_simple(struct led_trigger *trig) in led_trigger_unregister_simple() argument
460 if (trig) in led_trigger_unregister_simple()
461 led_trigger_unregister(trig); in led_trigger_unregister_simple()
462 kfree(trig); in led_trigger_unregister_simple()