Skip to contentSkip to conversation

media/bw-qcam: replace schedule_timeout() with msleep_interruptible()

PATCH New [email protected] 1 participant 1 message Sep 23, 2004 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

PATCH 8/21 media/bw-qcam: replace schedule_timeout() with msleep_interruptible()

Any comments would be appreciated.

Description: Use msleep_interruptible() instead of schedule_timeout() to guarantee the task delays as expected.

---

 linux-2.6.9-rc2-bk7-max/drivers/media/video/bw-qcam.c |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)
drivers/media/video/bw-qcam.c renamed from drivers/media/video/bw-qcam.c~msleep_interruptible-drivers_media_video_bw-qcam +4 -8
diff -puN drivers/media/video/bw-qcam.c~msleep_interruptible-drivers_media_video_bw-qcam drivers/media/video/bw-qcam.c
@@ -249,8 +249,7 @@ static int qc_waithand(struct qcam_devic
 			   
 			if(runs++>maxpoll)
 			{
-				current->state=TASK_INTERRUPTIBLE;
-				schedule_timeout(HZ/200);
+				msleep_interruptible(5);
 			}
 			if(runs>(maxpoll+1000)) /* 5 seconds */
 				return -1;
@@ -269,8 +268,7 @@ static int qc_waithand(struct qcam_devic
 			   
 			if(runs++>maxpoll)
 			{
-				current->state=TASK_INTERRUPTIBLE;
-				schedule_timeout(HZ/200);
+				msleep_interruptible(5);
 			}
 			if(runs++>(maxpoll+1000)) /* 5 seconds */
 				return -1;
@@ -302,8 +300,7 @@ static unsigned int qc_waithand2(struct 
 		   
 		if(runs++>maxpoll)
 		{
-			current->state=TASK_INTERRUPTIBLE;
-			schedule_timeout(HZ/200);
+			msleep_interruptible(5);
 		}
 		if(runs++>(maxpoll+1000)) /* 5 seconds */
 			return 0;
@@ -669,8 +666,7 @@ long qc_capture(struct qcam_device * q, 
 		   time will be 240 / 200 = 1.2 seconds. The compile-time
 		   default is to yield every 4 lines. */
 		if (i >= yield) {
-			current->state=TASK_INTERRUPTIBLE;
-			schedule_timeout(HZ/200);
+			msleep_interruptible(5);
 			yield = i + yieldlines;
 		}
 	}

_