From c0e467ab283f34ae85e7037ee4cc5e0050db3dd6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tomasz=20W=C5=82ostowski?= <tomasz.wlostowski@cern.ch>
Date: Tue, 21 May 2013 15:19:14 +0200
Subject: [PATCH] dev/minic.c: mark timed out TX timestamps as invalid

Signed-off-by: Grzegorz Daniluk <grzegorz.daniluk@cern.ch>
---
 dev/minic.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/dev/minic.c b/dev/minic.c
index da3ddc729..79c061ddb 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));
-- 
GitLab