Lines Matching refs:trig
33 struct led_trigger *trig; in led_trigger_store() local
49 list_for_each_entry(trig, &trigger_list, next_trig) { in led_trigger_store()
50 if (sysfs_streq(buf, trig->name)) { in led_trigger_store()
52 led_trigger_set(led_cdev, trig); in led_trigger_store()
73 struct led_trigger *trig; in led_trigger_show() local
84 list_for_each_entry(trig, &trigger_list, next_trig) { in led_trigger_show()
86 trig->name)) in led_trigger_show()
88 trig->name); in led_trigger_show()
91 trig->name); in led_trigger_show()
102 int led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig) in led_trigger_set() argument
110 if (!led_cdev->trigger && !trig) in led_trigger_set()
113 name = trig ? trig->name : "none"; in led_trigger_set()
132 if (trig) { in led_trigger_set()
133 write_lock_irqsave(&trig->leddev_list_lock, flags); in led_trigger_set()
134 list_add_tail(&led_cdev->trig_list, &trig->led_cdevs); in led_trigger_set()
135 write_unlock_irqrestore(&trig->leddev_list_lock, flags); in led_trigger_set()
136 led_cdev->trigger = trig; in led_trigger_set()
138 if (trig->activate) in led_trigger_set()
139 ret = trig->activate(led_cdev); in led_trigger_set()
146 ret = device_add_groups(led_cdev->dev, trig->groups); in led_trigger_set()
166 if (trig->deactivate) in led_trigger_set()
167 trig->deactivate(led_cdev); in led_trigger_set()
192 struct led_trigger *trig; in led_trigger_set_default() local
199 list_for_each_entry(trig, &trigger_list, next_trig) { in led_trigger_set_default()
200 if (!strcmp(led_cdev->default_trigger, trig->name)) { in led_trigger_set_default()
202 led_trigger_set(led_cdev, trig); in led_trigger_set_default()
211 void led_trigger_rename_static(const char *name, struct led_trigger *trig) in led_trigger_rename_static() argument
214 BUG_ON(name == trig->name); in led_trigger_rename_static()
219 strcpy((char *)trig->name, name); in led_trigger_rename_static()
226 int led_trigger_register(struct led_trigger *trig) in led_trigger_register() argument
231 rwlock_init(&trig->leddev_list_lock); in led_trigger_register()
232 INIT_LIST_HEAD(&trig->led_cdevs); in led_trigger_register()
237 if (!strcmp(_trig->name, trig->name)) { in led_trigger_register()
243 list_add_tail(&trig->next_trig, &trigger_list); in led_trigger_register()
251 !strcmp(led_cdev->default_trigger, trig->name)) { in led_trigger_register()
253 led_trigger_set(led_cdev, trig); in led_trigger_register()
263 void led_trigger_unregister(struct led_trigger *trig) in led_trigger_unregister() argument
267 if (list_empty_careful(&trig->next_trig)) in led_trigger_unregister()
272 list_del_init(&trig->next_trig); in led_trigger_unregister()
279 if (led_cdev->trigger == trig) in led_trigger_unregister()
293 struct led_trigger *trig) in devm_led_trigger_register() argument
303 *dr = trig; in devm_led_trigger_register()
305 rc = led_trigger_register(trig); in devm_led_trigger_register()
317 void led_trigger_event(struct led_trigger *trig, in led_trigger_event() argument
322 if (!trig) in led_trigger_event()
325 read_lock(&trig->leddev_list_lock); in led_trigger_event()
326 list_for_each_entry(led_cdev, &trig->led_cdevs, trig_list) in led_trigger_event()
328 read_unlock(&trig->leddev_list_lock); in led_trigger_event()
332 static void led_trigger_blink_setup(struct led_trigger *trig, in led_trigger_blink_setup() argument
340 if (!trig) in led_trigger_blink_setup()
343 read_lock(&trig->leddev_list_lock); in led_trigger_blink_setup()
344 list_for_each_entry(led_cdev, &trig->led_cdevs, trig_list) { in led_trigger_blink_setup()
351 read_unlock(&trig->leddev_list_lock); in led_trigger_blink_setup()
354 void led_trigger_blink(struct led_trigger *trig, in led_trigger_blink() argument
358 led_trigger_blink_setup(trig, delay_on, delay_off, 0, 0); in led_trigger_blink()
362 void led_trigger_blink_oneshot(struct led_trigger *trig, in led_trigger_blink_oneshot() argument
367 led_trigger_blink_setup(trig, delay_on, delay_off, 1, invert); in led_trigger_blink_oneshot()
373 struct led_trigger *trig; in led_trigger_register_simple() local
376 trig = kzalloc(sizeof(struct led_trigger), GFP_KERNEL); in led_trigger_register_simple()
378 if (trig) { in led_trigger_register_simple()
379 trig->name = name; in led_trigger_register_simple()
380 err = led_trigger_register(trig); in led_trigger_register_simple()
382 kfree(trig); in led_trigger_register_simple()
383 trig = NULL; in led_trigger_register_simple()
391 *tp = trig; in led_trigger_register_simple()
395 void led_trigger_unregister_simple(struct led_trigger *trig) in led_trigger_unregister_simple() argument
397 if (trig) in led_trigger_unregister_simple()
398 led_trigger_unregister(trig); in led_trigger_unregister_simple()
399 kfree(trig); in led_trigger_unregister_simple()