diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/gspca/spca561.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/media/video/gspca/spca561.c b/drivers/media/video/gspca/spca561.c index 0a1e66201a65..ec575f5672df 100644 --- a/drivers/media/video/gspca/spca561.c +++ b/drivers/media/video/gspca/spca561.c | |||
@@ -38,9 +38,9 @@ struct sd { | |||
38 | #define CONTRAST_MAX 0x3fff | 38 | #define CONTRAST_MAX 0x3fff |
39 | 39 | ||
40 | __u16 exposure; /* rev12a only */ | 40 | __u16 exposure; /* rev12a only */ |
41 | #define EXPOSURE_MIN 0x2001 | 41 | #define EXPOSURE_MIN 0 |
42 | #define EXPOSURE_DEF 0x20ae | 42 | #define EXPOSURE_DEF 200 |
43 | #define EXPOSURE_MAX 0x421d | 43 | #define EXPOSURE_MAX 762 |
44 | 44 | ||
45 | __u8 brightness; /* rev72a only */ | 45 | __u8 brightness; /* rev72a only */ |
46 | #define BRIGHTNESS_MIN 0 | 46 | #define BRIGHTNESS_MIN 0 |
@@ -48,7 +48,7 @@ struct sd { | |||
48 | #define BRIGHTNESS_MAX 63 | 48 | #define BRIGHTNESS_MAX 63 |
49 | 49 | ||
50 | __u8 white; /* rev12a only */ | 50 | __u8 white; /* rev12a only */ |
51 | #define WHITE_MIN 0 | 51 | #define WHITE_MIN 1 |
52 | #define WHITE_DEF 0x40 | 52 | #define WHITE_DEF 0x40 |
53 | #define WHITE_MAX 0x7f | 53 | #define WHITE_MAX 0x7f |
54 | 54 | ||
@@ -608,10 +608,6 @@ static void setwhite(struct gspca_dev *gspca_dev) | |||
608 | __u8 reg8614, reg8616; | 608 | __u8 reg8614, reg8616; |
609 | 609 | ||
610 | white = sd->white; | 610 | white = sd->white; |
611 | if (sd->white == 0) { | ||
612 | PDEBUG(D_CONF, "Discarding null whiteness"); | ||
613 | return; | ||
614 | } | ||
615 | /* try to emulate MS-win as possible */ | 611 | /* try to emulate MS-win as possible */ |
616 | reg8616 = 0x90 - white * 5 / 8; | 612 | reg8616 = 0x90 - white * 5 / 8; |
617 | reg_w_val(gspca_dev->dev, 0x8616, reg8616); | 613 | reg_w_val(gspca_dev->dev, 0x8616, reg8616); |
@@ -623,10 +619,12 @@ static void setwhite(struct gspca_dev *gspca_dev) | |||
623 | static void setexposure(struct gspca_dev *gspca_dev) | 619 | static void setexposure(struct gspca_dev *gspca_dev) |
624 | { | 620 | { |
625 | struct sd *sd = (struct sd *) gspca_dev; | 621 | struct sd *sd = (struct sd *) gspca_dev; |
622 | int expo; | ||
626 | __u8 data[2]; | 623 | __u8 data[2]; |
627 | 624 | ||
628 | data[0] = sd->exposure; | 625 | expo = sd->exposure + 0x20a8; /* from test */ |
629 | data[1] = sd->exposure >> 8; | 626 | data[0] = expo; |
627 | data[1] = expo >> 8; | ||
630 | reg_w_buf(gspca_dev, 0x8309, data, 2); | 628 | reg_w_buf(gspca_dev, 0x8309, data, 2); |
631 | } | 629 | } |
632 | 630 | ||