summaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/vsp1/vsp1_entity.h
diff options
context:
space:
mode:
authorLaurent Pinchart2015-11-17 16:10:26 +0100
committerMauro Carvalho Chehab2016-04-13 23:56:14 +0200
commit7b905f0583b2e6fe1494a85303a89aa0cd30b0b3 (patch)
treea5da79d56457b44624280f2f2fb73a5e0937ab03 /drivers/media/platform/vsp1/vsp1_entity.h
parent[media] v4l: vsp1: Store active selection rectangles in a pad config structure (diff)
downloadkernel-qcow2-linux-7b905f0583b2e6fe1494a85303a89aa0cd30b0b3.tar.gz
kernel-qcow2-linux-7b905f0583b2e6fe1494a85303a89aa0cd30b0b3.tar.xz
kernel-qcow2-linux-7b905f0583b2e6fe1494a85303a89aa0cd30b0b3.zip
[media] v4l: vsp1: Create a new configure operation to setup modules
The subdev s_stream operation is abused as a generic way to setup modules at every frame. Move the code out to a new VSP1 entity configure operation. Most modules now have an empty s_stream operation that can be removed. The only exception is the WPF module that needs to perform hardware configuration when stopping the stream. The code can be simplified accordingly as we know that that operation never fails. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/platform/vsp1/vsp1_entity.h')
-rw-r--r--drivers/media/platform/vsp1/vsp1_entity.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/platform/vsp1/vsp1_entity.h b/drivers/media/platform/vsp1/vsp1_entity.h
index f7a360823373..fe164f3163bc 100644
--- a/drivers/media/platform/vsp1/vsp1_entity.h
+++ b/drivers/media/platform/vsp1/vsp1_entity.h
@@ -59,10 +59,13 @@ struct vsp1_route {
* @set_memory: Setup memory buffer access. This operation applies the settings
* stored in the rwpf mem field to the hardware. Valid for RPF and
* WPF only.
+ * @configure: Setup the hardware based on the entity state (pipeline, formats,
+ * selection rectangles, ...)
*/
struct vsp1_entity_operations {
void (*destroy)(struct vsp1_entity *);
void (*set_memory)(struct vsp1_entity *);
+ void (*configure)(struct vsp1_entity *);
};
struct vsp1_entity {