Lines Matching refs:led_cdev
28 static void led_set_software_blink(struct led_classdev *led_cdev, in led_set_software_blink() argument
34 current_brightness = led_get_brightness(led_cdev); in led_set_software_blink()
36 led_cdev->blink_brightness = current_brightness; in led_set_software_blink()
37 if (!led_cdev->blink_brightness) in led_set_software_blink()
38 led_cdev->blink_brightness = led_cdev->max_brightness; in led_set_software_blink()
40 led_cdev->blink_delay_on = delay_on; in led_set_software_blink()
41 led_cdev->blink_delay_off = delay_off; in led_set_software_blink()
45 led_set_brightness_async(led_cdev, LED_OFF); in led_set_software_blink()
51 led_set_brightness_async(led_cdev, led_cdev->blink_brightness); in led_set_software_blink()
55 mod_timer(&led_cdev->blink_timer, jiffies + 1); in led_set_software_blink()
59 static void led_blink_setup(struct led_classdev *led_cdev, in led_blink_setup() argument
63 if (!(led_cdev->flags & LED_BLINK_ONESHOT) && in led_blink_setup()
64 led_cdev->blink_set && in led_blink_setup()
65 !led_cdev->blink_set(led_cdev, delay_on, delay_off)) in led_blink_setup()
72 led_set_software_blink(led_cdev, *delay_on, *delay_off); in led_blink_setup()
75 void led_blink_set(struct led_classdev *led_cdev, in led_blink_set() argument
79 del_timer_sync(&led_cdev->blink_timer); in led_blink_set()
81 led_cdev->flags &= ~LED_BLINK_ONESHOT; in led_blink_set()
82 led_cdev->flags &= ~LED_BLINK_ONESHOT_STOP; in led_blink_set()
84 led_blink_setup(led_cdev, delay_on, delay_off); in led_blink_set()
88 void led_blink_set_oneshot(struct led_classdev *led_cdev, in led_blink_set_oneshot() argument
93 if ((led_cdev->flags & LED_BLINK_ONESHOT) && in led_blink_set_oneshot()
94 timer_pending(&led_cdev->blink_timer)) in led_blink_set_oneshot()
97 led_cdev->flags |= LED_BLINK_ONESHOT; in led_blink_set_oneshot()
98 led_cdev->flags &= ~LED_BLINK_ONESHOT_STOP; in led_blink_set_oneshot()
101 led_cdev->flags |= LED_BLINK_INVERT; in led_blink_set_oneshot()
103 led_cdev->flags &= ~LED_BLINK_INVERT; in led_blink_set_oneshot()
105 led_blink_setup(led_cdev, delay_on, delay_off); in led_blink_set_oneshot()
109 void led_stop_software_blink(struct led_classdev *led_cdev) in led_stop_software_blink() argument
111 del_timer_sync(&led_cdev->blink_timer); in led_stop_software_blink()
112 led_cdev->blink_delay_on = 0; in led_stop_software_blink()
113 led_cdev->blink_delay_off = 0; in led_stop_software_blink()
117 void led_set_brightness(struct led_classdev *led_cdev, in led_set_brightness() argument
123 if (led_cdev->blink_delay_on || led_cdev->blink_delay_off) { in led_set_brightness()
124 led_cdev->delayed_set_value = brightness; in led_set_brightness()
125 schedule_work(&led_cdev->set_brightness_work); in led_set_brightness()
129 if (led_cdev->flags & SET_BRIGHTNESS_ASYNC) { in led_set_brightness()
130 led_set_brightness_async(led_cdev, brightness); in led_set_brightness()
132 } else if (led_cdev->flags & SET_BRIGHTNESS_SYNC) in led_set_brightness()
133 ret = led_set_brightness_sync(led_cdev, brightness); in led_set_brightness()
138 dev_dbg(led_cdev->dev, "Setting LED brightness failed (%d)\n", in led_set_brightness()
143 int led_update_brightness(struct led_classdev *led_cdev) in led_update_brightness() argument
147 if (led_cdev->brightness_get) { in led_update_brightness()
148 ret = led_cdev->brightness_get(led_cdev); in led_update_brightness()
150 led_cdev->brightness = ret; in led_update_brightness()
160 void led_sysfs_disable(struct led_classdev *led_cdev) in led_sysfs_disable() argument
162 lockdep_assert_held(&led_cdev->led_access); in led_sysfs_disable()
164 led_cdev->flags |= LED_SYSFS_DISABLE; in led_sysfs_disable()
169 void led_sysfs_enable(struct led_classdev *led_cdev) in led_sysfs_enable() argument
171 lockdep_assert_held(&led_cdev->led_access); in led_sysfs_enable()
173 led_cdev->flags &= ~LED_SYSFS_DISABLE; in led_sysfs_enable()