ACPI: Always report a sync event after a lid state change
authorGuillem Jover <guillem.jover@nokia.com>
Tue, 28 Oct 2008 05:34:27 +0000 (01:34 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 7 Nov 2008 03:05:45 +0000 (19:05 -0800)
upstream commit df316e939100e789b3c5d4d102619ccf5834bd00

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>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/acpi/button.c

index 1dfec413588ca6e07ba06f51b69b7ea431906a2b..59352d9dfb3cbdc1de57c124426beb6dadfb9d76 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);