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>
This commit is contained in:
parent
bc623a1b36
commit
900d7ac826
1 changed files with 4 additions and 6 deletions
|
|
@ -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__);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue