mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-14 10:46:46 +07:00
[media] v4l: vsp1: Move frame sequence number from video node to pipeline
The frame sequence number is global to the pipeline, there's no need to store copies in each video node. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
ccd3d95a93
commit
0c1a41b508
@ -286,6 +286,8 @@ void vsp1_pipeline_frame_end(struct vsp1_pipeline *pipe)
|
||||
|
||||
if (pipe->frame_end)
|
||||
pipe->frame_end(pipe);
|
||||
|
||||
pipe->sequence++;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -67,6 +67,7 @@ enum vsp1_pipeline_state {
|
||||
* @kref: pipeline reference count
|
||||
* @stream_count: number of streaming video nodes
|
||||
* @buffers_ready: bitmask of RPFs and WPFs with at least one buffer available
|
||||
* @sequence: frame sequence number
|
||||
* @num_inputs: number of RPFs
|
||||
* @inputs: array of RPFs in the pipeline (indexed by RPF index)
|
||||
* @output: WPF at the output of the pipeline
|
||||
@ -90,6 +91,7 @@ struct vsp1_pipeline {
|
||||
struct kref kref;
|
||||
unsigned int stream_count;
|
||||
unsigned int buffers_ready;
|
||||
unsigned int sequence;
|
||||
|
||||
unsigned int num_inputs;
|
||||
struct vsp1_rwpf *inputs[VSP1_MAX_RPF];
|
||||
|
@ -219,7 +219,7 @@ vsp1_video_complete_buffer(struct vsp1_video *video)
|
||||
|
||||
spin_unlock_irqrestore(&video->irqlock, flags);
|
||||
|
||||
done->buf.sequence = video->sequence++;
|
||||
done->buf.sequence = pipe->sequence;
|
||||
done->buf.vb2_buf.timestamp = ktime_get_ns();
|
||||
for (i = 0; i < done->buf.vb2_buf.num_planes; ++i)
|
||||
vb2_set_plane_payload(&done->buf.vb2_buf, i,
|
||||
@ -805,8 +805,6 @@ vsp1_video_streamon(struct file *file, void *fh, enum v4l2_buf_type type)
|
||||
if (video->queue.owner && video->queue.owner != file->private_data)
|
||||
return -EBUSY;
|
||||
|
||||
video->sequence = 0;
|
||||
|
||||
/* Get a pipeline for the video node and start streaming on it. No link
|
||||
* touching an entity in the pipeline can be activated or deactivated
|
||||
* once streaming is started.
|
||||
|
@ -49,7 +49,6 @@ struct vsp1_video {
|
||||
void *alloc_ctx;
|
||||
spinlock_t irqlock;
|
||||
struct list_head irqqueue;
|
||||
unsigned int sequence;
|
||||
};
|
||||
|
||||
static inline struct vsp1_video *to_vsp1_video(struct video_device *vdev)
|
||||
|
Loading…
Reference in New Issue
Block a user