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_VIDEO_ADF_H_ 20 #define _UAPI_VIDEO_ADF_H_ 21 #include <linux/ioctl.h> 22 #include <linux/types.h> 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 #include <drm/drm_fourcc.h> 25 #include <drm/drm_mode.h> 26 #define ADF_NAME_LEN 32 27 #define ADF_MAX_CUSTOM_DATA_SIZE 4096 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 enum adf_interface_type { 30 ADF_INTF_DSI = 0, 31 ADF_INTF_eDP = 1, 32 ADF_INTF_DPI = 2, 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 ADF_INTF_VGA = 3, 35 ADF_INTF_DVI = 4, 36 ADF_INTF_HDMI = 5, 37 ADF_INTF_MEMORY = 6, 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 ADF_INTF_TYPE_DEVICE_CUSTOM = 128, 40 ADF_INTF_TYPE_MAX = (~(__u32) 0), 41 }; 42 #define ADF_INTF_FLAG_PRIMARY (1 << 0) 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 #define ADF_INTF_FLAG_EXTERNAL (1 << 1) 45 enum adf_event_type { 46 ADF_EVENT_VSYNC = 0, 47 ADF_EVENT_HOTPLUG = 1, 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 ADF_EVENT_DEVICE_CUSTOM = 128, 50 ADF_EVENT_TYPE_MAX = 255, 51 }; 52 struct adf_set_event { 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 __u8 type; 55 __u8 enabled; 56 }; 57 struct adf_event { 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 __u8 type; 60 __u32 length; 61 }; 62 struct adf_vsync_event { 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 struct adf_event base; 65 __aligned_u64 timestamp; 66 }; 67 struct adf_hotplug_event { 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 struct adf_event base; 70 __u8 connected; 71 }; 72 #define ADF_MAX_PLANES 4 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 struct adf_buffer_config { 75 __u32 overlay_engine; 76 __u32 w; 77 __u32 h; 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 __u32 format; 80 __s32 fd[ADF_MAX_PLANES]; 81 __u32 offset[ADF_MAX_PLANES]; 82 __u32 pitch[ADF_MAX_PLANES]; 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 __u8 n_planes; 85 __s32 acquire_fence; 86 }; 87 #define ADF_MAX_BUFFERS (4096 / sizeof(struct adf_buffer_config)) 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 struct adf_post_config { 90 size_t n_interfaces; 91 __u32 __user * interfaces; 92 size_t n_bufs; 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 struct adf_buffer_config __user * bufs; 95 size_t custom_data_size; 96 void __user * custom_data; 97 __s32 complete_fence; 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 }; 100 #define ADF_MAX_INTERFACES (4096 / sizeof(__u32)) 101 struct adf_simple_buffer_alloc { 102 __u16 w; 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 __u16 h; 105 __u32 format; 106 __s32 fd; 107 __u32 offset; 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 __u32 pitch; 110 }; 111 struct adf_simple_post_config { 112 struct adf_buffer_config buf; 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 __s32 complete_fence; 115 }; 116 struct adf_attachment_config { 117 __u32 overlay_engine; 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 __u32 interface; 120 }; 121 struct adf_device_data { 122 char name[ADF_NAME_LEN]; 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 size_t n_attachments; 125 struct adf_attachment_config __user * attachments; 126 size_t n_allowed_attachments; 127 struct adf_attachment_config __user * allowed_attachments; 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 size_t custom_data_size; 130 void __user * custom_data; 131 }; 132 #define ADF_MAX_ATTACHMENTS (4096 / sizeof(struct adf_attachment_config)) 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 struct adf_interface_data { 135 char name[ADF_NAME_LEN]; 136 __u32 type; 137 __u32 id; 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 __u32 flags; 140 __u8 dpms_state; 141 __u8 hotplug_detect; 142 __u16 width_mm; 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 __u16 height_mm; 145 struct drm_mode_modeinfo current_mode; 146 size_t n_available_modes; 147 struct drm_mode_modeinfo __user * available_modes; 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 size_t custom_data_size; 150 void __user * custom_data; 151 }; 152 #define ADF_MAX_MODES (4096 / sizeof(struct drm_mode_modeinfo)) 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 struct adf_overlay_engine_data { 155 char name[ADF_NAME_LEN]; 156 size_t n_supported_formats; 157 __u32 __user * supported_formats; 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 size_t custom_data_size; 160 void __user * custom_data; 161 }; 162 #define ADF_MAX_SUPPORTED_FORMATS (4096 / sizeof(__u32)) 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 #define ADF_IOCTL_TYPE 'D' 165 #define ADF_IOCTL_NR_CUSTOM 128 166 #define ADF_SET_EVENT _IOW(ADF_IOCTL_TYPE, 0, struct adf_set_event) 167 #define ADF_BLANK _IOW(ADF_IOCTL_TYPE, 1, __u8) 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 #define ADF_POST_CONFIG _IOW(ADF_IOCTL_TYPE, 2, struct adf_post_config) 170 #define ADF_SET_MODE _IOW(ADF_IOCTL_TYPE, 3, struct drm_mode_modeinfo) 171 #define ADF_GET_DEVICE_DATA _IOR(ADF_IOCTL_TYPE, 4, struct adf_device_data) 172 #define ADF_GET_INTERFACE_DATA _IOR(ADF_IOCTL_TYPE, 5, struct adf_interface_data) 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 #define ADF_GET_OVERLAY_ENGINE_DATA _IOR(ADF_IOCTL_TYPE, 6, struct adf_overlay_engine_data) 175 #define ADF_SIMPLE_POST_CONFIG _IOW(ADF_IOCTL_TYPE, 7, struct adf_simple_post_config) 176 #define ADF_SIMPLE_BUFFER_ALLOC _IOW(ADF_IOCTL_TYPE, 8, struct adf_simple_buffer_alloc) 177 #define ADF_ATTACH _IOW(ADF_IOCTL_TYPE, 9, struct adf_attachment_config) 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 #define ADF_DETACH _IOW(ADF_IOCTL_TYPE, 10, struct adf_attachment_config) 180 #endif 181