]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
Merge branch 'ec' into release
authorLen Brown <len.brown@intel.com>
Wed, 20 Jan 2010 06:20:36 +0000 (01:20 -0500)
committerLen Brown <len.brown@intel.com>
Wed, 20 Jan 2010 06:20:36 +0000 (01:20 -0500)
drivers/acpi/ec.c
drivers/acpi/sbshc.c

index 9cc38857c33b18383d617856d96cc813c1e0186c..d6471bb6852fb58802a5c9153dcb63fb2c642429 100644 (file)
@@ -259,7 +259,6 @@ static int acpi_ec_transaction_unlocked(struct acpi_ec *ec,
                clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
        spin_unlock_irqrestore(&ec->curr_lock, tmp);
        ret = ec_poll(ec);
-       pr_debug(PREFIX "transaction end\n");
        spin_lock_irqsave(&ec->curr_lock, tmp);
        ec->curr = NULL;
        spin_unlock_irqrestore(&ec->curr_lock, tmp);
@@ -316,6 +315,7 @@ static int acpi_ec_transaction(struct acpi_ec *ec, struct transaction *t)
        /* check if we received SCI during transaction */
        ec_check_sci_sync(ec, acpi_ec_read_status(ec));
        if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) {
+               msleep(1);
                /* it is safe to enable GPE outside of transaction */
                acpi_enable_gpe(NULL, ec->gpe);
        } 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)
                        "transactions will use polling mode\n");
                set_bit(EC_FLAGS_GPE_STORM, &ec->flags);
        }
+       pr_debug(PREFIX "transaction end\n");
 end:
        if (ec->global_lock)
                acpi_release_global_lock(glk);
@@ -535,7 +536,8 @@ static int acpi_ec_sync_query(struct acpi_ec *ec)
                                return -ENOMEM;
                        memcpy(copy, handler, sizeof(*copy));
                        pr_debug(PREFIX "push query execution (0x%2x) on queue\n", value);
-                       return acpi_os_execute(OSL_GPE_HANDLER,
+                       return acpi_os_execute((copy->func) ?
+                               OSL_NOTIFY_HANDLER : OSL_GPE_HANDLER,
                                acpi_ec_run, copy);
                }
        }
index d9339806df45d86da6fcf2a3713edb070d8b0c45..fd09229282eaccd8dda3ccde049b417814c3ad29 100644 (file)
@@ -242,7 +242,7 @@ static int smbus_alarm(void *context)
                case ACPI_SBS_CHARGER:
                case ACPI_SBS_MANAGER:
                case ACPI_SBS_BATTERY:
-                       acpi_os_execute(OSL_GPE_HANDLER,
+                       acpi_os_execute(OSL_NOTIFY_HANDLER,
                                        acpi_smbus_callback, hc);
                default:;
        }