Without the wakeup, the event doesn't get scheduled until some other
event wakes up the acpi thread.  On one of my machines the gpio event
reads a status byte over i2c in repsonse of a gpio event.  Without the
wakeup that status byte has often been cleared/overwritten by the time
the event gets scheduled.

ok?


Index: acpi.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/acpi.c,v
retrieving revision 1.343
diff -u -p -r1.343 acpi.c
--- acpi.c      17 May 2018 20:46:45 -0000      1.343
+++ acpi.c      19 May 2018 19:35:59 -0000
@@ -861,6 +861,7 @@ acpi_gpio_event(void *arg)
        struct acpi_gpio_event *ev = arg;
 
        acpi_addtask(acpi_softc, acpi_gpio_event_task, ev->node, ev->pin);
+       acpi_wakeup(acpi_softc);
        return 1;
 }
 

Reply via email to