On Mon, Jul 19, 2010 at 09:23:49AM +0200, Remco wrote: > Jona Joachim wrote: > > > Hi, > > I have a Logitech C200 webcam which includes a uvideo and a uaudio > > device for voice recording. > > > > The video part works correctly and is usable, however uaudio is not so > > happy, it complains in dmesg and no audio(4) device is attached: > > uaudio0: audio descriptors make no sense, error=4 > > > > > > > Does anybody know what may be wrong here? > > > > A USB device has descriptions of its capabilities stored in descriptor > subsets. > > What may be wrong is that one of the descriptor subsets has its size > specified off by one (e.g., the size is one byte too small). In such case > this specific descriptor subset will not parse. I've got a Logitech C500 > that seems to have this problem. (also for one of the audio descriptor > subsets) > > Ignoring the sizes of the descriptor subsets will make the descriptors parse > properly. The only size check will be a boundary check based on the full > descriptor set. (I haven't managed to implement this in the driver though > and I'm not sure this is a good idea anyway because it removes a sanity > check) > > I found this out by fooling around with parsing descriptors from user space. > (after disabling uaudio and having the device attach as ugen) > > So likely you've got a device that doesn't adhere to the USB audio > specifications.
it's not all that uncommon for fields at the end to be "missing". usually, such fields should be treated as if their value is 0. -- jake...@sdf.lonestar.org SDF Public Access UNIX System - http://sdf.lonestar.org