2 * vsp1_entity.h -- R-Car VSP1 Base Entity
4 * Copyright (C) 2013 Renesas Corporation
6 * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 #ifndef __VSP1_ENTITY_H__
14 #define __VSP1_ENTITY_H__
16 #include <linux/list.h>
18 #include <media/v4l2-subdev.h>
22 enum vsp1_entity_type
{
30 struct vsp1_device
*vsp1
;
32 enum vsp1_entity_type type
;
37 struct list_head list_dev
;
38 struct list_head list_pipe
;
40 struct media_pad
*pads
;
41 unsigned int source_pad
;
43 struct media_entity
*sink
;
45 struct v4l2_subdev subdev
;
46 struct v4l2_mbus_framefmt
*formats
;
49 static inline struct vsp1_entity
*to_vsp1_entity(struct v4l2_subdev
*subdev
)
51 return container_of(subdev
, struct vsp1_entity
, subdev
);
54 int vsp1_entity_init(struct vsp1_device
*vsp1
, struct vsp1_entity
*entity
,
55 unsigned int num_pads
);
56 void vsp1_entity_destroy(struct vsp1_entity
*entity
);
58 extern const struct v4l2_subdev_internal_ops vsp1_subdev_internal_ops
;
59 extern const struct media_entity_operations vsp1_media_ops
;
61 struct v4l2_mbus_framefmt
*
62 vsp1_entity_get_pad_format(struct vsp1_entity
*entity
,
63 struct v4l2_subdev_fh
*fh
,
64 unsigned int pad
, u32 which
);
65 void vsp1_entity_init_formats(struct v4l2_subdev
*subdev
,
66 struct v4l2_subdev_fh
*fh
);
68 #endif /* __VSP1_ENTITY_H__ */