aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/acpi/ec.c6
-rw-r--r--drivers/acpi/internal.h1
-rw-r--r--drivers/acpi/sleep.c7
3 files changed, 14 insertions, 0 deletions
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index 30a572956557..bb94cf0731fe 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -1034,6 +1034,12 @@ void acpi_ec_unblock_transactions(void)
1034 acpi_ec_start(first_ec, true); 1034 acpi_ec_start(first_ec, true);
1035} 1035}
1036 1036
1037void acpi_ec_dispatch_gpe(void)
1038{
1039 if (first_ec)
1040 acpi_dispatch_gpe(NULL, first_ec->gpe);
1041}
1042
1037/* -------------------------------------------------------------------------- 1043/* --------------------------------------------------------------------------
1038 Event Management 1044 Event Management
1039 -------------------------------------------------------------------------- */ 1045 -------------------------------------------------------------------------- */
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
index 1d0a501bc7f0..530a3f675490 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -188,6 +188,7 @@ int acpi_ec_ecdt_probe(void);
188int acpi_ec_dsdt_probe(void); 188int acpi_ec_dsdt_probe(void);
189void acpi_ec_block_transactions(void); 189void acpi_ec_block_transactions(void);
190void acpi_ec_unblock_transactions(void); 190void acpi_ec_unblock_transactions(void);
191void acpi_ec_dispatch_gpe(void);
191int acpi_ec_add_query_handler(struct acpi_ec *ec, u8 query_bit, 192int acpi_ec_add_query_handler(struct acpi_ec *ec, u8 query_bit,
192 acpi_handle handle, acpi_ec_query_func func, 193 acpi_handle handle, acpi_ec_query_func func,
193 void *data); 194 void *data);
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index 974e58457697..5d0486f1cfcd 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -989,6 +989,13 @@ static void acpi_s2idle_wake(void)
989 !irqd_is_wakeup_armed(irq_get_irq_data(acpi_sci_irq))) { 989 !irqd_is_wakeup_armed(irq_get_irq_data(acpi_sci_irq))) {
990 pm_system_cancel_wakeup(); 990 pm_system_cancel_wakeup();
991 s2idle_wakeup = true; 991 s2idle_wakeup = true;
992 /*
993 * On some platforms with the LPS0 _DSM device noirq resume
994 * takes too much time for EC wakeup events to survive, so look
995 * for them now.
996 */
997 if (lps0_device_handle)
998 acpi_ec_dispatch_gpe();
992 } 999 }
993} 1000}
994 1001