Download raw body.
Support Jabra PanaCast 20 webcam
hi Kirill,
On Tue, Nov 26, 2024 at 11:51:56PM +0100, Kirill A. Korinsky wrote:
> tech@,
>
> I had figured out why the Jabra PanaCast 20 wouldn't start streaming. It
> needs uvideo_vs_negotiation between usbd_set_interface and usbd_open_pipe.
> Once I'd added it, it just started working.
>
> Putting it before usbd_set_interface or after usbd_open_pipe doesn't help.
>
> I am not sure if I should enable it only for this webcam via quirks or keep
> it for everything. I had tested on Azurewave, USB camera which is embedded
> in my laptop, this diff doesn't affect it and it continues to work as if
> nothing had changed.
>
> I guess it might fix some webcams that don't work today.
>
> Feedback? Tests? Ok?
>
> Index: sys/dev/usb/uvideo.c
> ===================================================================
> RCS file: /home/cvs/src/sys/dev/usb/uvideo.c,v
> diff -u -p -r1.222 uvideo.c
> --- sys/dev/usb/uvideo.c 1 Sep 2024 03:09:00 -0000 1.222
> +++ sys/dev/usb/uvideo.c 26 Nov 2024 22:24:25 -0000
> @@ -1899,6 +1899,11 @@ uvideo_vs_open(struct uvideo_softc *sc)
> return (USBD_INVAL);
> }
>
> + /* do device negotiation witht commit after switch interface */
there's a typo here :)
> + error = uvideo_vs_negotiation(sc, 1);
> + if (error != USBD_NORMAL_COMPLETION)
> + printf("%s: could not negotiation after switch interface\n",
> + DEVNAME(sc));
> +
> DPRINTF(1, "%s: open pipe for bEndpointAddress=0x%02x\n",
> DEVNAME(sc), sc->sc_vs_cur->endpoint);
> error = usbd_open_pipe(
>
>
> --
> wbr, Kirill
>
Support Jabra PanaCast 20 webcam