sting sting wrote:

Hello,

I had submitted recently a question regarding 'USB Host Controller And a Web Cam'


Mark McClelland answered a few days ago in this Forum that

"Any isochronous-based camera controller with alternate settings for MxPS
< 180 should work. This includes OV511+, OV518, OV518+ and probably
others".


What I do not understand is this: I had looked at the datasheet of OV511+ from OmniVision (Rev. 1.2).

Now there are some tables in this doc describing USB EndPoint details.

for example ,
Table 23. Endpoint Descriptor List of Alternate 1, Packet Size 33.
or
Table 25. Endpoint Descriptor List of Alternate 2, Packet Size 129

but there is also:
Table 27. Endpoint Descriptor List of Alternate 3, Packet Size 257
Table 29. Endpoint Descriptor List of Alternate 4, Packet Size 385

the Packet Size value is simply the value of wMaxPacketSize member of
the EndPoint descriptor (at offset 4 of the endpoint descriptor struct).


Correct. Here are the valid packet sizes for OmniVision-based cameras, in order of alternate number:

OV511:  992, 993, 768, 769, 512, 513, 257, 0 (only odd values are usable)

OV511+:  0, 33, 129, 257, 385, 513, 769, 961

OV518 or OV518+: 0, 128/129, 256/257, 384/385, 512/513, 640/641, 768/769, 896/897 (whether 128 or 129 etc... depends on how camera is wired)

OV519:  0, 384, 512, 768, 896

FX2: 64 (bulk at full speed) or 512 (bulk at high speed). Don't use this camera at full speed unless the controller can do >625KB/s.

Now what I do not understand is this: when we plug a USB device such as a webcam,
we reach the enumeration phase, where a configuration is being made.


Now , after this prcoess is finishes (I believe this happens when we exit from
the usb_new_device() method in usb.c) , we can view the configurations
and endpoints in /proc/bus/usb/devices.


So I assume that also the packet sizes greater than 240, like
257 and 387 (and there are a few more) will appear in the EndPoints.


Yes. It is the responsibility of the webcam driver (under the command of the user) to not use these packet sizes.

So how can I prevent that the driver will use an endpoint with
wMaxPacketSize less than 240 ?


Use ov511's "packetsize" module parameter. For example: "modprobe ov511 packetsize=257". By default it uses the largest size in most cases.

--
Mark McClelland
[EMAIL PROTECTED]



-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to