--- gspca_core.c 2007-12-24 16:56:47.000000000 +0000 +++ ../../gspca_core.c 2008-11-01 19:47:20.000000000 +0000 @@ -51,7 +51,7 @@ #include #include #include -#include +#include #include #include #include @@ -422,6 +422,7 @@ Lenovo, LogitechQC4Notebooks, PhilipsSPC220NC, + LogitechQuickCamE2500, LastCamera }; static struct cam_list clist[] = { @@ -620,6 +621,7 @@ {Lenovo,"lenovo MI1310_SOC"}, {LogitechQC4Notebooks,"Logitech QuickCam for Notebooks"}, {PhilipsSPC220NC,"Philips SPC220NC PAC207"}, + {LogitechQuickCamE2500,"Logitech QuickCam E2500"}, {-1, NULL} }; static __devinitdata struct usb_device_id device_table[] = { @@ -834,6 +836,7 @@ {USB_DEVICE(0x046d, 0x08af)}, /* Logitech QuickCam Cool */ {USB_DEVICE(0x093a, 0x2472)}, /* PAC207 Genius VideoCam ge110 */ {USB_DEVICE(0x093a, 0x2463)}, /* Philips spc200nc pac207 */ + {USB_DEVICE(0x046d, 0x089d)}, /* Logitech QuickCam E2500 */ {USB_DEVICE(0x0000, 0x0000)}, /* MystFromOri Unknow Camera */ {} /* Terminating entry */ }; @@ -2606,9 +2609,10 @@ .llseek = no_llseek, }; static struct video_device spca50x_template = { - .owner = THIS_MODULE, +// .owner = THIS_MODULE, + //.parent = THIS_MODULE, .name = "GSPCA USB Camera", - .type = VID_TYPE_CAPTURE, + .vfl_type = VID_TYPE_CAPTURE, #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) .hardware = VID_HARDWARE_GSPCA, #endif @@ -2766,22 +2770,22 @@ spca50x_create_sysfs(struct video_device *vdev) { int rc = 0; - rc = video_device_create_file(vdev, &dev_attr_stream_id); + rc = device_create_file(&vdev->dev, &dev_attr_stream_id); if (rc) goto err_stream_id; - rc = video_device_create_file(vdev, &dev_attr_model); + rc = device_create_file(&vdev->dev, &dev_attr_model); if (rc) goto err_model; - rc = video_device_create_file(vdev, &dev_attr_pictsetting); + rc = device_create_file(&vdev->dev, &dev_attr_pictsetting); if (rc) goto err_pictsetting; return 0; err_pictsetting: - video_device_remove_file(vdev, &dev_attr_pictsetting); + device_remove_file(&vdev->dev, &dev_attr_pictsetting); err_model: - video_device_remove_file(vdev, &dev_attr_model); + device_remove_file(&vdev->dev, &dev_attr_model); err_stream_id: - video_device_remove_file(vdev, &dev_attr_stream_id); + device_remove_file(&vdev->dev, &dev_attr_stream_id); return rc; } #endif @@ -3334,6 +3338,16 @@ }; break; case 0x046d: /* Logitech Labtec */ + switch (product) { + case 0x089d: + spca50x->desc = LogitechQuickCamE2500; + spca50x->bridge = BRIDGE_ZC3XX; + spca50x->sensor = SENSOR_MC501CB; + break; + default: + goto error; + }; + break; case 0x041E: /* Creative cameras */ switch (product) { case 0x400A: @@ -4298,7 +4312,7 @@ if (!spca50x->vdev) goto error; memcpy(spca50x->vdev, &spca50x_template, sizeof (spca50x_template)); - spca50x->vdev->dev = &dev->dev; + spca50x->vdev->dev = dev->dev; video_set_drvdata(spca50x->vdev, spca50x); PDEBUG(2, "setting video device = %p, spca50x = %p", spca50x->vdev, spca50x); @@ -4317,6 +4331,7 @@ if (spca50x_create_sysfs(spca50x->vdev)) goto error; tasklet_init(&spca50x->spca5xx_tasklet, + //tasklet_init(&spca5xx_tasklet, outpict_do_tasklet, (unsigned long) 0); return 0; error: --- gspca.h 2007-12-24 16:56:47.000000000 +0000 +++ ../../gspca.h 2008-11-01 19:37:07.000000000 +0000 @@ -14,6 +14,7 @@ #include #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) #include +#include #endif /* V4L API extension for raw JPEG (=JPEG without header) and JPEG with header */