Lines Matching refs:sd
24 static void mt9m111_dump_registers(struct sd *sd);
55 int mt9m111_probe(struct sd *sd) in mt9m111_probe() argument
59 struct gspca_dev *gspca_dev = (struct gspca_dev *)sd; in mt9m111_probe()
76 m5602_write_bridge(sd, in mt9m111_probe()
82 m5602_write_sensor(sd, in mt9m111_probe()
87 if (m5602_read_sensor(sd, MT9M111_SC_CHIPVER, data, 2)) in mt9m111_probe()
98 sd->gspca_dev.cam.cam_mode = mt9m111_modes; in mt9m111_probe()
99 sd->gspca_dev.cam.nmodes = ARRAY_SIZE(mt9m111_modes); in mt9m111_probe()
104 int mt9m111_init(struct sd *sd) in mt9m111_init() argument
113 err = m5602_write_bridge(sd, in mt9m111_init()
119 err = m5602_write_sensor(sd, in mt9m111_init()
125 mt9m111_dump_registers(sd); in mt9m111_init()
130 int mt9m111_init_controls(struct sd *sd) in mt9m111_init_controls() argument
132 struct v4l2_ctrl_handler *hdl = &sd->gspca_dev.ctrl_handler; in mt9m111_init_controls()
134 sd->gspca_dev.vdev.ctrl_handler = hdl; in mt9m111_init_controls()
137 sd->auto_white_bal = v4l2_ctrl_new_std(hdl, &mt9m111_ctrl_ops, in mt9m111_init_controls()
140 sd->green_bal = v4l2_ctrl_new_custom(hdl, &mt9m111_greenbal_cfg, NULL); in mt9m111_init_controls()
141 sd->red_bal = v4l2_ctrl_new_std(hdl, &mt9m111_ctrl_ops, in mt9m111_init_controls()
144 sd->blue_bal = v4l2_ctrl_new_std(hdl, &mt9m111_ctrl_ops, in mt9m111_init_controls()
152 sd->hflip = v4l2_ctrl_new_std(hdl, &mt9m111_ctrl_ops, V4L2_CID_HFLIP, in mt9m111_init_controls()
154 sd->vflip = v4l2_ctrl_new_std(hdl, &mt9m111_ctrl_ops, V4L2_CID_VFLIP, in mt9m111_init_controls()
162 v4l2_ctrl_auto_cluster(4, &sd->auto_white_bal, 0, false); in mt9m111_init_controls()
163 v4l2_ctrl_cluster(2, &sd->hflip); in mt9m111_init_controls()
168 int mt9m111_start(struct sd *sd) in mt9m111_start() argument
172 struct cam *cam = &sd->gspca_dev.cam; in mt9m111_start()
173 struct gspca_dev *gspca_dev = (struct gspca_dev *)sd; in mt9m111_start()
175 int width = cam->cam_mode[sd->gspca_dev.curr_mode].width - 1; in mt9m111_start()
176 int height = cam->cam_mode[sd->gspca_dev.curr_mode].height; in mt9m111_start()
180 err = m5602_write_bridge(sd, in mt9m111_start()
186 err = m5602_write_sensor(sd, in mt9m111_start()
193 err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, (height >> 8) & 0xff); in mt9m111_start()
197 err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, (height & 0xff)); in mt9m111_start()
202 err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, 0); in mt9m111_start()
206 err = m5602_write_bridge(sd, M5602_XB_SIG_INI, 0); in mt9m111_start()
210 err = m5602_write_bridge(sd, M5602_XB_SIG_INI, 2); in mt9m111_start()
215 err = m5602_write_bridge(sd, M5602_XB_HSYNC_PARA, 0); in mt9m111_start()
219 err = m5602_write_bridge(sd, M5602_XB_HSYNC_PARA, in mt9m111_start()
224 err = m5602_write_bridge(sd, M5602_XB_HSYNC_PARA, width & 0xff); in mt9m111_start()
228 err = m5602_write_bridge(sd, M5602_XB_SIG_INI, 0); in mt9m111_start()
244 void mt9m111_disconnect(struct sd *sd) in mt9m111_disconnect() argument
246 sd->sensor = NULL; in mt9m111_disconnect()
253 struct sd *sd = (struct sd *) gspca_dev; in mt9m111_set_hvflip() local
257 PDEBUG(D_CONF, "Set hvflip to %d %d", sd->hflip->val, sd->vflip->val); in mt9m111_set_hvflip()
260 hflip = !sd->hflip->val; in mt9m111_set_hvflip()
261 vflip = !sd->vflip->val; in mt9m111_set_hvflip()
264 err = m5602_write_sensor(sd, MT9M111_PAGE_MAP, data, 2); in mt9m111_set_hvflip()
278 err = m5602_write_sensor(sd, MT9M111_SC_R_MODE_CONTEXT_B, in mt9m111_set_hvflip()
286 struct sd *sd = (struct sd *) gspca_dev; in mt9m111_set_auto_white_balance() local
290 err = m5602_read_sensor(sd, MT9M111_CP_OPERATING_MODE_CTL, data, 2); in mt9m111_set_auto_white_balance()
296 err = m5602_write_sensor(sd, MT9M111_CP_OPERATING_MODE_CTL, data, 2); in mt9m111_set_auto_white_balance()
306 struct sd *sd = (struct sd *) gspca_dev; in mt9m111_set_gain() local
309 err = m5602_write_sensor(sd, MT9M111_PAGE_MAP, data, 2); in mt9m111_set_gain()
334 err = m5602_write_sensor(sd, MT9M111_SC_GLOBAL_GAIN, in mt9m111_set_gain()
344 struct sd *sd = (struct sd *) gspca_dev; in mt9m111_set_green_balance() local
350 err = m5602_write_sensor(sd, MT9M111_SC_GREEN_1_GAIN, in mt9m111_set_green_balance()
355 return m5602_write_sensor(sd, MT9M111_SC_GREEN_2_GAIN, in mt9m111_set_green_balance()
362 struct sd *sd = (struct sd *) gspca_dev; in mt9m111_set_blue_balance() local
369 return m5602_write_sensor(sd, MT9M111_SC_BLUE_GAIN, in mt9m111_set_blue_balance()
376 struct sd *sd = (struct sd *) gspca_dev; in mt9m111_set_red_balance() local
383 return m5602_write_sensor(sd, MT9M111_SC_RED_GAIN, in mt9m111_set_red_balance()
391 struct sd *sd = (struct sd *) gspca_dev; in mt9m111_s_ctrl() local
402 err = mt9m111_set_green_balance(gspca_dev, sd->green_bal->val); in mt9m111_s_ctrl()
405 err = mt9m111_set_red_balance(gspca_dev, sd->red_bal->val); in mt9m111_s_ctrl()
408 err = mt9m111_set_blue_balance(gspca_dev, sd->blue_bal->val); in mt9m111_s_ctrl()
423 static void mt9m111_dump_registers(struct sd *sd) in mt9m111_dump_registers() argument
431 m5602_write_sensor(sd, MT9M111_PAGE_MAP, value, 2); in mt9m111_dump_registers()
433 m5602_read_sensor(sd, address, value, 2); in mt9m111_dump_registers()
440 m5602_write_sensor(sd, MT9M111_PAGE_MAP, value, 2); in mt9m111_dump_registers()
442 m5602_read_sensor(sd, address, value, 2); in mt9m111_dump_registers()
449 m5602_write_sensor(sd, MT9M111_PAGE_MAP, value, 2); in mt9m111_dump_registers()
451 m5602_read_sensor(sd, address, value, 2); in mt9m111_dump_registers()