Home | History | Annotate | Download | only in media
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef __UAPI_CAM_DEFS_H__
     20 #define __UAPI_CAM_DEFS_H__
     21 #include <linux/videodev2.h>
     22 #include <linux/types.h>
     23 #include <linux/ioctl.h>
     24 #define CAM_COMMON_OPCODE_BASE 0x100
     25 #define CAM_QUERY_CAP (CAM_COMMON_OPCODE_BASE + 0x1)
     26 #define CAM_ACQUIRE_DEV (CAM_COMMON_OPCODE_BASE + 0x2)
     27 #define CAM_START_DEV (CAM_COMMON_OPCODE_BASE + 0x3)
     28 #define CAM_STOP_DEV (CAM_COMMON_OPCODE_BASE + 0x4)
     29 #define CAM_CONFIG_DEV (CAM_COMMON_OPCODE_BASE + 0x5)
     30 #define CAM_RELEASE_DEV (CAM_COMMON_OPCODE_BASE + 0x6)
     31 #define CAM_SD_SHUTDOWN (CAM_COMMON_OPCODE_BASE + 0x7)
     32 #define CAM_FLUSH_REQ (CAM_COMMON_OPCODE_BASE + 0x8)
     33 #define CAM_COMMON_OPCODE_MAX (CAM_COMMON_OPCODE_BASE + 0x9)
     34 #define CAM_EXT_OPCODE_BASE 0x200
     35 #define CAM_CONFIG_DEV_EXTERNAL (CAM_EXT_OPCODE_BASE + 0x1)
     36 #define CAM_HANDLE_USER_POINTER 1
     37 #define CAM_HANDLE_MEM_HANDLE 2
     38 #define CAM_GENERIC_BLOB_CMDBUFFER_SIZE_MASK 0xFFFFFF00
     39 #define CAM_GENERIC_BLOB_CMDBUFFER_SIZE_SHIFT 8
     40 #define CAM_GENERIC_BLOB_CMDBUFFER_TYPE_MASK 0xFF
     41 #define CAM_GENERIC_BLOB_CMDBUFFER_TYPE_SHIFT 0
     42 #define CAM_CMD_BUF_DMI 0x1
     43 #define CAM_CMD_BUF_DMI16 0x2
     44 #define CAM_CMD_BUF_DMI32 0x3
     45 #define CAM_CMD_BUF_DMI64 0x4
     46 #define CAM_CMD_BUF_DIRECT 0x5
     47 #define CAM_CMD_BUF_INDIRECT 0x6
     48 #define CAM_CMD_BUF_I2C 0x7
     49 #define CAM_CMD_BUF_FW 0x8
     50 #define CAM_CMD_BUF_GENERIC 0x9
     51 #define CAM_CMD_BUF_LEGACY 0xA
     52 enum flush_type_t {
     53   CAM_FLUSH_TYPE_REQ,
     54   CAM_FLUSH_TYPE_ALL,
     55   CAM_FLUSH_TYPE_MAX
     56 };
     57 struct cam_control {
     58   uint32_t op_code;
     59   uint32_t size;
     60   uint32_t handle_type;
     61   uint32_t reserved;
     62   uint64_t handle;
     63 };
     64 #define VIDIOC_CAM_CONTROL _IOWR('V', BASE_VIDIOC_PRIVATE, struct cam_control)
     65 struct cam_hw_version {
     66   uint32_t major;
     67   uint32_t minor;
     68   uint32_t incr;
     69   uint32_t reserved;
     70 };
     71 struct cam_iommu_handle {
     72   int32_t non_secure;
     73   int32_t secure;
     74 };
     75 #define CAM_SECURE_MODE_NON_SECURE 0
     76 #define CAM_SECURE_MODE_SECURE 1
     77 #define CAM_FORMAT_BASE 0
     78 #define CAM_FORMAT_MIPI_RAW_6 1
     79 #define CAM_FORMAT_MIPI_RAW_8 2
     80 #define CAM_FORMAT_MIPI_RAW_10 3
     81 #define CAM_FORMAT_MIPI_RAW_12 4
     82 #define CAM_FORMAT_MIPI_RAW_14 5
     83 #define CAM_FORMAT_MIPI_RAW_16 6
     84 #define CAM_FORMAT_MIPI_RAW_20 7
     85 #define CAM_FORMAT_QTI_RAW_8 8
     86 #define CAM_FORMAT_QTI_RAW_10 9
     87 #define CAM_FORMAT_QTI_RAW_12 10
     88 #define CAM_FORMAT_QTI_RAW_14 11
     89 #define CAM_FORMAT_PLAIN8 12
     90 #define CAM_FORMAT_PLAIN16_8 13
     91 #define CAM_FORMAT_PLAIN16_10 14
     92 #define CAM_FORMAT_PLAIN16_12 15
     93 #define CAM_FORMAT_PLAIN16_14 16
     94 #define CAM_FORMAT_PLAIN16_16 17
     95 #define CAM_FORMAT_PLAIN32_20 18
     96 #define CAM_FORMAT_PLAIN64 19
     97 #define CAM_FORMAT_PLAIN128 20
     98 #define CAM_FORMAT_ARGB 21
     99 #define CAM_FORMAT_ARGB_10 22
    100 #define CAM_FORMAT_ARGB_12 23
    101 #define CAM_FORMAT_ARGB_14 24
    102 #define CAM_FORMAT_DPCM_10_6_10 25
    103 #define CAM_FORMAT_DPCM_10_8_10 26
    104 #define CAM_FORMAT_DPCM_12_6_12 27
    105 #define CAM_FORMAT_DPCM_12_8_12 28
    106 #define CAM_FORMAT_DPCM_14_8_14 29
    107 #define CAM_FORMAT_DPCM_14_10_14 30
    108 #define CAM_FORMAT_NV21 31
    109 #define CAM_FORMAT_NV12 32
    110 #define CAM_FORMAT_TP10 33
    111 #define CAM_FORMAT_YUV422 34
    112 #define CAM_FORMAT_PD8 35
    113 #define CAM_FORMAT_PD10 36
    114 #define CAM_FORMAT_UBWC_NV12 37
    115 #define CAM_FORMAT_UBWC_NV12_4R 38
    116 #define CAM_FORMAT_UBWC_TP10 39
    117 #define CAM_FORMAT_UBWC_P010 40
    118 #define CAM_FORMAT_PLAIN8_SWAP 41
    119 #define CAM_FORMAT_PLAIN8_10 42
    120 #define CAM_FORMAT_PLAIN8_10_SWAP 43
    121 #define CAM_FORMAT_YV12 44
    122 #define CAM_FORMAT_Y_ONLY 45
    123 #define CAM_FORMAT_MAX 46
    124 #define CAM_ROTATE_CW_0_DEGREE 0
    125 #define CAM_ROTATE_CW_90_DEGREE 1
    126 #define CAM_RORATE_CW_180_DEGREE 2
    127 #define CAM_ROTATE_CW_270_DEGREE 3
    128 #define CAM_COLOR_SPACE_BASE 0
    129 #define CAM_COLOR_SPACE_BT601_FULL 1
    130 #define CAM_COLOR_SPACE_BT601625 2
    131 #define CAM_COLOR_SPACE_BT601525 3
    132 #define CAM_COLOR_SPACE_BT709 4
    133 #define CAM_COLOR_SPACE_DEPTH 5
    134 #define CAM_COLOR_SPACE_MAX 6
    135 #define CAM_BUF_INPUT 1
    136 #define CAM_BUF_OUTPUT 2
    137 #define CAM_BUF_IN_OUT 3
    138 #define CAM_PACKET_DEV_BASE 0
    139 #define CAM_PACKET_DEV_IMG_SENSOR 1
    140 #define CAM_PACKET_DEV_ACTUATOR 2
    141 #define CAM_PACKET_DEV_COMPANION 3
    142 #define CAM_PACKET_DEV_EEPOM 4
    143 #define CAM_PACKET_DEV_CSIPHY 5
    144 #define CAM_PACKET_DEV_OIS 6
    145 #define CAM_PACKET_DEV_FLASH 7
    146 #define CAM_PACKET_DEV_FD 8
    147 #define CAM_PACKET_DEV_JPEG_ENC 9
    148 #define CAM_PACKET_DEV_JPEG_DEC 10
    149 #define CAM_PACKET_DEV_VFE 11
    150 #define CAM_PACKET_DEV_CPP 12
    151 #define CAM_PACKET_DEV_CSID 13
    152 #define CAM_PACKET_DEV_ISPIF 14
    153 #define CAM_PACKET_DEV_IFE 15
    154 #define CAM_PACKET_DEV_ICP 16
    155 #define CAM_PACKET_DEV_LRME 17
    156 #define CAM_PACKET_DEV_MAX 18
    157 #define CAM_PACKET_MAX_PLANES 3
    158 struct cam_plane_cfg {
    159   uint32_t width;
    160   uint32_t height;
    161   uint32_t plane_stride;
    162   uint32_t slice_height;
    163   uint32_t meta_stride;
    164   uint32_t meta_size;
    165   uint32_t meta_offset;
    166   uint32_t packer_config;
    167   uint32_t mode_config;
    168   uint32_t tile_config;
    169   uint32_t h_init;
    170   uint32_t v_init;
    171 };
    172 struct cam_cmd_buf_desc {
    173   int32_t mem_handle;
    174   uint32_t offset;
    175   uint32_t size;
    176   uint32_t length;
    177   uint32_t type;
    178   uint32_t meta_data;
    179 };
    180 struct cam_buf_io_cfg {
    181   int32_t mem_handle[CAM_PACKET_MAX_PLANES];
    182   uint32_t offsets[CAM_PACKET_MAX_PLANES];
    183   struct cam_plane_cfg planes[CAM_PACKET_MAX_PLANES];
    184   uint32_t format;
    185   uint32_t color_space;
    186   uint32_t color_pattern;
    187   uint32_t bpp;
    188   uint32_t rotation;
    189   uint32_t resource_type;
    190   int32_t fence;
    191   int32_t early_fence;
    192   struct cam_cmd_buf_desc aux_cmd_buf;
    193   uint32_t direction;
    194   uint32_t batch_size;
    195   uint32_t subsample_pattern;
    196   uint32_t subsample_period;
    197   uint32_t framedrop_pattern;
    198   uint32_t framedrop_period;
    199   uint32_t flag;
    200   uint32_t padding;
    201 };
    202 struct cam_packet_header {
    203   uint32_t op_code;
    204   uint32_t size;
    205   uint64_t request_id;
    206   uint32_t flags;
    207   uint32_t padding;
    208 };
    209 struct cam_patch_desc {
    210   int32_t dst_buf_hdl;
    211   uint32_t dst_offset;
    212   int32_t src_buf_hdl;
    213   uint32_t src_offset;
    214 };
    215 struct cam_packet {
    216   struct cam_packet_header header;
    217   uint32_t cmd_buf_offset;
    218   uint32_t num_cmd_buf;
    219   uint32_t io_configs_offset;
    220   uint32_t num_io_configs;
    221   uint32_t patch_offset;
    222   uint32_t num_patches;
    223   uint32_t kmd_cmd_buf_index;
    224   uint32_t kmd_cmd_buf_offset;
    225   uint64_t payload[1];
    226 };
    227 struct cam_release_dev_cmd {
    228   int32_t session_handle;
    229   int32_t dev_handle;
    230 };
    231 struct cam_start_stop_dev_cmd {
    232   int32_t session_handle;
    233   int32_t dev_handle;
    234 };
    235 struct cam_config_dev_cmd {
    236   int32_t session_handle;
    237   int32_t dev_handle;
    238   uint64_t offset;
    239   uint64_t packet_handle;
    240 };
    241 struct cam_query_cap_cmd {
    242   uint32_t size;
    243   uint32_t handle_type;
    244   uint64_t caps_handle;
    245 };
    246 struct cam_acquire_dev_cmd {
    247   int32_t session_handle;
    248   int32_t dev_handle;
    249   uint32_t handle_type;
    250   uint32_t num_resources;
    251   uint64_t resource_hdl;
    252 };
    253 struct cam_flush_dev_cmd {
    254   uint64_t version;
    255   int32_t session_handle;
    256   int32_t dev_handle;
    257   uint32_t flush_type;
    258   uint32_t reserved;
    259   int64_t req_id;
    260 };
    261 #endif
    262 
    263