diff options
author | Len Brown <len.brown@intel.com> | 2010-01-20 01:20:36 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2010-01-20 01:20:36 -0500 |
commit | b07f07e0c24389c45e42a21b728aaea535b61cba (patch) | |
tree | b28a603129659631076c956c1e1f89bc7f63fd6a /drivers/acpi | |
parent | 361243fd62f22abd6c905f59655e87b062434f71 (diff) | |
parent | 54070101f86ca9a6e9ba243c999d144721ec3db7 (diff) |
Merge branch 'ec' into release
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/ec.c | 6 | ||||
-rw-r--r-- | drivers/acpi/sbshc.c | 2 |
2 files changed, 5 insertions, 3 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"); | ||
326 | end: | 327 | end: |
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 | } |
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c index d9339806df45..fd09229282ea 100644 --- a/drivers/acpi/sbshc.c +++ b/drivers/acpi/sbshc.c | |||
@@ -242,7 +242,7 @@ static int smbus_alarm(void *context) | |||
242 | case ACPI_SBS_CHARGER: | 242 | case ACPI_SBS_CHARGER: |
243 | case ACPI_SBS_MANAGER: | 243 | case ACPI_SBS_MANAGER: |
244 | case ACPI_SBS_BATTERY: | 244 | case ACPI_SBS_BATTERY: |
245 | acpi_os_execute(OSL_GPE_HANDLER, | 245 | acpi_os_execute(OSL_NOTIFY_HANDLER, |
246 | acpi_smbus_callback, hc); | 246 | acpi_smbus_callback, hc); |
247 | default:; | 247 | default:; |
248 | } | 248 | } |