ChangeSet 1.808.2.18, 2002/10/28 11:49:17-08:00, [EMAIL PROTECTED]

USB: fix the usb media drivers due to interrupt urb no automatic resubmission change 
to the usb core.


diff -Nru a/drivers/usb/media/se401.c b/drivers/usb/media/se401.c
--- a/drivers/usb/media/se401.c Mon Oct 28 13:53:02 2002
+++ b/drivers/usb/media/se401.c Mon Oct 28 13:53:02 2002
@@ -428,16 +428,37 @@
 static void se401_button_irq(struct urb *urb)
 {
        struct usb_se401 *se401 = urb->context;
+       int status;
        
        if (!se401->dev) {
                info("ohoh: device vapourished");
                return;
        }
        
-       if (urb->actual_length >=2 && !urb->status) {
+       switch (urb->status) {
+       case 0:
+               /* success */
+               break;
+       case -ECONNRESET:
+       case -ENOENT:
+       case -ESHUTDOWN:
+               /* this urb is terminated, clean up */
+               dbg("%s - urb shutting down with status: %d", __FUNCTION__, 
+urb->status);
+               return;
+       default:
+               dbg("%s - nonzero urb status received: %d", __FUNCTION__, urb->status);
+               goto exit;
+       }
+
+       if (urb->actual_length >=2) {
                if (se401->button)
                        se401->buttonpressed=1;
        }
+exit:
+       status = usb_submit_urb (urb, GFP_ATOMIC);
+       if (status)
+               err ("%s - usb_submit_urb failed with result %d",
+                    __FUNCTION__, status);
 }
 
 static void se401_video_irq(struct urb *urb)


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to