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_CUSTOM_H__ 20 #define __UAPI_CAM_CUSTOM_H__ 21 #include "cam_defs.h" 22 #define CAM_CUSTOM_DEV_NAME "cam-custom" 23 #define CAM_CUSTOM_NUM_SUB_DEVICES 2 24 #define CAM_CUSTOM_HW1 0 25 #define CAM_CUSTOM_HW2 1 26 #define CAM_CUSTOM_OUT_RES_UDI_0 1 27 #define CAM_CUSTOM_OUT_RES_UDI_1 2 28 #define CAM_CUSTOM_OUT_RES_UDI_2 3 29 #define CAM_CUSTOM_IN_RES_UDI_0 1 30 #define CAM_CUSTOM_RES_ID_PORT 0 31 #define CAM_CUSTOM_PACKET_OP_BASE 0 32 #define CAM_CUSTOM_PACKET_INIT_DEV 1 33 #define CAM_CUSTOM_PACKET_UPDATE_DEV 2 34 #define CAM_CUSTOM_PACKET_OP_MAX 3 35 #define CAM_CUSTOM_VC_DT_CFG_MAX 4 36 #define CAM_CUSTOM_IN_RES_BASE 0x5000 37 #define CAM_CUSTOM_IN_RES_PHY_0 (CAM_CUSTOM_IN_RES_BASE + 1) 38 #define CAM_CUSTOM_IN_RES_PHY_1 (CAM_CUSTOM_IN_RES_BASE + 2) 39 #define CAM_CUSTOM_IN_RES_PHY_2 (CAM_CUSTOM_IN_RES_BASE + 3) 40 #define CAM_CUSTOM_IN_RES_PHY_3 (CAM_CUSTOM_IN_RES_BASE + 4) 41 struct cam_custom_dev_cap_info { 42 uint32_t hw_type; 43 uint32_t hw_version; 44 }; 45 struct cam_custom_query_cap_cmd { 46 struct cam_iommu_handle device_iommu; 47 struct cam_iommu_handle cdm_iommu; 48 int32_t num_dev; 49 uint32_t reserved; 50 struct cam_custom_dev_cap_info dev_caps[CAM_CUSTOM_NUM_SUB_DEVICES]; 51 }; 52 struct cam_custom_out_port_info { 53 uint32_t res_type; 54 uint32_t format; 55 uint32_t custom_info1; 56 uint32_t custom_info2; 57 uint32_t custom_info3; 58 uint32_t reserved; 59 }; 60 struct cam_custom_in_port_info { 61 uint32_t res_type; 62 uint32_t lane_type; 63 uint32_t lane_num; 64 uint32_t lane_cfg; 65 uint32_t vc[CAM_CUSTOM_VC_DT_CFG_MAX]; 66 uint32_t dt[CAM_CUSTOM_VC_DT_CFG_MAX]; 67 uint32_t num_valid_vc_dt; 68 uint32_t format; 69 uint32_t test_pattern; 70 uint32_t usage_type; 71 uint32_t left_start; 72 uint32_t left_stop; 73 uint32_t left_width; 74 uint32_t right_start; 75 uint32_t right_stop; 76 uint32_t right_width; 77 uint32_t line_start; 78 uint32_t line_stop; 79 uint32_t height; 80 uint32_t pixel_clk; 81 uint32_t num_bytes_out; 82 uint32_t custom_info1; 83 uint32_t custom_info2; 84 uint32_t num_out_res; 85 struct cam_custom_out_port_info data[1]; 86 }; 87 struct cam_custom_resource { 88 uint32_t resource_id; 89 uint32_t length; 90 uint32_t handle_type; 91 uint32_t reserved; 92 uint64_t res_hdl; 93 }; 94 struct cam_custom_acquire_hw_info { 95 uint32_t num_inputs; 96 uint32_t input_info_size; 97 uint32_t input_info_offset; 98 uint32_t reserved; 99 uint64_t data; 100 }; 101 struct cam_custom_cmd_buf_type_1 { 102 uint32_t custom_info; 103 uint32_t reserved; 104 }; 105 struct cam_custom_cmd_buf_type_2 { 106 uint32_t custom_info1; 107 uint32_t custom_info2; 108 uint32_t custom_info3; 109 uint32_t reserved; 110 }; 111 #endif 112