diff options
Diffstat (limited to 'drivers/media/video/gspca/zc3xx.c')
-rw-r--r-- | drivers/media/video/gspca/zc3xx.c | 73 |
1 files changed, 1 insertions, 72 deletions
diff --git a/drivers/media/video/gspca/zc3xx.c b/drivers/media/video/gspca/zc3xx.c index 582a30dcb504..1bab5086bada 100644 --- a/drivers/media/video/gspca/zc3xx.c +++ b/drivers/media/video/gspca/zc3xx.c | |||
@@ -40,7 +40,6 @@ static int force_sensor = -1; | |||
40 | struct sd { | 40 | struct sd { |
41 | struct gspca_dev gspca_dev; /* !! must be the first item */ | 41 | struct gspca_dev gspca_dev; /* !! must be the first item */ |
42 | 42 | ||
43 | u8 brightness; | ||
44 | u8 contrast; | 43 | u8 contrast; |
45 | u8 gamma; | 44 | u8 gamma; |
46 | u8 autogain; | 45 | u8 autogain; |
@@ -80,8 +79,6 @@ struct sd { | |||
80 | }; | 79 | }; |
81 | 80 | ||
82 | /* V4L2 controls supported by the driver */ | 81 | /* V4L2 controls supported by the driver */ |
83 | static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val); | ||
84 | static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val); | ||
85 | static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val); | 82 | static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val); |
86 | static int sd_getcontrast(struct gspca_dev *gspca_dev, __s32 *val); | 83 | static int sd_getcontrast(struct gspca_dev *gspca_dev, __s32 *val); |
87 | static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val); | 84 | static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val); |
@@ -94,21 +91,6 @@ static int sd_setsharpness(struct gspca_dev *gspca_dev, __s32 val); | |||
94 | static int sd_getsharpness(struct gspca_dev *gspca_dev, __s32 *val); | 91 | static int sd_getsharpness(struct gspca_dev *gspca_dev, __s32 *val); |
95 | 92 | ||
96 | static const struct ctrl sd_ctrls[] = { | 93 | static const struct ctrl sd_ctrls[] = { |
97 | #define BRIGHTNESS_IDX 0 | ||
98 | { | ||
99 | { | ||
100 | .id = V4L2_CID_BRIGHTNESS, | ||
101 | .type = V4L2_CTRL_TYPE_INTEGER, | ||
102 | .name = "Brightness", | ||
103 | .minimum = 0, | ||
104 | .maximum = 255, | ||
105 | .step = 1, | ||
106 | #define BRIGHTNESS_DEF 128 | ||
107 | .default_value = BRIGHTNESS_DEF, | ||
108 | }, | ||
109 | .set = sd_setbrightness, | ||
110 | .get = sd_getbrightness, | ||
111 | }, | ||
112 | { | 94 | { |
113 | { | 95 | { |
114 | .id = V4L2_CID_CONTRAST, | 96 | .id = V4L2_CID_CONTRAST, |
@@ -150,7 +132,7 @@ static const struct ctrl sd_ctrls[] = { | |||
150 | .set = sd_setautogain, | 132 | .set = sd_setautogain, |
151 | .get = sd_getautogain, | 133 | .get = sd_getautogain, |
152 | }, | 134 | }, |
153 | #define LIGHTFREQ_IDX 4 | 135 | #define LIGHTFREQ_IDX 3 |
154 | { | 136 | { |
155 | { | 137 | { |
156 | .id = V4L2_CID_POWER_LINE_FREQUENCY, | 138 | .id = V4L2_CID_POWER_LINE_FREQUENCY, |
@@ -6004,33 +5986,6 @@ static void setmatrix(struct gspca_dev *gspca_dev) | |||
6004 | reg_w(gspca_dev->dev, matrix[i], 0x010a + i); | 5986 | reg_w(gspca_dev->dev, matrix[i], 0x010a + i); |
6005 | } | 5987 | } |
6006 | 5988 | ||
6007 | static void setbrightness(struct gspca_dev *gspca_dev) | ||
6008 | { | ||
6009 | struct sd *sd = (struct sd *) gspca_dev; | ||
6010 | u8 brightness; | ||
6011 | |||
6012 | switch (sd->sensor) { | ||
6013 | case SENSOR_GC0305: | ||
6014 | case SENSOR_OV7620: | ||
6015 | case SENSOR_PAS202B: | ||
6016 | case SENSOR_PO2030: | ||
6017 | return; | ||
6018 | } | ||
6019 | /*fixme: is it really write to 011d and 018d for all other sensors? */ | ||
6020 | brightness = sd->brightness; | ||
6021 | reg_w(gspca_dev->dev, brightness, 0x011d); | ||
6022 | switch (sd->sensor) { | ||
6023 | case SENSOR_ADCM2700: | ||
6024 | case SENSOR_HV7131B: | ||
6025 | return; | ||
6026 | } | ||
6027 | if (brightness < 0x70) | ||
6028 | brightness += 0x10; | ||
6029 | else | ||
6030 | brightness = 0x80; | ||
6031 | reg_w(gspca_dev->dev, brightness, 0x018d); | ||
6032 | } | ||
6033 | |||
6034 | static void setsharpness(struct gspca_dev *gspca_dev) | 5989 | static void setsharpness(struct gspca_dev *gspca_dev) |
6035 | { | 5990 | { |
6036 | struct sd *sd = (struct sd *) gspca_dev; | 5991 | struct sd *sd = (struct sd *) gspca_dev; |
@@ -6789,7 +6744,6 @@ static int sd_config(struct gspca_dev *gspca_dev, | |||
6789 | cam->nmodes = ARRAY_SIZE(broken_vga_mode); | 6744 | cam->nmodes = ARRAY_SIZE(broken_vga_mode); |
6790 | break; | 6745 | break; |
6791 | } | 6746 | } |
6792 | sd->brightness = BRIGHTNESS_DEF; | ||
6793 | sd->contrast = CONTRAST_DEF; | 6747 | sd->contrast = CONTRAST_DEF; |
6794 | sd->gamma = gamma[sd->sensor]; | 6748 | sd->gamma = gamma[sd->sensor]; |
6795 | sd->autogain = AUTOGAIN_DEF; | 6749 | sd->autogain = AUTOGAIN_DEF; |
@@ -6797,12 +6751,6 @@ static int sd_config(struct gspca_dev *gspca_dev, | |||
6797 | sd->quality = QUALITY_DEF; | 6751 | sd->quality = QUALITY_DEF; |
6798 | 6752 | ||
6799 | switch (sd->sensor) { | 6753 | switch (sd->sensor) { |
6800 | case SENSOR_GC0305: | ||
6801 | case SENSOR_OV7620: | ||
6802 | case SENSOR_PAS202B: | ||
6803 | case SENSOR_PO2030: | ||
6804 | gspca_dev->ctrl_dis = (1 << BRIGHTNESS_IDX); | ||
6805 | break; | ||
6806 | case SENSOR_HV7131B: | 6754 | case SENSOR_HV7131B: |
6807 | case SENSOR_HV7131C: | 6755 | case SENSOR_HV7131C: |
6808 | case SENSOR_OV7630C: | 6756 | case SENSOR_OV7630C: |
@@ -6893,7 +6841,6 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
6893 | } | 6841 | } |
6894 | 6842 | ||
6895 | setmatrix(gspca_dev); | 6843 | setmatrix(gspca_dev); |
6896 | setbrightness(gspca_dev); | ||
6897 | switch (sd->sensor) { | 6844 | switch (sd->sensor) { |
6898 | case SENSOR_ADCM2700: | 6845 | case SENSOR_ADCM2700: |
6899 | case SENSOR_OV7620: | 6846 | case SENSOR_OV7620: |
@@ -7015,24 +6962,6 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev, | |||
7015 | gspca_frame_add(gspca_dev, INTER_PACKET, data, len); | 6962 | gspca_frame_add(gspca_dev, INTER_PACKET, data, len); |
7016 | } | 6963 | } |
7017 | 6964 | ||
7018 | static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val) | ||
7019 | { | ||
7020 | struct sd *sd = (struct sd *) gspca_dev; | ||
7021 | |||
7022 | sd->brightness = val; | ||
7023 | if (gspca_dev->streaming) | ||
7024 | setbrightness(gspca_dev); | ||
7025 | return 0; | ||
7026 | } | ||
7027 | |||
7028 | static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val) | ||
7029 | { | ||
7030 | struct sd *sd = (struct sd *) gspca_dev; | ||
7031 | |||
7032 | *val = sd->brightness; | ||
7033 | return 0; | ||
7034 | } | ||
7035 | |||
7036 | static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val) | 6965 | static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val) |
7037 | { | 6966 | { |
7038 | struct sd *sd = (struct sd *) gspca_dev; | 6967 | struct sd *sd = (struct sd *) gspca_dev; |