On Sat, 14 Nov 2009, Oliver Neukum wrote:
Am Samstag, 14. November 2009 22:01:16 schrieb Theodore Kilgore:
Reset the camera? By what means would you have in mind? Close the app and
re-plug the camera? It has been tried, of course.
No, I had the driver calling usb_reset_device() in mind. Or for testing
purposes, you manually via usbfs.
Also, there is even so the more basic question that if this is the
particular manner of the failure, then why does the failure occur on 3
UHCI-based machines and it does not occur on 3 OHCI-based machines? Not to
If I had to guess and this is wild speculation, because UHCI schedules
periodic transfers differently from OHCI.
But, wait a minute. Could it be that the detection scheme is killing the
data packets? Maybe. But, again, this is happening only on UHCI hardware.
And also one might assume that I tried lots of things. For example, is it
possible to bypass the detection scheme completely by writing code which
is "hard wired" to initialize only an mr97310a CIF type 1 camera?
Certainly it is. Have I done that and tested said code? Certainly, I have.
Did it make the camera to work on an OHCI machine, as one ought to expect?
Yes. Did it make the camera to work on a UHCI machine? No.
So the other type works on both controllers?
Yes.
Regards
Oliver
Actually, I have succeeded in finding a fix for the problem at this point.
There is a sequence of commands used in the Windows driver for
setting up these cameras, which I omitted from the code in mr97310a.c. The
reason I omitted them is, some of them actually make the camera unstable
at some of the resolution settings. In particular, at 352x288 and at
176x144. The OEM driver seems to assume that the camera will stream at
320x240 and 160x120 only, even though it is capable of 352x288 and
176x144. So, as I said, I omitted the whole sequence because it seemed to
be causing nothing but trouble.
Well, so now I took a second look. There is exactly one command which sets
up the camera to stream properly if it is hooked up to a UHCI machine! I
assume, though I have no way of really knowing this without the usb
traffic analyser that I do not own, but it seems that it sets some kind of
timing. I put this one command back in (for the CIF type 1 cameras only)
and now I can report that the all of the CIF cameras will stream on all of
the machines in my house on which I have tested. This list specifically
includes the one with the VIA chipset, as well as the old Dell laptop, and
also the eeePC.
So, when I get around to it, which may be this evening or at least within
the next 24 hours, I will submit a patch to clean up the driver file which
is in the tree of Hans.
I would highly recommend that this prospective patched version of the
driver gets included in 2.6.32 when it comes out, and not the version of
the driver which is currently found in 2.6.32-rc6.
Theodore Kilgore
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html