ChangeSet 1.2020.1.20, 2005/03/07 22:33:35-08:00, [EMAIL PROTECTED]

[PATCH] usb/mdc800: use wait_event_timeout()

Use wait_event_timeout() instead of custom wait-queue code. Remove
now unused variables.

Signed-off-by: Nishanth Aravamudan <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>


 drivers/usb/image/mdc800.c |   36 +++++-------------------------------
 1 files changed, 5 insertions(+), 31 deletions(-)


diff -Nru a/drivers/usb/image/mdc800.c b/drivers/usb/image/mdc800.c
--- a/drivers/usb/image/mdc800.c        2005-03-08 16:54:42 -08:00
+++ b/drivers/usb/image/mdc800.c        2005-03-08 16:54:42 -08:00
@@ -95,6 +95,7 @@
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/smp_lock.h>
+#include <linux/wait.h>
 
 #include <linux/usb.h>
 #include <linux/fs.h>
@@ -346,19 +347,9 @@
  */
 static int mdc800_usb_waitForIRQ (int mode, int msec)
 {
-        DECLARE_WAITQUEUE(wait, current);
-       long timeout;
-
        mdc800->camera_request_ready=1+mode;
 
-       add_wait_queue(&mdc800->irq_wait, &wait);
-       timeout = msec*HZ/1000;
-       while (!mdc800->irq_woken && timeout)
-       {
-               set_current_state(TASK_UNINTERRUPTIBLE);
-               timeout = schedule_timeout (timeout);
-       }
-        remove_wait_queue(&mdc800->irq_wait, &wait);
+       wait_event_timeout(mdc800->irq_wait, mdc800->irq_woken, msec*HZ/1000);
        mdc800->irq_woken = 0;
 
        if (mdc800->camera_request_ready>0)
@@ -704,8 +695,6 @@
 {
        size_t left=len, sts=len; /* single transfer size */
        char __user *ptr = buf;
-       long timeout;
-       DECLARE_WAITQUEUE(wait, current);
 
        down (&mdc800->io_lock);
        if (mdc800->state == NOT_CONNECTED)
@@ -751,14 +740,8 @@
                                        up (&mdc800->io_lock);
                                        return len-left;
                                }
-                               add_wait_queue(&mdc800->download_wait, &wait);
-                               timeout = TO_DOWNLOAD_GET_READY*HZ/1000;
-                               while (!mdc800->downloaded && timeout)
-                               {
-                                       set_current_state(TASK_UNINTERRUPTIBLE);
-                                       timeout = schedule_timeout (timeout);
-                               }
-                               remove_wait_queue(&mdc800->download_wait, 
&wait);
+                               wait_event_timeout(mdc800->download_wait, 
mdc800->downloaded,
+                                                                               
TO_DOWNLOAD_GET_READY*HZ/1000);
                                mdc800->downloaded = 0;
                                if (mdc800->download_urb->status != 0)
                                {
@@ -802,7 +785,6 @@
 static ssize_t mdc800_device_write (struct file *file, const char __user *buf, 
size_t len, loff_t *pos)
 {
        size_t i=0;
-       DECLARE_WAITQUEUE(wait, current);
 
        down (&mdc800->io_lock);
        if (mdc800->state != READY)
@@ -856,7 +838,6 @@
                if (mdc800->in_count == 8)
                {
                        int answersize;
-                       long timeout;
 
                        if (mdc800_usb_waitForIRQ (0,TO_GET_READY))
                        {
@@ -876,14 +857,7 @@
                                up (&mdc800->io_lock);
                                return -EIO;
                        }
-                       add_wait_queue(&mdc800->write_wait, &wait);
-                       timeout = TO_WRITE_GET_READY*HZ/1000;
-                       while (!mdc800->written && timeout)
-                       {
-                               set_current_state(TASK_UNINTERRUPTIBLE);
-                               timeout = schedule_timeout (timeout);
-                       }
-                       remove_wait_queue(&mdc800->write_wait, &wait);
+                       wait_event_timeout(mdc800->write_wait, mdc800->written, 
TO_WRITE_GET_READY*HZ/1000);
                        mdc800->written = 0;
                        if (mdc800->state == WORKING)
                        {



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id396&op=click
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to