Lines Matching refs:sd
49 static int pb0100_probe(struct sd *sd) in pb0100_probe() argument
55 err = stv06xx_read_sensor(sd, PB_IDENT, &sensor); in pb0100_probe()
69 sd->gspca_dev.cam.cam_mode = stv06xx_sensor_pb0100.modes; in pb0100_probe()
70 sd->gspca_dev.cam.nmodes = stv06xx_sensor_pb0100.nmodes; in pb0100_probe()
71 sd->desc.ctrls = stv06xx_sensor_pb0100.ctrls; in pb0100_probe()
72 sd->desc.nctrls = stv06xx_sensor_pb0100.nctrls; in pb0100_probe()
76 sd->sensor_priv = sensor_settings; in pb0100_probe()
84 static int pb0100_start(struct sd *sd) in pb0100_start() argument
87 struct cam *cam = &sd->gspca_dev.cam; in pb0100_start()
88 s32 *sensor_settings = sd->sensor_priv; in pb0100_start()
89 u32 mode = cam->cam_mode[sd->gspca_dev.curr_mode].priv; in pb0100_start()
93 stv06xx_write_sensor(sd, PB_RSTART, 30); in pb0100_start()
94 stv06xx_write_sensor(sd, PB_CSTART, 20); in pb0100_start()
95 stv06xx_write_sensor(sd, PB_RWSIZE, 240 - 1); in pb0100_start()
96 stv06xx_write_sensor(sd, PB_CWSIZE, 320 - 1); in pb0100_start()
98 stv06xx_write_sensor(sd, PB_RSTART, 8); in pb0100_start()
99 stv06xx_write_sensor(sd, PB_CSTART, 4); in pb0100_start()
100 stv06xx_write_sensor(sd, PB_RWSIZE, 288 - 1); in pb0100_start()
101 stv06xx_write_sensor(sd, PB_CWSIZE, 352 - 1); in pb0100_start()
105 stv06xx_write_bridge(sd, STV_Y_CTRL, 0x02); /* Wrong, FIXME */ in pb0100_start()
106 stv06xx_write_bridge(sd, STV_X_CTRL, 0x06); in pb0100_start()
108 stv06xx_write_bridge(sd, STV_SCAN_RATE, 0x10); in pb0100_start()
110 stv06xx_write_bridge(sd, STV_Y_CTRL, 0x01); in pb0100_start()
111 stv06xx_write_bridge(sd, STV_X_CTRL, 0x0a); in pb0100_start()
113 stv06xx_write_bridge(sd, STV_SCAN_RATE, 0x20); in pb0100_start()
117 pb0100_set_gain(&sd->gspca_dev, sensor_settings[GAIN_IDX]); in pb0100_start()
118 pb0100_set_exposure(&sd->gspca_dev, sensor_settings[EXPOSURE_IDX]); in pb0100_start()
119 pb0100_set_autogain_target(&sd->gspca_dev, in pb0100_start()
121 pb0100_set_autogain(&sd->gspca_dev, sensor_settings[AUTOGAIN_IDX]); in pb0100_start()
123 err = stv06xx_write_sensor(sd, PB_CONTROL, BIT(5)|BIT(3)|BIT(1)); in pb0100_start()
129 static int pb0100_stop(struct sd *sd) in pb0100_stop() argument
133 err = stv06xx_write_sensor(sd, PB_ABORTFRAME, 1); in pb0100_stop()
139 err = stv06xx_write_sensor(sd, PB_CONTROL, BIT(5)|BIT(3)); in pb0100_stop()
150 static int pb0100_init(struct sd *sd) in pb0100_init() argument
152 stv06xx_write_bridge(sd, STV_REG00, 1); in pb0100_init()
153 stv06xx_write_bridge(sd, STV_SCAN_RATE, 0); in pb0100_init()
156 stv06xx_write_sensor(sd, PB_RESET, 1); in pb0100_init()
157 stv06xx_write_sensor(sd, PB_RESET, 0); in pb0100_init()
160 stv06xx_write_sensor(sd, PB_CONTROL, BIT(5)|BIT(3)); in pb0100_init()
163 stv06xx_write_sensor(sd, PB_PREADCTRL, BIT(12)|BIT(10)|BIT(6)); in pb0100_init()
164 stv06xx_write_sensor(sd, PB_ADCGLOBALGAIN, 12); in pb0100_init()
169 stv06xx_write_sensor(sd, PB_R28, 12); in pb0100_init()
171 stv06xx_write_sensor(sd, PB_ADCMAXGAIN, 180); in pb0100_init()
173 stv06xx_write_sensor(sd, PB_ADCMINGAIN, 12); in pb0100_init()
176 stv06xx_write_sensor(sd, PB_R54, 3); in pb0100_init()
179 stv06xx_write_sensor(sd, PB_R55, 0); in pb0100_init()
180 stv06xx_write_sensor(sd, PB_UPDATEINT, 1); in pb0100_init()
182 stv06xx_write_sensor(sd, PB_R15, 800); in pb0100_init()
184 stv06xx_write_sensor(sd, PB_R17, 10); in pb0100_init()
186 stv06xx_write_sensor(sd, PB_EXPGAIN, 0); in pb0100_init()
189 stv06xx_write_sensor(sd, PB_VOFFSET, 0); in pb0100_init()
191 stv06xx_write_sensor(sd, PB_ADCGAINH, 11); in pb0100_init()
193 stv06xx_write_sensor(sd, PB_ADCGAINL, 0); in pb0100_init()
196 stv06xx_write_bridge(sd, STV_REG00, 0x11); in pb0100_init()
197 stv06xx_write_bridge(sd, STV_REG03, 0x45); in pb0100_init()
198 stv06xx_write_bridge(sd, STV_REG04, 0x07); in pb0100_init()
201 stv06xx_write_bridge(sd, STV_ISO_SIZE_L, 847); in pb0100_init()
204 stv06xx_write_sensor(sd, PB_ROWSPEED, BIT(4)|BIT(3)|BIT(1)); in pb0100_init()
205 stv06xx_write_sensor(sd, PB_CFILLIN, 14); in pb0100_init()
206 stv06xx_write_sensor(sd, PB_VBL, 0); in pb0100_init()
207 stv06xx_write_sensor(sd, PB_FINTTIME, 0); in pb0100_init()
208 stv06xx_write_sensor(sd, PB_RINTTIME, 123); in pb0100_init()
210 stv06xx_write_bridge(sd, STV_REG01, 0xc2); in pb0100_init()
211 stv06xx_write_bridge(sd, STV_REG02, 0xb0); in pb0100_init()
215 static int pb0100_dump(struct sd *sd) in pb0100_dump() argument
222 struct sd *sd = (struct sd *) gspca_dev; in pb0100_get_gain() local
223 s32 *sensor_settings = sd->sensor_priv; in pb0100_get_gain()
233 struct sd *sd = (struct sd *) gspca_dev; in pb0100_set_gain() local
234 s32 *sensor_settings = sd->sensor_priv; in pb0100_set_gain()
240 err = stv06xx_write_sensor(sd, PB_G1GAIN, val); in pb0100_set_gain()
242 err = stv06xx_write_sensor(sd, PB_G2GAIN, val); in pb0100_set_gain()
257 struct sd *sd = (struct sd *) gspca_dev; in pb0100_get_red_balance() local
258 s32 *sensor_settings = sd->sensor_priv; in pb0100_get_red_balance()
268 struct sd *sd = (struct sd *) gspca_dev; in pb0100_set_red_balance() local
269 s32 *sensor_settings = sd->sensor_priv; in pb0100_set_red_balance()
281 err = stv06xx_write_sensor(sd, PB_RGAIN, val); in pb0100_set_red_balance()
289 struct sd *sd = (struct sd *) gspca_dev; in pb0100_get_blue_balance() local
290 s32 *sensor_settings = sd->sensor_priv; in pb0100_get_blue_balance()
300 struct sd *sd = (struct sd *) gspca_dev; in pb0100_set_blue_balance() local
301 s32 *sensor_settings = sd->sensor_priv; in pb0100_set_blue_balance()
313 err = stv06xx_write_sensor(sd, PB_BGAIN, val); in pb0100_set_blue_balance()
321 struct sd *sd = (struct sd *) gspca_dev; in pb0100_get_exposure() local
322 s32 *sensor_settings = sd->sensor_priv; in pb0100_get_exposure()
332 struct sd *sd = (struct sd *) gspca_dev; in pb0100_set_exposure() local
333 s32 *sensor_settings = sd->sensor_priv; in pb0100_set_exposure()
339 err = stv06xx_write_sensor(sd, PB_RINTTIME, val); in pb0100_set_exposure()
347 struct sd *sd = (struct sd *) gspca_dev; in pb0100_get_autogain() local
348 s32 *sensor_settings = sd->sensor_priv; in pb0100_get_autogain()
358 struct sd *sd = (struct sd *) gspca_dev; in pb0100_set_autogain() local
359 s32 *sensor_settings = sd->sensor_priv; in pb0100_set_autogain()
370 err = stv06xx_write_sensor(sd, PB_EXPGAIN, val); in pb0100_set_autogain()
380 struct sd *sd = (struct sd *) gspca_dev; in pb0100_get_autogain_target() local
381 s32 *sensor_settings = sd->sensor_priv; in pb0100_get_autogain_target()
391 struct sd *sd = (struct sd *) gspca_dev; in pb0100_set_autogain_target() local
392 s32 *sensor_settings = sd->sensor_priv; in pb0100_set_autogain_target()
403 err = stv06xx_write_sensor(sd, PB_R21, brightpixels); in pb0100_set_autogain_target()
405 err = stv06xx_write_sensor(sd, PB_R22, darkpixels); in pb0100_set_autogain_target()
414 struct sd *sd = (struct sd *) gspca_dev; in pb0100_get_natural() local
415 s32 *sensor_settings = sd->sensor_priv; in pb0100_get_natural()
424 struct sd *sd = (struct sd *) gspca_dev; in pb0100_set_natural() local
425 s32 *sensor_settings = sd->sensor_priv; in pb0100_set_natural()