aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/gspca/zc3xx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/gspca/zc3xx.c')
-rw-r--r--drivers/media/video/gspca/zc3xx.c73
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;
40struct sd { 40struct 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 */
83static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val);
84static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val);
85static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val); 82static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val);
86static int sd_getcontrast(struct gspca_dev *gspca_dev, __s32 *val); 83static int sd_getcontrast(struct gspca_dev *gspca_dev, __s32 *val);
87static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val); 84static 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);
94static int sd_getsharpness(struct gspca_dev *gspca_dev, __s32 *val); 91static int sd_getsharpness(struct gspca_dev *gspca_dev, __s32 *val);
95 92
96static const struct ctrl sd_ctrls[] = { 93static 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
6007static 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
6034static void setsharpness(struct gspca_dev *gspca_dev) 5989static 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
7018static 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
7028static 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
7036static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val) 6965static 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;