long msm_sensor_subdev_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg) { struct msm_sensor_ctrl_t *s_ctrl = get_sctrl(sd); void __user *argp = (void __user *)arg; switch (cmd) { case VIDIOC_MSM_SENSOR_CFG: return s_ctrl->func_tbl->sensor_config(s_ctrl, argp); case VIDIOC_MSM_SENSOR_RELEASE: return msm_sensor_release(s_ctrl); default: return -ENOIOCTLCMD; } }
long msm_sensor_subdev_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg) { struct msm_sensor_ctrl_t *s_ctrl = get_sctrl(sd); void __user *argp = (void __user *)arg; switch (cmd) { case VIDIOC_MSM_SENSOR_CFG: return s_ctrl->func_tbl->sensor_config(s_ctrl, argp); case VIDIOC_MSM_SENSOR_RELEASE: return msm_sensor_release(s_ctrl); case VIDIOC_MSM_SENSOR_CSID_INFO: { struct msm_sensor_csi_info *csi_info = (struct msm_sensor_csi_info *)arg; s_ctrl->csid_version = csi_info->csid_version; s_ctrl->is_csic = csi_info->is_csic; return 0; } default: return -ENOIOCTLCMD; } }
static int ov2720_sensor_release(void) { return msm_sensor_release(&ov2720_s_ctrl); }