diff options
author | Yojiro Uo <yuo@cvs.openbsd.org> | 2008-12-03 03:38:54 +0000 |
---|---|---|
committer | Yojiro Uo <yuo@cvs.openbsd.org> | 2008-12-03 03:38:54 +0000 |
commit | a85cf95f5b045fef7a2acac0c1fab550ab8c1fc3 (patch) | |
tree | cf9451d9c3c72e0cdb12f7671714fde0c00ac633 /sys/dev/usb/uvideo.c | |
parent | 23fcdceb883f7ecd26d0878c32f8f507ba2caf0f (diff) |
change UVC VS negotiation logic.
some device return wrong value for get probe request without
initial set probe request.
so, now it issue set probe request and then get probe to initialize
device configuration.
Diffstat (limited to 'sys/dev/usb/uvideo.c')
-rw-r--r-- | sys/dev/usb/uvideo.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/sys/dev/usb/uvideo.c b/sys/dev/usb/uvideo.c index f52cb405e04..3afd7fdb34f 100644 --- a/sys/dev/usb/uvideo.c +++ b/sys/dev/usb/uvideo.c @@ -1,4 +1,4 @@ -/* $OpenBSD: uvideo.c,v 1.94 2008/12/03 03:28:25 yuo Exp $ */ +/* $OpenBSD: uvideo.c,v 1.95 2008/12/03 03:38:53 yuo Exp $ */ /* * Copyright (c) 2008 Robert Nagy <robert@openbsd.org> @@ -1175,13 +1175,9 @@ uvideo_vs_negotiation(struct uvideo_softc *sc, int commit) return (USBD_INVAL); } - /* get probe */ - bzero(probe_data, sizeof(probe_data)); - error = uvideo_vs_get_probe(sc, probe_data, GET_CUR); - if (error != USBD_NORMAL_COMPLETION) - return (error); - /* set probe */ + bzero(probe_data, sizeof(probe_data)); + USETW(pc->bmHint, 0x1); pc->bFormatIndex = sc->sc_fmtgrp_cur->format->bFormatIndex; pc->bFrameIndex = sc->sc_fmtgrp_cur->format_dfidx; USETDW(pc->dwFrameInterval, |