diff options
| author | Reinhard Meyer <u-boot@emk-elektronik.de> | 2010-11-18 03:14:26 +0000 | 
|---|---|---|
| committer | Scott Wood <scottwood@freescale.com> | 2010-12-17 14:32:12 -0600 | 
| commit | 7a8fc36e6c3430784c877b6799833059b1ef4d33 (patch) | |
| tree | 9165a8390b0d7636698e133b38361bd9f3ed3709 | |
| parent | 0bdecd82dda4f0c60220cbd3932a3012b3611fc9 (diff) | |
| download | olio-uboot-2014.01-7a8fc36e6c3430784c877b6799833059b1ef4d33.tar.xz olio-uboot-2014.01-7a8fc36e6c3430784c877b6799833059b1ef4d33.zip | |
MTD/NAND: fix nand_base.c to use get_timer() correctly
This is part of the timer cleanup effort.
In the future we only use get_timer() in its intended way to
program timeout loops.
reset_timer() shall not be used anymore.
Signed-off-by: Reinhard Meyer <u-boot@emk-elektronik.de>
| -rw-r--r-- | drivers/mtd/nand/nand_base.c | 15 | 
1 files changed, 9 insertions, 6 deletions
| diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index b74d04029..5239c1fcf 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -439,11 +439,12 @@ void nand_wait_ready(struct mtd_info *mtd)  {  	struct nand_chip *chip = mtd->priv;  	u32 timeo = (CONFIG_SYS_HZ * 20) / 1000; +	u32 time_start; -	reset_timer(); +	time_start = get_timer(0);  	/* wait until command is processed or timeout occures */ -	while (get_timer(0) < timeo) { +	while (get_timer(time_start) < timeo) {  		if (chip->dev_ready)  			if (chip->dev_ready(mtd))  				break; @@ -704,6 +705,7 @@ static int nand_wait(struct mtd_info *mtd, struct nand_chip *this)  {  	unsigned long	timeo;  	int state = this->state; +	u32 time_start;  	if (state == FL_ERASING)  		timeo = (CONFIG_SYS_HZ * 400) / 1000; @@ -715,10 +717,10 @@ static int nand_wait(struct mtd_info *mtd, struct nand_chip *this)  	else  		this->cmdfunc(mtd, NAND_CMD_STATUS, -1, -1); -	reset_timer(); +	time_start = get_timer(0);  	while (1) { -		if (get_timer(0) > timeo) { +		if (get_timer(time_start) > timeo) {  			printf("Timeout!");  			return 0x01;  		} @@ -732,8 +734,9 @@ static int nand_wait(struct mtd_info *mtd, struct nand_chip *this)  		}  	}  #ifdef PPCHAMELON_NAND_TIMER_HACK -	reset_timer(); -	while (get_timer(0) < 10); +	time_start = get_timer(0); +	while (get_timer(time_start) < 10) +		;  #endif /*  PPCHAMELON_NAND_TIMER_HACK */  	return this->read_byte(mtd); |