Index: Makefile =================================================================== --- Makefile (revision 92) +++ Makefile (working copy) @@ -18,7 +18,7 @@ install: mkdir -p $(DESTDIR)/lib/modules/$(shell uname -r)/kernel/drivers/usb/media - install -m 644 -o 0 -g 0 slim321c.ko $(DESTDIR)/lib/modules/$(shell uname -r)/kernel/drivers/usb/media + install -m 644 -o 0 -g 0 m5603c.ko $(DESTDIR)/lib/modules/$(shell uname -r)/kernel/drivers/usb/media depmod -a dist: Index: m5603c.c =================================================================== --- m5603c.c (revision 92) +++ m5603c.c (working copy) @@ -34,14 +34,16 @@ static unsigned int debug = 0; static struct usb_device_id m5603c_table[] = { - {USB_DEVICE(0x0458, 0x7020)}, + {USB_DEVICE(0x0458, 0x7020)}, {USB_DEVICE(0x041e, 0x4038)}, + {USB_DEVICE(0x041e, 0x4045)}, {} }; -static char* m5603c_name[3] = { +static char* m5603c_name[4] = { "Genius Slim 321C", "Creative WebCam Live! Pro", + "Creative WebCam Live! Voice", NULL }; @@ -354,8 +356,11 @@ buff[0] &= 0xfb; usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0x04, 0x40, 0x13, 0x8140, buff, 1, URB_MSG_TIMEOUT); if (fLoadFirmware) { + info("This camera needs to load firmware."); load_firmware(cam); buff[0] = 0x00; usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0x04, 0x40, 0x10, 0x0000, buff, 1, URB_MSG_TIMEOUT); + } else { + info("This camera does not need to load firmware."); } buff[0] = 0xff; usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0x04, 0x40, 0x13, 0x0fe4, buff, 1, URB_MSG_TIMEOUT); @@ -882,9 +887,12 @@ size_t buffer_size; int i; int error = 0; + + info("INSIDE PROBE"); for (i = 0; i < sizeof(m5603c_table) / sizeof(struct usb_device_id); i++) { + info("scanning for %08x:%08x", le16_to_cpu(udev->descriptor.idVendor), le16_to_cpu(udev->descriptor.idProduct)); if ((le16_to_cpu(udev->descriptor.idVendor) == m5603c_table[i].idVendor) && (le16_to_cpu(udev->descriptor.idProduct) == m5603c_table[i].idProduct)) { @@ -957,6 +965,7 @@ cam->vdev = video_device_alloc(); if (!cam->vdev) { + err("Could not allocate video device"); error = -ENOMEM; goto fail; }