diff --git a/master/fsm.c b/master/fsm.c index 7792750714a3bd773e9dd2c0ddecf3a7903c32fe..bb49ea7a1d24b3627df5503fb1fba47e8da98fdb 100644 --- a/master/fsm.c +++ b/master/fsm.c @@ -1649,7 +1649,7 @@ void ec_fsm_sii_read_fetch(ec_fsm_t *fsm /**< finite state machine */) if (EC_READ_U8(datagram->data + 1) & 0x81) { // still busy... timeout? if (get_cycles() - fsm->sii_start >= (cycles_t) 10 * cpu_khz) { - EC_ERR("SII: Timeout.\n"); + EC_ERR("SII: Read timeout.\n"); fsm->sii_state = ec_fsm_error; #if 0 EC_DBG("SII busy: %02X %02X %02X %02X\n", @@ -1658,6 +1658,7 @@ void ec_fsm_sii_read_fetch(ec_fsm_t *fsm /**< finite state machine */) EC_READ_U8(datagram->data + 2), EC_READ_U8(datagram->data + 3)); #endif + return; } // issue check/fetch datagram again @@ -1752,18 +1753,22 @@ void ec_fsm_sii_write_check2(ec_fsm_t *fsm /**< finite state machine */) if (get_cycles() - fsm->sii_start >= (cycles_t) 10 * cpu_khz) { EC_ERR("SII: Write timeout.\n"); fsm->sii_state = ec_fsm_error; + return; } // issue check/fetch datagram again ec_master_queue_datagram(fsm->master, datagram); + return; } - else if (EC_READ_U8(datagram->data + 1) & 0x40) { + + if (EC_READ_U8(datagram->data + 1) & 0x40) { EC_ERR("SII: Write operation failed!\n"); fsm->sii_state = ec_fsm_error; + return; } - else { // success - fsm->sii_state = ec_fsm_end; - } + + // success + fsm->sii_state = ec_fsm_end; } /******************************************************************************