Lines Matching refs:sd

24 static void ov9650_dump_registers(struct sd *sd);
146 int ov9650_probe(struct sd *sd) in ov9650_probe() argument
150 struct gspca_dev *gspca_dev = (struct gspca_dev *)sd; in ov9650_probe()
168 err = m5602_write_sensor(sd, in ov9650_probe()
171 err = m5602_write_bridge(sd, in ov9650_probe()
178 if (m5602_read_sensor(sd, OV9650_PID, &prod_id, 1)) in ov9650_probe()
181 if (m5602_read_sensor(sd, OV9650_VER, &ver_id, 1)) in ov9650_probe()
191 sd->gspca_dev.cam.cam_mode = ov9650_modes; in ov9650_probe()
192 sd->gspca_dev.cam.nmodes = ARRAY_SIZE(ov9650_modes); in ov9650_probe()
197 int ov9650_init(struct sd *sd) in ov9650_init() argument
203 ov9650_dump_registers(sd); in ov9650_init()
208 err = m5602_write_sensor(sd, init_ov9650[i][1], in ov9650_init()
211 err = m5602_write_bridge(sd, init_ov9650[i][1], data); in ov9650_init()
217 int ov9650_init_controls(struct sd *sd) in ov9650_init_controls() argument
219 struct v4l2_ctrl_handler *hdl = &sd->gspca_dev.ctrl_handler; in ov9650_init_controls()
221 sd->gspca_dev.vdev.ctrl_handler = hdl; in ov9650_init_controls()
224 sd->auto_white_bal = v4l2_ctrl_new_std(hdl, &ov9650_ctrl_ops, in ov9650_init_controls()
227 sd->red_bal = v4l2_ctrl_new_std(hdl, &ov9650_ctrl_ops, in ov9650_init_controls()
230 sd->blue_bal = v4l2_ctrl_new_std(hdl, &ov9650_ctrl_ops, in ov9650_init_controls()
234 sd->autoexpo = v4l2_ctrl_new_std_menu(hdl, &ov9650_ctrl_ops, in ov9650_init_controls()
236 sd->expo = v4l2_ctrl_new_std(hdl, &ov9650_ctrl_ops, V4L2_CID_EXPOSURE, in ov9650_init_controls()
239 sd->autogain = v4l2_ctrl_new_std(hdl, &ov9650_ctrl_ops, in ov9650_init_controls()
241 sd->gain = v4l2_ctrl_new_std(hdl, &ov9650_ctrl_ops, V4L2_CID_GAIN, 0, in ov9650_init_controls()
244 sd->hflip = v4l2_ctrl_new_std(hdl, &ov9650_ctrl_ops, V4L2_CID_HFLIP, in ov9650_init_controls()
246 sd->vflip = v4l2_ctrl_new_std(hdl, &ov9650_ctrl_ops, V4L2_CID_VFLIP, in ov9650_init_controls()
254 v4l2_ctrl_auto_cluster(3, &sd->auto_white_bal, 0, false); in ov9650_init_controls()
255 v4l2_ctrl_auto_cluster(2, &sd->autoexpo, 0, false); in ov9650_init_controls()
256 v4l2_ctrl_auto_cluster(2, &sd->autogain, 0, false); in ov9650_init_controls()
257 v4l2_ctrl_cluster(2, &sd->hflip); in ov9650_init_controls()
262 int ov9650_start(struct sd *sd) in ov9650_start() argument
266 struct cam *cam = &sd->gspca_dev.cam; in ov9650_start()
268 int width = cam->cam_mode[sd->gspca_dev.curr_mode].width; in ov9650_start()
269 int height = cam->cam_mode[sd->gspca_dev.curr_mode].height; in ov9650_start()
270 int ver_offs = cam->cam_mode[sd->gspca_dev.curr_mode].priv; in ov9650_start()
272 struct gspca_dev *gspca_dev = (struct gspca_dev *)sd; in ov9650_start()
275 sd->vflip->val) || in ov9650_start()
277 !sd->vflip->val)) in ov9650_start()
286 err = m5602_write_bridge(sd, res_init_ov9650[i][1], in ov9650_start()
290 err = m5602_write_sensor(sd, in ov9650_start()
297 err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, in ov9650_start()
302 err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, (ver_offs & 0xff)); in ov9650_start()
306 err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, 0); in ov9650_start()
310 err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, (height >> 8) & 0xff); in ov9650_start()
314 err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, (height & 0xff)); in ov9650_start()
319 err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, 0); in ov9650_start()
323 err = m5602_write_bridge(sd, M5602_XB_SIG_INI, 0); in ov9650_start()
327 err = m5602_write_bridge(sd, M5602_XB_SIG_INI, 2); in ov9650_start()
331 err = m5602_write_bridge(sd, M5602_XB_HSYNC_PARA, in ov9650_start()
336 err = m5602_write_bridge(sd, M5602_XB_HSYNC_PARA, hor_offs & 0xff); in ov9650_start()
340 err = m5602_write_bridge(sd, M5602_XB_HSYNC_PARA, in ov9650_start()
345 err = m5602_write_bridge(sd, M5602_XB_HSYNC_PARA, in ov9650_start()
350 err = m5602_write_bridge(sd, M5602_XB_SIG_INI, 0); in ov9650_start()
360 err = m5602_write_sensor(sd, OV9650_COM7, &data, 1); in ov9650_start()
368 err = m5602_write_sensor(sd, OV9650_COM7, &data, 1); in ov9650_start()
376 err = m5602_write_sensor(sd, OV9650_COM7, &data, 1); in ov9650_start()
384 err = m5602_write_sensor(sd, OV9650_COM7, &data, 1); in ov9650_start()
390 int ov9650_stop(struct sd *sd) in ov9650_stop() argument
393 return m5602_write_sensor(sd, OV9650_COM2, &data, 1); in ov9650_stop()
396 void ov9650_disconnect(struct sd *sd) in ov9650_disconnect() argument
398 ov9650_stop(sd); in ov9650_disconnect()
400 sd->sensor = NULL; in ov9650_disconnect()
405 struct sd *sd = (struct sd *) gspca_dev; in ov9650_set_exposure() local
413 err = m5602_write_sensor(sd, OV9650_AECHM, in ov9650_set_exposure()
420 err = m5602_write_sensor(sd, OV9650_AECH, in ov9650_set_exposure()
427 err = m5602_write_sensor(sd, OV9650_COM1, &i2c_data, 1); in ov9650_set_exposure()
435 struct sd *sd = (struct sd *) gspca_dev; in ov9650_set_gain() local
442 err = m5602_read_sensor(sd, OV9650_VREF, &i2c_data, 1); in ov9650_set_gain()
449 err = m5602_write_sensor(sd, OV9650_VREF, &i2c_data, 1); in ov9650_set_gain()
455 err = m5602_write_sensor(sd, OV9650_GAIN, &i2c_data, 1); in ov9650_set_gain()
463 struct sd *sd = (struct sd *) gspca_dev; in ov9650_set_red_balance() local
468 err = m5602_write_sensor(sd, OV9650_RED, &i2c_data, 1); in ov9650_set_red_balance()
476 struct sd *sd = (struct sd *) gspca_dev; in ov9650_set_blue_balance() local
481 err = m5602_write_sensor(sd, OV9650_BLUE, &i2c_data, 1); in ov9650_set_blue_balance()
489 struct sd *sd = (struct sd *) gspca_dev; in ov9650_set_hvflip() local
490 int hflip = sd->hflip->val; in ov9650_set_hvflip()
491 int vflip = sd->vflip->val; in ov9650_set_hvflip()
499 err = m5602_write_sensor(sd, OV9650_MVFP, &i2c_data, 1); in ov9650_set_hvflip()
505 err = ov9650_start(sd); in ov9650_set_hvflip()
515 struct sd *sd = (struct sd *) gspca_dev; in ov9650_set_auto_exposure() local
519 err = m5602_read_sensor(sd, OV9650_COM8, &i2c_data, 1); in ov9650_set_auto_exposure()
526 return m5602_write_sensor(sd, OV9650_COM8, &i2c_data, 1); in ov9650_set_auto_exposure()
534 struct sd *sd = (struct sd *) gspca_dev; in ov9650_set_auto_white_balance() local
538 err = m5602_read_sensor(sd, OV9650_COM8, &i2c_data, 1); in ov9650_set_auto_white_balance()
543 err = m5602_write_sensor(sd, OV9650_COM8, &i2c_data, 1); in ov9650_set_auto_white_balance()
552 struct sd *sd = (struct sd *) gspca_dev; in ov9650_set_auto_gain() local
556 err = m5602_read_sensor(sd, OV9650_COM8, &i2c_data, 1); in ov9650_set_auto_gain()
562 return m5602_write_sensor(sd, OV9650_COM8, &i2c_data, 1); in ov9650_set_auto_gain()
569 struct sd *sd = (struct sd *) gspca_dev; in ov9650_s_ctrl() local
580 err = ov9650_set_red_balance(gspca_dev, sd->red_bal->val); in ov9650_s_ctrl()
583 err = ov9650_set_blue_balance(gspca_dev, sd->blue_bal->val); in ov9650_s_ctrl()
589 err = ov9650_set_exposure(gspca_dev, sd->expo->val); in ov9650_s_ctrl()
595 err = ov9650_set_gain(gspca_dev, sd->gain->val); in ov9650_s_ctrl()
607 static void ov9650_dump_registers(struct sd *sd) in ov9650_dump_registers() argument
613 m5602_read_sensor(sd, address, &value, 1); in ov9650_dump_registers()
624 m5602_read_sensor(sd, address, &old_value, 1); in ov9650_dump_registers()
625 m5602_write_sensor(sd, address, test_value, 1); in ov9650_dump_registers()
626 m5602_read_sensor(sd, address, &ctrl_value, 1); in ov9650_dump_registers()
634 m5602_write_sensor(sd, address, &old_value, 1); in ov9650_dump_registers()