Lines Matching refs:state
29 static int s5c73m3_get_af_status(struct s5c73m3 *state, struct v4l2_ctrl *ctrl)
33 int ret = s5c73m3_read(state, REG_AF_STATUS, ®);
46 v4l2_info(&state->sensor_sd, "Unknown AF status %#x\n", reg);
61 struct s5c73m3 *state = sensor_sd_to_s5c73m3(sd);
64 if (state->power == 0)
69 ret = s5c73m3_get_af_status(state, state->ctrls.af_status);
78 static int s5c73m3_set_colorfx(struct s5c73m3 *state, int val)
93 v4l2_dbg(1, s5c73m3_dbg, &state->sensor_sd,
95 v4l2_ctrl_get_menu(state->ctrls.colorfx->id)[i]);
97 return s5c73m3_isp_command(state, COMM_IMAGE_EFFECT,
104 static int s5c73m3_set_exposure(struct s5c73m3 *state, int auto_exp)
106 struct v4l2_subdev *sd = &state->sensor_sd;
107 struct s5c73m3_ctrls *ctrls = &state->ctrls;
125 ret = s5c73m3_isp_command(state, COMM_METERING, metering);
130 ret = s5c73m3_isp_command(state, COMM_EV, exp_bias);
140 static int s5c73m3_set_white_balance(struct s5c73m3 *state, int val)
156 v4l2_dbg(1, s5c73m3_dbg, &state->sensor_sd,
158 v4l2_ctrl_get_menu(state->ctrls.auto_wb->id)[i]);
160 return s5c73m3_isp_command(state, COMM_AWB_MODE, wb[i][1]);
166 static int s5c73m3_af_run(struct s5c73m3 *state, bool on)
168 struct s5c73m3_ctrls *c = &state->ctrls;
171 return s5c73m3_isp_command(state, COMM_AF_CON,
175 return s5c73m3_isp_command(state, COMM_AF_MODE,
178 return s5c73m3_isp_command(state, COMM_AF_CON, COMM_AF_CON_START);
181 static int s5c73m3_3a_lock(struct s5c73m3 *state, struct v4l2_ctrl *ctrl)
189 ret = s5c73m3_isp_command(state, COMM_AE_CON,
196 && state->ctrls.auto_wb->val) {
197 ret = s5c73m3_isp_command(state, COMM_AWB_CON,
204 ret = s5c73m3_af_run(state, !af_lock);
209 static int s5c73m3_set_auto_focus(struct s5c73m3 *state, int caf)
211 struct s5c73m3_ctrls *c = &state->ctrls;
217 ret = s5c73m3_isp_command(state, COMM_AF_MODE, mode);
224 ret = s5c73m3_af_run(state, 1);
227 ret = s5c73m3_af_run(state, 0);
234 static int s5c73m3_set_contrast(struct s5c73m3 *state, int val)
237 return s5c73m3_isp_command(state, COMM_CONTRAST, reg);
240 static int s5c73m3_set_saturation(struct s5c73m3 *state, int val)
243 return s5c73m3_isp_command(state, COMM_SATURATION, reg);
246 static int s5c73m3_set_sharpness(struct s5c73m3 *state, int val)
249 return s5c73m3_isp_command(state, COMM_SHARPNESS, reg);
252 static int s5c73m3_set_iso(struct s5c73m3 *state, int val)
257 iso = state->ctrls.iso->val + 1;
261 return s5c73m3_isp_command(state, COMM_ISO, iso);
264 static int s5c73m3_set_stabilization(struct s5c73m3 *state, int val)
266 struct v4l2_subdev *sd = &state->sensor_sd;
270 return s5c73m3_isp_command(state, COMM_FRAME_RATE, val ?
274 static int s5c73m3_set_jpeg_quality(struct s5c73m3 *state, int quality)
285 return s5c73m3_isp_command(state, COMM_IMAGE_QUALITY, reg);
288 static int s5c73m3_set_scene_program(struct s5c73m3 *state, int val)
307 v4l2_dbg(1, s5c73m3_dbg, &state->sensor_sd, "Setting %s scene mode\n",
308 v4l2_ctrl_get_menu(state->ctrls.scene_mode->id)[val]);
310 return s5c73m3_isp_command(state, COMM_SCENE_MODE, scene_lookup[val]);
313 static int s5c73m3_set_power_line_freq(struct s5c73m3 *state, int val)
332 return s5c73m3_isp_command(state, COMM_FLICKER_MODE, pwr_line_freq);
338 struct s5c73m3 *state = sensor_sd_to_s5c73m3(sd);
344 mutex_lock(&state->lock);
350 if (state->power == 0)
360 ret = s5c73m3_3a_lock(state, ctrl);
364 ret = s5c73m3_set_white_balance(state, ctrl->val);
368 ret = s5c73m3_set_contrast(state, ctrl->val);
372 ret = s5c73m3_set_colorfx(state, ctrl->val);
376 ret = s5c73m3_set_exposure(state, ctrl->val);
380 ret = s5c73m3_set_auto_focus(state, ctrl->val);
384 ret = s5c73m3_set_stabilization(state, ctrl->val);
388 ret = s5c73m3_set_iso(state, ctrl->val);
392 ret = s5c73m3_set_jpeg_quality(state, ctrl->val);
396 ret = s5c73m3_set_power_line_freq(state, ctrl->val);
400 ret = s5c73m3_set_saturation(state, ctrl->val);
404 ret = s5c73m3_set_scene_program(state, ctrl->val);
408 ret = s5c73m3_set_sharpness(state, ctrl->val);
412 ret = s5c73m3_isp_command(state, COMM_WDR, !!ctrl->val);
416 ret = s5c73m3_isp_command(state, COMM_ZOOM_STEP, ctrl->val);
420 mutex_unlock(&state->lock);
441 int s5c73m3_init_controls(struct s5c73m3 *state)
444 struct s5c73m3_ctrls *ctrls = &state->ctrls;
550 state->sensor_sd.ctrl_handler = hdl;