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