diff options
-rw-r--r-- | drivers/media/video/gspca/ov534.c | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/drivers/media/video/gspca/ov534.c b/drivers/media/video/gspca/ov534.c index a574be09bd41..b26faae8d759 100644 --- a/drivers/media/video/gspca/ov534.c +++ b/drivers/media/video/gspca/ov534.c | |||
@@ -48,7 +48,6 @@ static int frame_rate; | |||
48 | /* specific webcam descriptor */ | 48 | /* specific webcam descriptor */ |
49 | struct sd { | 49 | struct sd { |
50 | struct gspca_dev gspca_dev; /* !! must be the first item */ | 50 | struct gspca_dev gspca_dev; /* !! must be the first item */ |
51 | __u8 frame_rate; | ||
52 | }; | 51 | }; |
53 | 52 | ||
54 | /* V4L2 controls supported by the driver */ | 53 | /* V4L2 controls supported by the driver */ |
@@ -358,45 +357,38 @@ static int sd_config(struct gspca_dev *gspca_dev, | |||
358 | /* this function is called at probe and resume time */ | 357 | /* this function is called at probe and resume time */ |
359 | static int sd_init(struct gspca_dev *gspca_dev) | 358 | static int sd_init(struct gspca_dev *gspca_dev) |
360 | { | 359 | { |
361 | struct sd *sd = (struct sd *)gspca_dev; | 360 | int fr; |
362 | ov534_setup(gspca_dev->dev); | ||
363 | 361 | ||
364 | if (frame_rate > 0) | 362 | ov534_setup(gspca_dev->dev); |
365 | sd->frame_rate = frame_rate; | ||
366 | 363 | ||
367 | PDEBUG(D_PROBE, "frame_rate = %d", sd->frame_rate); | 364 | fr = frame_rate; |
368 | 365 | ||
369 | switch (sd->frame_rate) { | 366 | switch (fr) { |
370 | case 50: | 367 | case 50: |
371 | sccb_reg_write(gspca_dev->dev, 0x11, 0x01); | 368 | sccb_reg_write(gspca_dev->dev, 0x11, 0x01); |
372 | sccb_check_status(gspca_dev->dev); | ||
373 | sccb_reg_write(gspca_dev->dev, 0x0d, 0x41); | 369 | sccb_reg_write(gspca_dev->dev, 0x0d, 0x41); |
374 | sccb_check_status(gspca_dev->dev); | ||
375 | ov534_reg_verify_write(gspca_dev->dev, 0xe5, 0x02); | 370 | ov534_reg_verify_write(gspca_dev->dev, 0xe5, 0x02); |
376 | break; | 371 | break; |
377 | case 40: | 372 | case 40: |
378 | sccb_reg_write(gspca_dev->dev, 0x11, 0x02); | 373 | sccb_reg_write(gspca_dev->dev, 0x11, 0x02); |
379 | sccb_check_status(gspca_dev->dev); | ||
380 | sccb_reg_write(gspca_dev->dev, 0x0d, 0xc1); | 374 | sccb_reg_write(gspca_dev->dev, 0x0d, 0xc1); |
381 | sccb_check_status(gspca_dev->dev); | ||
382 | ov534_reg_verify_write(gspca_dev->dev, 0xe5, 0x04); | 375 | ov534_reg_verify_write(gspca_dev->dev, 0xe5, 0x04); |
383 | break; | 376 | break; |
384 | case 30: | 377 | /* case 30: */ |
385 | default: | 378 | default: |
379 | fr = 30; | ||
386 | sccb_reg_write(gspca_dev->dev, 0x11, 0x04); | 380 | sccb_reg_write(gspca_dev->dev, 0x11, 0x04); |
387 | sccb_check_status(gspca_dev->dev); | ||
388 | sccb_reg_write(gspca_dev->dev, 0x0d, 0x81); | 381 | sccb_reg_write(gspca_dev->dev, 0x0d, 0x81); |
389 | sccb_check_status(gspca_dev->dev); | ||
390 | ov534_reg_verify_write(gspca_dev->dev, 0xe5, 0x02); | 382 | ov534_reg_verify_write(gspca_dev->dev, 0xe5, 0x02); |
391 | break; | 383 | break; |
392 | case 15: | 384 | case 15: |
393 | sccb_reg_write(gspca_dev->dev, 0x11, 0x03); | 385 | sccb_reg_write(gspca_dev->dev, 0x11, 0x03); |
394 | sccb_check_status(gspca_dev->dev); | ||
395 | sccb_reg_write(gspca_dev->dev, 0x0d, 0x41); | 386 | sccb_reg_write(gspca_dev->dev, 0x0d, 0x41); |
396 | sccb_check_status(gspca_dev->dev); | ||
397 | ov534_reg_verify_write(gspca_dev->dev, 0xe5, 0x04); | 387 | ov534_reg_verify_write(gspca_dev->dev, 0xe5, 0x04); |
398 | break; | 388 | break; |
399 | }; | 389 | } |
390 | |||
391 | PDEBUG(D_PROBE, "frame_rate: %d", fr); | ||
400 | 392 | ||
401 | return 0; | 393 | return 0; |
402 | } | 394 | } |