summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2015-01-26 19:27:30 +0000
committerjkim <jkim@FreeBSD.org>2015-01-26 19:27:30 +0000
commit8459b965f7a842aaabd4b53e080bd15b094fbff5 (patch)
treec495853c04dd2c3b31601307f2a479cba08ababb /sys/dev/acpica
parent2c7d513fe440215e1d96d17cc49146e2ca42f3bc (diff)
downloadFreeBSD-src-8459b965f7a842aaabd4b53e080bd15b094fbff5.zip
FreeBSD-src-8459b965f7a842aaabd4b53e080bd15b094fbff5.tar.gz
MFC: r277594
Simplify retry loops.
Diffstat (limited to 'sys/dev/acpica')
-rw-r--r--sys/dev/acpica/acpi_ec.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/sys/dev/acpica/acpi_ec.c b/sys/dev/acpica/acpi_ec.c
index 4f11385..5c79a95 100644
--- a/sys/dev/acpica/acpi_ec.c
+++ b/sys/dev/acpica/acpi_ec.c
@@ -648,10 +648,8 @@ EcGpeQueryHandler(void *Context)
Status = EcCommand(sc, EC_COMMAND_QUERY);
if (ACPI_SUCCESS(Status))
break;
- if (ACPI_SUCCESS(EcCheckStatus(sc, "retr_check",
+ if (ACPI_FAILURE(EcCheckStatus(sc, "retr_check",
EC_EVENT_INPUT_BUFFER_EMPTY)))
- continue;
- else
break;
}
sc->ec_sci_pend = FALSE;
@@ -966,15 +964,13 @@ EcRead(struct acpi_ec_softc *sc, UINT8 Address, UINT8 *Data)
gen_count = sc->ec_gencount;
EC_SET_DATA(sc, Address);
status = EcWaitEvent(sc, EC_EVENT_OUTPUT_BUFFER_FULL, gen_count);
- if (ACPI_FAILURE(status)) {
- if (ACPI_SUCCESS(EcCheckStatus(sc, "retr_check",
- EC_EVENT_INPUT_BUFFER_EMPTY)))
- continue;
- else
- break;
+ if (ACPI_SUCCESS(status)) {
+ *Data = EC_GET_DATA(sc);
+ return (AE_OK);
}
- *Data = EC_GET_DATA(sc);
- return (AE_OK);
+ if (ACPI_FAILURE(EcCheckStatus(sc, "retr_check",
+ EC_EVENT_INPUT_BUFFER_EMPTY)))
+ break;
}
device_printf(sc->ec_dev, "EcRead: failed waiting to get data\n");
return (status);
OpenPOWER on IntegriCloud