nwflash: replace schedule_timeout() with msleep()
PATCH 23/25 nwflash: replace schedule_timeout() with msleep()
I would appreciate any comments from the janitor@sternweltens list. This is one (of many) cases where I made a decision about replacing
set_current_state(TASK_INTERRUPTIBLE);schedule_timeout(some_time);
with
msleep(jiffies_to_msecs(some_time));
msleep() is not exactly the same as the previous code, but I only did this replacement where I thought long delays were *desired*. If this is not the case here, then just disregard this patch.
Note: I could not find any current Maintainer for this driver. If there is one I should sent the patch too, please let me know.
Thanks,
Nish
Description: Uses msleep() instead of schedule_timeout() to guarantee the task delays at least the desired time amount.
---
linux-2.6.9-rc1-bk7-max/drivers/char/nwflash.c | 19 +++++-------------- 1 files changed, 5 insertions(+), 14 deletions(-)
drivers/char/nwflash.c renamed from drivers/char/nwflash.c~msleep-drivers_char_nwflash +5 -14
@@ -60,15 +60,6 @@ static DECLARE_MUTEX(nwflash_sem);extern spinlock_t gpio_lock; -/* -* the delay routine - it is often required to let the flash "breeze"... -*/ -void flash_wait (int timeout) -{ - current->state =TASK_INTERRUPTIBLE ; -schedule_timeout (timeout); -} -static int get_flash_id (void ) {volatile unsigned int c1, c2;
@@ -401,7 +392,7 @@ static int erase_block(int nBlock)/* * wait 10 ms */ -flash_wait (HZ /100 ); +msleep (10 );/* * wait while erasing in process (up to 10 sec)
@@ -409,7 +400,7 @@ static int erase_block(int nBlock) timeout = jiffies +10 *HZ ; c1 =0 ;while (!(c1 &0x80 ) &&time_before (jiffies, timeout)) { -flash_wait (HZ /100 ); +msleep (10 );/* * read any address */
@@ -440,7 +431,7 @@ static int erase_block(int nBlock)/* * just to make sure - verify if erased OK... */ -flash_wait (HZ /100 ); +msleep (10 ); pWritePtr = (unsigned char *) ((unsigned int ) (FLASH_BASE + (nBlock <<16 )));
@@ -587,7 +578,7 @@ static int write_block(unsigned long p,/* * wait couple ms */ -flash_wait (HZ /100 ); +msleep (10 );/* * red LED == write */
@@ -612,7 +603,7 @@ static int write_block(unsigned long p,leds_event (led_amber_off);leds_event (led_green_on); -flash_wait (HZ /100 ); +msleep (10 ); pWritePtr = (unsigned char *) ((unsigned int ) (FLASH_BASE + p));
_