Hi All,
I've got a Logitech QuickCam Pro (Black Focus Ring) which shows up in
the 'lsusb' output nicely:
Bus 004 Device 012: ID 046d:d001 Logitech, Inc. QuickCam Pro
But the PWC driver doesn't recognize it. So after a quick hint from
Luc, I've hacked the pwc-if.c file to include that sub-id, so it's now
detected and loaded properly, and /dev/video0 gets created as well.
Here's my added stuff, in none path format. Sorry.
static struct usb_device_id pwc_device_table [] = {
. . .
{ USB_DEVICE(0x046D, 0xD001) }, /* Logitech QuickCam Pro */
. . .
};
.
.
.
else if (vendor_id == 0x046d) {
switch(product_id) {
case 0xd001:
Info("Logitech QuickCam Pro USB webcam detected.\n");
name = "Logitech QuickCam Pro";
type_id = 740; /* CCD sensor */
break;
But gqcam bombs when trying to use it, with the message:
> gqcam -v /dev/video0
/dev/video0: Too many open files in system
Which I traced down to the code in pwc.if.c
.
.
.
if (pdev->vmax_packet_size < 0 || pdev->vmax_packet_size >
ISO_MAX_FRAME_SIZE) {
Err("Failed to find packet size for video endpoint in current alternate
setting.\n");
return -ENFILE; /* Odd error, that should be noticable */
}
.
.
.
Which looks to be a bogus error to me, it should report something else
in my mind, such as:
EADDRNOTAVAIL
Address not available
ENOSYS Function not implemented
ENXIO No such device or address
EPROTONOSUPPORT
Protocol not supported
Or heck, the PWC driver should just return it's own error message
numbers here, though I don't know what it should use explicitly.
Anyway, here's a log snapshot with debugging turned on to show what
happens in the driver:
Jul 16 22:53:37 jfsnew kernel: usb 4-1: new full speed USB device using
ohci_hcd and address 12
Jul 16 22:53:37 jfsnew kernel: pwc Logitech QuickCam Pro USB webcam detected.
Jul 16 22:53:37 jfsnew kernel: pwc Registered as /dev/video0.
Jul 16 22:53:39 jfsnew usb.agent[19004]: pwc: already loaded
Jul 16 22:53:40 jfsnew udev[19047]: creating device node '/dev/video0'
Jul 16 22:53:46 jfsnew kernel: pwc set_video_mode(176x144 @ 10, palette 15).
Jul 16 22:53:46 jfsnew kernel: pwc decode_size = 1.
Jul 16 22:53:46 jfsnew kernel: pwc Using alternate setting 1.
Jul 16 22:53:46 jfsnew kernel: pwc frame_size=18900, vframes=10, vsize=1,
vsnapshot=0, vbandlength=630
Jul 16 22:53:46 jfsnew kernel: pwc Failed to find packet size for video
endpoint in current alternate setting.
I could have sworn that I got some sorta type of output from this
camera using the PWC driver before, but that was chopped off about
2/3s down and I ran out of time at that point to keep poking at it,
since the great PWC battler on LKML happened.
Any hints would be appreciated.
Thanks,
John
_______________________________________________
pwc mailing list
http://lists.saillard.org/mailman/listinfo/pwc
|