Loading drivers/platform/x86/hp-wmi.c +25 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ MODULE_ALIAS("wmi:5FB7F034-2C63-45e9-BE91-3D44E2C707E4"); static int __init hp_wmi_bios_setup(struct platform_device *device); static int __exit hp_wmi_bios_remove(struct platform_device *device); static int hp_wmi_resume_handler(struct platform_device *device); struct bios_args { u32 signature; Loading Loading @@ -101,6 +102,7 @@ static struct platform_driver hp_wmi_driver = { }, .probe = hp_wmi_bios_setup, .remove = hp_wmi_bios_remove, .resume = hp_wmi_resume_handler, }; static int hp_wmi_perform_query(int query, int write, int value) Loading Loading @@ -487,6 +489,29 @@ static int __exit hp_wmi_bios_remove(struct platform_device *device) return 0; } static int hp_wmi_resume_handler(struct platform_device *device) { struct key_entry *key; /* * Docking state may have changed while suspended, so trigger * an input event for the current state. As this is a switch, * the input layer will only actually pass it on if the state * changed. */ for (key = hp_wmi_keymap; key->type != KE_END; key++) { switch (key->type) { case KE_SW: input_report_switch(hp_wmi_input_dev, key->keycode, hp_wmi_dock_state()); input_sync(hp_wmi_input_dev); break; } } return 0; } static int __init hp_wmi_init(void) { int err; Loading Loading
drivers/platform/x86/hp-wmi.c +25 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ MODULE_ALIAS("wmi:5FB7F034-2C63-45e9-BE91-3D44E2C707E4"); static int __init hp_wmi_bios_setup(struct platform_device *device); static int __exit hp_wmi_bios_remove(struct platform_device *device); static int hp_wmi_resume_handler(struct platform_device *device); struct bios_args { u32 signature; Loading Loading @@ -101,6 +102,7 @@ static struct platform_driver hp_wmi_driver = { }, .probe = hp_wmi_bios_setup, .remove = hp_wmi_bios_remove, .resume = hp_wmi_resume_handler, }; static int hp_wmi_perform_query(int query, int write, int value) Loading Loading @@ -487,6 +489,29 @@ static int __exit hp_wmi_bios_remove(struct platform_device *device) return 0; } static int hp_wmi_resume_handler(struct platform_device *device) { struct key_entry *key; /* * Docking state may have changed while suspended, so trigger * an input event for the current state. As this is a switch, * the input layer will only actually pass it on if the state * changed. */ for (key = hp_wmi_keymap; key->type != KE_END; key++) { switch (key->type) { case KE_SW: input_report_switch(hp_wmi_input_dev, key->keycode, hp_wmi_dock_state()); input_sync(hp_wmi_input_dev); break; } } return 0; } static int __init hp_wmi_init(void) { int err; Loading