ChangeSet 1.893.2.18, 2002/12/26 18:53:43-08:00, [EMAIL PROTECTED]

[PATCH] 2.4.20 usbvideo fixes from 2.5  3/5

Add startDataPump and stopDataPump callbacks to usbvideo.c


diff -Nru a/drivers/usb/usbvideo.c b/drivers/usb/usbvideo.c
--- a/drivers/usb/usbvideo.c    Mon Jan  6 11:30:27 2003
+++ b/drivers/usb/usbvideo.c    Mon Jan  6 11:30:27 2003
@@ -769,6 +769,10 @@
                cams->cb.getFrame = usbvideo_GetFrame;
        if (cams->cb.disconnect == NULL)
                cams->cb.disconnect = usbvideo_Disconnect;
+       if (cams->cb.startDataPump == NULL)
+               cams->cb.startDataPump = usbvideo_StartDataPump;
+       if (cams->cb.stopDataPump == NULL)
+               cams->cb.stopDataPump = usbvideo_StopDataPump;
 #if USES_PROC_FS
        /*
         * If both /proc fs callbacks are NULL then we assume that the driver
@@ -939,7 +943,7 @@
        uvd->remove_pending = 1; /* Now all ISO data will be ignored */
 
        /* At this time we ask to cancel outstanding URBs */
-       usbvideo_StopDataPump(uvd);
+       GET_CALLBACK(uvd, stopDataPump)(uvd);
 
        for (i=0; i < USBVIDEO_NUMSBUF; i++)
                usb_free_urb(uvd->sbuf[i].urb);
@@ -1272,7 +1276,7 @@
        if (errCode == 0) {
                /* Start data pump if we have valid endpoint */
                if (uvd->video_endp != 0)
-                       errCode = usbvideo_StartDataPump(uvd);
+                       errCode = GET_CALLBACK(uvd, startDataPump)(uvd);
                if (errCode == 0) {
                        if (VALID_CALLBACK(uvd, setupOnOpen)) {
                                if (uvd->debug > 1)
@@ -1321,8 +1325,8 @@
        if (uvd->debug > 1)
                info("%s($%p)", __FUNCTION__, dev);
 
-       down(&uvd->lock);       
-       usbvideo_StopDataPump(uvd);
+       down(&uvd->lock);
+       GET_CALLBACK(uvd, stopDataPump)(uvd);
        usbvideo_rvfree(uvd->fbuf, uvd->fbuf_size);
        uvd->fbuf = NULL;
        RingQueue_Free(&uvd->dp);
diff -Nru a/drivers/usb/usbvideo.h b/drivers/usb/usbvideo.h
--- a/drivers/usb/usbvideo.h    Mon Jan  6 11:30:27 2003
+++ b/drivers/usb/usbvideo.h    Mon Jan  6 11:30:27 2003
@@ -268,6 +268,8 @@
        int (*getFrame)(struct uvd *, int);
        int (*procfs_read)(char *page,char **start,off_t off,int count,int *eof,void 
*data);
        int (*procfs_write)(struct file *file,const char *buffer,unsigned long 
count,void *data);
+       int (*startDataPump)(struct uvd *uvd);
+       void (*stopDataPump)(struct uvd *uvd);
 };
 
 struct usbvideo {


-------------------------------------------------------
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