patch-2.4.19 linux-2.4.19/drivers/usb/stv680.c
Next file: linux-2.4.19/drivers/usb/uhci.c
Previous file: linux-2.4.19/drivers/usb/storage/usb.c
Back to the patch index
Back to the overall index
- Lines: 69
- Date:
Fri Aug 2 17:39:45 2002
- Orig file:
linux-2.4.18/drivers/usb/stv680.c
- Orig date:
Mon Feb 25 11:38:07 2002
diff -urN linux-2.4.18/drivers/usb/stv680.c linux-2.4.19/drivers/usb/stv680.c
@@ -50,6 +50,12 @@
* improve quality. Got rid of green line around
* frame. Fix brightness reset when changing size
* bug. Adjusted gamma filters slightly.
+ *
+ * ver 0.25 Jan, 2002 (kjs)
+ * Fixed a bug in which the driver sometimes attempted
+ * to set to a non-supported size. This allowed
+ * gnomemeeting to work.
+ * Fixed proc entry removal bug.
*/
#include <linux/config.h>
@@ -87,7 +93,7 @@
/*
* Version Information
*/
-#define DRIVER_VERSION "v0.24"
+#define DRIVER_VERSION "v0.25"
#define DRIVER_AUTHOR "Kevin Sisson <kjsisson@bellsouth.net>"
#define DRIVER_DESC "STV0680 USB Camera Driver"
@@ -659,7 +665,7 @@
if (stv680_proc_entry == NULL)
return;
- remove_proc_entry ("stv", video_proc_entry);
+ remove_proc_entry ("stv680", video_proc_entry);
}
#endif /* CONFIG_PROC_FS && CONFIG_VIDEO_PROC_FS */
@@ -800,7 +806,7 @@
for (i = 0; i < STV680_NUMSBUF; i++) {
urb = usb_alloc_urb (0);
if (!urb)
- return ENOMEM;
+ return -ENOMEM;
/* sbuf is urb->transfer_buffer, later gets memcpyed to scratch */
usb_fill_bulk_urb (urb, stv680->udev,
@@ -862,20 +868,23 @@
if ((width < (stv680->maxwidth / 2)) || (height < (stv680->maxheight / 2))) {
width = stv680->maxwidth / 2;
height = stv680->maxheight / 2;
- } else if ((width >= 158) && (width <= 166)) {
+ } else if ((width >= 158) && (width <= 166) && (stv680->QVGA == 1)) {
width = 160;
height = 120;
- } else if ((width >= 172) && (width <= 180)) {
+ } else if ((width >= 172) && (width <= 180) && (stv680->CIF == 1)) {
width = 176;
height = 144;
- } else if ((width >= 318) && (width <= 350)) {
+ } else if ((width >= 318) && (width <= 350) && (stv680->QVGA == 1)) {
width = 320;
height = 240;
- } else if ((width >= 350) && (width <= 358)) {
+ } else if ((width >= 350) && (width <= 358) && (stv680->CIF == 1)) {
width = 352;
height = 288;
+ } else {
+ PDEBUG (1, "STV(e): request for non-supported size: request: v.width = %i, v.height = %i actual: stv.width = %i, stv.height = %i", width, height, stv680->vwidth, stv680->vheight);
+ return 1;
}
-
+
/* Stop a current stream and start it again at the new size */
if (wasstreaming)
stv680_stop_stream (stv680);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)