diff options
author | Aaron Durbin <adurbin@chromium.org> | 2014-09-23 16:30:53 -0500 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2015-03-21 17:00:26 +0100 |
commit | 4869111443ce957a1603fe01fefbd4708d00b971 (patch) | |
tree | b052d328216ac2c132e759070a4fa65008893895 /src/ec/google | |
parent | f65153ef07d1d9c3e0c0d6acdd24bfa5e4102b68 (diff) | |
download | coreboot-4869111443ce957a1603fe01fefbd4708d00b971.tar.xz |
chromeec: use stopwatch API
Simplify the SPI timeout by using the stopwatch.
BUG=None
BRANCH=None
TEST=Built nyan. Confirmed stopwatch works independently.
Change-Id: Ida26a0748d4b5a6a28aa8f6e2b92fe2ee4cbe17f
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 900d7ac826b76d49290033c87849bf776684f2c1
Original-Change-Id: I84b7949060326b7c6cc1872420b93bd44604c4d3
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/219493
Original-Reviewed-by: Julius Werner <jwerner@chromium.org>
Original-Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Original-Reviewed-by: David Hendricks <dhendrix@chromium.org>
Reviewed-on: http://review.coreboot.org/8816
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/ec/google')
-rw-r--r-- | src/ec/google/chromeec/ec_spi.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/ec/google/chromeec/ec_spi.c b/src/ec/google/chromeec/ec_spi.c index 6107836153..4b3e587266 100644 --- a/src/ec/google/chromeec/ec_spi.c +++ b/src/ec/google/chromeec/ec_spi.c @@ -57,9 +57,9 @@ static int crosec_spi_io(size_t req_size, size_t resp_size, void *context) } uint8_t byte; - struct mono_time start; - struct rela_time rt; - timer_monotonic_get(&start); + struct stopwatch sw; + // Wait 1s for a framing byte. + stopwatch_init_usecs_expire(&sw, USECS_PER_SEC); while (1) { if (spi_xfer(slave, NULL, 0, &byte, sizeof(byte))) { printk(BIOS_ERR, "%s: Failed to receive byte.\n", @@ -70,9 +70,7 @@ static int crosec_spi_io(size_t req_size, size_t resp_size, void *context) if (byte == EcFramingByte) break; - // Wait 1s for a framing byte. - rt = current_time_from(&start); - if (rela_time_in_microseconds(&rt) > 1000 * 1000) { + if (stopwatch_expired(&sw)) { printk(BIOS_ERR, "%s: Timeout waiting for framing byte.\n", __func__); |