aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/ec.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/ec.c')
-rw-r--r--drivers/acpi/ec.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index 9cc38857c33b..d6471bb6852f 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -259,7 +259,6 @@ static int acpi_ec_transaction_unlocked(struct acpi_ec *ec,
259 clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags); 259 clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
260 spin_unlock_irqrestore(&ec->curr_lock, tmp); 260 spin_unlock_irqrestore(&ec->curr_lock, tmp);
261 ret = ec_poll(ec); 261 ret = ec_poll(ec);
262 pr_debug(PREFIX "transaction end\n");
263 spin_lock_irqsave(&ec->curr_lock, tmp); 262 spin_lock_irqsave(&ec->curr_lock, tmp);
264 ec->curr = NULL; 263 ec->curr = NULL;
265 spin_unlock_irqrestore(&ec->curr_lock, tmp); 264 spin_unlock_irqrestore(&ec->curr_lock, tmp);
@@ -316,6 +315,7 @@ static int acpi_ec_transaction(struct acpi_ec *ec, struct transaction *t)
316 /* check if we received SCI during transaction */ 315 /* check if we received SCI during transaction */
317 ec_check_sci_sync(ec, acpi_ec_read_status(ec)); 316 ec_check_sci_sync(ec, acpi_ec_read_status(ec));
318 if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) { 317 if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) {
318 msleep(1);
319 /* it is safe to enable GPE outside of transaction */ 319 /* it is safe to enable GPE outside of transaction */
320 acpi_enable_gpe(NULL, ec->gpe); 320 acpi_enable_gpe(NULL, ec->gpe);
321 } else if (t->irq_count > ACPI_EC_STORM_THRESHOLD) { 321 } else if (t->irq_count > ACPI_EC_STORM_THRESHOLD) {
@@ -323,6 +323,7 @@ static int acpi_ec_transaction(struct acpi_ec *ec, struct transaction *t)
323 "transactions will use polling mode\n"); 323 "transactions will use polling mode\n");
324 set_bit(EC_FLAGS_GPE_STORM, &ec->flags); 324 set_bit(EC_FLAGS_GPE_STORM, &ec->flags);
325 } 325 }
326 pr_debug(PREFIX "transaction end\n");
326end: 327end:
327 if (ec->global_lock) 328 if (ec->global_lock)
328 acpi_release_global_lock(glk); 329 acpi_release_global_lock(glk);
@@ -535,7 +536,8 @@ static int acpi_ec_sync_query(struct acpi_ec *ec)
535 return -ENOMEM; 536 return -ENOMEM;
536 memcpy(copy, handler, sizeof(*copy)); 537 memcpy(copy, handler, sizeof(*copy));
537 pr_debug(PREFIX "push query execution (0x%2x) on queue\n", value); 538 pr_debug(PREFIX "push query execution (0x%2x) on queue\n", value);
538 return acpi_os_execute(OSL_GPE_HANDLER, 539 return acpi_os_execute((copy->func) ?
540 OSL_NOTIFY_HANDLER : OSL_GPE_HANDLER,
539 acpi_ec_run, copy); 541 acpi_ec_run, copy);
540 } 542 }
541 } 543 }