Lines Matching refs:led_cdev
32 struct led_classdev *led_cdev = dev_get_drvdata(dev); in led_trigger_store() local
36 mutex_lock(&led_cdev->led_access); in led_trigger_store()
38 if (led_sysfs_is_disabled(led_cdev)) { in led_trigger_store()
44 led_trigger_remove(led_cdev); in led_trigger_store()
51 down_write(&led_cdev->trigger_lock); in led_trigger_store()
52 led_trigger_set(led_cdev, trig); in led_trigger_store()
53 up_write(&led_cdev->trigger_lock); in led_trigger_store()
64 mutex_unlock(&led_cdev->led_access); in led_trigger_store()
72 struct led_classdev *led_cdev = dev_get_drvdata(dev); in led_trigger_show() local
77 down_read(&led_cdev->trigger_lock); in led_trigger_show()
79 if (!led_cdev->trigger) in led_trigger_show()
85 if (led_cdev->trigger && !strcmp(led_cdev->trigger->name, in led_trigger_show()
93 up_read(&led_cdev->trigger_lock); 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()
117 if (led_cdev->trigger) { in led_trigger_set()
118 write_lock_irqsave(&led_cdev->trigger->leddev_list_lock, flags); in led_trigger_set()
119 list_del(&led_cdev->trig_list); in led_trigger_set()
120 write_unlock_irqrestore(&led_cdev->trigger->leddev_list_lock, in led_trigger_set()
122 cancel_work_sync(&led_cdev->set_brightness_work); in led_trigger_set()
123 led_stop_software_blink(led_cdev); in led_trigger_set()
124 if (led_cdev->trigger->deactivate) in led_trigger_set()
125 led_cdev->trigger->deactivate(led_cdev); in led_trigger_set()
126 device_remove_groups(led_cdev->dev, led_cdev->trigger->groups); in led_trigger_set()
127 led_cdev->trigger = NULL; in led_trigger_set()
128 led_cdev->trigger_data = NULL; in led_trigger_set()
129 led_cdev->activated = false; in led_trigger_set()
130 led_set_brightness(led_cdev, LED_OFF); in led_trigger_set()
134 list_add_tail(&led_cdev->trig_list, &trig->led_cdevs); in led_trigger_set()
136 led_cdev->trigger = trig; 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()
148 dev_err(led_cdev->dev, "Failed to add trigger attributes\n"); in led_trigger_set()
156 if (kobject_uevent_env(&led_cdev->dev->kobj, KOBJ_CHANGE, envp)) in led_trigger_set()
157 dev_err(led_cdev->dev, in led_trigger_set()
167 trig->deactivate(led_cdev); in led_trigger_set()
170 write_lock_irqsave(&led_cdev->trigger->leddev_list_lock, flags); in led_trigger_set()
171 list_del(&led_cdev->trig_list); in led_trigger_set()
172 write_unlock_irqrestore(&led_cdev->trigger->leddev_list_lock, flags); in led_trigger_set()
173 led_cdev->trigger = NULL; in led_trigger_set()
174 led_cdev->trigger_data = NULL; in led_trigger_set()
175 led_set_brightness(led_cdev, LED_OFF); in led_trigger_set()
182 void led_trigger_remove(struct led_classdev *led_cdev) in led_trigger_remove() argument
184 down_write(&led_cdev->trigger_lock); in led_trigger_remove()
185 led_trigger_set(led_cdev, NULL); in led_trigger_remove()
186 up_write(&led_cdev->trigger_lock); in led_trigger_remove()
190 void led_trigger_set_default(struct led_classdev *led_cdev) in led_trigger_set_default() argument
194 if (!led_cdev->default_trigger) in led_trigger_set_default()
198 down_write(&led_cdev->trigger_lock); in led_trigger_set_default()
200 if (!strcmp(led_cdev->default_trigger, trig->name)) { in led_trigger_set_default()
201 led_cdev->flags |= LED_INIT_DEFAULT_TRIGGER; in led_trigger_set_default()
202 led_trigger_set(led_cdev, trig); in led_trigger_set_default()
206 up_write(&led_cdev->trigger_lock); in led_trigger_set_default()
228 struct led_classdev *led_cdev; in led_trigger_register() local
248 list_for_each_entry(led_cdev, &leds_list, node) { in led_trigger_register()
249 down_write(&led_cdev->trigger_lock); in led_trigger_register()
250 if (!led_cdev->trigger && led_cdev->default_trigger && in led_trigger_register()
251 !strcmp(led_cdev->default_trigger, trig->name)) { in led_trigger_register()
252 led_cdev->flags |= LED_INIT_DEFAULT_TRIGGER; in led_trigger_register()
253 led_trigger_set(led_cdev, trig); in led_trigger_register()
255 up_write(&led_cdev->trigger_lock); in led_trigger_register()
265 struct led_classdev *led_cdev; in led_trigger_unregister() local
277 list_for_each_entry(led_cdev, &leds_list, node) { in led_trigger_unregister()
278 down_write(&led_cdev->trigger_lock); in led_trigger_unregister()
279 if (led_cdev->trigger == trig) in led_trigger_unregister()
280 led_trigger_set(led_cdev, NULL); in led_trigger_unregister()
281 up_write(&led_cdev->trigger_lock); in led_trigger_unregister()
320 struct led_classdev *led_cdev; in led_trigger_event() local
326 list_for_each_entry(led_cdev, &trig->led_cdevs, trig_list) in led_trigger_event()
327 led_set_brightness(led_cdev, brightness); in led_trigger_event()
338 struct led_classdev *led_cdev; in led_trigger_blink_setup() local
344 list_for_each_entry(led_cdev, &trig->led_cdevs, trig_list) { in led_trigger_blink_setup()
346 led_blink_set_oneshot(led_cdev, delay_on, delay_off, in led_trigger_blink_setup()
349 led_blink_set(led_cdev, delay_on, delay_off); in led_trigger_blink_setup()