[PATCH] char/ds1620: use msleep() instead of schedule_timeout()
Not sure why any driver needs to sleep for *two* ticks, so let's fix it. Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Signals are never checked for by the callers or in the function itself, so use TASK_UNINTERRUPTIBLE instead of TASK_INTERRUPTIBLE. The delay is presumed to have been written when HZ==100, and thus has been multiplied by 10 to pass to msleep(). Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com> Signed-off-by: Domen Puncer <domen@coderock.org> Acked-by: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
d2a457cf26
commit
d8eddb6204
|
@ -163,8 +163,7 @@ static void ds1620_out(int cmd, int bits, int value)
|
|||
netwinder_ds1620_reset();
|
||||
netwinder_unlock(&flags);
|
||||
|
||||
set_current_state(TASK_INTERRUPTIBLE);
|
||||
schedule_timeout(2);
|
||||
msleep(20);
|
||||
}
|
||||
|
||||
static unsigned int ds1620_in(int cmd, int bits)
|
||||
|
|
Loading…
Reference in New Issue