This patch makes usbvideo_register take a usb_device_id argument which it
can then pass to usb_register via the struct usb_device. Currently it passes
NULL.


cheers
si

 drivers/usb/media/ibmcam.c   |   23 +++++++++++++----------
 drivers/usb/media/konicawc.c |    3 ++-
 drivers/usb/media/ultracam.c |   18 ++++++++----------
 drivers/usb/media/usbvideo.c |    4 +++-
 drivers/usb/media/usbvideo.h |    3 ++-
 5 files changed, 28 insertions(+), 23 deletions(-)


diff -urN -X /home/spse/dontdiff linux-2.5.12-clean/drivers/usb/media/ibmcam.c 
linux-2.5.12/drivers/usb/media/ibmcam.c
--- linux-2.5.12-clean/drivers/usb/media/ibmcam.c       Wed May  1 01:08:50 2002
+++ linux-2.5.12/drivers/usb/media/ibmcam.c     Wed May  1 21:58:51 2002
@@ -3899,6 +3899,17 @@
        return uvd;
 }
 
+
+static struct usb_device_id id_table[] = {
+       { USB_DEVICE_VER(IBMCAM_VENDOR_ID, IBMCAM_PRODUCT_ID, 0x0002, 0x0002) },       
+ /* Model 1 */
+       { USB_DEVICE_VER(IBMCAM_VENDOR_ID, IBMCAM_PRODUCT_ID, 0x030a, 0x030a) },       
+ /* Model 2 */
+       { USB_DEVICE_VER(IBMCAM_VENDOR_ID, IBMCAM_PRODUCT_ID, 0x0301, 0x0301) },       
+ /* Model 3 */
+       { USB_DEVICE_VER(IBMCAM_VENDOR_ID, NETCAM_PRODUCT_ID, 0x030a, 0x030a) },       
+ /* Model 4 */
+       { USB_DEVICE_VER(IBMCAM_VENDOR_ID, VEO_800C_PRODUCT_ID, 0x030a, 0x030a) },     
+ /* Model 2 */
+       { USB_DEVICE_VER(IBMCAM_VENDOR_ID, VEO_800D_PRODUCT_ID, 0x030a, 0x030a) },     
+ /* Model 4 */
+       { }  /* Terminating entry */
+};
+
 /*
  * ibmcam_init()
  *
@@ -3926,7 +3937,8 @@
                sizeof(ibmcam_t),
                "ibmcam",
                &cbTbl,
-               THIS_MODULE);
+               THIS_MODULE,
+               id_table);
 }
 
 static void __exit ibmcam_cleanup(void)
@@ -3934,15 +3946,6 @@
        usbvideo_Deregister(&cams);
 }
 
-static __devinitdata struct usb_device_id id_table[] = {
-       { USB_DEVICE_VER(IBMCAM_VENDOR_ID, IBMCAM_PRODUCT_ID, 0x0002, 0x0002) },       
 /* Model 1 */
-       { USB_DEVICE_VER(IBMCAM_VENDOR_ID, IBMCAM_PRODUCT_ID, 0x030a, 0x030a) },       
 /* Model 2 */
-       { USB_DEVICE_VER(IBMCAM_VENDOR_ID, IBMCAM_PRODUCT_ID, 0x0301, 0x0301) },       
 /* Model 3 */
-       { USB_DEVICE_VER(IBMCAM_VENDOR_ID, NETCAM_PRODUCT_ID, 0x030a, 0x030a) },       
 /* Model 4 */
-       { USB_DEVICE_VER(IBMCAM_VENDOR_ID, VEO_800C_PRODUCT_ID, 0x030a, 0x030a) },     
 /* Model 2 */
-       { USB_DEVICE_VER(IBMCAM_VENDOR_ID, VEO_800D_PRODUCT_ID, 0x030a, 0x030a) },     
 /* Model 4 */
-       { }  /* Terminating entry */
-};
 MODULE_DEVICE_TABLE(usb, id_table);
 
 module_init(ibmcam_init);
