diff --git a/dev/minic.c b/dev/minic.c index da3ddc7290f08613fc1335c27454f37ab059bad3..79c061ddb47c2d6f0fe6d20f9cad94f9059207fa 100644 --- a/dev/minic.c +++ b/dev/minic.c @@ -338,17 +338,24 @@ int minic_tx_frame(uint8_t * hdr, uint8_t * payload, uint32_t size, uint32_t nsec; /* wait for the timestamp */ - for (i = 0; i < 1000; ++i) { + for (i = 0; i < 100; ++i) { mcr = minic_readl(MINIC_REG_MCR); if ((mcr & MINIC_MCR_TX_TS_READY) != 0) break; timer_delay(1); } - if (i == 1000) + ts_valid = 1; + + if (i == 100) + { mprintf("Warning: tx timestamp never became available\n"); + ts_valid = 0; + } + - ts_valid = (uint8_t)(minic_readl(MINIC_REG_TSR0) - & MINIC_TSR0_VALID); + if(ts_valid) + ts_valid = (uint8_t)(minic_readl(MINIC_REG_TSR0) + & MINIC_TSR0_VALID); raw_ts = minic_readl(MINIC_REG_TSR1); fid = MINIC_TSR0_FID_R(minic_readl(MINIC_REG_TSR0));