Lines Matching refs:state
39 static int s5c73m3_get_af_status(struct s5c73m3 *state, struct v4l2_ctrl *ctrl) in s5c73m3_get_af_status() argument
43 int ret = s5c73m3_read(state, REG_AF_STATUS, ®); in s5c73m3_get_af_status()
56 v4l2_info(&state->sensor_sd, "Unknown AF status %#x\n", reg); in s5c73m3_get_af_status()
71 struct s5c73m3 *state = sensor_sd_to_s5c73m3(sd); in s5c73m3_g_volatile_ctrl() local
74 if (state->power == 0) in s5c73m3_g_volatile_ctrl()
79 ret = s5c73m3_get_af_status(state, state->ctrls.af_status); in s5c73m3_g_volatile_ctrl()
88 static int s5c73m3_set_colorfx(struct s5c73m3 *state, int val) in s5c73m3_set_colorfx() argument
103 v4l2_dbg(1, s5c73m3_dbg, &state->sensor_sd, in s5c73m3_set_colorfx()
105 v4l2_ctrl_get_menu(state->ctrls.colorfx->id)[i]); in s5c73m3_set_colorfx()
107 return s5c73m3_isp_command(state, COMM_IMAGE_EFFECT, in s5c73m3_set_colorfx()
114 static int s5c73m3_set_exposure(struct s5c73m3 *state, int auto_exp) in s5c73m3_set_exposure() argument
116 struct v4l2_subdev *sd = &state->sensor_sd; in s5c73m3_set_exposure()
117 struct s5c73m3_ctrls *ctrls = &state->ctrls; in s5c73m3_set_exposure()
135 ret = s5c73m3_isp_command(state, COMM_METERING, metering); in s5c73m3_set_exposure()
140 ret = s5c73m3_isp_command(state, COMM_EV, exp_bias); in s5c73m3_set_exposure()
150 static int s5c73m3_set_white_balance(struct s5c73m3 *state, int val) in s5c73m3_set_white_balance() argument
166 v4l2_dbg(1, s5c73m3_dbg, &state->sensor_sd, in s5c73m3_set_white_balance()
168 v4l2_ctrl_get_menu(state->ctrls.auto_wb->id)[i]); in s5c73m3_set_white_balance()
170 return s5c73m3_isp_command(state, COMM_AWB_MODE, wb[i][1]); in s5c73m3_set_white_balance()
176 static int s5c73m3_af_run(struct s5c73m3 *state, bool on) in s5c73m3_af_run() argument
178 struct s5c73m3_ctrls *c = &state->ctrls; in s5c73m3_af_run()
181 return s5c73m3_isp_command(state, COMM_AF_CON, in s5c73m3_af_run()
185 return s5c73m3_isp_command(state, COMM_AF_MODE, in s5c73m3_af_run()
188 return s5c73m3_isp_command(state, COMM_AF_CON, COMM_AF_CON_START); in s5c73m3_af_run()
191 static int s5c73m3_3a_lock(struct s5c73m3 *state, struct v4l2_ctrl *ctrl) in s5c73m3_3a_lock() argument
199 ret = s5c73m3_isp_command(state, COMM_AE_CON, in s5c73m3_3a_lock()
206 && state->ctrls.auto_wb->val) { in s5c73m3_3a_lock()
207 ret = s5c73m3_isp_command(state, COMM_AWB_CON, in s5c73m3_3a_lock()
214 ret = s5c73m3_af_run(state, ~af_lock); in s5c73m3_3a_lock()
219 static int s5c73m3_set_auto_focus(struct s5c73m3 *state, int caf) in s5c73m3_set_auto_focus() argument
221 struct s5c73m3_ctrls *c = &state->ctrls; in s5c73m3_set_auto_focus()
227 ret = s5c73m3_isp_command(state, COMM_AF_MODE, mode); in s5c73m3_set_auto_focus()
234 ret = s5c73m3_af_run(state, 1); in s5c73m3_set_auto_focus()
237 ret = s5c73m3_af_run(state, 0); in s5c73m3_set_auto_focus()
244 static int s5c73m3_set_contrast(struct s5c73m3 *state, int val) in s5c73m3_set_contrast() argument
247 return s5c73m3_isp_command(state, COMM_CONTRAST, reg); in s5c73m3_set_contrast()
250 static int s5c73m3_set_saturation(struct s5c73m3 *state, int val) in s5c73m3_set_saturation() argument
253 return s5c73m3_isp_command(state, COMM_SATURATION, reg); in s5c73m3_set_saturation()
256 static int s5c73m3_set_sharpness(struct s5c73m3 *state, int val) in s5c73m3_set_sharpness() argument
259 return s5c73m3_isp_command(state, COMM_SHARPNESS, reg); in s5c73m3_set_sharpness()
262 static int s5c73m3_set_iso(struct s5c73m3 *state, int val) in s5c73m3_set_iso() argument
267 iso = state->ctrls.iso->val + 1; in s5c73m3_set_iso()
271 return s5c73m3_isp_command(state, COMM_ISO, iso); in s5c73m3_set_iso()
274 static int s5c73m3_set_stabilization(struct s5c73m3 *state, int val) in s5c73m3_set_stabilization() argument
276 struct v4l2_subdev *sd = &state->sensor_sd; in s5c73m3_set_stabilization()
280 return s5c73m3_isp_command(state, COMM_FRAME_RATE, val ? in s5c73m3_set_stabilization()
284 static int s5c73m3_set_jpeg_quality(struct s5c73m3 *state, int quality) in s5c73m3_set_jpeg_quality() argument
295 return s5c73m3_isp_command(state, COMM_IMAGE_QUALITY, reg); in s5c73m3_set_jpeg_quality()
298 static int s5c73m3_set_scene_program(struct s5c73m3 *state, int val) in s5c73m3_set_scene_program() argument
317 v4l2_dbg(1, s5c73m3_dbg, &state->sensor_sd, "Setting %s scene mode\n", in s5c73m3_set_scene_program()
318 v4l2_ctrl_get_menu(state->ctrls.scene_mode->id)[val]); in s5c73m3_set_scene_program()
320 return s5c73m3_isp_command(state, COMM_SCENE_MODE, scene_lookup[val]); in s5c73m3_set_scene_program()
323 static int s5c73m3_set_power_line_freq(struct s5c73m3 *state, int val) in s5c73m3_set_power_line_freq() argument
342 return s5c73m3_isp_command(state, COMM_FLICKER_MODE, pwr_line_freq); in s5c73m3_set_power_line_freq()
348 struct s5c73m3 *state = sensor_sd_to_s5c73m3(sd); in s5c73m3_s_ctrl() local
354 mutex_lock(&state->lock); in s5c73m3_s_ctrl()
360 if (state->power == 0) in s5c73m3_s_ctrl()
370 ret = s5c73m3_3a_lock(state, ctrl); in s5c73m3_s_ctrl()
374 ret = s5c73m3_set_white_balance(state, ctrl->val); in s5c73m3_s_ctrl()
378 ret = s5c73m3_set_contrast(state, ctrl->val); in s5c73m3_s_ctrl()
382 ret = s5c73m3_set_colorfx(state, ctrl->val); in s5c73m3_s_ctrl()
386 ret = s5c73m3_set_exposure(state, ctrl->val); in s5c73m3_s_ctrl()
390 ret = s5c73m3_set_auto_focus(state, ctrl->val); in s5c73m3_s_ctrl()
394 ret = s5c73m3_set_stabilization(state, ctrl->val); in s5c73m3_s_ctrl()
398 ret = s5c73m3_set_iso(state, ctrl->val); in s5c73m3_s_ctrl()
402 ret = s5c73m3_set_jpeg_quality(state, ctrl->val); in s5c73m3_s_ctrl()
406 ret = s5c73m3_set_power_line_freq(state, ctrl->val); in s5c73m3_s_ctrl()
410 ret = s5c73m3_set_saturation(state, ctrl->val); in s5c73m3_s_ctrl()
414 ret = s5c73m3_set_scene_program(state, ctrl->val); in s5c73m3_s_ctrl()
418 ret = s5c73m3_set_sharpness(state, ctrl->val); in s5c73m3_s_ctrl()
422 ret = s5c73m3_isp_command(state, COMM_WDR, !!ctrl->val); in s5c73m3_s_ctrl()
426 ret = s5c73m3_isp_command(state, COMM_ZOOM_STEP, ctrl->val); in s5c73m3_s_ctrl()
430 mutex_unlock(&state->lock); in s5c73m3_s_ctrl()
451 int s5c73m3_init_controls(struct s5c73m3 *state) in s5c73m3_init_controls() argument
454 struct s5c73m3_ctrls *ctrls = &state->ctrls; in s5c73m3_init_controls()
560 state->sensor_sd.ctrl_handler = hdl; in s5c73m3_init_controls()