Commit | Line | Data |
---|---|---|
26e0ca22 LP |
1 | /* |
2 | * vsp1_rwpf.h -- R-Car VSP1 Read and Write Pixel Formatters | |
3 | * | |
8a1edc55 | 4 | * Copyright (C) 2013-2014 Renesas Electronics Corporation |
26e0ca22 LP |
5 | * |
6 | * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com) | |
7 | * | |
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. | |
12 | */ | |
13 | #ifndef __VSP1_RWPF_H__ | |
14 | #define __VSP1_RWPF_H__ | |
15 | ||
16 | #include <media/media-entity.h> | |
7578c204 | 17 | #include <media/v4l2-ctrls.h> |
26e0ca22 LP |
18 | #include <media/v4l2-subdev.h> |
19 | ||
20 | #include "vsp1.h" | |
21 | #include "vsp1_entity.h" | |
22 | #include "vsp1_video.h" | |
23 | ||
24 | #define RWPF_PAD_SINK 0 | |
25 | #define RWPF_PAD_SOURCE 1 | |
26 | ||
27 | struct vsp1_rwpf { | |
28 | struct vsp1_entity entity; | |
29 | struct vsp1_video video; | |
7578c204 | 30 | struct v4l2_ctrl_handler ctrls; |
26e0ca22 LP |
31 | |
32 | unsigned int max_width; | |
33 | unsigned int max_height; | |
e5ad37b6 | 34 | |
629bb6d4 LP |
35 | struct { |
36 | unsigned int left; | |
37 | unsigned int top; | |
38 | } location; | |
e5ad37b6 LP |
39 | struct v4l2_rect crop; |
40 | ||
41 | unsigned int offsets[2]; | |
26e0ca22 LP |
42 | }; |
43 | ||
44 | static inline struct vsp1_rwpf *to_rwpf(struct v4l2_subdev *subdev) | |
45 | { | |
46 | return container_of(subdev, struct vsp1_rwpf, entity.subdev); | |
47 | } | |
48 | ||
49 | struct vsp1_rwpf *vsp1_rpf_create(struct vsp1_device *vsp1, unsigned int index); | |
50 | struct vsp1_rwpf *vsp1_wpf_create(struct vsp1_device *vsp1, unsigned int index); | |
51 | ||
52 | int vsp1_rwpf_enum_mbus_code(struct v4l2_subdev *subdev, | |
53 | struct v4l2_subdev_fh *fh, | |
54 | struct v4l2_subdev_mbus_code_enum *code); | |
55 | int vsp1_rwpf_enum_frame_size(struct v4l2_subdev *subdev, | |
56 | struct v4l2_subdev_fh *fh, | |
57 | struct v4l2_subdev_frame_size_enum *fse); | |
58 | int vsp1_rwpf_get_format(struct v4l2_subdev *subdev, struct v4l2_subdev_fh *fh, | |
59 | struct v4l2_subdev_format *fmt); | |
60 | int vsp1_rwpf_set_format(struct v4l2_subdev *subdev, struct v4l2_subdev_fh *fh, | |
61 | struct v4l2_subdev_format *fmt); | |
e5ad37b6 LP |
62 | int vsp1_rwpf_get_selection(struct v4l2_subdev *subdev, |
63 | struct v4l2_subdev_fh *fh, | |
64 | struct v4l2_subdev_selection *sel); | |
65 | int vsp1_rwpf_set_selection(struct v4l2_subdev *subdev, | |
66 | struct v4l2_subdev_fh *fh, | |
67 | struct v4l2_subdev_selection *sel); | |
26e0ca22 LP |
68 | |
69 | #endif /* __VSP1_RWPF_H__ */ |