summaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/vsp1/vsp1_pipe.h
diff options
context:
space:
mode:
authorTakashi Saito <takashi.saitou.ry@renesas.com>2015-09-07 01:40:25 -0300
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2016-02-19 09:40:47 -0200
commit1517b0392369d67250e6b275671be5bdbf64b81e (patch)
tree4465e0d4afb40465e4b685dc68dcec798312ef10 /drivers/media/platform/vsp1/vsp1_pipe.h
parent7f2d50f8da43fde0c883c378fd81f64c8bca74eb (diff)
[media] v4l: vsp1: Add display list support
Display lists contain lists of registers and associated values to be applied atomically by the hardware. They lower the pressure on interrupt processing delays when reprogramming the device as settings can be prepared well in advance and queued to the hardware without waiting for the end of the current frame. Display list support is currently limited to the DRM pipeline. Signed-off-by: Koji Matsuoka <koji.matsuoka.xm@renesas.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/platform/vsp1/vsp1_pipe.h')
-rw-r--r--drivers/media/platform/vsp1/vsp1_pipe.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/media/platform/vsp1/vsp1_pipe.h b/drivers/media/platform/vsp1/vsp1_pipe.h
index c4c300561c5c..b2f3a8a896c9 100644
--- a/drivers/media/platform/vsp1/vsp1_pipe.h
+++ b/drivers/media/platform/vsp1/vsp1_pipe.h
@@ -19,6 +19,7 @@
#include <media/media-entity.h>
+struct vsp1_dl;
struct vsp1_rwpf;
/*
@@ -73,6 +74,7 @@ enum vsp1_pipeline_state {
* @uds: UDS entity, if present
* @uds_input: entity at the input of the UDS, if the UDS is present
* @entities: list of entities in the pipeline
+ * @dl: display list associated with the pipeline
*/
struct vsp1_pipeline {
struct media_pipeline pipe;
@@ -97,6 +99,8 @@ struct vsp1_pipeline {
struct vsp1_entity *uds_input;
struct list_head entities;
+
+ struct vsp1_dl *dl;
};
static inline struct vsp1_pipeline *to_vsp1_pipeline(struct media_entity *e)
@@ -115,6 +119,7 @@ bool vsp1_pipeline_stopped(struct vsp1_pipeline *pipe);
int vsp1_pipeline_stop(struct vsp1_pipeline *pipe);
bool vsp1_pipeline_ready(struct vsp1_pipeline *pipe);
+void vsp1_pipeline_display_start(struct vsp1_pipeline *pipe);
void vsp1_pipeline_frame_end(struct vsp1_pipeline *pipe);
void vsp1_pipeline_propagate_alpha(struct vsp1_pipeline *pipe,