Hi Felix,

On Sunday 07 October 2007, Felix Möller wrote:
> Hi,
>
> > On Thursday 04 October 2007 16:33, Stefan Schweizer wrote:
[snip]
> > I can't apply the patch as-is. It must be ported to the SVN head first,
> > and some hardcoded assumptions must be removed. If someone wants to do
> > the job, and if we can find a way to integrate the patch without
> > disturbing too much the driver (other UVC devices must still work :-) ),
> > I could apply it.
>
> Laruent: That sounds good but unfortunately I am not a C programmer. The
> attached patch certainly is nothing to apply as is.
>
> Could you please comment on this oops. Is it a bug in the patch or in
> the uvcvideo svn as "if (intf->cur_altsetting->desc.bInterfaceSubClass
> != SC_VIDEOSTREAMING)" is never hit? To fix it I commented out
> "continue" around line 854.

It's definitely a bug in the patch. You can't comment lines at random and 
expect everything to work :-)

[snip]

> How should the occurrences of "if
> (intf->cur_altsetting->desc.bInterfaceSubClass == SC_VIDEOSTREAMING)" be
> modified?

For a UVC device bInterfaceSubclass should be either SC_VIDEOCONTROL or 
SC_VIDEOSTREAMING. The driver uses that field to differentiate between the 
control interface and the streaming interface(s).

If I remember well, the iSight sets bInterfaceSubclass to 0xff for all 
interfaces. This makes the Linux UVC probe fail. You commented the related 
tests to stop the probe from failing, but that confuses the driver.

A proper fix would be to change the iSight descriptors :-) This could actually 
be done by locating the descriptors in the firmware and patching them. Not 
sure if that's a viable long-term solution though, as next firmware versions 
won't work out of the box. On the other hand, newer firmwares might be even 
less UVC compatible...

Best regards,

Laurent Pinchart
_______________________________________________
Linux-uvc-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to