# This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2004/08/12 20:47:40-04:00 nbryant-p32f3XyCuykqcZcGjlUOXw@public.gmane.org # This is a fixed version of shaohua's double-button-event patch # # drivers/acpi/sleep/main.c # 2004/08/12 20:47:32-04:00 nbryant-p32f3XyCuykqcZcGjlUOXw@public.gmane.org +3 -3 # Fixed shaohua's double-button event patch # # drivers/acpi/event.c # 2004/08/12 20:47:32-04:00 nbryant-p32f3XyCuykqcZcGjlUOXw@public.gmane.org +1 -1 # Fixed shaohua's double-button event patch # # drivers/acpi/sleep/main.c # 2004/08/12 02:41:13-04:00 nbryant-p32f3XyCuykqcZcGjlUOXw@public.gmane.org +3 -1 # Import patch maskevent.patch # # drivers/acpi/event.c # 2004/08/12 02:40:13-04:00 nbryant-p32f3XyCuykqcZcGjlUOXw@public.gmane.org +2 -1 # Import patch maskevent.patch # # drivers/acpi/bus.c # 2004/08/12 02:39:43-04:00 nbryant-p32f3XyCuykqcZcGjlUOXw@public.gmane.org +2 -1 # Import patch maskevent.patch # diff -Nru a/drivers/acpi/bus.c b/drivers/acpi/bus.c --- a/drivers/acpi/bus.c 2004-08-12 20:49:37 -04:00 +++ b/drivers/acpi/bus.c 2004-08-12 20:49:37 -04:00 @@ -283,6 +283,7 @@ DECLARE_WAIT_QUEUE_HEAD(acpi_bus_event_queue); extern int event_is_open; +extern int acpi_event_is_masked; int acpi_bus_generate_event ( @@ -299,7 +300,7 @@ return_VALUE(-EINVAL); /* drop event on the floor if no one's listening */ - if (!event_is_open) + if (!event_is_open || acpi_event_is_masked) return_VALUE(0); event = kmalloc(sizeof(struct acpi_bus_event), GFP_ATOMIC); diff -Nru a/drivers/acpi/event.c b/drivers/acpi/event.c --- a/drivers/acpi/event.c 2004-08-12 20:49:37 -04:00 +++ b/drivers/acpi/event.c 2004-08-12 20:49:37 -04:00 @@ -17,7 +17,8 @@ /* Global vars for handling event proc entry */ static spinlock_t acpi_system_event_lock = SPIN_LOCK_UNLOCKED; -int event_is_open = 0; +int event_is_open; +int acpi_event_is_masked; extern struct list_head acpi_bus_event_list; extern wait_queue_head_t acpi_bus_event_queue; diff -Nru a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c --- a/drivers/acpi/sleep/main.c 2004-08-12 20:49:37 -04:00 +++ b/drivers/acpi/sleep/main.c 2004-08-12 20:49:37 -04:00 @@ -73,7 +73,7 @@ * arch-specific assembly, which in turn call acpi_enter_sleep_state(). * It's unfortunate, but it works. Please fix if you're feeling frisky. */ - +extern int acpi_event_is_masked; static int acpi_pm_enter(u32 pm_state) { acpi_status status = AE_OK; @@ -92,6 +92,7 @@ local_irq_save(flags); acpi_enable_wakeup_device(acpi_state); + acpi_event_is_masked = 1; switch (pm_state) { case PM_SUSPEND_STANDBY: @@ -142,6 +143,7 @@ acpi_leave_sleep_state(acpi_state); acpi_disable_wakeup_device(acpi_state); + acpi_event_is_masked = 0; /* reset firmware waking vector */ acpi_set_firmware_waking_vector((acpi_physical_address) 0);