1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*8d67ca89SAndroid Build Coastguard Worker * 4*8d67ca89SAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*8d67ca89SAndroid Build Coastguard Worker * for more information. 6*8d67ca89SAndroid Build Coastguard Worker */ 7*8d67ca89SAndroid Build Coastguard Worker #ifndef QAIC_ACCEL_H_ 8*8d67ca89SAndroid Build Coastguard Worker #define QAIC_ACCEL_H_ 9*8d67ca89SAndroid Build Coastguard Worker #include "drm.h" 10*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus 11*8d67ca89SAndroid Build Coastguard Worker extern "C" { 12*8d67ca89SAndroid Build Coastguard Worker #endif 13*8d67ca89SAndroid Build Coastguard Worker #define QAIC_MANAGE_MAX_MSG_LENGTH SZ_4K 14*8d67ca89SAndroid Build Coastguard Worker #define QAIC_SEM_INSYNCFENCE 2 15*8d67ca89SAndroid Build Coastguard Worker #define QAIC_SEM_OUTSYNCFENCE 1 16*8d67ca89SAndroid Build Coastguard Worker #define QAIC_SEM_NOP 0 17*8d67ca89SAndroid Build Coastguard Worker #define QAIC_SEM_INIT 1 18*8d67ca89SAndroid Build Coastguard Worker #define QAIC_SEM_INC 2 19*8d67ca89SAndroid Build Coastguard Worker #define QAIC_SEM_DEC 3 20*8d67ca89SAndroid Build Coastguard Worker #define QAIC_SEM_WAIT_EQUAL 4 21*8d67ca89SAndroid Build Coastguard Worker #define QAIC_SEM_WAIT_GT_EQ 5 22*8d67ca89SAndroid Build Coastguard Worker #define QAIC_SEM_WAIT_GT_0 6 23*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_UNDEFINED 0 24*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_PASSTHROUGH_FROM_USR 1 25*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_PASSTHROUGH_TO_USR 2 26*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_PASSTHROUGH_FROM_DEV 3 27*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_PASSTHROUGH_TO_DEV 4 28*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_DMA_XFER_FROM_USR 5 29*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_DMA_XFER_TO_DEV 6 30*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_ACTIVATE_FROM_USR 7 31*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_ACTIVATE_FROM_DEV 8 32*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_ACTIVATE_TO_DEV 9 33*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_DEACTIVATE_FROM_USR 10 34*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_DEACTIVATE_FROM_DEV 11 35*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_STATUS_FROM_USR 12 36*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_STATUS_TO_USR 13 37*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_STATUS_FROM_DEV 14 38*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_STATUS_TO_DEV 15 39*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_TERMINATE_FROM_DEV 16 40*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_TERMINATE_TO_DEV 17 41*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_DMA_XFER_CONT 18 42*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_VALIDATE_PARTITION_FROM_DEV 19 43*8d67ca89SAndroid Build Coastguard Worker #define QAIC_TRANS_VALIDATE_PARTITION_TO_DEV 20 44*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_hdr { 45*8d67ca89SAndroid Build Coastguard Worker __u32 type; 46*8d67ca89SAndroid Build Coastguard Worker __u32 len; 47*8d67ca89SAndroid Build Coastguard Worker }; 48*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_passthrough { 49*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_hdr hdr; 50*8d67ca89SAndroid Build Coastguard Worker __u8 data[]; 51*8d67ca89SAndroid Build Coastguard Worker }; 52*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_dma_xfer { 53*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_hdr hdr; 54*8d67ca89SAndroid Build Coastguard Worker __u32 tag; 55*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 56*8d67ca89SAndroid Build Coastguard Worker __u64 addr; 57*8d67ca89SAndroid Build Coastguard Worker __u64 size; 58*8d67ca89SAndroid Build Coastguard Worker }; 59*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_activate_to_dev { 60*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_hdr hdr; 61*8d67ca89SAndroid Build Coastguard Worker __u32 queue_size; 62*8d67ca89SAndroid Build Coastguard Worker __u32 eventfd; 63*8d67ca89SAndroid Build Coastguard Worker __u32 options; 64*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 65*8d67ca89SAndroid Build Coastguard Worker }; 66*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_activate_from_dev { 67*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_hdr hdr; 68*8d67ca89SAndroid Build Coastguard Worker __u32 status; 69*8d67ca89SAndroid Build Coastguard Worker __u32 dbc_id; 70*8d67ca89SAndroid Build Coastguard Worker __u64 options; 71*8d67ca89SAndroid Build Coastguard Worker }; 72*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_deactivate { 73*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_hdr hdr; 74*8d67ca89SAndroid Build Coastguard Worker __u32 dbc_id; 75*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 76*8d67ca89SAndroid Build Coastguard Worker }; 77*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_status_to_dev { 78*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_hdr hdr; 79*8d67ca89SAndroid Build Coastguard Worker }; 80*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_status_from_dev { 81*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_trans_hdr hdr; 82*8d67ca89SAndroid Build Coastguard Worker __u16 major; 83*8d67ca89SAndroid Build Coastguard Worker __u16 minor; 84*8d67ca89SAndroid Build Coastguard Worker __u32 status; 85*8d67ca89SAndroid Build Coastguard Worker __u64 status_flags; 86*8d67ca89SAndroid Build Coastguard Worker }; 87*8d67ca89SAndroid Build Coastguard Worker struct qaic_manage_msg { 88*8d67ca89SAndroid Build Coastguard Worker __u32 len; 89*8d67ca89SAndroid Build Coastguard Worker __u32 count; 90*8d67ca89SAndroid Build Coastguard Worker __u64 data; 91*8d67ca89SAndroid Build Coastguard Worker }; 92*8d67ca89SAndroid Build Coastguard Worker struct qaic_create_bo { 93*8d67ca89SAndroid Build Coastguard Worker __u64 size; 94*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 95*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 96*8d67ca89SAndroid Build Coastguard Worker }; 97*8d67ca89SAndroid Build Coastguard Worker struct qaic_mmap_bo { 98*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 99*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 100*8d67ca89SAndroid Build Coastguard Worker __u64 offset; 101*8d67ca89SAndroid Build Coastguard Worker }; 102*8d67ca89SAndroid Build Coastguard Worker struct qaic_sem { 103*8d67ca89SAndroid Build Coastguard Worker __u16 val; 104*8d67ca89SAndroid Build Coastguard Worker __u8 index; 105*8d67ca89SAndroid Build Coastguard Worker __u8 presync; 106*8d67ca89SAndroid Build Coastguard Worker __u8 cmd; 107*8d67ca89SAndroid Build Coastguard Worker __u8 flags; 108*8d67ca89SAndroid Build Coastguard Worker __u16 pad; 109*8d67ca89SAndroid Build Coastguard Worker }; 110*8d67ca89SAndroid Build Coastguard Worker struct qaic_attach_slice_entry { 111*8d67ca89SAndroid Build Coastguard Worker __u64 size; 112*8d67ca89SAndroid Build Coastguard Worker struct qaic_sem sem0; 113*8d67ca89SAndroid Build Coastguard Worker struct qaic_sem sem1; 114*8d67ca89SAndroid Build Coastguard Worker struct qaic_sem sem2; 115*8d67ca89SAndroid Build Coastguard Worker struct qaic_sem sem3; 116*8d67ca89SAndroid Build Coastguard Worker __u64 dev_addr; 117*8d67ca89SAndroid Build Coastguard Worker __u64 db_addr; 118*8d67ca89SAndroid Build Coastguard Worker __u32 db_data; 119*8d67ca89SAndroid Build Coastguard Worker __u32 db_len; 120*8d67ca89SAndroid Build Coastguard Worker __u64 offset; 121*8d67ca89SAndroid Build Coastguard Worker }; 122*8d67ca89SAndroid Build Coastguard Worker struct qaic_attach_slice_hdr { 123*8d67ca89SAndroid Build Coastguard Worker __u32 count; 124*8d67ca89SAndroid Build Coastguard Worker __u32 dbc_id; 125*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 126*8d67ca89SAndroid Build Coastguard Worker __u32 dir; 127*8d67ca89SAndroid Build Coastguard Worker __u64 size; 128*8d67ca89SAndroid Build Coastguard Worker }; 129*8d67ca89SAndroid Build Coastguard Worker struct qaic_attach_slice { 130*8d67ca89SAndroid Build Coastguard Worker struct qaic_attach_slice_hdr hdr; 131*8d67ca89SAndroid Build Coastguard Worker __u64 data; 132*8d67ca89SAndroid Build Coastguard Worker }; 133*8d67ca89SAndroid Build Coastguard Worker struct qaic_execute_entry { 134*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 135*8d67ca89SAndroid Build Coastguard Worker __u32 dir; 136*8d67ca89SAndroid Build Coastguard Worker }; 137*8d67ca89SAndroid Build Coastguard Worker struct qaic_partial_execute_entry { 138*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 139*8d67ca89SAndroid Build Coastguard Worker __u32 dir; 140*8d67ca89SAndroid Build Coastguard Worker __u64 resize; 141*8d67ca89SAndroid Build Coastguard Worker }; 142*8d67ca89SAndroid Build Coastguard Worker struct qaic_execute_hdr { 143*8d67ca89SAndroid Build Coastguard Worker __u32 count; 144*8d67ca89SAndroid Build Coastguard Worker __u32 dbc_id; 145*8d67ca89SAndroid Build Coastguard Worker }; 146*8d67ca89SAndroid Build Coastguard Worker struct qaic_execute { 147*8d67ca89SAndroid Build Coastguard Worker struct qaic_execute_hdr hdr; 148*8d67ca89SAndroid Build Coastguard Worker __u64 data; 149*8d67ca89SAndroid Build Coastguard Worker }; 150*8d67ca89SAndroid Build Coastguard Worker struct qaic_wait { 151*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 152*8d67ca89SAndroid Build Coastguard Worker __u32 timeout; 153*8d67ca89SAndroid Build Coastguard Worker __u32 dbc_id; 154*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 155*8d67ca89SAndroid Build Coastguard Worker }; 156*8d67ca89SAndroid Build Coastguard Worker struct qaic_perf_stats_hdr { 157*8d67ca89SAndroid Build Coastguard Worker __u16 count; 158*8d67ca89SAndroid Build Coastguard Worker __u16 pad; 159*8d67ca89SAndroid Build Coastguard Worker __u32 dbc_id; 160*8d67ca89SAndroid Build Coastguard Worker }; 161*8d67ca89SAndroid Build Coastguard Worker struct qaic_perf_stats { 162*8d67ca89SAndroid Build Coastguard Worker struct qaic_perf_stats_hdr hdr; 163*8d67ca89SAndroid Build Coastguard Worker __u64 data; 164*8d67ca89SAndroid Build Coastguard Worker }; 165*8d67ca89SAndroid Build Coastguard Worker struct qaic_perf_stats_entry { 166*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 167*8d67ca89SAndroid Build Coastguard Worker __u32 queue_level_before; 168*8d67ca89SAndroid Build Coastguard Worker __u32 num_queue_element; 169*8d67ca89SAndroid Build Coastguard Worker __u32 submit_latency_us; 170*8d67ca89SAndroid Build Coastguard Worker __u32 device_latency_us; 171*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 172*8d67ca89SAndroid Build Coastguard Worker }; 173*8d67ca89SAndroid Build Coastguard Worker struct qaic_detach_slice { 174*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 175*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 176*8d67ca89SAndroid Build Coastguard Worker }; 177*8d67ca89SAndroid Build Coastguard Worker #define DRM_QAIC_MANAGE 0x00 178*8d67ca89SAndroid Build Coastguard Worker #define DRM_QAIC_CREATE_BO 0x01 179*8d67ca89SAndroid Build Coastguard Worker #define DRM_QAIC_MMAP_BO 0x02 180*8d67ca89SAndroid Build Coastguard Worker #define DRM_QAIC_ATTACH_SLICE_BO 0x03 181*8d67ca89SAndroid Build Coastguard Worker #define DRM_QAIC_EXECUTE_BO 0x04 182*8d67ca89SAndroid Build Coastguard Worker #define DRM_QAIC_PARTIAL_EXECUTE_BO 0x05 183*8d67ca89SAndroid Build Coastguard Worker #define DRM_QAIC_WAIT_BO 0x06 184*8d67ca89SAndroid Build Coastguard Worker #define DRM_QAIC_PERF_STATS_BO 0x07 185*8d67ca89SAndroid Build Coastguard Worker #define DRM_QAIC_DETACH_SLICE_BO 0x08 186*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_QAIC_MANAGE DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_MANAGE, struct qaic_manage_msg) 187*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_QAIC_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_CREATE_BO, struct qaic_create_bo) 188*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_QAIC_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_MMAP_BO, struct qaic_mmap_bo) 189*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_QAIC_ATTACH_SLICE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_ATTACH_SLICE_BO, struct qaic_attach_slice) 190*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_QAIC_EXECUTE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_EXECUTE_BO, struct qaic_execute) 191*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_QAIC_PARTIAL_EXECUTE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_PARTIAL_EXECUTE_BO, struct qaic_execute) 192*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_QAIC_WAIT_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_WAIT_BO, struct qaic_wait) 193*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_QAIC_PERF_STATS_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_PERF_STATS_BO, struct qaic_perf_stats) 194*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_QAIC_DETACH_SLICE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_DETACH_SLICE_BO, struct qaic_detach_slice) 195*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus 196*8d67ca89SAndroid Build Coastguard Worker } 197*8d67ca89SAndroid Build Coastguard Worker #endif 198*8d67ca89SAndroid Build Coastguard Worker #endif 199