staging: media: tegra-video: add syncpts for Tegra20 to struct tegra_vi
authorLuca Ceresoli <luca.ceresoli@bootlin.com>
Tue, 18 Apr 2023 08:00:51 +0000 (10:00 +0200)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Thu, 25 May 2023 11:04:48 +0000 (13:04 +0200)
In preparation to implement Tegra20 parallel video capture, add a variable
to hold the required syncpt and document all the syncpt variables.

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/staging/media/tegra-video/vi.h

index dfb5870b1411f05dbad6919837d83ec6571d2a62..02f940f2e2eb415319dc5720d9f752382da8cebf 100644 (file)
@@ -117,11 +117,13 @@ struct tegra_vi {
  * @vi: Tegra video input device structure
  * @frame_start_sp: host1x syncpoint pointer to synchronize programmed capture
  *             start condition with hardware frame start events through host1x
- *             syncpoint counters.
+ *             syncpoint counters. (Tegra210)
  * @mw_ack_sp: host1x syncpoint pointer to synchronize programmed memory write
  *             ack trigger condition with hardware memory write done at end of
- *             frame through host1x syncpoint counters.
+ *             frame through host1x syncpoint counters (On Tegra20 used for the
+ *              OUT_1 syncpt)
  * @sp_incr_lock: protects cpu syncpoint increment.
+ * @next_out_sp_idx: next expected value for mw_ack_sp[0], i.e. OUT_1 (Tegra20)
  *
  * @kthread_start_capture: kthread to start capture of single frame when
  *             vb buffer is available. This thread programs VI CSI hardware
@@ -175,6 +177,7 @@ struct tegra_vi_channel {
        struct host1x_syncpt *mw_ack_sp[GANG_PORTS_MAX];
        /* protects the cpu syncpoint increment */
        spinlock_t sp_incr_lock[GANG_PORTS_MAX];
+       u32 next_out_sp_idx;
 
        struct task_struct *kthread_start_capture;
        wait_queue_head_t start_wait;