[U-Boot] [PATCH v1 (WIP) 12/16] [Timer]Replace get_timer() usage in drivers/
Graeme Russ
graeme.russ at gmail.com
Tue Jun 28 13:41:05 CEST 2011
Signed-off-by: Graeme Russ <graeme.russ at gmail.com>
---
drivers/fpga/ACEX1K.c | 5 ++-
drivers/fpga/cyclon2.c | 5 ++-
drivers/fpga/spartan2.c | 30 +++++++++++--------
drivers/fpga/spartan3.c | 32 +++++++++++++--------
drivers/fpga/virtex2.c | 20 ++++++++-----
drivers/i2c/bfin-twi_i2c.c | 6 ++--
drivers/i2c/spr_i2c.c | 28 ++++++++++--------
drivers/i2c/u8500_i2c.c | 8 ++--
drivers/input/ps2mult.c | 6 ++--
drivers/mmc/omap_hsmmc.c | 57 ++++++++++++++++++++-----------------
drivers/mtd/spi/atmel.c | 4 +-
drivers/net/4xx_enet.c | 8 ++---
drivers/net/bcm570x.c | 2 +-
drivers/net/cs8900.c | 17 ++++++-----
drivers/net/dm9000x.c | 6 ++--
drivers/net/ethoc.c | 6 ++--
drivers/net/fec_mxc.c | 18 ++++++------
drivers/net/ftgmac100.c | 6 ++--
drivers/net/ftmac100.c | 6 ++--
drivers/net/greth.c | 16 +++++-----
drivers/net/lan91c96.c | 5 ++-
drivers/net/ne2000_base.c | 6 ++--
drivers/net/netarm_eth.c | 12 ++++---
drivers/net/ns7520_eth.c | 5 ++-
drivers/net/ns9750_eth.c | 4 +-
drivers/net/rtl8139.c | 6 ++--
drivers/net/rtl8169.c | 26 ++++++++---------
drivers/net/smc91111.c | 4 +-
drivers/serial/serial_clps7111.c | 6 ++--
drivers/serial/serial_netarm.c | 4 +-
drivers/spi/atmel_dataflash_spi.c | 8 ++---
drivers/usb/gadget/ether.c | 25 ++++++++--------
drivers/usb/host/ehci-hcd.c | 8 ++--
drivers/usb/host/sl811-hcd.c | 5 ++-
34 files changed, 220 insertions(+), 190 deletions(-)
diff --git a/drivers/fpga/ACEX1K.c b/drivers/fpga/ACEX1K.c
index 06b4247..7a8e744 100644
--- a/drivers/fpga/ACEX1K.c
+++ b/drivers/fpga/ACEX1K.c
@@ -156,10 +156,11 @@ static int ACEX1K_ps_load (Altera_desc * desc, void *buf, size_t bsize)
udelay(2); /* T_cf2st1 < 4us */
/* Wait for nSTATUS to be released (i.e. deasserted) */
- ts = get_timer (0); /* get current time */
+ ts = timer_ms_now(); /* get current time */
do {
CONFIG_FPGA_DELAY ();
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+ if (time_ms_delta_min(ts, timer_ms_now()) >
+ CONFIG_SYS_FPGA_WAIT) { /* check the time */
puts ("** Timeout waiting for STATUS to go high.\n");
(*fn->abort) (cookie);
return FPGA_FAIL;
diff --git a/drivers/fpga/cyclon2.c b/drivers/fpga/cyclon2.c
index 4622b4e..5dd6cdd 100644
--- a/drivers/fpga/cyclon2.c
+++ b/drivers/fpga/cyclon2.c
@@ -139,10 +139,11 @@ static int CYC2_ps_load (Altera_desc * desc, void *buf, size_t bsize)
udelay(2); /* T_cfg > 2us */
/* Wait for nSTATUS to be asserted */
- ts = get_timer (0); /* get current time */
+ ts = time_now_ms(); /* get current time */
do {
CONFIG_FPGA_DELAY ();
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+ /* check the time */
+ if (time_since_ms(ts) > CONFIG_SYS_FPGA_WAIT) {
puts ("** Timeout waiting for STATUS to go high.\n");
(*fn->abort) (cookie);
return FPGA_FAIL;
diff --git a/drivers/fpga/spartan2.c b/drivers/fpga/spartan2.c
index cd16a9c..cab68ef 100644
--- a/drivers/fpga/spartan2.c
+++ b/drivers/fpga/spartan2.c
@@ -168,11 +168,12 @@ static int Spartan2_sp_load (Xilinx_desc * desc, void *buf, size_t bsize)
CONFIG_FPGA_DELAY ();
(*fn->pgm) (FALSE, TRUE, cookie); /* Deassert the program, commit */
- ts = get_timer (0); /* get current time */
+ ts = time_now_ms(); /* get current time */
/* Now wait for INIT and BUSY to go high */
do {
CONFIG_FPGA_DELAY ();
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+ /* check the time */
+ if (time_sine_ms(ts) > CONFIG_SYS_FPGA_WAIT) {
puts ("** Timeout waiting for INIT to clear.\n");
(*fn->abort) (cookie); /* abort the burn */
return FPGA_FAIL;
@@ -195,7 +196,7 @@ static int Spartan2_sp_load (Xilinx_desc * desc, void *buf, size_t bsize)
(*fn->clk) (TRUE, TRUE, cookie); /* Assert the clock pin */
#ifdef CONFIG_SYS_FPGA_CHECK_BUSY
- ts = get_timer (0); /* get current time */
+ ts = time_now_ms(); /* get current time */
while ((*fn->busy) (cookie)) {
/* XXX - we should have a check in here somewhere to
* make sure we aren't busy forever... */
@@ -205,7 +206,8 @@ static int Spartan2_sp_load (Xilinx_desc * desc, void *buf, size_t bsize)
CONFIG_FPGA_DELAY ();
(*fn->clk) (TRUE, TRUE, cookie); /* Assert the clock pin */
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+ /* check the time */
+ if (time_since_ms(ts) > CONFIG_SYS_FPGA_WAIT) {
puts ("** Timeout waiting for BUSY to clear.\n");
(*fn->abort) (cookie); /* abort the burn */
return FPGA_FAIL;
@@ -228,7 +230,7 @@ static int Spartan2_sp_load (Xilinx_desc * desc, void *buf, size_t bsize)
#endif
/* now check for done signal */
- ts = get_timer (0); /* get current time */
+ ts = time_now_ms(); /* get current time */
ret_val = FPGA_SUCCESS;
while ((*fn->done) (cookie) == FPGA_FAIL) {
@@ -237,7 +239,8 @@ static int Spartan2_sp_load (Xilinx_desc * desc, void *buf, size_t bsize)
CONFIG_FPGA_DELAY ();
(*fn->clk) (TRUE, TRUE, cookie); /* Assert the clock pin */
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+ /* check the time */
+ if (time_sine_ms(ts) > CONFIG_SYS_FPGA_WAIT) {
puts ("** Timeout waiting for DONE to clear.\n");
(*fn->abort) (cookie); /* abort the burn */
ret_val = FPGA_FAIL;
@@ -354,10 +357,11 @@ static int Spartan2_ss_load (Xilinx_desc * desc, void *buf, size_t bsize)
(*fn->pgm) (TRUE, TRUE, cookie); /* Assert the program, commit */
/* Wait for INIT state (init low) */
- ts = get_timer (0); /* get current time */
+ ts = time_now_ms(); /* get current time */
do {
CONFIG_FPGA_DELAY ();
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+ /* check the time */
+ if (time_since_ms(ts) > CONFIG_SYS_FPGA_WAIT) {
puts ("** Timeout waiting for INIT to start.\n");
return FPGA_FAIL;
}
@@ -367,11 +371,12 @@ static int Spartan2_ss_load (Xilinx_desc * desc, void *buf, size_t bsize)
CONFIG_FPGA_DELAY ();
(*fn->pgm) (FALSE, TRUE, cookie); /* Deassert the program, commit */
- ts = get_timer (0); /* get current time */
+ ts = time_now_ms(); /* get current time */
/* Now wait for INIT to go high */
do {
CONFIG_FPGA_DELAY ();
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+ /* check the time */
+ if (time_since_ms(ts) > CONFIG_SYS_FPGA_WAIT) {
puts ("** Timeout waiting for INIT to clear.\n");
return FPGA_FAIL;
}
@@ -415,7 +420,7 @@ static int Spartan2_ss_load (Xilinx_desc * desc, void *buf, size_t bsize)
#endif
/* now check for done signal */
- ts = get_timer (0); /* get current time */
+ ts = time_now_ms(); /* get current time */
ret_val = FPGA_SUCCESS;
(*fn->wr) (TRUE, TRUE, cookie);
@@ -428,7 +433,8 @@ static int Spartan2_ss_load (Xilinx_desc * desc, void *buf, size_t bsize)
putc ('*');
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+ /* check the time */
+ if (time_since_ms(ts) > CONFIG_SYS_FPGA_WAIT) {
puts ("** Timeout waiting for DONE to clear.\n");
ret_val = FPGA_FAIL;
break;
diff --git a/drivers/fpga/spartan3.c b/drivers/fpga/spartan3.c
index 1dd6f26..8282a23 100644
--- a/drivers/fpga/spartan3.c
+++ b/drivers/fpga/spartan3.c
@@ -173,11 +173,12 @@ static int Spartan3_sp_load (Xilinx_desc * desc, void *buf, size_t bsize)
CONFIG_FPGA_DELAY ();
(*fn->pgm) (FALSE, TRUE, cookie); /* Deassert the program, commit */
- ts = get_timer (0); /* get current time */
+ ts = time_now_ms(); /* get current time */
/* Now wait for INIT and BUSY to go high */
do {
CONFIG_FPGA_DELAY ();
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+ /* check the time */
+ if (time_since_ms(ts) > CONFIG_SYS_FPGA_WAIT) {
puts ("** Timeout waiting for INIT to clear.\n");
(*fn->abort) (cookie); /* abort the burn */
return FPGA_FAIL;
@@ -200,7 +201,7 @@ static int Spartan3_sp_load (Xilinx_desc * desc, void *buf, size_t bsize)
(*fn->clk) (TRUE, TRUE, cookie); /* Assert the clock pin */
#ifdef CONFIG_SYS_FPGA_CHECK_BUSY
- ts = get_timer (0); /* get current time */
+ ts = time_now_ms(); /* get current time */
while ((*fn->busy) (cookie)) {
/* XXX - we should have a check in here somewhere to
* make sure we aren't busy forever... */
@@ -210,7 +211,8 @@ static int Spartan3_sp_load (Xilinx_desc * desc, void *buf, size_t bsize)
CONFIG_FPGA_DELAY ();
(*fn->clk) (TRUE, TRUE, cookie); /* Assert the clock pin */
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+ /* check the time */
+ if (time_since_ms(ts) > CONFIG_SYS_FPGA_WAIT) {
puts ("** Timeout waiting for BUSY to clear.\n");
(*fn->abort) (cookie); /* abort the burn */
return FPGA_FAIL;
@@ -233,7 +235,7 @@ static int Spartan3_sp_load (Xilinx_desc * desc, void *buf, size_t bsize)
#endif
/* now check for done signal */
- ts = get_timer (0); /* get current time */
+ ts = time_since_ms(); /* get current time */
ret_val = FPGA_SUCCESS;
while ((*fn->done) (cookie) == FPGA_FAIL) {
/* XXX - we should have a check in here somewhere to
@@ -244,7 +246,8 @@ static int Spartan3_sp_load (Xilinx_desc * desc, void *buf, size_t bsize)
CONFIG_FPGA_DELAY ();
(*fn->clk) (TRUE, TRUE, cookie); /* Assert the clock pin */
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+ /* check the time */
+ if (time_since_ms(ts) > CONFIG_SYS_FPGA_WAIT) {
puts ("** Timeout waiting for DONE to clear.\n");
(*fn->abort) (cookie); /* abort the burn */
ret_val = FPGA_FAIL;
@@ -361,10 +364,12 @@ static int Spartan3_ss_load (Xilinx_desc * desc, void *buf, size_t bsize)
(*fn->pgm) (TRUE, TRUE, cookie); /* Assert the program, commit */
/* Wait for INIT state (init low) */
- ts = get_timer (0); /* get current time */
+ ts = time_now_ms(); /* get current time */
do {
CONFIG_FPGA_DELAY ();
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+
+ /* check the time */
+ if (time_since_ms(ts) > CONFIG_SYS_FPGA_WAIT) {
puts ("** Timeout waiting for INIT to start.\n");
if (*fn->abort)
(*fn->abort) (cookie);
@@ -376,11 +381,13 @@ static int Spartan3_ss_load (Xilinx_desc * desc, void *buf, size_t bsize)
CONFIG_FPGA_DELAY ();
(*fn->pgm) (FALSE, TRUE, cookie); /* Deassert the program, commit */
- ts = get_timer (0); /* get current time */
+ ts = time_now_ms(); /* get current time */
/* Now wait for INIT to go high */
do {
CONFIG_FPGA_DELAY ();
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+
+ /* check the time */
+ if (time_since_ms(ts) > CONFIG_SYS_FPGA_WAIT) {
puts ("** Timeout waiting for INIT to clear.\n");
if (*fn->abort)
(*fn->abort) (cookie);
@@ -432,7 +439,7 @@ static int Spartan3_ss_load (Xilinx_desc * desc, void *buf, size_t bsize)
#endif
/* now check for done signal */
- ts = get_timer (0); /* get current time */
+ ts = time_now_ms(); /* get current time */
ret_val = FPGA_SUCCESS;
(*fn->wr) (TRUE, TRUE, cookie);
@@ -447,7 +454,8 @@ static int Spartan3_ss_load (Xilinx_desc * desc, void *buf, size_t bsize)
putc ('*');
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT) { /* check the time */
+ /* check the time */
+ if (time_since_ms(ts) > CONFIG_SYS_FPGA_WAIT) {
puts ("** Timeout waiting for DONE to clear.\n");
ret_val = FPGA_FAIL;
break;
diff --git a/drivers/fpga/virtex2.c b/drivers/fpga/virtex2.c
index d1b4d15..d1995e6 100644
--- a/drivers/fpga/virtex2.c
+++ b/drivers/fpga/virtex2.c
@@ -223,9 +223,10 @@ static int Virtex2_ssm_load (Xilinx_desc * desc, void *buf, size_t bsize)
*/
(*fn->pgm) (TRUE, TRUE, cookie);
udelay (10);
- ts = get_timer (0);
+ ts = time_ms_now();
do {
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT_INIT) {
+ if (time_ms_delta_min(ts, timer_ms_now())
+ > CONFIG_SYS_FPGA_WAIT_INIT) {
printf ("%s:%d: ** Timeout after %d ticks waiting for INIT"
" to assert.\n", __FUNCTION__, __LINE__,
CONFIG_SYS_FPGA_WAIT_INIT);
@@ -241,10 +242,11 @@ static int Virtex2_ssm_load (Xilinx_desc * desc, void *buf, size_t bsize)
/*
* Start a timer and wait for INIT_B to go high
*/
- ts = get_timer (0);
+ ts = time_ms_now();
do {
CONFIG_FPGA_DELAY ();
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT_INIT) {
+ if (time_ms_delta_min(ts, timer_ms_now())
+ > CONFIG_SYS_FPGA_WAIT_INIT) {
printf ("%s:%d: ** Timeout after %d ticks waiting for INIT"
" to deassert.\n", __FUNCTION__, __LINE__,
CONFIG_SYS_FPGA_WAIT_INIT);
@@ -297,9 +299,10 @@ static int Virtex2_ssm_load (Xilinx_desc * desc, void *buf, size_t bsize)
(*fn->clk) (TRUE, TRUE, cookie);
#ifdef CONFIG_SYS_FPGA_CHECK_BUSY
- ts = get_timer (0);
+ ts = time_ms_now();
while ((*fn->busy) (cookie)) {
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT_BUSY) {
+ if (time_ms_delta_min(ts, timer_ms_now())
+ > CONFIG_SYS_FPGA_WAIT_BUSY) {
printf ("%s:%d: ** Timeout after %d ticks waiting for"
" BUSY to deassert\n",
__FUNCTION__, __LINE__, CONFIG_SYS_FPGA_WAIT_BUSY);
@@ -330,10 +333,11 @@ static int Virtex2_ssm_load (Xilinx_desc * desc, void *buf, size_t bsize)
* Check for successful configuration. FPGA INIT_B and DONE should
* both be high upon successful configuration.
*/
- ts = get_timer (0);
+ ts = time_ms_now();
ret_val = FPGA_SUCCESS;
while (((*fn->done) (cookie) == FPGA_FAIL) || (*fn->init) (cookie)) {
- if (get_timer (ts) > CONFIG_SYS_FPGA_WAIT_CONFIG) {
+ if (time_ms_delta_min(ts, timer_ms_now())
+ > CONFIG_SYS_FPGA_WAIT_CONFIG) {
printf ("%s:%d: ** Timeout after %d ticks waiting for DONE to"
"assert and INIT to deassert\n",
__FUNCTION__, __LINE__, CONFIG_SYS_FPGA_WAIT_CONFIG);
diff --git a/drivers/i2c/bfin-twi_i2c.c b/drivers/i2c/bfin-twi_i2c.c
index b3a04d3..66f3677 100644
--- a/drivers/i2c/bfin-twi_i2c.c
+++ b/drivers/i2c/bfin-twi_i2c.c
@@ -94,7 +94,7 @@ struct i2c_msg {
static int wait_for_completion(struct i2c_msg *msg)
{
uint16_t int_stat;
- ulong timebase = get_timer(0);
+ u32 timebase = time_ms_now();
do {
int_stat = twi->int_stat;
@@ -146,9 +146,9 @@ static int wait_for_completion(struct i2c_msg *msg)
/* If we were able to do something, reset timeout */
if (int_stat)
- timebase = get_timer(0);
+ timebase = time_ms_now();
- } while (get_timer(timebase) < I2C_TIMEOUT);
+ } while time_ms_delta_min(timebase, timer_ms_now()) < I2C_TIMEOUT);
return msg->len;
}
diff --git a/drivers/i2c/spr_i2c.c b/drivers/i2c/spr_i2c.c
index eabfe84..de5cd10 100644
--- a/drivers/i2c/spr_i2c.c
+++ b/drivers/i2c/spr_i2c.c
@@ -168,13 +168,14 @@ static void i2c_flush_rxfifo(void)
*/
static int i2c_wait_for_bb(void)
{
- unsigned long start_time_bb = get_timer(0);
+ u32 start_time_bb = time_ms_now();
while ((readl(&i2c_regs_p->ic_status) & IC_STATUS_MA) ||
!(readl(&i2c_regs_p->ic_status) & IC_STATUS_TFE)) {
/* Evaluate timeout */
- if (get_timer(start_time_bb) > (unsigned long)(I2C_BYTE_TO_BB))
+ if (time_ms_delta_min(start_time_bb, timer_ms_now())
+ > (unsigned long)(I2C_BYTE_TO_BB))
return 1;
}
@@ -217,13 +218,14 @@ static int i2c_xfer_init(uchar chip, uint addr)
static int i2c_xfer_finish(void)
{
- ulong start_stop_det = get_timer(0);
+ u32 start_stop_det = time_ms_now();
while (1) {
if ((readl(&i2c_regs_p->ic_raw_intr_stat) & IC_STOP_DET)) {
readl(&i2c_regs_p->ic_clr_stop_det);
break;
- } else if (get_timer(start_stop_det) > I2C_STOPDET_TO) {
+ } else if (time_ms_delta_min(start_stop_det, timer_ms_now())
+ > I2C_STOPDET_TO) {
break;
}
}
@@ -253,7 +255,7 @@ static int i2c_xfer_finish(void)
*/
int i2c_read(uchar chip, uint addr, int alen, uchar *buffer, int len)
{
- unsigned long start_time_rx;
+ u32 start_time_rx;
if (check_params(addr, alen, buffer, len))
return 1;
@@ -261,16 +263,17 @@ int i2c_read(uchar chip, uint addr, int alen, uchar *buffer, int len)
if (i2c_xfer_init(chip, addr))
return 1;
- start_time_rx = get_timer(0);
+ start_time_rx = time_ms_now();
while (len) {
writel(IC_CMD, &i2c_regs_p->ic_cmd_data);
if (readl(&i2c_regs_p->ic_status) & IC_STATUS_RFNE) {
*buffer++ = (uchar)readl(&i2c_regs_p->ic_cmd_data);
len--;
- start_time_rx = get_timer(0);
+ start_time_rx = time_ms_now();
- } else if (get_timer(start_time_rx) > I2C_BYTE_TO) {
+ } else if (time_ms_delta_min(start_time_rx, timer_ms_now())
+ > I2C_BYTE_TO) {
printf("Timed out. i2c read Failed\n");
return 1;
}
@@ -292,7 +295,7 @@ int i2c_read(uchar chip, uint addr, int alen, uchar *buffer, int len)
int i2c_write(uchar chip, uint addr, int alen, uchar *buffer, int len)
{
int nb = len;
- unsigned long start_time_tx;
+ u32 start_time_tx;
if (check_params(addr, alen, buffer, len))
return 1;
@@ -300,15 +303,16 @@ int i2c_write(uchar chip, uint addr, int alen, uchar *buffer, int len)
if (i2c_xfer_init(chip, addr))
return 1;
- start_time_tx = get_timer(0);
+ start_time_tx = time_ms_now();
while (len) {
if (readl(&i2c_regs_p->ic_status) & IC_STATUS_TFNF) {
writel(*buffer, &i2c_regs_p->ic_cmd_data);
buffer++;
len--;
- start_time_tx = get_timer(0);
+ start_time_tx = time_ms_now();
- } else if (get_timer(start_time_tx) > (nb * I2C_BYTE_TO)) {
+ } else if (time_ms_delta_min(start_time_tx, timer_ms_now()
+ > (nb * I2C_BYTE_TO)) {
printf("Timed out. i2c write Failed\n");
return 1;
}
diff --git a/drivers/i2c/u8500_i2c.c b/drivers/i2c/u8500_i2c.c
index ea8a71d..488c1ea 100644
--- a/drivers/i2c/u8500_i2c.c
+++ b/drivers/i2c/u8500_i2c.c
@@ -180,12 +180,12 @@ void i2c_init(int speed, int slaveaddr)
*/
static int loop_till_bit_clear(void *io_reg, u32 mask, unsigned long timeout)
{
- unsigned long timebase = get_timer(0);
+ unsigned long timebase = time_now_ms();
do {
if ((readl(io_reg) & mask) == 0x0UL)
return 0;
- } while (get_timer(timebase) < timeout);
+ } while (time_since_ms(timebase) < timeout);
debug("loop_till_bit_clear timed out\n");
return -1;
@@ -199,12 +199,12 @@ static int loop_till_bit_clear(void *io_reg, u32 mask, unsigned long timeout)
*/
static int loop_till_bit_set(void *io_reg, u32 mask, unsigned long timeout)
{
- unsigned long timebase = get_timer(0);
+ unsigned long timebase = time_now_ms();
do {
if ((readl(io_reg) & mask) != 0x0UL)
return 0;
- } while (get_timer(timebase) < timeout);
+ } while (time_since_ms(timebase) < timeout);
debug("loop_till_bit_set timed out\n");
return -1;
diff --git a/drivers/input/ps2mult.c b/drivers/input/ps2mult.c
index ab74933..e841bd3 100644
--- a/drivers/input/ps2mult.c
+++ b/drivers/input/ps2mult.c
@@ -39,7 +39,7 @@
#endif
-static ulong start_time;
+static u32 st;
static int init_done = 0;
static int received_escape = 0;
@@ -66,7 +66,7 @@ static u_char ps2mult_buf_status [PS2BUF_SIZE];
#endif
void ps2mult_early_init (void)
{
- start_time = get_timer(0);
+ st = time_ms_now());
}
static void ps2mult_send_byte(u_char byte, u_char sel)
@@ -365,7 +365,7 @@ int ps2mult_init (void)
int kbd_found = 0;
int mouse_found = 0;
- while (get_timer(start_time) < CONFIG_PS2MULT_DELAY);
+ while (time_ms_delta_min(ts, time_ms_now()) < CONFIG_PS2MULT_DELAY);
ps2ser_init();
diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c
index ef12ecd..edf117b 100644
--- a/drivers/mmc/omap_hsmmc.c
+++ b/drivers/mmc/omap_hsmmc.c
@@ -74,14 +74,14 @@ unsigned char mmc_board_init(hsmmc_t *mmc_base)
void mmc_init_stream(hsmmc_t *mmc_base)
{
- ulong start;
+ u32 st;
writel(readl(&mmc_base->con) | INIT_INITSTREAM, &mmc_base->con);
writel(MMC_CMD0, &mmc_base->cmd);
- start = get_timer(0);
+ st = time_ms_now();
while (!(readl(&mmc_base->stat) & CC_MASK)) {
- if (get_timer(0) - start > MAX_RETRY_MS) {
+ if (time_ms_delta_min(ts, time_ms_now()) > MAX_RETRY_MS) {
printf("%s: timedout waiting for cc!\n", __func__);
return;
}
@@ -90,9 +90,9 @@ void mmc_init_stream(hsmmc_t *mmc_base)
;
writel(MMC_CMD0, &mmc_base->cmd)
;
- start = get_timer(0);
+ st = time_ms_now();
while (!(readl(&mmc_base->stat) & CC_MASK)) {
- if (get_timer(0) - start > MAX_RETRY_MS) {
+ if (time_ms_delta_min(ts, time_ms_now()) > MAX_RETRY_MS) {
printf("%s: timedout waiting for cc2!\n", __func__);
return;
}
@@ -106,23 +106,23 @@ static int mmc_init_setup(struct mmc *mmc)
hsmmc_t *mmc_base = (hsmmc_t *)mmc->priv;
unsigned int reg_val;
unsigned int dsor;
- ulong start;
+ u32 st;
mmc_board_init(mmc_base);
writel(readl(&mmc_base->sysconfig) | MMC_SOFTRESET,
&mmc_base->sysconfig);
- start = get_timer(0);
+ st = time_ms_now();
while ((readl(&mmc_base->sysstatus) & RESETDONE) == 0) {
- if (get_timer(0) - start > MAX_RETRY_MS) {
+ if (time_ms_delta_min(ts, time_ms_now()) > MAX_RETRY_MS) {
printf("%s: timedout waiting for cc2!\n", __func__);
return TIMEOUT;
}
}
writel(readl(&mmc_base->sysctl) | SOFTRESETALL, &mmc_base->sysctl);
- start = get_timer(0);
+ st = time_ms_now();
while ((readl(&mmc_base->sysctl) & SOFTRESETALL) != 0x0) {
- if (get_timer(0) - start > MAX_RETRY_MS) {
+ if (time_ms_delta_min(ts, time_ms_now()) > MAX_RETRY_MS) {
printf("%s: timedout waiting for softresetall!\n",
__func__);
return TIMEOUT;
@@ -143,9 +143,9 @@ static int mmc_init_setup(struct mmc *mmc)
(ICE_STOP | DTO_15THDTO | CEN_DISABLE));
mmc_reg_out(&mmc_base->sysctl, ICE_MASK | CLKD_MASK,
(dsor << CLKD_OFFSET) | ICE_OSCILLATE);
- start = get_timer(0);
+ st = time_ms_now();
while ((readl(&mmc_base->sysctl) & ICS_MASK) == ICS_NOTREADY) {
- if (get_timer(0) - start > MAX_RETRY_MS) {
+ if (time_ms_delta_min(ts, time_ms_now()) > MAX_RETRY_MS) {
printf("%s: timedout waiting for ics!\n", __func__);
return TIMEOUT;
}
@@ -169,19 +169,19 @@ static int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
{
hsmmc_t *mmc_base = (hsmmc_t *)mmc->priv;
unsigned int flags, mmc_stat;
- ulong start;
+ u32 st;
- start = get_timer(0);
+ st = time_ms_now();
while ((readl(&mmc_base->pstate) & DATI_MASK) == DATI_CMDDIS) {
- if (get_timer(0) - start > MAX_RETRY_MS) {
+ if (time_ms_delta_min(ts, time_ms_now()) > MAX_RETRY_MS) {
printf("%s: timedout waiting for cmddis!\n", __func__);
return TIMEOUT;
}
}
writel(0xFFFFFFFF, &mmc_base->stat);
- start = get_timer(0);
+ st = time_ms_now();
while (readl(&mmc_base->stat)) {
- if (get_timer(0) - start > MAX_RETRY_MS) {
+ if (time_ms_delta_min(ts, time_ms_now()) > MAX_RETRY_MS) {
printf("%s: timedout waiting for stat!\n", __func__);
return TIMEOUT;
}
@@ -241,10 +241,11 @@ static int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
writel(cmd->cmdarg, &mmc_base->arg);
writel((cmd->cmdidx << 24) | flags, &mmc_base->cmd);
- start = get_timer(0);
+ st = time_ms_now();
do {
mmc_stat = readl(&mmc_base->stat);
- if (get_timer(0) - start > MAX_RETRY_MS) {
+ if (time_ms_delta_min(ts, time_ms_now())
+ > MAX_RETRY_MS) {
printf("%s : timeout: No status update\n", __func__);
return TIMEOUT;
}
@@ -285,6 +286,7 @@ static int mmc_read_data(hsmmc_t *mmc_base, char *buf, unsigned int size)
unsigned int *output_buf = (unsigned int *)buf;
unsigned int mmc_stat;
unsigned int count;
+ u32 st;
/*
* Start Polled Read
@@ -293,10 +295,11 @@ static int mmc_read_data(hsmmc_t *mmc_base, char *buf, unsigned int size)
count /= 4;
while (size) {
- ulong start = get_timer(0);
+ st = time_ms_now();
do {
mmc_stat = readl(&mmc_base->stat);
- if (get_timer(0) - start > MAX_RETRY_MS) {
+ if (time_ms_delta_min(ts, time_ms_now())
+ > MAX_RETRY_MS) {
printf("%s: timedout waiting for status!\n",
__func__);
return TIMEOUT;
@@ -336,6 +339,7 @@ static int mmc_write_data(hsmmc_t *mmc_base, const char *buf, unsigned int size)
unsigned int *input_buf = (unsigned int *)buf;
unsigned int mmc_stat;
unsigned int count;
+ u32 st;
/*
* Start Polled Read
@@ -344,10 +348,11 @@ static int mmc_write_data(hsmmc_t *mmc_base, const char *buf, unsigned int size)
count /= 4;
while (size) {
- ulong start = get_timer(0);
+ st = time_ms_now();
do {
mmc_stat = readl(&mmc_base->stat);
- if (get_timer(0) - start > MAX_RETRY_MS) {
+ if (time_ms_delta_min(ts, time_ms_now())
+ > MAX_RETRY_MS) {
printf("%s: timedout waiting for status!\n",
__func__);
return TIMEOUT;
@@ -386,7 +391,7 @@ static void mmc_set_ios(struct mmc *mmc)
{
hsmmc_t *mmc_base = (hsmmc_t *)mmc->priv;
unsigned int dsor = 0;
- ulong start;
+ u32 st;
/* configue bus width */
switch (mmc->bus_width) {
@@ -425,9 +430,9 @@ static void mmc_set_ios(struct mmc *mmc)
mmc_reg_out(&mmc_base->sysctl, ICE_MASK | CLKD_MASK,
(dsor << CLKD_OFFSET) | ICE_OSCILLATE);
- start = get_timer(0);
+ st = time_ms_now();
while ((readl(&mmc_base->sysctl) & ICS_MASK) == ICS_NOTREADY) {
- if (get_timer(0) - start > MAX_RETRY_MS) {
+ if (time_ms_delta_min(ts, time_ms_now()) > MAX_RETRY_MS) {
printf("%s: timedout waiting for ics!\n", __func__);
return;
}
diff --git a/drivers/mtd/spi/atmel.c b/drivers/mtd/spi/atmel.c
index 1ecece0..b2dbf86 100644
--- a/drivers/mtd/spi/atmel.c
+++ b/drivers/mtd/spi/atmel.c
@@ -119,7 +119,7 @@ static int at45_wait_ready(struct spi_flash *flash, unsigned long timeout)
u8 cmd = CMD_AT45_READ_STATUS;
u8 status;
- timebase = get_timer(0);
+ timebase = time_now_ms();
ret = spi_xfer(spi, 8, &cmd, NULL, SPI_XFER_BEGIN);
if (ret)
@@ -132,7 +132,7 @@ static int at45_wait_ready(struct spi_flash *flash, unsigned long timeout)
if (status & AT45_STATUS_READY)
break;
- } while (get_timer(timebase) < timeout);
+ } while (time_since_ms(timebase) < timeout);
/* Deactivate CS */
spi_xfer(spi, 0, NULL, NULL, SPI_XFER_END);
diff --git a/drivers/net/4xx_enet.c b/drivers/net/4xx_enet.c
index b1763b1..79ec451 100644
--- a/drivers/net/4xx_enet.c
+++ b/drivers/net/4xx_enet.c
@@ -1564,7 +1564,7 @@ static int ppc_4xx_eth_send (struct eth_device *dev, volatile void *ptr,
int len)
{
struct enet_frame *ef_ptr;
- ulong time_start, time_now;
+ u32 ts;
unsigned long temp_txm0;
EMAC_4XX_HW_PST hw_p = dev->priv;
@@ -1609,7 +1609,7 @@ static int ppc_4xx_eth_send (struct eth_device *dev, volatile void *ptr,
/*-----------------------------------------------------------------------+
* poll unitl the packet is sent and then make sure it is OK
*-----------------------------------------------------------------------*/
- time_start = get_timer (0);
+ ts = time_ms_now();
while (1) {
temp_txm0 = in_be32((void *)EMAC0_TMR0 + hw_p->hw_addr);
/* loop until either TINT turns on or 3 seconds elapse */
@@ -1618,10 +1618,8 @@ static int ppc_4xx_eth_send (struct eth_device *dev, volatile void *ptr,
* If there is an error, an interrupt should
* happen when we return
*/
- time_now = get_timer (0);
- if ((time_now - time_start) > 3000) {
+ if (time_ms_delta_min(ts, time_ms_now()) > 3000)
return (-1);
- }
} else {
return (len);
}
diff --git a/drivers/net/bcm570x.c b/drivers/net/bcm570x.c
index c250d44..5440e57 100644
--- a/drivers/net/bcm570x.c
+++ b/drivers/net/bcm570x.c
@@ -1204,7 +1204,7 @@ LM_STATUS MM_FreeRxBuffer (PLM_DEVICE_BLOCK pDevice, PLM_PACKET pPacket)
unsigned long MM_AnGetCurrentTime_us (PAN_STATE_INFO pAnInfo)
{
- return get_timer (0);
+ return time_ms_now();
}
/*
diff --git a/drivers/net/cs8900.c b/drivers/net/cs8900.c
index 9424fb2..8e434d9 100644
--- a/drivers/net/cs8900.c
+++ b/drivers/net/cs8900.c
@@ -98,7 +98,7 @@ static void put_reg(struct eth_device *dev, int regno, u16 val)
static void cs8900_reset(struct eth_device *dev)
{
- int tmo;
+ u32 st;
u16 us;
/* reset NIC */
@@ -108,9 +108,10 @@ static void cs8900_reset(struct eth_device *dev)
udelay(200000);
/* Wait until the chip is reset */
- tmo = get_timer(0) + 1 * CONFIG_SYS_HZ;
+ st = time_ms_now();
while ((((us = get_reg_init_bus(dev, PP_SelfSTAT)) &
- PP_SelfSTAT_InitD) == 0) && tmo < get_timer(0))
+ PP_SelfSTAT_InitD) == 0) &&
+ (time_ms_delta_min(st, time_ms_now()) < 1000))
/*NOP*/;
}
@@ -220,7 +221,7 @@ static int cs8900_send(struct eth_device *dev,
volatile void *packet, int length)
{
volatile u16 *addr;
- int tmo;
+ u32 st;
u16 s;
struct cs8900_priv *priv = (struct cs8900_priv *)(dev->priv);
@@ -233,8 +234,8 @@ retry:
if ((get_reg(dev, PP_BusSTAT) & PP_BusSTAT_TxRDY) == 0) {
/* Oops... this should not happen! */
debug("cs: unable to send packet; retrying...\n");
- for (tmo = get_timer(0) + 5 * CONFIG_SYS_HZ;
- get_timer(0) < tmo;)
+ for (st = time_ms_now();
+ time_ms_delta_min(st, time_ms_now()) < 5000;)
/*NOP*/;
cs8900_reset(dev);
cs8900_reginit(dev);
@@ -247,9 +248,9 @@ retry:
REG_WRITE(*addr++, &priv->regs->rtdata);
/* wait for transfer to succeed */
- tmo = get_timer(0) + 5 * CONFIG_SYS_HZ;
+ st = time_ms_now();
while ((s = get_reg(dev, PP_TER) & ~0x1F) == 0) {
- if (get_timer(0) >= tmo)
+ if (time_ms_delta_min(st, time_ms_now()) >= 5000)
break;
}
diff --git a/drivers/net/dm9000x.c b/drivers/net/dm9000x.c
index b5c5573..8fb15cf 100644
--- a/drivers/net/dm9000x.c
+++ b/drivers/net/dm9000x.c
@@ -401,7 +401,7 @@ static int dm9000_init(struct eth_device *dev, bd_t *bd)
static int dm9000_send(struct eth_device *netdev, volatile void *packet,
int length)
{
- int tmo;
+ u32 st;
struct board_info *db = &dm9000_info;
DM9000_DMP_PACKET(__func__ , packet, length);
@@ -422,10 +422,10 @@ static int dm9000_send(struct eth_device *netdev, volatile void *packet,
DM9000_iow(DM9000_TCR, TCR_TXREQ); /* Cleared after TX complete */
/* wait for end of transmission */
- tmo = get_timer(0) + 5 * CONFIG_SYS_HZ;
+ st = time_ms_now();
while ( !(DM9000_ior(DM9000_NSR) & (NSR_TX1END | NSR_TX2END)) ||
!(DM9000_ior(DM9000_ISR) & IMR_PTM) ) {
- if (get_timer(0) >= tmo) {
+ if (time_ms_delta_min(st, time_ms_now()) >= 5000) {
printf("transmission timeout\n");
break;
}
diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c
index 34cc47f..003fdc0 100644
--- a/drivers/net/ethoc.c
+++ b/drivers/net/ethoc.c
@@ -420,7 +420,7 @@ static int ethoc_send(struct eth_device *dev, volatile void *packet, int length)
struct ethoc_bd bd;
u32 entry;
u32 pending;
- int tmo;
+ u32 st;
entry = priv->cur_tx % priv->num_tx;
ethoc_read_bd(dev, entry, &bd);
@@ -440,7 +440,7 @@ static int ethoc_send(struct eth_device *dev, volatile void *packet, int length)
ethoc_write_bd(dev, entry, &bd);
/* wait for transfer to succeed */
- tmo = get_timer(0) + 5 * CONFIG_SYS_HZ;
+ st = time_ms_now();
while (1) {
pending = ethoc_read(dev, INT_SOURCE);
ethoc_ack_irq(dev, pending & ~INT_MASK_RX);
@@ -451,7 +451,7 @@ static int ethoc_send(struct eth_device *dev, volatile void *packet, int length)
ethoc_tx(dev);
break;
}
- if (get_timer(0) >= tmo) {
+ if (time_ms_delta_min(st, time_ms_now()) >= 5000) {
debug("%s(): timed out\n", __func__);
return -1;
}
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index ab90afa..076e0dc 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -70,7 +70,7 @@ static int fec_miiphy_read(const char *dev, uint8_t phyAddr, uint8_t regAddr,
uint32_t reg; /* convenient holder for the PHY register */
uint32_t phy; /* convenient holder for the PHY */
- uint32_t start;
+ u32 st;
/*
* reading from any PHY's register is done by properly
@@ -86,9 +86,9 @@ static int fec_miiphy_read(const char *dev, uint8_t phyAddr, uint8_t regAddr,
/*
* wait for the related interrupt
*/
- start = get_timer(0);
+ start = time_ms_now();
while (!(readl(&fec->eth->ievent) & FEC_IEVENT_MII)) {
- if (get_timer(start) > (CONFIG_SYS_HZ / 1000)) {
+ if (time_ms_delta_min(st, time_ms_now()) > 1) {
printf("Read MDIO failed...\n");
return -1;
}
@@ -127,7 +127,7 @@ static int fec_miiphy_write(const char *dev, uint8_t phyAddr, uint8_t regAddr,
uint32_t reg; /* convenient holder for the PHY register */
uint32_t phy; /* convenient holder for the PHY */
- uint32_t start;
+ u32 st;
reg = regAddr << FEC_MII_DATA_RA_SHIFT;
phy = phyAddr << FEC_MII_DATA_PA_SHIFT;
@@ -138,9 +138,9 @@ static int fec_miiphy_write(const char *dev, uint8_t phyAddr, uint8_t regAddr,
/*
* wait for the MII interrupt
*/
- start = get_timer(0);
+ st = time_ms_now();
while (!(readl(&fec->eth->ievent) & FEC_IEVENT_MII)) {
- if (get_timer(start) > (CONFIG_SYS_HZ / 1000)) {
+ if (time_ms_delta_min(st, time_ms_now()) > 1) {
printf("Write MDIO failed...\n");
return -1;
}
@@ -183,15 +183,15 @@ static int miiphy_restart_aneg(struct eth_device *dev)
static int miiphy_wait_aneg(struct eth_device *dev)
{
- uint32_t start;
+ u32 st;
uint16_t status;
/*
* Wait for AN completion
*/
- start = get_timer(0);
+ st = time_ms_now();
do {
- if (get_timer(start) > (CONFIG_SYS_HZ * 5)) {
+ if (time_ms_delta_min(st, time_ms_now()) > 5000) {
printf("%s: Autonegotiation timeout\n", dev->name);
return -1;
}
diff --git a/drivers/net/ftgmac100.c b/drivers/net/ftgmac100.c
index dc7a80e..5f24962 100644
--- a/drivers/net/ftgmac100.c
+++ b/drivers/net/ftgmac100.c
@@ -490,7 +490,7 @@ ftgmac100_send(struct eth_device *dev, void *packet, int length)
struct ftgmac100 *ftgmac100 = (struct ftgmac100 *)dev->iobase;
struct ftgmac100_data *priv = dev->priv;
struct ftgmac100_txdes *curr_des = &priv->txdes[priv->tx_index];
- int start;
+ int st;
if (curr_des->txdes0 & FTGMAC100_TXDES0_TXDMA_OWN) {
debug("%s(): no TX descriptor available\n", __func__);
@@ -515,9 +515,9 @@ ftgmac100_send(struct eth_device *dev, void *packet, int length)
writel(1, &ftgmac100->txpd);
/* wait for transfer to succeed */
- start = get_timer(0);
+ st = time_ms_now();
while (curr_des->txdes0 & FTGMAC100_TXDES0_TXDMA_OWN) {
- if (get_timer(0) >= 5) {
+ if (time_ms_delta_min(st, time_ms_now()) >= 5) {
debug("%s(): timed out\n", __func__);
return -1;
}
diff --git a/drivers/net/ftmac100.c b/drivers/net/ftmac100.c
index 94dc6d9..5e057a1 100644
--- a/drivers/net/ftmac100.c
+++ b/drivers/net/ftmac100.c
@@ -196,7 +196,7 @@ ftmac100_send (struct eth_device *dev, volatile void *packet, int length)
struct ftmac100 *ftmac100 = (struct ftmac100 *)dev->iobase;
struct ftmac100_data *priv = dev->priv;
struct ftmac100_txdes *curr_des = priv->txdes;
- ulong start;
+ ulong st;
if (curr_des->txdes0 & FTMAC100_TXDES0_TXDMA_OWN) {
debug ("%s(): no TX descriptor available\n", __func__);
@@ -224,9 +224,9 @@ ftmac100_send (struct eth_device *dev, volatile void *packet, int length)
/* wait for transfer to succeed */
- start = get_timer(0);
+ st = time_ms_now();
while (curr_des->txdes0 & FTMAC100_TXDES0_TXDMA_OWN) {
- if (get_timer(start) >= 5) {
+ if (time_ms_delta_min(st, time_ms_now()) >= 5) {
debug ("%s(): timed out\n", __func__);
return -1;
}
diff --git a/drivers/net/greth.c b/drivers/net/greth.c
index 6c32226..9653f64 100644
--- a/drivers/net/greth.c
+++ b/drivers/net/greth.c
@@ -230,7 +230,7 @@ int greth_init_phy(greth_priv * dev, bd_t * bis)
{
greth_regs *regs = dev->regs;
int tmp, tmp1, tmp2, i;
- unsigned int start, timeout;
+ unsigned int st;
int phyaddr = GRETH_PHY_ADR_DEFAULT;
#ifndef CONFIG_SYS_GRLIB_GRETH_PHYADDR
@@ -252,18 +252,16 @@ int greth_init_phy(greth_priv * dev, bd_t * bis)
debug("GRETH PHY ADDRESS: %d\n", phyaddr);
- /* X msecs to ticks */
- timeout = usec2ticks(GRETH_PHY_TIMEOUT_MS * 1000);
-
/* Get system timer0 current value
* Total timeout is 5s
*/
- start = get_timer(0);
+ st = time_ms_now();
/* get phy control register default values */
while ((tmp = read_mii(phyaddr, 0, regs)) & 0x8000) {
- if (get_timer(start) > timeout) {
+ if (time_ms_delta_min(st, time_ms_now())
+ > GRETH_PHY_TIMEOUT_MS) {
debug("greth_init_phy: PHY read 1 failed\n");
return 1; /* Fail */
}
@@ -273,7 +271,8 @@ int greth_init_phy(greth_priv * dev, bd_t * bis)
write_mii(phyaddr, 0, 0x8000 | tmp, regs);
while (((tmp = read_mii(phyaddr, 0, regs))) & 0x8000) {
- if (get_timer(start) > timeout) {
+ if (time_ms_delta_min(st, time_ms_now())
+ > GRETH_PHY_TIMEOUT_MS) {
debug("greth_init_phy: PHY read 2 failed\n");
return 1; /* Fail */
}
@@ -293,7 +292,8 @@ int greth_init_phy(greth_priv * dev, bd_t * bis)
dev->auto_neg = 1;
i = 0;
while (!(((tmp = read_mii(phyaddr, 1, regs)) >> 5) & 1)) {
- if (get_timer(start) > timeout) {
+ if (time_ms_delta_min(st, time_ms_now())
+ > GRETH_PHY_TIMEOUT_MS) {
printf("Auto negotiation timed out. "
"Selecting default config\n");
tmp = read_mii(phyaddr, 0, regs);
diff --git a/drivers/net/lan91c96.c b/drivers/net/lan91c96.c
index 883f3a7..3aa825a 100644
--- a/drivers/net/lan91c96.c
+++ b/drivers/net/lan91c96.c
@@ -175,14 +175,15 @@ static void print_packet (byte *, int);
static int poll4int (struct eth_device *dev, byte mask, int timeout)
{
- int tmo = get_timer (0) + timeout * CONFIG_SYS_HZ;
+ int ts = time_ms_now();
int is_timeout = 0;
word old_bank = SMC_inw(dev, LAN91C96_BANK_SELECT);
PRINTK2 ("Polling...\n");
SMC_SELECT_BANK(dev, 2);
while ((SMC_inw(dev, LAN91C96_INT_STATS) & mask) == 0) {
- if (get_timer (0) >= tmo) {
+ if (time_ms_delta_min(start, time_ms_now())
+ >= timeout * 1000) {
is_timeout = 1;
break;
}
diff --git a/drivers/net/ne2000_base.c b/drivers/net/ne2000_base.c
index f93f932..288da5c 100644
--- a/drivers/net/ne2000_base.c
+++ b/drivers/net/ne2000_base.c
@@ -733,21 +733,21 @@ int eth_rx() {
}
int eth_send(volatile void *packet, int length) {
- int tmo;
+ int ts;
PRINTK("### eth_send\n");
pkey = -1;
dp83902a_send((u8 *) packet, length, 666);
- tmo = get_timer (0) + TOUT * CONFIG_SYS_HZ;
+ ts = time_ms_now();
while(1) {
dp83902a_poll();
if (pkey != -1) {
PRINTK("Packet sucesfully sent\n");
return 0;
}
- if (get_timer (0) >= tmo) {
+ if (time_ms_delta_min(ts, time_ms_now()) >= TOUT * 1000) {
printf("transmission error (timoeut)\n");
return 0;
}
diff --git a/drivers/net/netarm_eth.c b/drivers/net/netarm_eth.c
index f54817e..0b4b959 100644
--- a/drivers/net/netarm_eth.c
+++ b/drivers/net/netarm_eth.c
@@ -83,8 +83,9 @@ static int na_mii_poll_busy (void)
{
ulong start;
/* arm simple, non interrupt dependent timer */
- start = get_timer(0));
- while (get_timer(start) < NA_MII_POLL_BUSY_DELAY) {
+ start = time_ms_now();
+ while (time_ms_delta_min(start, time_ms_now())
+ < NA_MII_POLL_BUSY_DELAY) {
if (!(GET_EADDR (NETARM_ETH_MII_IND) & NETARM_ETH_MIII_BUSY)) {
return 1;
}
@@ -172,13 +173,14 @@ static int reset_eth (void)
/* reset the phy */
na_mii_write (MII_PHY_CONTROL, 0x8000);
- start = get_timer(0);
- while (get_timer(start) < NA_MII_NEGOTIATE_DELAY) {
+ start = time_ms_now();
+ while (time_ms_delta_min(start, time_ms_now())
+ < NA_MII_NEGOTIATE_DELAY) {
if ((na_mii_read (MII_PHY_STATUS) & 0x8000) == 0) {
break;
}
}
- if (get_timer(start) >= NA_MII_NEGOTIATE_DELAY)
+ if (time_ms_delta_min(start, time_ms_now()) >= NA_MII_NEGOTIATE_DELAY)
printf ("phy reset timeout\n");
/* set the PCS reg */
diff --git a/drivers/net/ns7520_eth.c b/drivers/net/ns7520_eth.c
index de82b04..687e42a 100644
--- a/drivers/net/ns7520_eth.c
+++ b/drivers/net/ns7520_eth.c
@@ -449,8 +449,9 @@ static void ns7520_link_auto_negotiate(void)
/* wait for completion */
- ulStartJiffies = get_timer(0);
- while (get_timer(0) < ulStartJiffies + NS7520_MII_NEG_DELAY) {
+ ulStartJiffies = time_ms_now();
+ while (time_ms_delta_min(ulStartJiffies, time_ms_now())
+ < NS7520_MII_NEG_DELAY) {
uiStatus = ns7520_mii_read(MII_BMSR);
if ((uiStatus &
(BMSR_ANEGCOMPLETE | BMSR_LSTATUS)) ==
diff --git a/drivers/net/ns9750_eth.c b/drivers/net/ns9750_eth.c
index 9899563..b800048 100644
--- a/drivers/net/ns9750_eth.c
+++ b/drivers/net/ns9750_eth.c
@@ -291,7 +291,7 @@ int eth_send (volatile void *pPacket, int nLen)
*get_eth_reg_addr (NS9750_ETH_EGCR2) &= ~NS9750_ETH_EGCR2_TCLER;
*get_eth_reg_addr (NS9750_ETH_EGCR2) |= NS9750_ETH_EGCR2_TCLER;
- ulTimeout = get_timer (0);
+ ts = time_ms_now();
DEBUG_ARGS0 (DEBUG_TX | DEBUG_MINOR,
"Waiting for transmission to finish\n");
@@ -299,7 +299,7 @@ int eth_send (volatile void *pPacket, int nLen)
(*get_eth_reg_addr (NS9750_ETH_EINTR) &
(NS9750_ETH_EINTR_TXDONE | NS9750_ETH_EINTR_TXERR))) {
/* do nothing, wait for completion */
- if (get_timer (0) - ulTimeout > TX_TIMEOUT) {
+ if (time_ms_delta_min(ts, time_ms_now()) > TX_TIMEOUT) {
DEBUG_ARGS0 (DEBUG_TX, "Transmit Timed out\n");
return -1;
}
diff --git a/drivers/net/rtl8139.c b/drivers/net/rtl8139.c
index c2779db..eb503a7 100644
--- a/drivers/net/rtl8139.c
+++ b/drivers/net/rtl8139.c
@@ -98,7 +98,6 @@
#undef DEBUG_TX
#undef DEBUG_RX
-#define currticks() get_timer(0)
#define bus_to_phys(a) pci_mem_to_phys((pci_dev_t)dev->priv, a)
#define phys_to_bus(a) pci_phys_to_mem((pci_dev_t)dev->priv, a)
@@ -425,6 +424,7 @@ static int rtl_transmit(struct eth_device *dev, volatile void *packet, int lengt
memcpy((char *)tx_buffer, (char *)packet, (int)length);
#ifdef DEBUG_TX
+ u32 ts = time_now_ms();
printf("sending %d bytes\n", len);
#endif
@@ -454,8 +454,8 @@ static int rtl_transmit(struct eth_device *dev, volatile void *packet, int lengt
if (status & TxOK) {
cur_tx = (cur_tx + 1) % NUM_TX_DESC;
#ifdef DEBUG_TX
- printf("tx done (%d ticks), status %hX txstatus %X\n",
- to-currticks(), status, txstatus);
+ printf("tx done (%d ms), status %hX txstatus %X\n",
+ time_max_since_ms(ts), status, txstatus);
#endif
return length;
} else {
diff --git a/drivers/net/rtl8169.c b/drivers/net/rtl8169.c
index b81dcad..802a95a 100644
--- a/drivers/net/rtl8169.c
+++ b/drivers/net/rtl8169.c
@@ -68,9 +68,6 @@
static u32 ioaddr;
-/* Condensed operations for readability. */
-#define currticks() get_timer(0)
-
/* media options */
#define MAX_UNITS 8
static int media[MAX_UNITS] = { -1, -1, -1, -1, -1, -1, -1, -1 };
@@ -473,9 +470,10 @@ static int rtl_send(struct eth_device *dev, volatile void *packet, int length)
int entry = tpc->cur_tx % NUM_TX_DESC;
u32 len = length;
int ret;
+ u32 ts;
#ifdef DEBUG_RTL8169_TX
- int stime = currticks();
+ int stime = time_now_ms();
printf ("%s\n", __FUNCTION__);
printf("sending %d bytes\n", len);
#endif
@@ -504,17 +502,17 @@ static int rtl_send(struct eth_device *dev, volatile void *packet, int length)
RTL_W8(TxPoll, 0x40); /* set polling bit */
tpc->cur_tx++;
- to = currticks() + TX_TIMEOUT;
+ ts = time_now_ms();
do {
flush_cache((unsigned long)&tpc->TxDescArray[entry],
sizeof(struct TxDesc));
} while ((le32_to_cpu(tpc->TxDescArray[entry].status) & OWNbit)
- && (currticks() < to)); /* wait */
+ && (time_since_ms(ts) < TX_TIMEOUT)); /* wait */
- if (currticks() >= to) {
+ if (time_since_ms(ts) >= TX_TIMEOUT) {
#ifdef DEBUG_RTL8169_TX
puts ("tx timeout/error\n");
- printf ("%s elapsed time : %d\n", __FUNCTION__, currticks()-stime);
+ printf ("%s elapsed time : %d\n", __FUNCTION__, time_max_since_ms(stime));
#endif
ret = 0;
} else {
@@ -556,7 +554,7 @@ static void rtl8169_hw_start(struct eth_device *dev)
u32 i;
#ifdef DEBUG_RTL8169
- int stime = currticks();
+ int stime = time_now_ms();
printf ("%s\n", __FUNCTION__);
#endif
@@ -616,7 +614,7 @@ static void rtl8169_hw_start(struct eth_device *dev)
RTL_W16(MultiIntr, RTL_R16(MultiIntr) & 0xF000);
#ifdef DEBUG_RTL8169
- printf ("%s elapsed time : %d\n", __FUNCTION__, currticks()-stime);
+ printf ("%s elapsed time : %d\n", __FUNCTION__, time_max_since_ms(stime));
#endif
}
@@ -625,7 +623,7 @@ static void rtl8169_init_ring(struct eth_device *dev)
int i;
#ifdef DEBUG_RTL8169
- int stime = currticks();
+ int stime = time_now_ms();
printf ("%s\n", __FUNCTION__);
#endif
@@ -654,7 +652,7 @@ static void rtl8169_init_ring(struct eth_device *dev)
}
#ifdef DEBUG_RTL8169
- printf ("%s elapsed time : %d\n", __FUNCTION__, currticks()-stime);
+ printf ("%s elapsed time : %d\n", __FUNCTION__, time_max_sine_ms(stime));
#endif
}
@@ -666,7 +664,7 @@ static int rtl_reset(struct eth_device *dev, bd_t *bis)
int i;
#ifdef DEBUG_RTL8169
- int stime = currticks();
+ int stime = time_now_ms();
printf ("%s\n", __FUNCTION__);
#endif
@@ -695,7 +693,7 @@ static int rtl_reset(struct eth_device *dev, bd_t *bis)
txb[5] = dev->enetaddr[5];
#ifdef DEBUG_RTL8169
- printf ("%s elapsed time : %d\n", __FUNCTION__, currticks()-stime);
+ printf ("%s elapsed time : %d\n", __FUNCTION__, time_max_since_ms(stime));
#endif
return 0;
}
diff --git a/drivers/net/smc91111.c b/drivers/net/smc91111.c
index ba9c67e..7ae0580 100644
--- a/drivers/net/smc91111.c
+++ b/drivers/net/smc91111.c
@@ -251,14 +251,14 @@ static void print_packet( byte *, int );
static int poll4int (struct eth_device *dev, byte mask, int timeout)
{
- int tmo = get_timer (0) + timeout * CONFIG_SYS_HZ;
+ int ts = time_ms_now();
int is_timeout = 0;
word old_bank = SMC_inw (dev, BSR_REG);
PRINTK2 ("Polling...\n");
SMC_SELECT_BANK (dev, 2);
while ((SMC_inw (dev, SMC91111_INT_REG) & mask) == 0) {
- if (get_timer (0) >= tmo) {
+ if (time_ms_delta_min(ts, time_ms_now()) >= (timeout * 1000)) {
is_timeout = 1;
break;
}
diff --git a/drivers/serial/serial_clps7111.c b/drivers/serial/serial_clps7111.c
index a6aecad..aec70d5 100644
--- a/drivers/serial/serial_clps7111.c
+++ b/drivers/serial/serial_clps7111.c
@@ -76,15 +76,15 @@ int serial_init (void)
*/
void serial_putc (const char c)
{
- int tmo;
+ u32 ts;
/* If \n, also do \r */
if (c == '\n')
serial_putc ('\r');
- tmo = get_timer (0) + 1 * CONFIG_SYS_HZ;
+ ts = time_now_ms();
while (IO_SYSFLG1 & SYSFLG1_UTXFF)
- if (get_timer (0) > tmo)
+ if (time_since_ms(ts) > 1000)
break;
IO_UARTDR1 = c;
diff --git a/drivers/serial/serial_netarm.c b/drivers/serial/serial_netarm.c
index d04790d..78f3c90 100644
--- a/drivers/serial/serial_netarm.c
+++ b/drivers/serial/serial_netarm.c
@@ -43,9 +43,9 @@ DECLARE_GLOBAL_DATA_PTR;
/* wait until transmitter is ready for another character */
#define TXWAITRDY(registers) \
{ \
- ulong tmo = get_timer(0) + 1 * CONFIG_SYS_HZ; \
+ u32 st = time_now_ms(); \
while (((registers)->status_a & NETARM_SER_STATA_TX_RDY) == 0 ) { \
- if (get_timer(0) > tmo) \
+ if (time_since_ms(st) > 1000) \
break; \
} \
}
diff --git a/drivers/spi/atmel_dataflash_spi.c b/drivers/spi/atmel_dataflash_spi.c
index e7d3ff0..d77c5fe 100644
--- a/drivers/spi/atmel_dataflash_spi.c
+++ b/drivers/spi/atmel_dataflash_spi.c
@@ -141,7 +141,6 @@ unsigned int AT91F_SpiWrite1(AT91PS_DataflashDesc pDesc);
unsigned int AT91F_SpiWrite(AT91PS_DataflashDesc pDesc)
{
- unsigned int timeout;
unsigned int timebase;
pDesc->state = BUSY;
@@ -174,19 +173,18 @@ unsigned int AT91F_SpiWrite(AT91PS_DataflashDesc pDesc)
}
/* arm simple, non interrupt dependent timer */
- timebase = get_timer(0);
- timeout = 0;
+ timebase = time_now_ms();
writel(AT91_SPI_TXTEN + AT91_SPI_RXTEN,
ATMEL_BASE_SPI0 + AT91_SPI_PTCR);
while (!(readl(ATMEL_BASE_SPI0 + AT91_SPI_SR) & AT91_SPI_RXBUFF) &&
- ((timeout = get_timer(timebase)) < CONFIG_SYS_SPI_WRITE_TOUT))
+ (time_since_ms(timebase) < CONFIG_SYS_SPI_WRITE_TOUT))
;
writel(AT91_SPI_TXTDIS + AT91_SPI_RXTDIS,
ATMEL_BASE_SPI0 + AT91_SPI_PTCR);
pDesc->state = IDLE;
- if (timeout >= CONFIG_SYS_SPI_WRITE_TOUT) {
+ if (time_since_ms(timebase) >= CONFIG_SYS_SPI_WRITE_TOUT) {
printf("Error Timeout\n\r");
return DATAFLASH_ERROR;
}
diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
index 9fb0e80..52396d0 100644
--- a/drivers/usb/gadget/ether.c
+++ b/drivers/usb/gadget/ether.c
@@ -1922,8 +1922,8 @@ static void eth_start(struct eth_dev *dev, gfp_t gfp_flags)
static int eth_stop(struct eth_dev *dev)
{
#ifdef RNDIS_COMPLETE_SIGNAL_DISCONNECT
- unsigned long ts;
- unsigned long timeout = CONFIG_SYS_HZ; /* 1 sec to stop RNDIS */
+ u32 ts;
+ u32 timeout = CONFIG_SYS_HZ; /* 1 sec to stop RNDIS */
#endif
if (rndis_active(dev)) {
@@ -1932,8 +1932,8 @@ static int eth_stop(struct eth_dev *dev)
#ifdef RNDIS_COMPLETE_SIGNAL_DISCONNECT
/* Wait until host receives OID_GEN_MEDIA_CONNECT_STATUS */
- ts = get_timer(0);
- while (get_timer(ts) < timeout)
+ ts = time_now_ms();
+ while (time_since_ms(start) < timeout)
usb_gadget_handle_interrupts();
#endif
@@ -2332,8 +2332,8 @@ static int usb_eth_init(struct eth_device *netdev, bd_t *bd)
{
struct eth_dev *dev = &l_ethdev;
struct usb_gadget *gadget;
- unsigned long ts;
- unsigned long timeout = USB_CONNECT_TIMEOUT;
+ u32 ts;
+ u32 timeout = USB_CONNECT_TIMEOUT;
if (!netdev) {
error("received NULL ptr");
@@ -2379,10 +2379,11 @@ static int usb_eth_init(struct eth_device *netdev, bd_t *bd)
if (getenv("cdc_connect_timeout"))
timeout = simple_strtoul(getenv("cdc_connect_timeout"),
NULL, 10) * CONFIG_SYS_HZ;
- ts = get_timer(0);
+ ts = time_now_ms();
while (!l_ethdev.network_started) {
/* Handle control-c and timeouts */
- if (ctrlc() || (get_timer(ts) > timeout)) {
+ if (ctrlc() ||
+ (time_since_ms(ts) > timeout)) {
error("The remote end did not respond in time.");
goto fail;
}
@@ -2403,8 +2404,8 @@ static int usb_eth_send(struct eth_device *netdev,
void *rndis_pkt = NULL;
struct eth_dev *dev = &l_ethdev;
struct usb_request *req = dev->tx_req;
- unsigned long ts;
- unsigned long timeout = USB_CONNECT_TIMEOUT;
+ u32 ts;
+ u32 timeout = USB_CONNECT_TIMEOUT;
debug("%s:...\n", __func__);
@@ -2443,7 +2444,7 @@ static int usb_eth_send(struct eth_device *netdev,
? ((dev->tx_qlen % qmult) != 0) : 0;
#endif
dev->tx_qlen = 1;
- ts = get_timer(0);
+ ts = time_now_ms();
packet_sent = 0;
retval = usb_ep_queue(dev->in_ep, req, GFP_ATOMIC);
@@ -2451,7 +2452,7 @@ static int usb_eth_send(struct eth_device *netdev,
if (!retval)
debug("%s: packet queued\n", __func__);
while (!packet_sent) {
- if (get_timer(ts) > timeout) {
+ if (time_since_ms(ts) > timeout) {
printf("timeout sending packets to usb ethernet\n");
return -1;
}
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 70c02c9..52751fa 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -314,12 +314,12 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer,
struct QH *qh;
struct qTD *td;
volatile struct qTD *vtd;
- unsigned long ts;
+ u32 ts;
uint32_t *tdp;
uint32_t endpt, token, usbsts;
uint32_t c, toggle;
uint32_t cmd;
- int timeout;
+ u32 timeout;
int ret = 0;
debug("dev=%p, pipe=%lx, buffer=%p, length=%d, req=%p\n", dev, pipe,
@@ -446,7 +446,7 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer,
}
/* Wait for TDs to be processed. */
- ts = get_timer(0);
+ ts = time_now_ms();
vtd = td;
timeout = USB_TIMEOUT_MS(pipe);
do {
@@ -456,7 +456,7 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer,
if (!(token & 0x80))
break;
WATCHDOG_RESET();
- } while (get_timer(ts) < timeout);
+ } while (time_since_ms(ts) < timeout);
/* Check that the TD processing happened */
if (token & 0x80) {
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c
index 82a8b36..9e7dad7 100644
--- a/drivers/usb/host/sl811-hcd.c
+++ b/drivers/usb/host/sl811-hcd.c
@@ -234,7 +234,8 @@ static int sl811_send_packet(struct usb_device *dev, unsigned long pipe, __u8 *b
{
__u8 ctrl = SL811_USB_CTRL_ARM | SL811_USB_CTRL_ENABLE;
__u16 status = 0;
- int err = 0, time_start = get_timer(0);
+ int err = 0;
+ u32 ts = time_now_ms();
int need_preamble = !(rh_status.wPortStatus & USB_PORT_STAT_LOW_SPEED) &&
usb_pipeslow(pipe);
@@ -264,7 +265,7 @@ static int sl811_send_packet(struct usb_device *dev, unsigned long pipe, __u8 *b
sl811_write(SL811_CTRL_A, ctrl);
while (!(sl811_read(SL811_INTRSTS) & SL811_INTR_DONE_A)) {
- if (5*CONFIG_SYS_HZ < get_timer(time_start)) {
+ if (time_since_ms(ts) >= 5000) {
printf("USB transmit timed out\n");
return -USB_ST_CRC_ERR;
}
--
1.7.5.2.317.g391b14
More information about the U-Boot
mailing list