diff options
| author | jmcneill <jmcneill@NetBSD.org> | 2008-09-20 15:55:38 +0000 |
|---|---|---|
| committer | jmcneill <jmcneill@NetBSD.org> | 2008-09-20 15:55:38 +0000 |
| commit | 205dac9d2cd80f2682ebbfc9269d008c78a30a0b (patch) | |
| tree | 09e7d5c788a2b8bda2f5d6a70922b456e12cbca7 /sys/dev/usb | |
| parent | f2865b8252199da95289a33f7827ac6d3105c473 (diff) | |
Use probe/GET_MAX to determine wCompQuality value during negotiation
Diffstat (limited to 'sys/dev/usb')
| -rw-r--r-- | sys/dev/usb/uvideo.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/dev/usb/uvideo.c b/sys/dev/usb/uvideo.c index 9eeee964756..6803ae805f5 100644 --- a/sys/dev/usb/uvideo.c +++ b/sys/dev/usb/uvideo.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvideo.c,v 1.13 2008/09/20 14:01:27 jmcneill Exp $ */ +/* $NetBSD: uvideo.c,v 1.14 2008/09/20 15:55:38 jmcneill Exp $ */ /* * Copyright (c) 2008 Patrick Mahoney @@ -42,7 +42,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uvideo.c,v 1.13 2008/09/20 14:01:27 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uvideo.c,v 1.14 2008/09/20 15:55:38 jmcneill Exp $"); #ifdef _MODULE #include <sys/module.h> @@ -1808,7 +1808,7 @@ uvideo_set_format(void *addr, struct video_format *format) struct uvideo_softc *sc; struct uvideo_stream *vs; struct uvideo_format *uvfmt; - uvideo_probe_and_commit_data_t probe; + uvideo_probe_and_commit_data_t probe, maxprobe; uint8_t ifaceno; usbd_status err; @@ -1835,6 +1835,15 @@ uvideo_set_format(void *addr, struct video_format *format) probe.bFrameIndex = UVIDEO_FORMAT_GET_FRAME_INDEX(uvfmt); USETDW(probe.dwFrameInterval, vs->vs_frame_interval); /* XXX */ + maxprobe = probe; + err = uvideo_stream_probe(vs, UR_GET_MAX, &maxprobe); + if (err) { + DPRINTF(("uvideo: error probe/GET_MAX: %s (%d)\n", + usbd_errstr(err), err)); + } else { + USETW(probe.wCompQuality, UGETW(maxprobe.wCompQuality)); + } + err = uvideo_stream_probe(vs, UR_SET_CUR, &probe); if (err) { DPRINTF(("uvideo: error commit/SET_CUR: %s (%d)\n", |
