ACPI: Always report a sync event after a lid state change
authorGuillem Jover <guillem.jover@nokia.com>
Thu, 23 Oct 2008 21:28:33 +0000 (00:28 +0300)
committerLen Brown <len.brown@intel.com>
Sat, 25 Oct 2008 08:07:12 +0000 (04:07 -0400)
Currently not always an EV_SYN event is reported to userland
after the EV_SW SW_LID event has been sent. This is easy to verify
by using “input-events” from input-utils and just closing and opening
the lid.

Signed-off-by: Guillem Jover <guillem.jover@nokia.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/button.c

index 9d568d417eaa48e2e76624a0a2e505499c3aedcb..cb046c3fc3f2bd15da05dfd3939cda28d4949599 100644 (file)
@@ -262,6 +262,7 @@ static int acpi_lid_send_state(struct acpi_button *button)
                return -ENODEV;
        /* input layer checks if event is redundant */
        input_report_switch(button->input, SW_LID, !state);
+       input_sync(button->input);
        return 0;
 }
 
@@ -285,8 +286,8 @@ static void acpi_button_notify(acpi_handle handle, u32 event, void *data)
                        input_report_key(input, keycode, 1);
                        input_sync(input);
                        input_report_key(input, keycode, 0);
+                       input_sync(input);
                }
-               input_sync(input);
 
                acpi_bus_generate_proc_event(button->device, event,
                                        ++button->pushed);