• Home
  • Raw
  • Download

Lines Matching +full:led +full:- +full:2

2  * MSI GT683R led driver
8 * published by the Free Software Foundation; either version 2 of
24 #include "hid-ids.h"
36 GT683R_LED_AUDIO = 2,
44 GT683R_LED_FRONT = 2,
72 struct device *dev = led_cdev->dev->parent; in gt683r_brightness_set()
74 struct gt683r_led *led = hid_get_drvdata(hdev); in gt683r_brightness_set() local
77 if (led_cdev == &led->led_devs[i]) in gt683r_brightness_set()
82 led->brightnesses[i] = brightness; in gt683r_brightness_set()
83 schedule_work(&led->work); in gt683r_brightness_set()
92 struct hid_device *hdev = to_hid_device(dev->parent); in mode_show()
93 struct gt683r_led *led = hid_get_drvdata(hdev); in mode_show() local
95 if (led->mode == GT683R_LED_NORMAL) in mode_show()
97 else if (led->mode == GT683R_LED_AUDIO) in mode_show()
100 sysfs_mode = 2; in mode_show()
110 struct hid_device *hdev = to_hid_device(dev->parent); in mode_store()
111 struct gt683r_led *led = hid_get_drvdata(hdev); in mode_store() local
114 if (kstrtou8(buf, 10, &sysfs_mode) || sysfs_mode > 2) in mode_store()
115 return -EINVAL; in mode_store()
117 mutex_lock(&led->lock); in mode_store()
120 led->mode = GT683R_LED_NORMAL; in mode_store()
122 led->mode = GT683R_LED_AUDIO; in mode_store()
124 led->mode = GT683R_LED_BREATHING; in mode_store()
126 mutex_unlock(&led->lock); in mode_store()
127 schedule_work(&led->work); in mode_store()
132 static int gt683r_led_snd_msg(struct gt683r_led *led, u8 *msg) in gt683r_led_snd_msg() argument
136 ret = hid_hw_raw_request(led->hdev, msg[0], msg, GT683R_BUFFER_SIZE, in gt683r_led_snd_msg()
139 hid_err(led->hdev, in gt683r_led_snd_msg()
143 return -EIO; in gt683r_led_snd_msg()
149 static int gt683r_leds_set(struct gt683r_led *led, u8 leds) in gt683r_leds_set() argument
156 return -ENOMEM; in gt683r_leds_set()
160 buffer[2] = 0x30; in gt683r_leds_set()
162 ret = gt683r_led_snd_msg(led, buffer); in gt683r_leds_set()
168 static int gt683r_mode_set(struct gt683r_led *led, u8 mode) in gt683r_mode_set() argument
175 return -ENOMEM; in gt683r_mode_set()
179 buffer[2] = 0x20; in gt683r_mode_set()
182 ret = gt683r_led_snd_msg(led, buffer); in gt683r_mode_set()
193 struct gt683r_led *led = container_of(work, struct gt683r_led, work); in gt683r_led_work() local
195 mutex_lock(&led->lock); in gt683r_led_work()
198 if (led->brightnesses[i]) in gt683r_led_work()
202 if (gt683r_leds_set(led, leds)) in gt683r_led_work()
206 mode = led->mode; in gt683r_led_work()
210 gt683r_mode_set(led, mode); in gt683r_led_work()
212 mutex_unlock(&led->lock); in gt683r_led_work()
239 struct gt683r_led *led; in gt683r_led_probe() local
241 led = devm_kzalloc(&hdev->dev, sizeof(*led), GFP_KERNEL); in gt683r_led_probe()
242 if (!led) in gt683r_led_probe()
243 return -ENOMEM; in gt683r_led_probe()
245 mutex_init(&led->lock); in gt683r_led_probe()
246 INIT_WORK(&led->work, gt683r_led_work); in gt683r_led_probe()
248 led->mode = GT683R_LED_NORMAL; in gt683r_led_probe()
249 led->hdev = hdev; in gt683r_led_probe()
250 hid_set_drvdata(hdev, led); in gt683r_led_probe()
265 name_sz = strlen(dev_name(&hdev->dev)) + in gt683r_led_probe()
268 name = devm_kzalloc(&hdev->dev, name_sz, GFP_KERNEL); in gt683r_led_probe()
270 ret = -ENOMEM; in gt683r_led_probe()
275 dev_name(&hdev->dev), gt683r_panel_names[i]); in gt683r_led_probe()
276 led->led_devs[i].name = name; in gt683r_led_probe()
277 led->led_devs[i].max_brightness = 1; in gt683r_led_probe()
278 led->led_devs[i].brightness_set = gt683r_brightness_set; in gt683r_led_probe()
279 led->led_devs[i].groups = gt683r_led_groups; in gt683r_led_probe()
281 ret = led_classdev_register(&hdev->dev, &led->led_devs[i]); in gt683r_led_probe()
283 hid_err(hdev, "could not register led device\n"); in gt683r_led_probe()
291 for (i = i - 1; i >= 0; i--) in gt683r_led_probe()
292 led_classdev_unregister(&led->led_devs[i]); in gt683r_led_probe()
300 struct gt683r_led *led = hid_get_drvdata(hdev); in gt683r_led_remove() local
303 led_classdev_unregister(&led->led_devs[i]); in gt683r_led_remove()
304 flush_work(&led->work); in gt683r_led_remove()
318 MODULE_DESCRIPTION("MSI GT683R led driver");