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