mirror of https://gitee.com/openkylin/linux.git
Merge branch 'ec' into release
This commit is contained in:
commit
b07f07e0c2
|
@ -259,7 +259,6 @@ static int acpi_ec_transaction_unlocked(struct acpi_ec *ec,
|
||||||
clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
|
clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
|
||||||
spin_unlock_irqrestore(&ec->curr_lock, tmp);
|
spin_unlock_irqrestore(&ec->curr_lock, tmp);
|
||||||
ret = ec_poll(ec);
|
ret = ec_poll(ec);
|
||||||
pr_debug(PREFIX "transaction end\n");
|
|
||||||
spin_lock_irqsave(&ec->curr_lock, tmp);
|
spin_lock_irqsave(&ec->curr_lock, tmp);
|
||||||
ec->curr = NULL;
|
ec->curr = NULL;
|
||||||
spin_unlock_irqrestore(&ec->curr_lock, tmp);
|
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 */
|
/* check if we received SCI during transaction */
|
||||||
ec_check_sci_sync(ec, acpi_ec_read_status(ec));
|
ec_check_sci_sync(ec, acpi_ec_read_status(ec));
|
||||||
if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) {
|
if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) {
|
||||||
|
msleep(1);
|
||||||
/* it is safe to enable GPE outside of transaction */
|
/* it is safe to enable GPE outside of transaction */
|
||||||
acpi_enable_gpe(NULL, ec->gpe);
|
acpi_enable_gpe(NULL, ec->gpe);
|
||||||
} else if (t->irq_count > ACPI_EC_STORM_THRESHOLD) {
|
} 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");
|
"transactions will use polling mode\n");
|
||||||
set_bit(EC_FLAGS_GPE_STORM, &ec->flags);
|
set_bit(EC_FLAGS_GPE_STORM, &ec->flags);
|
||||||
}
|
}
|
||||||
|
pr_debug(PREFIX "transaction end\n");
|
||||||
end:
|
end:
|
||||||
if (ec->global_lock)
|
if (ec->global_lock)
|
||||||
acpi_release_global_lock(glk);
|
acpi_release_global_lock(glk);
|
||||||
|
@ -535,7 +536,8 @@ static int acpi_ec_sync_query(struct acpi_ec *ec)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
memcpy(copy, handler, sizeof(*copy));
|
memcpy(copy, handler, sizeof(*copy));
|
||||||
pr_debug(PREFIX "push query execution (0x%2x) on queue\n", value);
|
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);
|
acpi_ec_run, copy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -242,7 +242,7 @@ static int smbus_alarm(void *context)
|
||||||
case ACPI_SBS_CHARGER:
|
case ACPI_SBS_CHARGER:
|
||||||
case ACPI_SBS_MANAGER:
|
case ACPI_SBS_MANAGER:
|
||||||
case ACPI_SBS_BATTERY:
|
case ACPI_SBS_BATTERY:
|
||||||
acpi_os_execute(OSL_GPE_HANDLER,
|
acpi_os_execute(OSL_NOTIFY_HANDLER,
|
||||||
acpi_smbus_callback, hc);
|
acpi_smbus_callback, hc);
|
||||||
default:;
|
default:;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue