summaryrefslogtreecommitdiff
path: root/drivers/media/platform/vsp1/vsp1_rwpf.h
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2015-11-01 12:19:42 -0200
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2016-04-13 17:42:43 -0300
commitbd2fdd5aa919e3cb750147c9270034f11d106d94 (patch)
treed296852eabf9da568727d6e5e663764b4a6dc621 /drivers/media/platform/vsp1/vsp1_rwpf.h
parent5fb2107346cfc6d8fe62117a2cbf91fc1f92cc84 (diff)
downloadlinux-bd2fdd5aa919e3cb750147c9270034f11d106d94.tar.gz
[media] v4l: vsp1: rwpf: Don't program alpha value in control set handler
The datasheet clearly states that all but a few registers can't be modified when the device is running. Programming the alpha value in the control set handler is thus prohibited. Program it when starting the module instead. This requires storing the alpha value internally as the module can be started from the frame completion interrupt handler, and accessing control values requires taking a mutex. 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_rwpf.h')
-rw-r--r--drivers/media/platform/vsp1/vsp1_rwpf.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/media/platform/vsp1/vsp1_rwpf.h b/drivers/media/platform/vsp1/vsp1_rwpf.h
index d04df39b2737..66af2a06dd8b 100644
--- a/drivers/media/platform/vsp1/vsp1_rwpf.h
+++ b/drivers/media/platform/vsp1/vsp1_rwpf.h
@@ -42,7 +42,6 @@ struct vsp1_rwpf_operations {
struct vsp1_rwpf {
struct vsp1_entity entity;
struct v4l2_ctrl_handler ctrls;
- struct v4l2_ctrl *alpha;
struct vsp1_video *video;
@@ -59,6 +58,8 @@ struct vsp1_rwpf {
} location;
struct v4l2_rect crop;
+ unsigned int alpha;
+
unsigned int offsets[2];
dma_addr_t buf_addr[3];
@@ -73,6 +74,8 @@ static inline struct vsp1_rwpf *to_rwpf(struct v4l2_subdev *subdev)
struct vsp1_rwpf *vsp1_rpf_create(struct vsp1_device *vsp1, unsigned int index);
struct vsp1_rwpf *vsp1_wpf_create(struct vsp1_device *vsp1, unsigned int index);
+int vsp1_rwpf_init_ctrls(struct vsp1_rwpf *rwpf);
+
int vsp1_rwpf_enum_mbus_code(struct v4l2_subdev *subdev,
struct v4l2_subdev_pad_config *cfg,
struct v4l2_subdev_mbus_code_enum *code);