I have a Logitech QuickCam Orbit (USB ID 046d:08b5), which I'm trying to
use with Fedora Core 4's heavily patched 2.6.14 kernel
(2.6.14-1.1653_FC4, also failed with an older FC4 kernel). It fails on
two very different system hardware configurations. I've tried both the
Fedora-supplied pwc driver and 10.0.9. This same camera worked fine,
with both versions of the driver and on more than one computer, under
FC3.
Under FC4, I get tons of buffer underflow messages ("pwc Frame buffer
underflow (<something> bytes)"; discarded". The driver never seems to
manage to put together a complete frame, and the userland application
typically hangs until it gets a hard kill (tested with gnomemeeting,
ffmpeg, and probably others; I forget).
On both of the computers I've tested it on, the camera is the only
device on the bus other than, in one case, a hub.
I know nothing about the Linux USB subsystem and next to nothing about
USB in general, but I went in and did some "printf debugging" in the
pwc_isoc_handler routine of pwc-if.c.
Apparently the driver detects the end of a video frame by looking for an
isochronous USB packet that's shorter than the previous packet. On my
system, the lower layers are passing up packets of varying lengths; a
typical pattern is for flen (the isochronous actual_length field) to
alternate between 275 and 279, but other lengths, including zero, do
show up. The zero-length packets don't seem to be corellated with the
ends of frames either, or at least the buffer is usually far from full
when those packets come in.
I have a feeling that the old USB code used to "clean up" the
isochronous stream in some way before the pwc driver saw it, and the new
code doesn't... but I have no idea whether the problem is that Fedora
has broken the USB subsystem, or 2.6.14 in general is broken, or the
driver is making improper assumptions, or what... and certainly I have
no idea how to fix it.
I've looked at the Fedora patches, but the only ones that obviously
touch or mention USB are patches to other individual device drivers,
a patch to pwc that isn't in my failing version of 10.0.9, and a
couple of device ID changes in the HID subsystem. Nothing jumps out
at me from the kernel config file.
Any suggestions?
-- jbash
_______________________________________________
pwc mailing list
http://lists.saillard.org/mailman/listinfo/pwc
|