mirror of
https://github.com/wessel-novacustom/clevo-keyboard.git
synced 2024-11-15 03:34:01 +01:00
Fix Clevo devices changing keyboard backlight color on resume
This commit is contained in:
parent
131af916be
commit
5b770f9996
|
@ -359,6 +359,8 @@ static int clevo_keyboard_suspend(struct platform_device *dev, pm_message_t stat
|
||||||
static int clevo_keyboard_resume(struct platform_device *dev)
|
static int clevo_keyboard_resume(struct platform_device *dev)
|
||||||
{
|
{
|
||||||
clevo_evaluate_method(CLEVO_CMD_SET_EVENTS_ENABLED, 0, NULL);
|
clevo_evaluate_method(CLEVO_CMD_SET_EVENTS_ENABLED, 0, NULL);
|
||||||
|
clevo_leds_restore_state_extern(); // Sometimes clevo devices forget their last state after
|
||||||
|
// suspend, so let the kernel ensure it.
|
||||||
set_enabled_cmd(1);
|
set_enabled_cmd(1);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,7 @@ enum clevo_kb_backlight_types {
|
||||||
int clevo_leds_init(struct platform_device *dev);
|
int clevo_leds_init(struct platform_device *dev);
|
||||||
int clevo_leds_remove(struct platform_device *dev);
|
int clevo_leds_remove(struct platform_device *dev);
|
||||||
enum clevo_kb_backlight_types clevo_leds_get_backlight_type(void);
|
enum clevo_kb_backlight_types clevo_leds_get_backlight_type(void);
|
||||||
|
void clevo_leds_restore_state_extern(void);
|
||||||
void clevo_leds_set_brightness_extern(enum led_brightness brightness);
|
void clevo_leds_set_brightness_extern(enum led_brightness brightness);
|
||||||
void clevo_leds_set_color_extern(u32 color);
|
void clevo_leds_set_color_extern(u32 color);
|
||||||
|
|
||||||
|
@ -380,6 +381,21 @@ enum clevo_kb_backlight_types clevo_leds_get_backlight_type() {
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(clevo_leds_get_backlight_type);
|
EXPORT_SYMBOL(clevo_leds_get_backlight_type);
|
||||||
|
|
||||||
|
void clevo_leds_restore_state_extern(void) {
|
||||||
|
if (clevo_kb_backlight_type == CLEVO_KB_BACKLIGHT_TYPE_FIXED_COLOR) {
|
||||||
|
clevo_led_cdev.brightness_set(&clevo_led_cdev, clevo_led_cdev.brightness);
|
||||||
|
}
|
||||||
|
else if (clevo_kb_backlight_type == CLEVO_KB_BACKLIGHT_TYPE_1_ZONE_RGB) {
|
||||||
|
clevo_mcled_cdevs[0].led_cdev.brightness_set(&clevo_mcled_cdevs[0].led_cdev, clevo_mcled_cdevs[0].led_cdev.brightness);
|
||||||
|
}
|
||||||
|
else if (clevo_kb_backlight_type == CLEVO_KB_BACKLIGHT_TYPE_3_ZONE_RGB) {
|
||||||
|
clevo_mcled_cdevs[0].led_cdev.brightness_set(&clevo_mcled_cdevs[0].led_cdev, clevo_mcled_cdevs[0].led_cdev.brightness);
|
||||||
|
clevo_mcled_cdevs[1].led_cdev.brightness_set(&clevo_mcled_cdevs[1].led_cdev, clevo_mcled_cdevs[1].led_cdev.brightness);
|
||||||
|
clevo_mcled_cdevs[2].led_cdev.brightness_set(&clevo_mcled_cdevs[2].led_cdev, clevo_mcled_cdevs[2].led_cdev.brightness);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(clevo_leds_restore_state_extern);
|
||||||
|
|
||||||
void clevo_leds_set_brightness_extern(enum led_brightness brightness) {
|
void clevo_leds_set_brightness_extern(enum led_brightness brightness) {
|
||||||
if (clevo_kb_backlight_type == CLEVO_KB_BACKLIGHT_TYPE_FIXED_COLOR) {
|
if (clevo_kb_backlight_type == CLEVO_KB_BACKLIGHT_TYPE_FIXED_COLOR) {
|
||||||
clevo_led_cdev.brightness_set(&clevo_led_cdev, brightness);
|
clevo_led_cdev.brightness_set(&clevo_led_cdev, brightness);
|
||||||
|
|
Loading…
Reference in a new issue