Lines Matching refs:state

31 static int s5c73m3_get_af_status(struct s5c73m3 *state, struct v4l2_ctrl *ctrl)
35 int ret = s5c73m3_read(state, REG_AF_STATUS, &reg);
48 v4l2_info(&state->sensor_sd, "Unknown AF status %#x\n", reg);
63 struct s5c73m3 *state = sensor_sd_to_s5c73m3(sd);
66 if (state->power == 0)
71 ret = s5c73m3_get_af_status(state, state->ctrls.af_status);
80 static int s5c73m3_set_colorfx(struct s5c73m3 *state, int val)
95 v4l2_dbg(1, s5c73m3_dbg, &state->sensor_sd,
97 v4l2_ctrl_get_menu(state->ctrls.colorfx->id)[i]);
99 return s5c73m3_isp_command(state, COMM_IMAGE_EFFECT,
106 static int s5c73m3_set_exposure(struct s5c73m3 *state, int auto_exp)
108 struct v4l2_subdev *sd = &state->sensor_sd;
109 struct s5c73m3_ctrls *ctrls = &state->ctrls;
127 ret = s5c73m3_isp_command(state, COMM_METERING, metering);
132 ret = s5c73m3_isp_command(state, COMM_EV, exp_bias);
142 static int s5c73m3_set_white_balance(struct s5c73m3 *state, int val)
158 v4l2_dbg(1, s5c73m3_dbg, &state->sensor_sd,
160 v4l2_ctrl_get_menu(state->ctrls.auto_wb->id)[i]);
162 return s5c73m3_isp_command(state, COMM_AWB_MODE, wb[i][1]);
168 static int s5c73m3_af_run(struct s5c73m3 *state, bool on)
170 struct s5c73m3_ctrls *c = &state->ctrls;
173 return s5c73m3_isp_command(state, COMM_AF_CON,
177 return s5c73m3_isp_command(state, COMM_AF_MODE,
180 return s5c73m3_isp_command(state, COMM_AF_CON, COMM_AF_CON_START);
183 static int s5c73m3_3a_lock(struct s5c73m3 *state, struct v4l2_ctrl *ctrl)
191 ret = s5c73m3_isp_command(state, COMM_AE_CON,
198 && state->ctrls.auto_wb->val) {
199 ret = s5c73m3_isp_command(state, COMM_AWB_CON,
206 ret = s5c73m3_af_run(state, !af_lock);
211 static int s5c73m3_set_auto_focus(struct s5c73m3 *state, int caf)
213 struct s5c73m3_ctrls *c = &state->ctrls;
219 ret = s5c73m3_isp_command(state, COMM_AF_MODE, mode);
226 ret = s5c73m3_af_run(state, 1);
229 ret = s5c73m3_af_run(state, 0);
236 static int s5c73m3_set_contrast(struct s5c73m3 *state, int val)
239 return s5c73m3_isp_command(state, COMM_CONTRAST, reg);
242 static int s5c73m3_set_saturation(struct s5c73m3 *state, int val)
245 return s5c73m3_isp_command(state, COMM_SATURATION, reg);
248 static int s5c73m3_set_sharpness(struct s5c73m3 *state, int val)
251 return s5c73m3_isp_command(state, COMM_SHARPNESS, reg);
254 static int s5c73m3_set_iso(struct s5c73m3 *state, int val)
259 iso = state->ctrls.iso->val + 1;
263 return s5c73m3_isp_command(state, COMM_ISO, iso);
266 static int s5c73m3_set_stabilization(struct s5c73m3 *state, int val)
268 struct v4l2_subdev *sd = &state->sensor_sd;
272 return s5c73m3_isp_command(state, COMM_FRAME_RATE, val ?
276 static int s5c73m3_set_jpeg_quality(struct s5c73m3 *state, int quality)
287 return s5c73m3_isp_command(state, COMM_IMAGE_QUALITY, reg);
290 static int s5c73m3_set_scene_program(struct s5c73m3 *state, int val)
309 v4l2_dbg(1, s5c73m3_dbg, &state->sensor_sd, "Setting %s scene mode\n",
310 v4l2_ctrl_get_menu(state->ctrls.scene_mode->id)[val]);
312 return s5c73m3_isp_command(state, COMM_SCENE_MODE, scene_lookup[val]);
315 static int s5c73m3_set_power_line_freq(struct s5c73m3 *state, int val)
334 return s5c73m3_isp_command(state, COMM_FLICKER_MODE, pwr_line_freq);
340 struct s5c73m3 *state = sensor_sd_to_s5c73m3(sd);
346 mutex_lock(&state->lock);
352 if (state->power == 0)
362 ret = s5c73m3_3a_lock(state, ctrl);
366 ret = s5c73m3_set_white_balance(state, ctrl->val);
370 ret = s5c73m3_set_contrast(state, ctrl->val);
374 ret = s5c73m3_set_colorfx(state, ctrl->val);
378 ret = s5c73m3_set_exposure(state, ctrl->val);
382 ret = s5c73m3_set_auto_focus(state, ctrl->val);
386 ret = s5c73m3_set_stabilization(state, ctrl->val);
390 ret = s5c73m3_set_iso(state, ctrl->val);
394 ret = s5c73m3_set_jpeg_quality(state, ctrl->val);
398 ret = s5c73m3_set_power_line_freq(state, ctrl->val);
402 ret = s5c73m3_set_saturation(state, ctrl->val);
406 ret = s5c73m3_set_scene_program(state, ctrl->val);
410 ret = s5c73m3_set_sharpness(state, ctrl->val);
414 ret = s5c73m3_isp_command(state, COMM_WDR, !!ctrl->val);
418 ret = s5c73m3_isp_command(state, COMM_ZOOM_STEP, ctrl->val);
422 mutex_unlock(&state->lock);
443 int s5c73m3_init_controls(struct s5c73m3 *state)
446 struct s5c73m3_ctrls *ctrls = &state->ctrls;
552 state->sensor_sd.ctrl_handler = hdl;