Merge (github) pull request #42 from ashh87/master

Restore state on resume.
This commit is contained in:
tuxedoxt 2020-04-14 12:31:01 +02:00 committed by GitHub
commit 4e0c7aa170
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -325,7 +325,7 @@ static ssize_t set_brightness_fs(struct device *child,
return size; return size;
} }
static void set_enabled(u8 state) static int set_enabled_cmd(u8 state)
{ {
u32 cmd = 0xE0000000; u32 cmd = 0xE0000000;
TUXEDO_INFO("Set keyboard enabled to: %d\n", state); TUXEDO_INFO("Set keyboard enabled to: %d\n", state);
@ -336,7 +336,12 @@ static void set_enabled(u8 state)
cmd |= 0x07F001; cmd |= 0x07F001;
} }
if (!tuxedo_evaluate_wmi_method(WMI_SUBMETHOD_ID_SET_KB_LEDS, cmd, NULL)) { return tuxedo_evaluate_wmi_method(WMI_SUBMETHOD_ID_SET_KB_LEDS, cmd, NULL);
}
static void set_enabled(u8 state)
{
if (!set_enabled_cmd(state)) {
kbd_led_state.enabled = state; kbd_led_state.enabled = state;
} }
} }
@ -617,15 +622,33 @@ static int tuxedo_wmi_remove(struct platform_device *dev)
return 0; return 0;
} }
static int tuxedo_wmi_suspend(struct platform_device *dev, pm_message_t state)
{
// turning the keyboard off prevents default colours showing on resume
set_enabled_cmd(0);
return 0;
}
static int tuxedo_wmi_resume(struct platform_device *dev) static int tuxedo_wmi_resume(struct platform_device *dev)
{ {
tuxedo_evaluate_wmi_method(WMI_SUBMETHOD_ID_GET_AP, 0, NULL); tuxedo_evaluate_wmi_method(WMI_SUBMETHOD_ID_GET_AP, 0, NULL);
set_color(REGION_LEFT, kbd_led_state.color.left);
set_color(REGION_CENTER, kbd_led_state.color.center);
set_color(REGION_RIGHT, kbd_led_state.color.right);
if (kbd_led_state.has_extra)
set_color(REGION_EXTRA, kbd_led_state.color.extra);
set_blinking_pattern(kbd_led_state.blinking_pattern);
set_brightness(kbd_led_state.brightness);
set_enabled(kbd_led_state.enabled);
return 0; return 0;
} }
static struct platform_driver tuxedo_platform_driver = { static struct platform_driver tuxedo_platform_driver = {
.remove = tuxedo_wmi_remove, .remove = tuxedo_wmi_remove,
.suspend = tuxedo_wmi_suspend,
.resume = tuxedo_wmi_resume, .resume = tuxedo_wmi_resume,
.driver = { .driver = {
.name = DRIVER_NAME, .name = DRIVER_NAME,