Lines Matching refs:trig
38 struct led_trigger *trig; in led_trigger_store() local
62 list_for_each_entry(trig, &trigger_list, next_trig) { in led_trigger_store()
63 if (!strcmp(trigger_name, trig->name)) { in led_trigger_store()
65 led_trigger_set(led_cdev, trig); in led_trigger_store()
84 struct led_trigger *trig; in led_trigger_show() local
95 list_for_each_entry(trig, &trigger_list, next_trig) { in led_trigger_show()
97 trig->name)) in led_trigger_show()
98 len += sprintf(buf+len, "[%s] ", trig->name); in led_trigger_show()
100 len += sprintf(buf+len, "%s ", trig->name); in led_trigger_show()
111 void led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig) in led_trigger_set() argument
118 name = trig ? trig->name : "none"; in led_trigger_set()
134 if (trig) { in led_trigger_set()
135 write_lock_irqsave(&trig->leddev_list_lock, flags); in led_trigger_set()
136 list_add_tail(&led_cdev->trig_list, &trig->led_cdevs); in led_trigger_set()
137 write_unlock_irqrestore(&trig->leddev_list_lock, flags); in led_trigger_set()
138 led_cdev->trigger = trig; in led_trigger_set()
139 if (trig->activate) in led_trigger_set()
140 trig->activate(led_cdev); in led_trigger_set()
162 struct led_trigger *trig; in led_trigger_set_default() local
169 list_for_each_entry(trig, &trigger_list, next_trig) { in led_trigger_set_default()
170 if (!strcmp(led_cdev->default_trigger, trig->name)) in led_trigger_set_default()
171 led_trigger_set(led_cdev, trig); in led_trigger_set_default()
178 void led_trigger_rename_static(const char *name, struct led_trigger *trig) in led_trigger_rename_static() argument
181 BUG_ON(name == trig->name); in led_trigger_rename_static()
186 strcpy((char *)trig->name, name); in led_trigger_rename_static()
193 int led_trigger_register(struct led_trigger *trig) in led_trigger_register() argument
198 rwlock_init(&trig->leddev_list_lock); in led_trigger_register()
199 INIT_LIST_HEAD(&trig->led_cdevs); in led_trigger_register()
204 if (!strcmp(_trig->name, trig->name)) { in led_trigger_register()
210 list_add_tail(&trig->next_trig, &trigger_list); in led_trigger_register()
218 !strcmp(led_cdev->default_trigger, trig->name)) in led_trigger_register()
219 led_trigger_set(led_cdev, trig); in led_trigger_register()
228 void led_trigger_unregister(struct led_trigger *trig) in led_trigger_unregister() argument
232 if (list_empty_careful(&trig->next_trig)) in led_trigger_unregister()
237 list_del_init(&trig->next_trig); in led_trigger_unregister()
244 if (led_cdev->trigger == trig) in led_trigger_unregister()
254 void led_trigger_event(struct led_trigger *trig, in led_trigger_event() argument
259 if (!trig) in led_trigger_event()
262 read_lock(&trig->leddev_list_lock); in led_trigger_event()
263 list_for_each_entry(led_cdev, &trig->led_cdevs, trig_list) in led_trigger_event()
265 read_unlock(&trig->leddev_list_lock); in led_trigger_event()
269 static void led_trigger_blink_setup(struct led_trigger *trig, in led_trigger_blink_setup() argument
277 if (!trig) in led_trigger_blink_setup()
280 read_lock(&trig->leddev_list_lock); in led_trigger_blink_setup()
281 list_for_each_entry(led_cdev, &trig->led_cdevs, trig_list) { in led_trigger_blink_setup()
288 read_unlock(&trig->leddev_list_lock); in led_trigger_blink_setup()
291 void led_trigger_blink(struct led_trigger *trig, in led_trigger_blink() argument
295 led_trigger_blink_setup(trig, delay_on, delay_off, 0, 0); in led_trigger_blink()
299 void led_trigger_blink_oneshot(struct led_trigger *trig, in led_trigger_blink_oneshot() argument
304 led_trigger_blink_setup(trig, delay_on, delay_off, 1, invert); in led_trigger_blink_oneshot()
310 struct led_trigger *trig; in led_trigger_register_simple() local
313 trig = kzalloc(sizeof(struct led_trigger), GFP_KERNEL); in led_trigger_register_simple()
315 if (trig) { in led_trigger_register_simple()
316 trig->name = name; in led_trigger_register_simple()
317 err = led_trigger_register(trig); in led_trigger_register_simple()
319 kfree(trig); in led_trigger_register_simple()
320 trig = NULL; in led_trigger_register_simple()
328 *tp = trig; in led_trigger_register_simple()
332 void led_trigger_unregister_simple(struct led_trigger *trig) in led_trigger_unregister_simple() argument
334 if (trig) in led_trigger_unregister_simple()
335 led_trigger_unregister(trig); in led_trigger_unregister_simple()
336 kfree(trig); in led_trigger_unregister_simple()