Lines Matching refs:led_cdev

31 	struct led_classdev *led_cdev = dev_get_drvdata(dev);  in brightness_show()  local
34 led_update_brightness(led_cdev); in brightness_show()
36 return sprintf(buf, "%u\n", led_cdev->brightness); in brightness_show()
42 struct led_classdev *led_cdev = dev_get_drvdata(dev); in brightness_store() local
46 mutex_lock(&led_cdev->led_access); in brightness_store()
48 if (led_sysfs_is_disabled(led_cdev)) { in brightness_store()
58 led_trigger_remove(led_cdev); in brightness_store()
59 led_set_brightness(led_cdev, state); in brightness_store()
63 mutex_unlock(&led_cdev->led_access); in brightness_store()
71 struct led_classdev *led_cdev = dev_get_drvdata(dev); in max_brightness_show() local
73 return sprintf(buf, "%u\n", led_cdev->max_brightness); in max_brightness_show()
110 struct led_classdev *led_cdev = dev_get_drvdata(dev); in brightness_hw_changed_show() local
112 if (led_cdev->brightness_hw_changed == -1) in brightness_hw_changed_show()
115 return sprintf(buf, "%u\n", led_cdev->brightness_hw_changed); in brightness_hw_changed_show()
120 static int led_add_brightness_hw_changed(struct led_classdev *led_cdev) in led_add_brightness_hw_changed() argument
122 struct device *dev = led_cdev->dev; in led_add_brightness_hw_changed()
131 led_cdev->brightness_hw_changed_kn = in led_add_brightness_hw_changed()
133 if (!led_cdev->brightness_hw_changed_kn) { in led_add_brightness_hw_changed()
142 static void led_remove_brightness_hw_changed(struct led_classdev *led_cdev) in led_remove_brightness_hw_changed() argument
144 sysfs_put(led_cdev->brightness_hw_changed_kn); in led_remove_brightness_hw_changed()
145 device_remove_file(led_cdev->dev, &dev_attr_brightness_hw_changed); in led_remove_brightness_hw_changed()
148 void led_classdev_notify_brightness_hw_changed(struct led_classdev *led_cdev, in led_classdev_notify_brightness_hw_changed() argument
151 if (WARN_ON(!led_cdev->brightness_hw_changed_kn)) in led_classdev_notify_brightness_hw_changed()
154 led_cdev->brightness_hw_changed = brightness; in led_classdev_notify_brightness_hw_changed()
155 sysfs_notify_dirent(led_cdev->brightness_hw_changed_kn); in led_classdev_notify_brightness_hw_changed()
159 static int led_add_brightness_hw_changed(struct led_classdev *led_cdev) in led_add_brightness_hw_changed() argument
163 static void led_remove_brightness_hw_changed(struct led_classdev *led_cdev) in led_remove_brightness_hw_changed() argument
172 void led_classdev_suspend(struct led_classdev *led_cdev) in led_classdev_suspend() argument
174 led_cdev->flags |= LED_SUSPENDED; in led_classdev_suspend()
175 led_set_brightness_nopm(led_cdev, 0); in led_classdev_suspend()
183 void led_classdev_resume(struct led_classdev *led_cdev) in led_classdev_resume() argument
185 led_set_brightness_nopm(led_cdev, led_cdev->brightness); in led_classdev_resume()
187 if (led_cdev->flash_resume) in led_classdev_resume()
188 led_cdev->flash_resume(led_cdev); in led_classdev_resume()
190 led_cdev->flags &= ~LED_SUSPENDED; in led_classdev_resume()
197 struct led_classdev *led_cdev = dev_get_drvdata(dev); in led_suspend() local
199 if (led_cdev->flags & LED_CORE_SUSPENDRESUME) in led_suspend()
200 led_classdev_suspend(led_cdev); in led_suspend()
207 struct led_classdev *led_cdev = dev_get_drvdata(dev); in led_resume() local
209 if (led_cdev->flags & LED_CORE_SUSPENDRESUME) in led_resume()
210 led_classdev_resume(led_cdev); in led_resume()
254 struct led_classdev *led_cdev) in of_led_classdev_register() argument
259 ret = led_classdev_next_name(led_cdev->name, name, sizeof(name)); in of_led_classdev_register()
263 mutex_init(&led_cdev->led_access); in of_led_classdev_register()
264 mutex_lock(&led_cdev->led_access); in of_led_classdev_register()
265 led_cdev->dev = device_create_with_groups(leds_class, parent, 0, in of_led_classdev_register()
266 led_cdev, led_cdev->groups, "%s", name); in of_led_classdev_register()
267 if (IS_ERR(led_cdev->dev)) { in of_led_classdev_register()
268 mutex_unlock(&led_cdev->led_access); in of_led_classdev_register()
269 return PTR_ERR(led_cdev->dev); in of_led_classdev_register()
271 led_cdev->dev->of_node = np; in of_led_classdev_register()
275 led_cdev->name, dev_name(led_cdev->dev)); in of_led_classdev_register()
277 if (led_cdev->flags & LED_BRIGHT_HW_CHANGED) { in of_led_classdev_register()
278 ret = led_add_brightness_hw_changed(led_cdev); in of_led_classdev_register()
280 device_unregister(led_cdev->dev); in of_led_classdev_register()
281 mutex_unlock(&led_cdev->led_access); in of_led_classdev_register()
286 led_cdev->work_flags = 0; in of_led_classdev_register()
288 init_rwsem(&led_cdev->trigger_lock); in of_led_classdev_register()
291 led_cdev->brightness_hw_changed = -1; in of_led_classdev_register()
295 list_add_tail(&led_cdev->node, &leds_list); in of_led_classdev_register()
298 if (!led_cdev->max_brightness) in of_led_classdev_register()
299 led_cdev->max_brightness = LED_FULL; in of_led_classdev_register()
301 led_update_brightness(led_cdev); in of_led_classdev_register()
303 led_init_core(led_cdev); in of_led_classdev_register()
306 led_trigger_set_default(led_cdev); in of_led_classdev_register()
309 mutex_unlock(&led_cdev->led_access); in of_led_classdev_register()
312 led_cdev->name); in of_led_classdev_register()
324 void led_classdev_unregister(struct led_classdev *led_cdev) in led_classdev_unregister() argument
327 down_write(&led_cdev->trigger_lock); in led_classdev_unregister()
328 if (led_cdev->trigger) in led_classdev_unregister()
329 led_trigger_set(led_cdev, NULL); in led_classdev_unregister()
330 up_write(&led_cdev->trigger_lock); in led_classdev_unregister()
333 led_cdev->flags |= LED_UNREGISTERING; in led_classdev_unregister()
336 led_stop_software_blink(led_cdev); in led_classdev_unregister()
338 led_set_brightness(led_cdev, LED_OFF); in led_classdev_unregister()
340 flush_work(&led_cdev->set_brightness_work); in led_classdev_unregister()
342 if (led_cdev->flags & LED_BRIGHT_HW_CHANGED) in led_classdev_unregister()
343 led_remove_brightness_hw_changed(led_cdev); in led_classdev_unregister()
345 device_unregister(led_cdev->dev); in led_classdev_unregister()
348 list_del(&led_cdev->node); in led_classdev_unregister()
351 mutex_destroy(&led_cdev->led_access); in led_classdev_unregister()
368 struct led_classdev *led_cdev) in devm_of_led_classdev_register() argument
377 rc = of_led_classdev_register(parent, np, led_cdev); in devm_of_led_classdev_register()
383 *dr = led_cdev; in devm_of_led_classdev_register()
392 struct led_cdev **p = res; in devm_led_classdev_match()
406 struct led_classdev *led_cdev) in devm_led_classdev_unregister() argument
410 devm_led_classdev_match, led_cdev)); in devm_led_classdev_unregister()