mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-06 05:13:18 +00:00
ACPI: EC: Clean up status flags checks in advance_transaction()
Eliminate comparisons from the status flags checks in advance_transaction() (especially from the one that is only correct, because the value of the flag checked in there is 1) and rearrange the code for more clarity while at it. No intentional functional impact. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
631734fce3
commit
2a39a30f0d
@ -667,25 +667,24 @@ static void advance_transaction(struct acpi_ec *ec, bool interrupt)
|
||||
|
||||
if (t->flags & ACPI_EC_COMMAND_POLL) {
|
||||
if (t->wlen > t->wi) {
|
||||
if ((status & ACPI_EC_FLAG_IBF) == 0)
|
||||
if (!(status & ACPI_EC_FLAG_IBF))
|
||||
acpi_ec_write_data(ec, t->wdata[t->wi++]);
|
||||
else if (interrupt && !(status & ACPI_EC_FLAG_SCI))
|
||||
acpi_ec_spurious_interrupt(ec, t);
|
||||
} else if (t->rlen > t->ri) {
|
||||
if ((status & ACPI_EC_FLAG_OBF) == 1) {
|
||||
if (status & ACPI_EC_FLAG_OBF) {
|
||||
t->rdata[t->ri++] = acpi_ec_read_data(ec);
|
||||
if (t->rlen == t->ri) {
|
||||
ec_transaction_transition(ec, ACPI_EC_COMMAND_COMPLETE);
|
||||
wakeup = true;
|
||||
if (t->command == ACPI_EC_COMMAND_QUERY)
|
||||
ec_dbg_evt("Command(%s) completed by hardware",
|
||||
acpi_ec_cmd_string(ACPI_EC_COMMAND_QUERY));
|
||||
wakeup = true;
|
||||
}
|
||||
} else if (interrupt && !(status & ACPI_EC_FLAG_SCI)) {
|
||||
acpi_ec_spurious_interrupt(ec, t);
|
||||
}
|
||||
} else if (t->wlen == t->wi &&
|
||||
(status & ACPI_EC_FLAG_IBF) == 0) {
|
||||
} else if (t->wlen == t->wi && !(status & ACPI_EC_FLAG_IBF)) {
|
||||
ec_transaction_transition(ec, ACPI_EC_COMMAND_COMPLETE);
|
||||
wakeup = true;
|
||||
}
|
||||
@ -697,6 +696,7 @@ static void advance_transaction(struct acpi_ec *ec, bool interrupt)
|
||||
out:
|
||||
if (status & ACPI_EC_FLAG_SCI)
|
||||
acpi_ec_submit_query(ec);
|
||||
|
||||
if (wakeup && interrupt)
|
||||
wake_up(&ec->wait);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user