summaryrefslogtreecommitdiff
path: root/sys/dev/usb
diff options
context:
space:
mode:
authorYojiro Uo <yuo@cvs.openbsd.org>2008-12-03 03:38:54 +0000
committerYojiro Uo <yuo@cvs.openbsd.org>2008-12-03 03:38:54 +0000
commita85cf95f5b045fef7a2acac0c1fab550ab8c1fc3 (patch)
treecf9451d9c3c72e0cdb12f7671714fde0c00ac633 /sys/dev/usb
parent23fcdceb883f7ecd26d0878c32f8f507ba2caf0f (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')
-rw-r--r--sys/dev/usb/uvideo.c10
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,