• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef __UAPI_MSM_SDE_ROTATOR_H__
2 #define __UAPI_MSM_SDE_ROTATOR_H__
3 
4 #include <linux/videodev2.h>
5 #include <linux/types.h>
6 #include <linux/ioctl.h>
7 
8 /* SDE Rotator pixel format definitions */
9 #define SDE_PIX_FMT_XRGB_8888		V4L2_PIX_FMT_XBGR32
10 #define SDE_PIX_FMT_ARGB_8888		V4L2_PIX_FMT_ABGR32
11 #define SDE_PIX_FMT_ABGR_8888		V4L2_PIX_FMT_SDE_ABGR_8888
12 #define SDE_PIX_FMT_RGBA_8888		V4L2_PIX_FMT_SDE_RGBA_8888
13 #define SDE_PIX_FMT_BGRA_8888		V4L2_PIX_FMT_ARGB32
14 #define SDE_PIX_FMT_RGBX_8888		V4L2_PIX_FMT_SDE_RGBX_8888
15 #define SDE_PIX_FMT_BGRX_8888		V4L2_PIX_FMT_XRGB32
16 #define SDE_PIX_FMT_XBGR_8888		V4L2_PIX_FMT_SDE_XBGR_8888
17 #define SDE_PIX_FMT_RGBA_5551		V4L2_PIX_FMT_SDE_RGBA_5551
18 #define SDE_PIX_FMT_ARGB_1555		V4L2_PIX_FMT_ARGB555
19 #define SDE_PIX_FMT_ABGR_1555		V4L2_PIX_FMT_SDE_ABGR_1555
20 #define SDE_PIX_FMT_BGRA_5551		V4L2_PIX_FMT_SDE_BGRA_5551
21 #define SDE_PIX_FMT_BGRX_5551		V4L2_PIX_FMT_SDE_BGRX_5551
22 #define SDE_PIX_FMT_RGBX_5551		V4L2_PIX_FMT_SDE_RGBX_5551
23 #define SDE_PIX_FMT_XBGR_1555		V4L2_PIX_FMT_SDE_XBGR_1555
24 #define SDE_PIX_FMT_XRGB_1555		V4L2_PIX_FMT_XRGB555
25 #define SDE_PIX_FMT_ARGB_4444		V4L2_PIX_FMT_ARGB444
26 #define SDE_PIX_FMT_RGBA_4444		V4L2_PIX_FMT_SDE_RGBA_4444
27 #define SDE_PIX_FMT_BGRA_4444		V4L2_PIX_FMT_SDE_BGRA_4444
28 #define SDE_PIX_FMT_ABGR_4444		V4L2_PIX_FMT_SDE_ABGR_4444
29 #define SDE_PIX_FMT_RGBX_4444		V4L2_PIX_FMT_SDE_RGBX_4444
30 #define SDE_PIX_FMT_XRGB_4444		V4L2_PIX_FMT_XRGB444
31 #define SDE_PIX_FMT_BGRX_4444		V4L2_PIX_FMT_SDE_BGRX_4444
32 #define SDE_PIX_FMT_XBGR_4444		V4L2_PIX_FMT_SDE_XBGR_4444
33 #define SDE_PIX_FMT_RGB_888		V4L2_PIX_FMT_RGB24
34 #define SDE_PIX_FMT_BGR_888		V4L2_PIX_FMT_BGR24
35 #define SDE_PIX_FMT_RGB_565		V4L2_PIX_FMT_RGB565
36 #define SDE_PIX_FMT_BGR_565		V4L2_PIX_FMT_SDE_BGR_565
37 #define SDE_PIX_FMT_Y_CB_CR_H2V2	V4L2_PIX_FMT_YUV420
38 #define SDE_PIX_FMT_Y_CR_CB_H2V2	V4L2_PIX_FMT_YVU420
39 #define SDE_PIX_FMT_Y_CR_CB_GH2V2	V4L2_PIX_FMT_SDE_Y_CR_CB_GH2V2
40 #define SDE_PIX_FMT_Y_CBCR_H2V2		V4L2_PIX_FMT_NV12
41 #define SDE_PIX_FMT_Y_CRCB_H2V2		V4L2_PIX_FMT_NV21
42 #define SDE_PIX_FMT_Y_CBCR_H1V2		V4L2_PIX_FMT_SDE_Y_CBCR_H1V2
43 #define SDE_PIX_FMT_Y_CRCB_H1V2		V4L2_PIX_FMT_SDE_Y_CRCB_H1V2
44 #define SDE_PIX_FMT_Y_CBCR_H2V1		V4L2_PIX_FMT_NV16
45 #define SDE_PIX_FMT_Y_CRCB_H2V1		V4L2_PIX_FMT_NV61
46 #define SDE_PIX_FMT_YCBYCR_H2V1		V4L2_PIX_FMT_YUYV
47 #define SDE_PIX_FMT_Y_CBCR_H2V2_VENUS	V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_VENUS
48 #define SDE_PIX_FMT_Y_CRCB_H2V2_VENUS	V4L2_PIX_FMT_SDE_Y_CRCB_H2V2_VENUS
49 #define SDE_PIX_FMT_RGBA_8888_UBWC	V4L2_PIX_FMT_RGBA8888_UBWC
50 #define SDE_PIX_FMT_RGBX_8888_UBWC	V4L2_PIX_FMT_SDE_RGBX_8888_UBWC
51 #define SDE_PIX_FMT_RGB_565_UBWC	V4L2_PIX_FMT_SDE_RGB_565_UBWC
52 #define SDE_PIX_FMT_Y_CBCR_H2V2_UBWC	V4L2_PIX_FMT_NV12_UBWC
53 #define SDE_PIX_FMT_RGBA_1010102	V4L2_PIX_FMT_SDE_RGBA_1010102
54 #define SDE_PIX_FMT_RGBX_1010102	V4L2_PIX_FMT_SDE_RGBX_1010102
55 #define SDE_PIX_FMT_ARGB_2101010	V4L2_PIX_FMT_SDE_ARGB_2101010
56 #define SDE_PIX_FMT_XRGB_2101010	V4L2_PIX_FMT_SDE_XRGB_2101010
57 #define SDE_PIX_FMT_BGRA_1010102	V4L2_PIX_FMT_SDE_BGRA_1010102
58 #define SDE_PIX_FMT_BGRX_1010102	V4L2_PIX_FMT_SDE_BGRX_1010102
59 #define SDE_PIX_FMT_ABGR_2101010	V4L2_PIX_FMT_SDE_ABGR_2101010
60 #define SDE_PIX_FMT_XBGR_2101010	V4L2_PIX_FMT_SDE_XBGR_2101010
61 #define SDE_PIX_FMT_RGBA_1010102_UBWC	V4L2_PIX_FMT_SDE_RGBA_1010102_UBWC
62 #define SDE_PIX_FMT_RGBX_1010102_UBWC	V4L2_PIX_FMT_SDE_RGBX_1010102_UBWC
63 #define SDE_PIX_FMT_Y_CBCR_H2V2_P010	V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_P010
64 #define SDE_PIX_FMT_Y_CBCR_H2V2_TP10	V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_TP10
65 #define SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC	V4L2_PIX_FMT_NV12_TP10_UBWC
66 
67 /**
68 * struct msm_sde_rotator_fence - v4l2 buffer fence info
69 * @index: id number of the buffer
70 * @type: enum v4l2_buf_type; buffer type
71 * @fd: file descriptor of the fence associated with this buffer
72 **/
73 struct msm_sde_rotator_fence {
74 	__u32	index;
75 	__u32	type;
76 	__s32	fd;
77 	__u32	reserved[5];
78 };
79 
80 /**
81 * struct msm_sde_rotator_comp_ratio - v4l2 buffer compression ratio
82 * @index: id number of the buffer
83 * @type: enum v4l2_buf_type; buffer type
84 * @numer: numerator of the ratio
85 * @denom: denominator of the ratio
86 **/
87 struct msm_sde_rotator_comp_ratio {
88 	__u32	index;
89 	__u32	type;
90 	__u32	numer;
91 	__u32	denom;
92 	__u32	reserved[4];
93 };
94 
95 /* SDE Rotator private ioctl ID */
96 #define VIDIOC_G_SDE_ROTATOR_FENCE \
97 	_IOWR('V', BASE_VIDIOC_PRIVATE + 10, struct msm_sde_rotator_fence)
98 #define VIDIOC_S_SDE_ROTATOR_FENCE \
99 	_IOWR('V', BASE_VIDIOC_PRIVATE + 11, struct msm_sde_rotator_fence)
100 #define VIDIOC_G_SDE_ROTATOR_COMP_RATIO \
101 	_IOWR('V', BASE_VIDIOC_PRIVATE + 12, struct msm_sde_rotator_comp_ratio)
102 #define VIDIOC_S_SDE_ROTATOR_COMP_RATIO \
103 	_IOWR('V', BASE_VIDIOC_PRIVATE + 13, struct msm_sde_rotator_comp_ratio)
104 
105 /* SDE Rotator private control ID's */
106 #define V4L2_CID_SDE_ROTATOR_SECURE	(V4L2_CID_USER_BASE + 0x1000)
107 
108 /*
109  * This control Id indicates this context is associated with the
110  * secure camera.
111  */
112 #define V4L2_CID_SDE_ROTATOR_SECURE_CAMERA	(V4L2_CID_USER_BASE + 0x2000)
113 
114 #endif /* __UAPI_MSM_SDE_ROTATOR_H__ */
115