diff -urN -X /home/spse/dontdiff linux-2.5.12-clean/drivers/usb/media/konicawc.c 
linux-2.5.12/drivers/usb/media/konicawc.c
--- linux-2.5.12-clean/drivers/usb/media/konicawc.c     Wed May  1 01:08:44 2002
+++ linux-2.5.12/drivers/usb/media/konicawc.c   Wed May  1 21:59:52 2002
@@ -767,5 +866,6 @@
                sizeof(struct konicawc),
                "konicawc",
                &cbTbl,
-               THIS_MODULE);
+               THIS_MODULE,
+               id_table);
 }


 diff -urN -X /home/spse/dontdiff linux-2.5.12-clean/drivers/usb/media/ultracam.c 
linux-2.5.12/drivers/usb/media/ultracam.c
--- linux-2.5.12-clean/drivers/usb/media/ultracam.c     Wed May  1 01:08:48 2002
+++ linux-2.5.12/drivers/usb/media/ultracam.c   Wed May  1 21:58:51 2002
@@ -659,6 +659,12 @@
        return uvd;
 }
 
+
+static struct usb_device_id id_table[] = {
+       { USB_DEVICE(ULTRACAM_VENDOR_ID, ULTRACAM_PRODUCT_ID) },
+       { }  /* Terminating entry */
+};
+
 /*
  * ultracam_init()
  *
@@ -682,7 +688,8 @@
                sizeof(ultracam_t),
                "ultracam",
                &cbTbl,
-               THIS_MODULE);
+               THIS_MODULE,
+               id_table);
 }
 
 static void __exit ultracam_cleanup(void)
@@ -690,16 +697,7 @@
        usbvideo_Deregister(&cams);
 }
 
-#if defined(usb_device_id_ver)
-
-static __devinitdata struct usb_device_id id_table[] = {
-       { USB_DEVICE(ULTRACAM_VENDOR_ID, ULTRACAM_PRODUCT_ID) },
-       { }  /* Terminating entry */
-};
 MODULE_DEVICE_TABLE(usb, id_table);
-
-
-#endif /* defined(usb_device_id_ver) */
 MODULE_LICENSE("GPL");
 
 module_init(ultracam_init);
diff -urN -X /home/spse/dontdiff linux-2.5.12-clean/drivers/usb/media/usbvideo.c 
linux-2.5.12/drivers/usb/media/usbvideo.c
--- linux-2.5.12-clean/drivers/usb/media/usbvideo.c     Wed May  1 01:08:58 2002
+++ linux-2.5.12/drivers/usb/media/usbvideo.c   Wed May  1 21:59:52 2002
@@ -749,7 +767,8 @@
        const int num_extra,
        const char *driverName,
        const usbvideo_cb_t *cbTbl,
-       struct module *md )
+       struct module *md,
+       struct usb_device_id id_table[])
 {
        static const char proc[] = "usbvideo_register";
        usbvideo_t *cams;
@@ -839,6 +858,7 @@
        cams->usbdrv.name = cams->drvName;
        cams->usbdrv.probe = cams->cb.probe;
        cams->usbdrv.disconnect = cams->cb.disconnect;
+       cams->usbdrv.id_table = id_table;
 
 #if USES_PROC_FS
        if (cams->uses_procfs) {
diff -urN -X /home/spse/dontdiff linux-2.5.12-clean/drivers/usb/media/usbvideo.h 
linux-2.5.12/drivers/usb/media/usbvideo.h
--- linux-2.5.12-clean/drivers/usb/media/usbvideo.h     Wed May  1 02:54:52 2002
+++ linux-2.5.12/drivers/usb/media/usbvideo.h   Wed May  1 21:59:52 2002
@@ -327,7 +330,8 @@
        const int num_extra,
        const char *driverName,
        const usbvideo_cb_t *cbTable,
-       struct module *md);
+       struct module *md,
+       struct usb_device_id id_table[]);
 uvd_t *usbvideo_AllocateDevice(usbvideo_t *cams);
 int usbvideo_RegisterVideoDevice(uvd_t *uvd);
 void usbvideo_Deregister(usbvideo_t **uvt);



_______________________________________________________________

Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: [EMAIL PROTECTED]
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to