コード例 #1
0
static int m5mols_s_ctrl(struct v4l2_ctrl *ctrl)
{
	struct v4l2_subdev *sd = to_sd(ctrl);
	int ret;

	ret = m5mols_set_mode_backup(sd, MODE_PARMSET);
	if (!ret)
		ret = m5mols_set_ctrl(ctrl);
	if (!ret)
		ret = m5mols_set_mode_restore(sd);

	return ret;
}
コード例 #2
0
ファイル: m5mols_core.c プロジェクト: 303750856/linux-3.1
static int m5mols_s_ctrl(struct v4l2_ctrl *ctrl)
{
	struct v4l2_subdev *sd = to_sd(ctrl);
	struct m5mols_info *info = to_m5mols(sd);
	int ret;

	info->mode_save = info->mode;

	ret = m5mols_mode(info, REG_PARAMETER);
	if (!ret)
		ret = m5mols_set_ctrl(ctrl);
	if (!ret)
		ret = m5mols_mode(info, info->mode_save);

	return ret;
}
コード例 #3
0
static int m5mols_s_ctrl(struct v4l2_ctrl *ctrl)
{
	struct v4l2_subdev *sd = to_sd(ctrl);
	struct m5mols_info *info = to_m5mols(sd);
	int ispstate = info->mode;
	int ret;

	/*
	 * If needed, defer restoring the controls until
	 * the device is fully initialized.
	 */
	if (!info->isp_ready) {
		info->ctrl_sync = 0;
		return 0;
	}

	ret = m5mols_mode(info, REG_PARAMETER);
	if (ret < 0)
		return ret;
	ret = m5mols_set_ctrl(ctrl);
	if (ret < 0)
		return ret;
	return m5mols_mode(info, ispstate);
}