mirror of
https://github.com/wessel-novacustom/clevo-keyboard.git
synced 2024-11-15 03:34:01 +01:00
uw_lightbar: Fix init structure
This commit is contained in:
parent
50f8afdf75
commit
0d954602b5
|
@ -753,6 +753,7 @@ static enum led_brightness lightbar_get(struct led_classdev *led_cdev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool uw_lightbar_loaded;
|
||||||
static struct led_classdev lightbar_led_classdevs[] = {
|
static struct led_classdev lightbar_led_classdevs[] = {
|
||||||
{
|
{
|
||||||
.name = UNIWILL_LIGHTBAR_LED_NAME_RGB_RED,
|
.name = UNIWILL_LIGHTBAR_LED_NAME_RGB_RED,
|
||||||
|
@ -780,9 +781,33 @@ static struct led_classdev lightbar_led_classdevs[] = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int uw_lightbar_init(struct platform_device *dev)
|
||||||
|
{
|
||||||
|
int i, j, status;
|
||||||
|
for (i = 0; i < ARRAY_SIZE(lightbar_led_classdevs); ++i) {
|
||||||
|
status = led_classdev_register(&dev->dev, &lightbar_led_classdevs[i]);
|
||||||
|
if (status < 0) {
|
||||||
|
for (j = 0; j < i; j++)
|
||||||
|
led_classdev_unregister(&lightbar_led_classdevs[j]);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int uw_lightbar_remove(struct platform_device *dev)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < ARRAY_SIZE(lightbar_led_classdevs); ++i) {
|
||||||
|
led_classdev_unregister(&lightbar_led_classdevs[i]);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int uniwill_keyboard_probe(struct platform_device *dev)
|
static int uniwill_keyboard_probe(struct platform_device *dev)
|
||||||
{
|
{
|
||||||
int status, i;
|
int status;
|
||||||
|
|
||||||
// Look for for GUIDs used on uniwill devices
|
// Look for for GUIDs used on uniwill devices
|
||||||
status =
|
status =
|
||||||
|
@ -821,9 +846,8 @@ static int uniwill_keyboard_probe(struct platform_device *dev)
|
||||||
|
|
||||||
uw_kbd_bl_init(dev);
|
uw_kbd_bl_init(dev);
|
||||||
|
|
||||||
for (i = 0; i < 4; ++i) {
|
status = uw_lightbar_init(dev);
|
||||||
led_classdev_register(&dev->dev, &lightbar_led_classdevs[i]);
|
uw_lightbar_loaded = (status >= 0);
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -837,7 +861,6 @@ err_remove_notifiers:
|
||||||
|
|
||||||
static int uniwill_keyboard_remove(struct platform_device *dev)
|
static int uniwill_keyboard_remove(struct platform_device *dev)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
|
|
||||||
if (uniwill_kbd_bl_type_rgb_single_color) {
|
if (uniwill_kbd_bl_type_rgb_single_color) {
|
||||||
sysfs_remove_group(&dev->dev.kobj, &uw_kbd_bl_color_attr_group);
|
sysfs_remove_group(&dev->dev.kobj, &uw_kbd_bl_color_attr_group);
|
||||||
|
@ -855,9 +878,8 @@ static int uniwill_keyboard_remove(struct platform_device *dev)
|
||||||
|
|
||||||
del_timer(&uw_kbd_bl_init_timer);
|
del_timer(&uw_kbd_bl_init_timer);
|
||||||
|
|
||||||
for (i = 0; i < 4; ++i) {
|
if (uw_lightbar_loaded)
|
||||||
led_classdev_unregister(&lightbar_led_classdevs[i]);
|
uw_lightbar_remove(dev);
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue