![]() | |||||||||||||
Messages in this thread Patch in this message |
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> --- kj-domen/drivers/char/ds1620.c | 3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) diff -puN drivers/char/ds1620.c~msleep-drivers_char_ds1620 drivers/char/ds1620.c --- kj/drivers/char/ds1620.c~msleep-drivers_char_ds1620 2005-03-18 20:05:09.000000000 +0100 +++ kj-domen/drivers/char/ds1620.c 2005-03-18 20:05:09.000000000 +0100 @@ -163,8 +163,7 @@ static void ds1620_out(int cmd, int bits 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) _ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2005-03-22 13:11 [from the cache] ©2003-2008 | |||||||||||||