Hi, Please consider applying. Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. In many cases, drivers sleep on a number of jiffies (1 in this case), which varies in real time units (milliseconds, for instance) with HZ's value. Using msleep() prevents this variance. I have assumed in this patch that the old value of HZ (100) was assumed, hence schedule_timeout(1) would delay for 10 msecs (equivalent therefore to msleep(10)). Signed-off-by: Nishanth Aravamudan Acked-by: Stelian Pop Signed-off-by: Domen Puncer --- kj-domen/drivers/char/sonypi.c | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) diff -puN drivers/char/sonypi.c~msleep-drivers_char_sonypi drivers/char/sonypi.c --- kj/drivers/char/sonypi.c~msleep-drivers_char_sonypi 2005-01-23 00:24:12.000000000 +0100 +++ kj-domen/drivers/char/sonypi.c 2005-01-23 00:24:12.000000000 +0100 @@ -286,17 +286,14 @@ static void sonypi_camera_on(void) for (j = 5; j > 0; j--) { - while (sonypi_call2(0x91, 0x1)) { - set_current_state(TASK_UNINTERRUPTIBLE); - schedule_timeout(1); - } + while (sonypi_call2(0x91, 0x1)) + msleep(10); sonypi_call1(0x93); for (i = 400; i > 0; i--) { if (sonypi_camera_ready()) break; - set_current_state(TASK_UNINTERRUPTIBLE); - schedule_timeout(1); + msleep(10); } if (i) break; _