提交 d8eddb62 编写于 作者: D Domen Puncer 提交者: Linus Torvalds

[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: NNishanth Aravamudan <nacc@us.ibm.com>
Signed-off-by: NDomen Puncer <domen@coderock.org>
Acked-by: NRussell King <rmk@arm.linux.org.uk>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 d2a457cf
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册