Patrick Georgi (pgeorgi@google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8811
-gerrit
commit 687c27a807b1ac7cc7cf67f34b14cdc14b4d1c08 Author: Aaron Durbin adurbin@chromium.org Date: Tue Sep 23 16:30:53 2014 -0500
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: I84b7949060326b7c6cc1872420b93bd44604c4d3 Signed-off-by: Aaron Durbin adurbin@chromium.org Reviewed-on: https://chromium-review.googlesource.com/219493 Reviewed-by: Julius Werner jwerner@chromium.org Reviewed-by: Furquan Shaikh furquan@chromium.org Reviewed-by: David Hendricks dhendrix@chromium.org --- src/ec/google/chromeec/ec_spi.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/src/ec/google/chromeec/ec_spi.c b/src/ec/google/chromeec/ec_spi.c index f1bdd3c..ad9a338 100644 --- a/src/ec/google/chromeec/ec_spi.c +++ b/src/ec/google/chromeec/ec_spi.c @@ -40,9 +40,9 @@ static int crosec_spi_io(uint8_t *write_bytes, size_t write_size, }
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", @@ -53,9 +53,7 @@ static int crosec_spi_io(uint8_t *write_bytes, size_t write_size, 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__);