diff -r 3e0ba0a8e47f linux/drivers/media/video/gspca/ov534.c --- a/linux/drivers/media/video/gspca/ov534.c Wed Nov 26 20:17:13 2008 +0100 +++ b/linux/drivers/media/video/gspca/ov534.c Thu Nov 27 10:15:08 2008 +0100 @@ -48,7 +48,6 @@ /* specific webcam descriptor */ struct sd { struct gspca_dev gspca_dev; /* !! must be the first item */ - __u8 frame_rate; }; /* V4L2 controls supported by the driver */ @@ -59,7 +58,7 @@ {640, 480, V4L2_PIX_FMT_YUYV, V4L2_FIELD_NONE, .bytesperline = 640 * 2, .sizeimage = 640 * 480 * 2, - .colorspace = V4L2_COLORSPACE_JPEG, + .colorspace = V4L2_COLORSPACE_SRGB, .priv = 0}, }; @@ -359,14 +358,13 @@ static int sd_init(struct gspca_dev *gspca_dev) { struct sd *sd = (struct sd *)gspca_dev; + int fr; + ov534_setup(gspca_dev->dev); - if (frame_rate > 0) - sd->frame_rate = frame_rate; + fr = frame_rate; - PDEBUG(D_PROBE, "frame_rate = %d", sd->frame_rate); - - switch (sd->frame_rate) { + switch (fr) { case 50: sccb_reg_write(gspca_dev->dev, 0x11, 0x01); sccb_check_status(gspca_dev->dev); @@ -381,8 +379,9 @@ sccb_check_status(gspca_dev->dev); ov534_reg_verify_write(gspca_dev->dev, 0xe5, 0x04); break; - case 30: +/* case 30: */ default: + fr = 30; sccb_reg_write(gspca_dev->dev, 0x11, 0x04); sccb_check_status(gspca_dev->dev); sccb_reg_write(gspca_dev->dev, 0x0d, 0x81); @@ -396,18 +395,15 @@ sccb_check_status(gspca_dev->dev); ov534_reg_verify_write(gspca_dev->dev, 0xe5, 0x04); break; - }; + } + + PDEBUG(D_PROBE, "frame_rate: %d", fr); return 0; } static int sd_start(struct gspca_dev *gspca_dev) { - PDEBUG(D_PROBE, "width = %d, height = %d", - gspca_dev->width, gspca_dev->height); - - gspca_dev->cam.bulk_size = gspca_dev->width * gspca_dev->height * 2; - /* start streaming data */ ov534_set_led(gspca_dev->dev, 1); ov534_reg_write(gspca_dev->dev, 0xe0, 0x00); @@ -433,7 +429,6 @@ int framesize = gspca_dev->cam.bulk_size; if (len == framesize - 4) { - frame = gspca_frame_add(gspca_dev, FIRST_PACKET, frame, data, len); frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame, last_pixel,