diff options
Diffstat (limited to 'drivers/media/platform/soc_camera/tegra_camera/common.h')
-rw-r--r-- | drivers/media/platform/soc_camera/tegra_camera/common.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/media/platform/soc_camera/tegra_camera/common.h b/drivers/media/platform/soc_camera/tegra_camera/common.h index c27c83cd4558..1d71c2ba39f5 100644 --- a/drivers/media/platform/soc_camera/tegra_camera/common.h +++ b/drivers/media/platform/soc_camera/tegra_camera/common.h @@ -62,9 +62,13 @@ struct tegra_camera_ops { void (*clks_disable)(struct tegra_camera_dev *cam); void (*capture_clean)(struct tegra_camera_dev *vi2_cam); - int (*capture_setup)(struct tegra_camera_dev *vi2_cam); + int (*capture_setup)(struct tegra_camera_dev *vi2_cam, + struct tegra_camera_buffer *buf); int (*capture_start)(struct tegra_camera_dev *vi2_cam, struct tegra_camera_buffer *buf); + int (*capture_wait)(struct tegra_camera_dev *vi2_cam, + struct tegra_camera_buffer *buf); + int (*capture_done)(struct tegra_camera_dev *vi2_cam, int port); int (*capture_stop)(struct tegra_camera_dev *vi2_cam, int port); void (*init_syncpts)(struct tegra_camera_dev *vi2_cam); @@ -76,7 +80,8 @@ struct tegra_camera_ops { void (*deactivate)(struct tegra_camera_dev *vi2_cam); int (*port_is_valid)(int port); - int (*mipi_calibration)(struct tegra_camera_dev *vi2_cam); + int (*mipi_calibration)(struct tegra_camera_dev *vi2_cam, + struct tegra_camera_buffer *buf); }; struct tegra_camera_dev { @@ -93,16 +98,20 @@ struct tegra_camera_dev { struct tegra_camera_ops *ops; void __iomem *reg_base; - spinlock_t videobuf_queue_lock; struct list_head capture; + spinlock_t capture_lock; + struct list_head done; + spinlock_t done_lock; struct vb2_buffer *active; struct vb2_alloc_ctx *alloc_ctx; enum v4l2_field field; int sequence_a; int sequence_b; - struct task_struct *kthread_capture; - wait_queue_head_t wait; + struct task_struct *kthread_capture_start; + struct task_struct *kthread_capture_done; + wait_queue_head_t capture_start_wait; + wait_queue_head_t capture_done_wait; /* syncpt ids */ u32 syncpt_id_csi_a; |