Loading drivers/media/platform/msm/camera_v2/msm.c +12 −7 Original line number Diff line number Diff line Loading @@ -548,15 +548,13 @@ static long msm_private_ioctl(struct file *file, void *fh, bool valid_prio, unsigned int cmd, void *arg) { int rc = 0; struct msm_v4l2_event_data *event_data; struct msm_v4l2_event_data *event_data = arg; struct v4l2_event event; struct msm_session *session; unsigned int session_id; unsigned int stream_id; unsigned long spin_flags = 0; event_data = (struct msm_v4l2_event_data *) ((struct v4l2_event *)arg)->u.data; session_id = event_data->session_id; stream_id = event_data->stream_id; Loading @@ -572,9 +570,12 @@ static long msm_private_ioctl(struct file *file, void *fh, rc = -EFAULT; break; } event.type = event_data->v4l2_event_type; event.id = event_data->v4l2_event_id; memcpy(&event.u.data, event_data, sizeof(struct msm_v4l2_event_data)); v4l2_event_queue(session->event_q.vdev, (struct v4l2_event *)arg); &event); } break; Loading @@ -600,7 +601,11 @@ static long msm_private_ioctl(struct file *file, void *fh, spin_lock_irqsave(&(session->command_ack_q.lock), spin_flags); ret_cmd->event = *(struct v4l2_event *)arg; event.type = event_data->v4l2_event_type; event.id = event_data->v4l2_event_id; memcpy(&event.u.data, event_data, sizeof(struct msm_v4l2_event_data)); memcpy(&ret_cmd->event, &event, sizeof(struct v4l2_event)); msm_enqueue(&cmd_ack->command_q, &ret_cmd->list); complete(&cmd_ack->wait_complete); spin_unlock_irqrestore(&(session->command_ack_q.lock), Loading include/media/msmb_camera.h +6 −6 Original line number Diff line number Diff line Loading @@ -6,16 +6,16 @@ #include <linux/ioctl.h> #define MSM_CAM_V4L2_IOCTL_NOTIFY \ _IOW('V', BASE_VIDIOC_PRIVATE + 30, struct v4l2_event) _IOW('V', BASE_VIDIOC_PRIVATE + 30, struct msm_v4l2_event_data) #define MSM_CAM_V4L2_IOCTL_NOTIFY_META \ _IOW('V', BASE_VIDIOC_PRIVATE + 31, struct v4l2_event) _IOW('V', BASE_VIDIOC_PRIVATE + 31, struct msm_v4l2_event_data) #define MSM_CAM_V4L2_IOCTL_CMD_ACK \ _IOW('V', BASE_VIDIOC_PRIVATE + 32, struct v4l2_event) _IOW('V', BASE_VIDIOC_PRIVATE + 32, struct msm_v4l2_event_data) #define MSM_CAM_V4L2_IOCTL_NOTIFY_ERROR \ _IOW('V', BASE_VIDIOC_PRIVATE + 33, struct v4l2_event) _IOW('V', BASE_VIDIOC_PRIVATE + 33, struct msm_v4l2_event_data) #ifdef CONFIG_COMPAT Loading Loading @@ -133,9 +133,9 @@ struct msm_v4l2_event_data { /*word 8*/ unsigned int ret_value; /*word 9*/ unsigned int nop3; unsigned int v4l2_event_type; /*word 10*/ unsigned int nop4; unsigned int v4l2_event_id; /*word 11*/ unsigned int nop5; /*word 12*/ Loading Loading
drivers/media/platform/msm/camera_v2/msm.c +12 −7 Original line number Diff line number Diff line Loading @@ -548,15 +548,13 @@ static long msm_private_ioctl(struct file *file, void *fh, bool valid_prio, unsigned int cmd, void *arg) { int rc = 0; struct msm_v4l2_event_data *event_data; struct msm_v4l2_event_data *event_data = arg; struct v4l2_event event; struct msm_session *session; unsigned int session_id; unsigned int stream_id; unsigned long spin_flags = 0; event_data = (struct msm_v4l2_event_data *) ((struct v4l2_event *)arg)->u.data; session_id = event_data->session_id; stream_id = event_data->stream_id; Loading @@ -572,9 +570,12 @@ static long msm_private_ioctl(struct file *file, void *fh, rc = -EFAULT; break; } event.type = event_data->v4l2_event_type; event.id = event_data->v4l2_event_id; memcpy(&event.u.data, event_data, sizeof(struct msm_v4l2_event_data)); v4l2_event_queue(session->event_q.vdev, (struct v4l2_event *)arg); &event); } break; Loading @@ -600,7 +601,11 @@ static long msm_private_ioctl(struct file *file, void *fh, spin_lock_irqsave(&(session->command_ack_q.lock), spin_flags); ret_cmd->event = *(struct v4l2_event *)arg; event.type = event_data->v4l2_event_type; event.id = event_data->v4l2_event_id; memcpy(&event.u.data, event_data, sizeof(struct msm_v4l2_event_data)); memcpy(&ret_cmd->event, &event, sizeof(struct v4l2_event)); msm_enqueue(&cmd_ack->command_q, &ret_cmd->list); complete(&cmd_ack->wait_complete); spin_unlock_irqrestore(&(session->command_ack_q.lock), Loading
include/media/msmb_camera.h +6 −6 Original line number Diff line number Diff line Loading @@ -6,16 +6,16 @@ #include <linux/ioctl.h> #define MSM_CAM_V4L2_IOCTL_NOTIFY \ _IOW('V', BASE_VIDIOC_PRIVATE + 30, struct v4l2_event) _IOW('V', BASE_VIDIOC_PRIVATE + 30, struct msm_v4l2_event_data) #define MSM_CAM_V4L2_IOCTL_NOTIFY_META \ _IOW('V', BASE_VIDIOC_PRIVATE + 31, struct v4l2_event) _IOW('V', BASE_VIDIOC_PRIVATE + 31, struct msm_v4l2_event_data) #define MSM_CAM_V4L2_IOCTL_CMD_ACK \ _IOW('V', BASE_VIDIOC_PRIVATE + 32, struct v4l2_event) _IOW('V', BASE_VIDIOC_PRIVATE + 32, struct msm_v4l2_event_data) #define MSM_CAM_V4L2_IOCTL_NOTIFY_ERROR \ _IOW('V', BASE_VIDIOC_PRIVATE + 33, struct v4l2_event) _IOW('V', BASE_VIDIOC_PRIVATE + 33, struct msm_v4l2_event_data) #ifdef CONFIG_COMPAT Loading Loading @@ -133,9 +133,9 @@ struct msm_v4l2_event_data { /*word 8*/ unsigned int ret_value; /*word 9*/ unsigned int nop3; unsigned int v4l2_event_type; /*word 10*/ unsigned int nop4; unsigned int v4l2_event_id; /*word 11*/ unsigned int nop5; /*word 12*/ Loading