ACPI: fix battery on HP NX6125
authorVladimir Lebedev <vladimir.p.lebedev@intel.com>
Tue, 20 Jun 2006 20:46:00 +0000 (16:46 -0400)
committerLen Brown <len.brown@intel.com>
Wed, 28 Jun 2006 16:44:45 +0000 (12:44 -0400)
EC problem was cause of both battery and AC issues.
http://bugzilla.kernel.org/show_bug.cgi?id=6455

Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/ec.c

index 874f912..8c5d7df 100644 (file)
@@ -213,7 +213,7 @@ static int acpi_ec_intr_wait(union acpi_ec *ec, unsigned int event)
 
        switch (event) {
        case ACPI_EC_EVENT_IBE:
-               if (~acpi_ec_read_status(ec) & event) {
+               if (~acpi_ec_read_status(ec) & ACPI_EC_FLAG_IBF) {
                        ec->intr.expect_event = 0;
                        return 0;
                }
@@ -782,12 +782,15 @@ static u32 acpi_ec_gpe_intr_handler(void *data)
        case ACPI_EC_EVENT_OBF:
                if (!(value & ACPI_EC_FLAG_OBF))
                        break;
+               ec->intr.expect_event = 0;
+               wake_up(&ec->intr.wait);
+               break;
        case ACPI_EC_EVENT_IBE:
                if ((value & ACPI_EC_FLAG_IBF))
                        break;
                ec->intr.expect_event = 0;
                wake_up(&ec->intr.wait);
-               return ACPI_INTERRUPT_HANDLED;
+               break;
        default:
                break;
        }