diff options
Diffstat (limited to 'drivers/acpi/ec.c')
-rw-r--r-- | drivers/acpi/ec.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 874f912962c4..8c5d7df7d343 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c | |||
@@ -213,7 +213,7 @@ static int acpi_ec_intr_wait(union acpi_ec *ec, unsigned int event) | |||
213 | 213 | ||
214 | switch (event) { | 214 | switch (event) { |
215 | case ACPI_EC_EVENT_IBE: | 215 | case ACPI_EC_EVENT_IBE: |
216 | if (~acpi_ec_read_status(ec) & event) { | 216 | if (~acpi_ec_read_status(ec) & ACPI_EC_FLAG_IBF) { |
217 | ec->intr.expect_event = 0; | 217 | ec->intr.expect_event = 0; |
218 | return 0; | 218 | return 0; |
219 | } | 219 | } |
@@ -782,12 +782,15 @@ static u32 acpi_ec_gpe_intr_handler(void *data) | |||
782 | case ACPI_EC_EVENT_OBF: | 782 | case ACPI_EC_EVENT_OBF: |
783 | if (!(value & ACPI_EC_FLAG_OBF)) | 783 | if (!(value & ACPI_EC_FLAG_OBF)) |
784 | break; | 784 | break; |
785 | ec->intr.expect_event = 0; | ||
786 | wake_up(&ec->intr.wait); | ||
787 | break; | ||
785 | case ACPI_EC_EVENT_IBE: | 788 | case ACPI_EC_EVENT_IBE: |
786 | if ((value & ACPI_EC_FLAG_IBF)) | 789 | if ((value & ACPI_EC_FLAG_IBF)) |
787 | break; | 790 | break; |
788 | ec->intr.expect_event = 0; | 791 | ec->intr.expect_event = 0; |
789 | wake_up(&ec->intr.wait); | 792 | wake_up(&ec->intr.wait); |
790 | return ACPI_INTERRUPT_HANDLED; | 793 | break; |
791 | default: | 794 | default: |
792 | break; | 795 | break; |
793 | } | 796 | } |