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 __RADEON_DRM_H__ 8*8d67ca89SAndroid Build Coastguard Worker #define __RADEON_DRM_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 #ifndef __RADEON_SAREA_DEFINES__ 14*8d67ca89SAndroid Build Coastguard Worker #define __RADEON_SAREA_DEFINES__ 15*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_CONTEXT 0x00000001 16*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_VERTFMT 0x00000002 17*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_LINE 0x00000004 18*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_BUMPMAP 0x00000008 19*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_MASKS 0x00000010 20*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_VIEWPORT 0x00000020 21*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_SETUP 0x00000040 22*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_TCL 0x00000080 23*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_MISC 0x00000100 24*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_TEX0 0x00000200 25*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_TEX1 0x00000400 26*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_TEX2 0x00000800 27*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_TEX0IMAGES 0x00001000 28*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_TEX1IMAGES 0x00002000 29*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_TEX2IMAGES 0x00004000 30*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_CLIPRECTS 0x00008000 31*8d67ca89SAndroid Build Coastguard Worker #define RADEON_REQUIRE_QUIESCENCE 0x00010000 32*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_ZBIAS 0x00020000 33*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_ALL 0x003effff 34*8d67ca89SAndroid Build Coastguard Worker #define RADEON_UPLOAD_CONTEXT_ALL 0x003e01ff 35*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_MISC 0 36*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_CNTL 1 37*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_RB3D_COLORPITCH 2 38*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_RE_LINE_PATTERN 3 39*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_SE_LINE_WIDTH 4 40*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_LUM_MATRIX 5 41*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_ROT_MATRIX_0 6 42*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_RB3D_STENCILREFMASK 7 43*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_SE_VPORT_XSCALE 8 44*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_SE_CNTL 9 45*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_SE_CNTL_STATUS 10 46*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_RE_MISC 11 47*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_TXFILTER_0 12 48*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_BORDER_COLOR_0 13 49*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_TXFILTER_1 14 50*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_BORDER_COLOR_1 15 51*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_TXFILTER_2 16 52*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_BORDER_COLOR_2 17 53*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_SE_ZBIAS_FACTOR 18 54*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_SE_TCL_OUTPUT_VTX_FMT 19 55*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_SE_TCL_MATERIAL_EMMISSIVE_RED 20 56*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCBLEND_0 21 57*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCBLEND_1 22 58*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCBLEND_2 23 59*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCBLEND_3 24 60*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCBLEND_4 25 61*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCBLEND_5 26 62*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCBLEND_6 27 63*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCBLEND_7 28 64*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_TCL_LIGHT_MODEL_CTL_0 29 65*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_TFACTOR_0 30 66*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_VTX_FMT_0 31 67*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_VAP_CTL 32 68*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_MATRIX_SELECT_0 33 69*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_TEX_PROC_CTL_2 34 70*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_TCL_UCP_VERT_BLEND_CTL 35 71*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXFILTER_0 36 72*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXFILTER_1 37 73*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXFILTER_2 38 74*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXFILTER_3 39 75*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXFILTER_4 40 76*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXFILTER_5 41 77*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXOFFSET_0 42 78*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXOFFSET_1 43 79*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXOFFSET_2 44 80*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXOFFSET_3 45 81*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXOFFSET_4 46 82*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXOFFSET_5 47 83*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_VTE_CNTL 48 84*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_OUTPUT_VTX_COMP_SEL 49 85*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TAM_DEBUG3 50 86*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_CNTL_X 51 87*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_RB3D_DEPTHXY_OFFSET 52 88*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_RE_AUX_SCISSOR_CNTL 53 89*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_RE_SCISSOR_TL_0 54 90*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_RE_SCISSOR_TL_1 55 91*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_RE_SCISSOR_TL_2 56 92*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_SE_VAP_CNTL_STATUS 57 93*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_SE_VTX_STATE_CNTL 58 94*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_RE_POINTSIZE 59 95*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_TCL_INPUT_VTX_VECTOR_ADDR_0 60 96*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_CUBIC_FACES_0 61 97*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_CUBIC_OFFSETS_0 62 98*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_CUBIC_FACES_1 63 99*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_CUBIC_OFFSETS_1 64 100*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_CUBIC_FACES_2 65 101*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_CUBIC_OFFSETS_2 66 102*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_CUBIC_FACES_3 67 103*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_CUBIC_OFFSETS_3 68 104*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_CUBIC_FACES_4 69 105*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_CUBIC_OFFSETS_4 70 106*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_CUBIC_FACES_5 71 107*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_CUBIC_OFFSETS_5 72 108*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_TEX_SIZE_0 73 109*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_TEX_SIZE_1 74 110*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_TEX_SIZE_2 75 111*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_RB3D_BLENDCOLOR 76 112*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_TCL_POINT_SPRITE_CNTL 77 113*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_CUBIC_FACES_0 78 114*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_CUBIC_OFFSETS_T0 79 115*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_CUBIC_FACES_1 80 116*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_CUBIC_OFFSETS_T1 81 117*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_CUBIC_FACES_2 82 118*8d67ca89SAndroid Build Coastguard Worker #define RADEON_EMIT_PP_CUBIC_OFFSETS_T2 83 119*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TRI_PERF_CNTL 84 120*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_AFS_0 85 121*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_AFS_1 86 122*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_ATF_TFACTOR 87 123*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCTLALL_0 88 124*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCTLALL_1 89 125*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCTLALL_2 90 126*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCTLALL_3 91 127*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCTLALL_4 92 128*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_PP_TXCTLALL_5 93 129*8d67ca89SAndroid Build Coastguard Worker #define R200_EMIT_VAP_PVS_CNTL 94 130*8d67ca89SAndroid Build Coastguard Worker #define RADEON_MAX_STATE_PACKETS 95 131*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CMD_PACKET 1 132*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CMD_SCALARS 2 133*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CMD_VECTORS 3 134*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CMD_DMA_DISCARD 4 135*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CMD_PACKET3 5 136*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CMD_PACKET3_CLIP 6 137*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CMD_SCALARS2 7 138*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CMD_WAIT 8 139*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CMD_VECLINEAR 9 140*8d67ca89SAndroid Build Coastguard Worker typedef union { 141*8d67ca89SAndroid Build Coastguard Worker int i; 142*8d67ca89SAndroid Build Coastguard Worker struct { 143*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, pad0, pad1, pad2; 144*8d67ca89SAndroid Build Coastguard Worker } header; 145*8d67ca89SAndroid Build Coastguard Worker struct { 146*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, packet_id, pad0, pad1; 147*8d67ca89SAndroid Build Coastguard Worker } packet; 148*8d67ca89SAndroid Build Coastguard Worker struct { 149*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, offset, stride, count; 150*8d67ca89SAndroid Build Coastguard Worker } scalars; 151*8d67ca89SAndroid Build Coastguard Worker struct { 152*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, offset, stride, count; 153*8d67ca89SAndroid Build Coastguard Worker } vectors; 154*8d67ca89SAndroid Build Coastguard Worker struct { 155*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, addr_lo, addr_hi, count; 156*8d67ca89SAndroid Build Coastguard Worker } veclinear; 157*8d67ca89SAndroid Build Coastguard Worker struct { 158*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, buf_idx, pad0, pad1; 159*8d67ca89SAndroid Build Coastguard Worker } dma; 160*8d67ca89SAndroid Build Coastguard Worker struct { 161*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, flags, pad0, pad1; 162*8d67ca89SAndroid Build Coastguard Worker } wait; 163*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_cmd_header_t; 164*8d67ca89SAndroid Build Coastguard Worker #define RADEON_WAIT_2D 0x1 165*8d67ca89SAndroid Build Coastguard Worker #define RADEON_WAIT_3D 0x2 166*8d67ca89SAndroid Build Coastguard Worker #define R300_CMD_PACKET3_CLEAR 0 167*8d67ca89SAndroid Build Coastguard Worker #define R300_CMD_PACKET3_RAW 1 168*8d67ca89SAndroid Build Coastguard Worker #define R300_CMD_PACKET0 1 169*8d67ca89SAndroid Build Coastguard Worker #define R300_CMD_VPU 2 170*8d67ca89SAndroid Build Coastguard Worker #define R300_CMD_PACKET3 3 171*8d67ca89SAndroid Build Coastguard Worker #define R300_CMD_END3D 4 172*8d67ca89SAndroid Build Coastguard Worker #define R300_CMD_CP_DELAY 5 173*8d67ca89SAndroid Build Coastguard Worker #define R300_CMD_DMA_DISCARD 6 174*8d67ca89SAndroid Build Coastguard Worker #define R300_CMD_WAIT 7 175*8d67ca89SAndroid Build Coastguard Worker #define R300_WAIT_2D 0x1 176*8d67ca89SAndroid Build Coastguard Worker #define R300_WAIT_3D 0x2 177*8d67ca89SAndroid Build Coastguard Worker #define R300_WAIT_2D_CLEAN 0x3 178*8d67ca89SAndroid Build Coastguard Worker #define R300_WAIT_3D_CLEAN 0x4 179*8d67ca89SAndroid Build Coastguard Worker #define R300_NEW_WAIT_2D_3D 0x3 180*8d67ca89SAndroid Build Coastguard Worker #define R300_NEW_WAIT_2D_2D_CLEAN 0x4 181*8d67ca89SAndroid Build Coastguard Worker #define R300_NEW_WAIT_3D_3D_CLEAN 0x6 182*8d67ca89SAndroid Build Coastguard Worker #define R300_NEW_WAIT_2D_2D_CLEAN_3D_3D_CLEAN 0x8 183*8d67ca89SAndroid Build Coastguard Worker #define R300_CMD_SCRATCH 8 184*8d67ca89SAndroid Build Coastguard Worker #define R300_CMD_R500FP 9 185*8d67ca89SAndroid Build Coastguard Worker typedef union { 186*8d67ca89SAndroid Build Coastguard Worker unsigned int u; 187*8d67ca89SAndroid Build Coastguard Worker struct { 188*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, pad0, pad1, pad2; 189*8d67ca89SAndroid Build Coastguard Worker } header; 190*8d67ca89SAndroid Build Coastguard Worker struct { 191*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, count, reglo, reghi; 192*8d67ca89SAndroid Build Coastguard Worker } packet0; 193*8d67ca89SAndroid Build Coastguard Worker struct { 194*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, count, adrlo, adrhi; 195*8d67ca89SAndroid Build Coastguard Worker } vpu; 196*8d67ca89SAndroid Build Coastguard Worker struct { 197*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, packet, pad0, pad1; 198*8d67ca89SAndroid Build Coastguard Worker } packet3; 199*8d67ca89SAndroid Build Coastguard Worker struct { 200*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, packet; 201*8d67ca89SAndroid Build Coastguard Worker unsigned short count; 202*8d67ca89SAndroid Build Coastguard Worker } delay; 203*8d67ca89SAndroid Build Coastguard Worker struct { 204*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, buf_idx, pad0, pad1; 205*8d67ca89SAndroid Build Coastguard Worker } dma; 206*8d67ca89SAndroid Build Coastguard Worker struct { 207*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, flags, pad0, pad1; 208*8d67ca89SAndroid Build Coastguard Worker } wait; 209*8d67ca89SAndroid Build Coastguard Worker struct { 210*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, reg, n_bufs, flags; 211*8d67ca89SAndroid Build Coastguard Worker } scratch; 212*8d67ca89SAndroid Build Coastguard Worker struct { 213*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd_type, count, adrlo, adrhi_flags; 214*8d67ca89SAndroid Build Coastguard Worker } r500fp; 215*8d67ca89SAndroid Build Coastguard Worker } drm_r300_cmd_header_t; 216*8d67ca89SAndroid Build Coastguard Worker #define RADEON_FRONT 0x1 217*8d67ca89SAndroid Build Coastguard Worker #define RADEON_BACK 0x2 218*8d67ca89SAndroid Build Coastguard Worker #define RADEON_DEPTH 0x4 219*8d67ca89SAndroid Build Coastguard Worker #define RADEON_STENCIL 0x8 220*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CLEAR_FASTZ 0x80000000 221*8d67ca89SAndroid Build Coastguard Worker #define RADEON_USE_HIERZ 0x40000000 222*8d67ca89SAndroid Build Coastguard Worker #define RADEON_USE_COMP_ZBUF 0x20000000 223*8d67ca89SAndroid Build Coastguard Worker #define R500FP_CONSTANT_TYPE (1 << 1) 224*8d67ca89SAndroid Build Coastguard Worker #define R500FP_CONSTANT_CLAMP (1 << 2) 225*8d67ca89SAndroid Build Coastguard Worker #define RADEON_POINTS 0x1 226*8d67ca89SAndroid Build Coastguard Worker #define RADEON_LINES 0x2 227*8d67ca89SAndroid Build Coastguard Worker #define RADEON_LINE_STRIP 0x3 228*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TRIANGLES 0x4 229*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TRIANGLE_FAN 0x5 230*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TRIANGLE_STRIP 0x6 231*8d67ca89SAndroid Build Coastguard Worker #define RADEON_BUFFER_SIZE 65536 232*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INDEX_PRIM_OFFSET 20 233*8d67ca89SAndroid Build Coastguard Worker #define RADEON_SCRATCH_REG_OFFSET 32 234*8d67ca89SAndroid Build Coastguard Worker #define R600_SCRATCH_REG_OFFSET 256 235*8d67ca89SAndroid Build Coastguard Worker #define RADEON_NR_SAREA_CLIPRECTS 12 236*8d67ca89SAndroid Build Coastguard Worker #define RADEON_LOCAL_TEX_HEAP 0 237*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GART_TEX_HEAP 1 238*8d67ca89SAndroid Build Coastguard Worker #define RADEON_NR_TEX_HEAPS 2 239*8d67ca89SAndroid Build Coastguard Worker #define RADEON_NR_TEX_REGIONS 64 240*8d67ca89SAndroid Build Coastguard Worker #define RADEON_LOG_TEX_GRANULARITY 16 241*8d67ca89SAndroid Build Coastguard Worker #define RADEON_MAX_TEXTURE_LEVELS 12 242*8d67ca89SAndroid Build Coastguard Worker #define RADEON_MAX_TEXTURE_UNITS 3 243*8d67ca89SAndroid Build Coastguard Worker #define RADEON_MAX_SURFACES 8 244*8d67ca89SAndroid Build Coastguard Worker #define RADEON_OFFSET_SHIFT 10 245*8d67ca89SAndroid Build Coastguard Worker #define RADEON_OFFSET_ALIGN (1 << RADEON_OFFSET_SHIFT) 246*8d67ca89SAndroid Build Coastguard Worker #define RADEON_OFFSET_MASK (RADEON_OFFSET_ALIGN - 1) 247*8d67ca89SAndroid Build Coastguard Worker #endif 248*8d67ca89SAndroid Build Coastguard Worker typedef struct { 249*8d67ca89SAndroid Build Coastguard Worker unsigned int red; 250*8d67ca89SAndroid Build Coastguard Worker unsigned int green; 251*8d67ca89SAndroid Build Coastguard Worker unsigned int blue; 252*8d67ca89SAndroid Build Coastguard Worker unsigned int alpha; 253*8d67ca89SAndroid Build Coastguard Worker } radeon_color_regs_t; 254*8d67ca89SAndroid Build Coastguard Worker typedef struct { 255*8d67ca89SAndroid Build Coastguard Worker unsigned int pp_misc; 256*8d67ca89SAndroid Build Coastguard Worker unsigned int pp_fog_color; 257*8d67ca89SAndroid Build Coastguard Worker unsigned int re_solid_color; 258*8d67ca89SAndroid Build Coastguard Worker unsigned int rb3d_blendcntl; 259*8d67ca89SAndroid Build Coastguard Worker unsigned int rb3d_depthoffset; 260*8d67ca89SAndroid Build Coastguard Worker unsigned int rb3d_depthpitch; 261*8d67ca89SAndroid Build Coastguard Worker unsigned int rb3d_zstencilcntl; 262*8d67ca89SAndroid Build Coastguard Worker unsigned int pp_cntl; 263*8d67ca89SAndroid Build Coastguard Worker unsigned int rb3d_cntl; 264*8d67ca89SAndroid Build Coastguard Worker unsigned int rb3d_coloroffset; 265*8d67ca89SAndroid Build Coastguard Worker unsigned int re_width_height; 266*8d67ca89SAndroid Build Coastguard Worker unsigned int rb3d_colorpitch; 267*8d67ca89SAndroid Build Coastguard Worker unsigned int se_cntl; 268*8d67ca89SAndroid Build Coastguard Worker unsigned int se_coord_fmt; 269*8d67ca89SAndroid Build Coastguard Worker unsigned int re_line_pattern; 270*8d67ca89SAndroid Build Coastguard Worker unsigned int re_line_state; 271*8d67ca89SAndroid Build Coastguard Worker unsigned int se_line_width; 272*8d67ca89SAndroid Build Coastguard Worker unsigned int pp_lum_matrix; 273*8d67ca89SAndroid Build Coastguard Worker unsigned int pp_rot_matrix_0; 274*8d67ca89SAndroid Build Coastguard Worker unsigned int pp_rot_matrix_1; 275*8d67ca89SAndroid Build Coastguard Worker unsigned int rb3d_stencilrefmask; 276*8d67ca89SAndroid Build Coastguard Worker unsigned int rb3d_ropcntl; 277*8d67ca89SAndroid Build Coastguard Worker unsigned int rb3d_planemask; 278*8d67ca89SAndroid Build Coastguard Worker unsigned int se_vport_xscale; 279*8d67ca89SAndroid Build Coastguard Worker unsigned int se_vport_xoffset; 280*8d67ca89SAndroid Build Coastguard Worker unsigned int se_vport_yscale; 281*8d67ca89SAndroid Build Coastguard Worker unsigned int se_vport_yoffset; 282*8d67ca89SAndroid Build Coastguard Worker unsigned int se_vport_zscale; 283*8d67ca89SAndroid Build Coastguard Worker unsigned int se_vport_zoffset; 284*8d67ca89SAndroid Build Coastguard Worker unsigned int se_cntl_status; 285*8d67ca89SAndroid Build Coastguard Worker unsigned int re_top_left; 286*8d67ca89SAndroid Build Coastguard Worker unsigned int re_misc; 287*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_context_regs_t; 288*8d67ca89SAndroid Build Coastguard Worker typedef struct { 289*8d67ca89SAndroid Build Coastguard Worker unsigned int se_zbias_factor; 290*8d67ca89SAndroid Build Coastguard Worker unsigned int se_zbias_constant; 291*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_context2_regs_t; 292*8d67ca89SAndroid Build Coastguard Worker typedef struct { 293*8d67ca89SAndroid Build Coastguard Worker unsigned int pp_txfilter; 294*8d67ca89SAndroid Build Coastguard Worker unsigned int pp_txformat; 295*8d67ca89SAndroid Build Coastguard Worker unsigned int pp_txoffset; 296*8d67ca89SAndroid Build Coastguard Worker unsigned int pp_txcblend; 297*8d67ca89SAndroid Build Coastguard Worker unsigned int pp_txablend; 298*8d67ca89SAndroid Build Coastguard Worker unsigned int pp_tfactor; 299*8d67ca89SAndroid Build Coastguard Worker unsigned int pp_border_color; 300*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_texture_regs_t; 301*8d67ca89SAndroid Build Coastguard Worker typedef struct { 302*8d67ca89SAndroid Build Coastguard Worker unsigned int start; 303*8d67ca89SAndroid Build Coastguard Worker unsigned int finish; 304*8d67ca89SAndroid Build Coastguard Worker unsigned int prim : 8; 305*8d67ca89SAndroid Build Coastguard Worker unsigned int stateidx : 8; 306*8d67ca89SAndroid Build Coastguard Worker unsigned int numverts : 16; 307*8d67ca89SAndroid Build Coastguard Worker unsigned int vc_format; 308*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_prim_t; 309*8d67ca89SAndroid Build Coastguard Worker typedef struct { 310*8d67ca89SAndroid Build Coastguard Worker drm_radeon_context_regs_t context; 311*8d67ca89SAndroid Build Coastguard Worker drm_radeon_texture_regs_t tex[RADEON_MAX_TEXTURE_UNITS]; 312*8d67ca89SAndroid Build Coastguard Worker drm_radeon_context2_regs_t context2; 313*8d67ca89SAndroid Build Coastguard Worker unsigned int dirty; 314*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_state_t; 315*8d67ca89SAndroid Build Coastguard Worker typedef struct { 316*8d67ca89SAndroid Build Coastguard Worker drm_radeon_context_regs_t context_state; 317*8d67ca89SAndroid Build Coastguard Worker drm_radeon_texture_regs_t tex_state[RADEON_MAX_TEXTURE_UNITS]; 318*8d67ca89SAndroid Build Coastguard Worker unsigned int dirty; 319*8d67ca89SAndroid Build Coastguard Worker unsigned int vertsize; 320*8d67ca89SAndroid Build Coastguard Worker unsigned int vc_format; 321*8d67ca89SAndroid Build Coastguard Worker struct drm_clip_rect boxes[RADEON_NR_SAREA_CLIPRECTS]; 322*8d67ca89SAndroid Build Coastguard Worker unsigned int nbox; 323*8d67ca89SAndroid Build Coastguard Worker unsigned int last_frame; 324*8d67ca89SAndroid Build Coastguard Worker unsigned int last_dispatch; 325*8d67ca89SAndroid Build Coastguard Worker unsigned int last_clear; 326*8d67ca89SAndroid Build Coastguard Worker struct drm_tex_region tex_list[RADEON_NR_TEX_HEAPS][RADEON_NR_TEX_REGIONS + 1]; 327*8d67ca89SAndroid Build Coastguard Worker unsigned int tex_age[RADEON_NR_TEX_HEAPS]; 328*8d67ca89SAndroid Build Coastguard Worker int ctx_owner; 329*8d67ca89SAndroid Build Coastguard Worker int pfState; 330*8d67ca89SAndroid Build Coastguard Worker int pfCurrentPage; 331*8d67ca89SAndroid Build Coastguard Worker int crtc2_base; 332*8d67ca89SAndroid Build Coastguard Worker int tiling_enabled; 333*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_sarea_t; 334*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_CP_INIT 0x00 335*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_CP_START 0x01 336*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_CP_STOP 0x02 337*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_CP_RESET 0x03 338*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_CP_IDLE 0x04 339*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_RESET 0x05 340*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_FULLSCREEN 0x06 341*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_SWAP 0x07 342*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_CLEAR 0x08 343*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_VERTEX 0x09 344*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_INDICES 0x0A 345*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_NOT_USED 346*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_STIPPLE 0x0C 347*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_INDIRECT 0x0D 348*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_TEXTURE 0x0E 349*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_VERTEX2 0x0F 350*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_CMDBUF 0x10 351*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GETPARAM 0x11 352*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_FLIP 0x12 353*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_ALLOC 0x13 354*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_FREE 0x14 355*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_INIT_HEAP 0x15 356*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_IRQ_EMIT 0x16 357*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_IRQ_WAIT 0x17 358*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_CP_RESUME 0x18 359*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_SETPARAM 0x19 360*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_SURF_ALLOC 0x1a 361*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_SURF_FREE 0x1b 362*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GEM_INFO 0x1c 363*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GEM_CREATE 0x1d 364*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GEM_MMAP 0x1e 365*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GEM_PREAD 0x21 366*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GEM_PWRITE 0x22 367*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GEM_SET_DOMAIN 0x23 368*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GEM_WAIT_IDLE 0x24 369*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_CS 0x26 370*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_INFO 0x27 371*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GEM_SET_TILING 0x28 372*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GEM_GET_TILING 0x29 373*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GEM_BUSY 0x2a 374*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GEM_VA 0x2b 375*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GEM_OP 0x2c 376*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_GEM_USERPTR 0x2d 377*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_CP_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t) 378*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_CP_START DRM_IO(DRM_COMMAND_BASE + DRM_RADEON_CP_START) 379*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_CP_STOP DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_CP_STOP, drm_radeon_cp_stop_t) 380*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_CP_RESET DRM_IO(DRM_COMMAND_BASE + DRM_RADEON_CP_RESET) 381*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_CP_IDLE DRM_IO(DRM_COMMAND_BASE + DRM_RADEON_CP_IDLE) 382*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_RESET DRM_IO(DRM_COMMAND_BASE + DRM_RADEON_RESET) 383*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_FULLSCREEN DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_FULLSCREEN, drm_radeon_fullscreen_t) 384*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_SWAP DRM_IO(DRM_COMMAND_BASE + DRM_RADEON_SWAP) 385*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_CLEAR DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_CLEAR, drm_radeon_clear_t) 386*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_VERTEX DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_VERTEX, drm_radeon_vertex_t) 387*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_INDICES DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_INDICES, drm_radeon_indices_t) 388*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_STIPPLE DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_STIPPLE, drm_radeon_stipple_t) 389*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_INDIRECT DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_INDIRECT, drm_radeon_indirect_t) 390*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_TEXTURE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_TEXTURE, drm_radeon_texture_t) 391*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_VERTEX2 DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_VERTEX2, drm_radeon_vertex2_t) 392*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_CMDBUF DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_CMDBUF, drm_radeon_cmd_buffer_t) 393*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GETPARAM, drm_radeon_getparam_t) 394*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_FLIP DRM_IO(DRM_COMMAND_BASE + DRM_RADEON_FLIP) 395*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_ALLOC, drm_radeon_mem_alloc_t) 396*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_FREE DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_FREE, drm_radeon_mem_free_t) 397*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_INIT_HEAP DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_INIT_HEAP, drm_radeon_mem_init_heap_t) 398*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_IRQ_EMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_IRQ_EMIT, drm_radeon_irq_emit_t) 399*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_IRQ_WAIT DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_IRQ_WAIT, drm_radeon_irq_wait_t) 400*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_CP_RESUME DRM_IO(DRM_COMMAND_BASE + DRM_RADEON_CP_RESUME) 401*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_SETPARAM DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_SETPARAM, drm_radeon_setparam_t) 402*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_SURF_ALLOC DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_SURF_ALLOC, drm_radeon_surface_alloc_t) 403*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_SURF_FREE DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_SURF_FREE, drm_radeon_surface_free_t) 404*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_INFO, struct drm_radeon_gem_info) 405*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_CREATE, struct drm_radeon_gem_create) 406*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_MMAP, struct drm_radeon_gem_mmap) 407*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GEM_PREAD DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_PREAD, struct drm_radeon_gem_pread) 408*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GEM_PWRITE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_PWRITE, struct drm_radeon_gem_pwrite) 409*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GEM_SET_DOMAIN DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_SET_DOMAIN, struct drm_radeon_gem_set_domain) 410*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GEM_WAIT_IDLE DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_GEM_WAIT_IDLE, struct drm_radeon_gem_wait_idle) 411*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_CS DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_CS, struct drm_radeon_cs) 412*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_INFO, struct drm_radeon_info) 413*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GEM_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_SET_TILING, struct drm_radeon_gem_set_tiling) 414*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_GET_TILING, struct drm_radeon_gem_get_tiling) 415*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_BUSY, struct drm_radeon_gem_busy) 416*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GEM_VA DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_VA, struct drm_radeon_gem_va) 417*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GEM_OP DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_OP, struct drm_radeon_gem_op) 418*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_RADEON_GEM_USERPTR DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_USERPTR, struct drm_radeon_gem_userptr) 419*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_init { 420*8d67ca89SAndroid Build Coastguard Worker enum { 421*8d67ca89SAndroid Build Coastguard Worker RADEON_INIT_CP = 0x01, 422*8d67ca89SAndroid Build Coastguard Worker RADEON_CLEANUP_CP = 0x02, 423*8d67ca89SAndroid Build Coastguard Worker RADEON_INIT_R200_CP = 0x03, 424*8d67ca89SAndroid Build Coastguard Worker RADEON_INIT_R300_CP = 0x04, 425*8d67ca89SAndroid Build Coastguard Worker RADEON_INIT_R600_CP = 0x05 426*8d67ca89SAndroid Build Coastguard Worker } func; 427*8d67ca89SAndroid Build Coastguard Worker unsigned long sarea_priv_offset; 428*8d67ca89SAndroid Build Coastguard Worker int is_pci; 429*8d67ca89SAndroid Build Coastguard Worker int cp_mode; 430*8d67ca89SAndroid Build Coastguard Worker int gart_size; 431*8d67ca89SAndroid Build Coastguard Worker int ring_size; 432*8d67ca89SAndroid Build Coastguard Worker int usec_timeout; 433*8d67ca89SAndroid Build Coastguard Worker unsigned int fb_bpp; 434*8d67ca89SAndroid Build Coastguard Worker unsigned int front_offset, front_pitch; 435*8d67ca89SAndroid Build Coastguard Worker unsigned int back_offset, back_pitch; 436*8d67ca89SAndroid Build Coastguard Worker unsigned int depth_bpp; 437*8d67ca89SAndroid Build Coastguard Worker unsigned int depth_offset, depth_pitch; 438*8d67ca89SAndroid Build Coastguard Worker unsigned long fb_offset; 439*8d67ca89SAndroid Build Coastguard Worker unsigned long mmio_offset; 440*8d67ca89SAndroid Build Coastguard Worker unsigned long ring_offset; 441*8d67ca89SAndroid Build Coastguard Worker unsigned long ring_rptr_offset; 442*8d67ca89SAndroid Build Coastguard Worker unsigned long buffers_offset; 443*8d67ca89SAndroid Build Coastguard Worker unsigned long gart_textures_offset; 444*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_init_t; 445*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_cp_stop { 446*8d67ca89SAndroid Build Coastguard Worker int flush; 447*8d67ca89SAndroid Build Coastguard Worker int idle; 448*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_cp_stop_t; 449*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_fullscreen { 450*8d67ca89SAndroid Build Coastguard Worker enum { 451*8d67ca89SAndroid Build Coastguard Worker RADEON_INIT_FULLSCREEN = 0x01, 452*8d67ca89SAndroid Build Coastguard Worker RADEON_CLEANUP_FULLSCREEN = 0x02 453*8d67ca89SAndroid Build Coastguard Worker } func; 454*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_fullscreen_t; 455*8d67ca89SAndroid Build Coastguard Worker #define CLEAR_X1 0 456*8d67ca89SAndroid Build Coastguard Worker #define CLEAR_Y1 1 457*8d67ca89SAndroid Build Coastguard Worker #define CLEAR_X2 2 458*8d67ca89SAndroid Build Coastguard Worker #define CLEAR_Y2 3 459*8d67ca89SAndroid Build Coastguard Worker #define CLEAR_DEPTH 4 460*8d67ca89SAndroid Build Coastguard Worker typedef union drm_radeon_clear_rect { 461*8d67ca89SAndroid Build Coastguard Worker float f[5]; 462*8d67ca89SAndroid Build Coastguard Worker unsigned int ui[5]; 463*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_clear_rect_t; 464*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_clear { 465*8d67ca89SAndroid Build Coastguard Worker unsigned int flags; 466*8d67ca89SAndroid Build Coastguard Worker unsigned int clear_color; 467*8d67ca89SAndroid Build Coastguard Worker unsigned int clear_depth; 468*8d67ca89SAndroid Build Coastguard Worker unsigned int color_mask; 469*8d67ca89SAndroid Build Coastguard Worker unsigned int depth_mask; 470*8d67ca89SAndroid Build Coastguard Worker drm_radeon_clear_rect_t * depth_boxes; 471*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_clear_t; 472*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_vertex { 473*8d67ca89SAndroid Build Coastguard Worker int prim; 474*8d67ca89SAndroid Build Coastguard Worker int idx; 475*8d67ca89SAndroid Build Coastguard Worker int count; 476*8d67ca89SAndroid Build Coastguard Worker int discard; 477*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_vertex_t; 478*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_indices { 479*8d67ca89SAndroid Build Coastguard Worker int prim; 480*8d67ca89SAndroid Build Coastguard Worker int idx; 481*8d67ca89SAndroid Build Coastguard Worker int start; 482*8d67ca89SAndroid Build Coastguard Worker int end; 483*8d67ca89SAndroid Build Coastguard Worker int discard; 484*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_indices_t; 485*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_vertex2 { 486*8d67ca89SAndroid Build Coastguard Worker int idx; 487*8d67ca89SAndroid Build Coastguard Worker int discard; 488*8d67ca89SAndroid Build Coastguard Worker int nr_states; 489*8d67ca89SAndroid Build Coastguard Worker drm_radeon_state_t * state; 490*8d67ca89SAndroid Build Coastguard Worker int nr_prims; 491*8d67ca89SAndroid Build Coastguard Worker drm_radeon_prim_t * prim; 492*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_vertex2_t; 493*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_cmd_buffer { 494*8d67ca89SAndroid Build Coastguard Worker int bufsz; 495*8d67ca89SAndroid Build Coastguard Worker char * buf; 496*8d67ca89SAndroid Build Coastguard Worker int nbox; 497*8d67ca89SAndroid Build Coastguard Worker struct drm_clip_rect * boxes; 498*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_cmd_buffer_t; 499*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_tex_image { 500*8d67ca89SAndroid Build Coastguard Worker unsigned int x, y; 501*8d67ca89SAndroid Build Coastguard Worker unsigned int width, height; 502*8d67ca89SAndroid Build Coastguard Worker const void * data; 503*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_tex_image_t; 504*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_texture { 505*8d67ca89SAndroid Build Coastguard Worker unsigned int offset; 506*8d67ca89SAndroid Build Coastguard Worker int pitch; 507*8d67ca89SAndroid Build Coastguard Worker int format; 508*8d67ca89SAndroid Build Coastguard Worker int width; 509*8d67ca89SAndroid Build Coastguard Worker int height; 510*8d67ca89SAndroid Build Coastguard Worker drm_radeon_tex_image_t * image; 511*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_texture_t; 512*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_stipple { 513*8d67ca89SAndroid Build Coastguard Worker unsigned int * mask; 514*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_stipple_t; 515*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_indirect { 516*8d67ca89SAndroid Build Coastguard Worker int idx; 517*8d67ca89SAndroid Build Coastguard Worker int start; 518*8d67ca89SAndroid Build Coastguard Worker int end; 519*8d67ca89SAndroid Build Coastguard Worker int discard; 520*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_indirect_t; 521*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CARD_PCI 0 522*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CARD_AGP 1 523*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CARD_PCIE 2 524*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_GART_BUFFER_OFFSET 1 525*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_LAST_FRAME 2 526*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_LAST_DISPATCH 3 527*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_LAST_CLEAR 4 528*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_IRQ_NR 5 529*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_GART_BASE 6 530*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_REGISTER_HANDLE 7 531*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_STATUS_HANDLE 8 532*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_SAREA_HANDLE 9 533*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_GART_TEX_HANDLE 10 534*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_SCRATCH_OFFSET 11 535*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_CARD_TYPE 12 536*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_VBLANK_CRTC 13 537*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_FB_LOCATION 14 538*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_NUM_GB_PIPES 15 539*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_DEVICE_ID 16 540*8d67ca89SAndroid Build Coastguard Worker #define RADEON_PARAM_NUM_Z_PIPES 17 541*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_getparam { 542*8d67ca89SAndroid Build Coastguard Worker int param; 543*8d67ca89SAndroid Build Coastguard Worker void * value; 544*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_getparam_t; 545*8d67ca89SAndroid Build Coastguard Worker #define RADEON_MEM_REGION_GART 1 546*8d67ca89SAndroid Build Coastguard Worker #define RADEON_MEM_REGION_FB 2 547*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_mem_alloc { 548*8d67ca89SAndroid Build Coastguard Worker int region; 549*8d67ca89SAndroid Build Coastguard Worker int alignment; 550*8d67ca89SAndroid Build Coastguard Worker int size; 551*8d67ca89SAndroid Build Coastguard Worker int * region_offset; 552*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_mem_alloc_t; 553*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_mem_free { 554*8d67ca89SAndroid Build Coastguard Worker int region; 555*8d67ca89SAndroid Build Coastguard Worker int region_offset; 556*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_mem_free_t; 557*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_mem_init_heap { 558*8d67ca89SAndroid Build Coastguard Worker int region; 559*8d67ca89SAndroid Build Coastguard Worker int size; 560*8d67ca89SAndroid Build Coastguard Worker int start; 561*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_mem_init_heap_t; 562*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_irq_emit { 563*8d67ca89SAndroid Build Coastguard Worker int * irq_seq; 564*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_irq_emit_t; 565*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_irq_wait { 566*8d67ca89SAndroid Build Coastguard Worker int irq_seq; 567*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_irq_wait_t; 568*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_setparam { 569*8d67ca89SAndroid Build Coastguard Worker unsigned int param; 570*8d67ca89SAndroid Build Coastguard Worker __s64 value; 571*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_setparam_t; 572*8d67ca89SAndroid Build Coastguard Worker #define RADEON_SETPARAM_FB_LOCATION 1 573*8d67ca89SAndroid Build Coastguard Worker #define RADEON_SETPARAM_SWITCH_TILING 2 574*8d67ca89SAndroid Build Coastguard Worker #define RADEON_SETPARAM_PCIGART_LOCATION 3 575*8d67ca89SAndroid Build Coastguard Worker #define RADEON_SETPARAM_NEW_MEMMAP 4 576*8d67ca89SAndroid Build Coastguard Worker #define RADEON_SETPARAM_PCIGART_TABLE_SIZE 5 577*8d67ca89SAndroid Build Coastguard Worker #define RADEON_SETPARAM_VBLANK_CRTC 6 578*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_surface_alloc { 579*8d67ca89SAndroid Build Coastguard Worker unsigned int address; 580*8d67ca89SAndroid Build Coastguard Worker unsigned int size; 581*8d67ca89SAndroid Build Coastguard Worker unsigned int flags; 582*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_surface_alloc_t; 583*8d67ca89SAndroid Build Coastguard Worker typedef struct drm_radeon_surface_free { 584*8d67ca89SAndroid Build Coastguard Worker unsigned int address; 585*8d67ca89SAndroid Build Coastguard Worker } drm_radeon_surface_free_t; 586*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_VBLANK_CRTC1 1 587*8d67ca89SAndroid Build Coastguard Worker #define DRM_RADEON_VBLANK_CRTC2 2 588*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_DOMAIN_CPU 0x1 589*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_DOMAIN_GTT 0x2 590*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_DOMAIN_VRAM 0x4 591*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_gem_info { 592*8d67ca89SAndroid Build Coastguard Worker __u64 gart_size; 593*8d67ca89SAndroid Build Coastguard Worker __u64 vram_size; 594*8d67ca89SAndroid Build Coastguard Worker __u64 vram_visible; 595*8d67ca89SAndroid Build Coastguard Worker }; 596*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_NO_BACKING_STORE (1 << 0) 597*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_GTT_UC (1 << 1) 598*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_GTT_WC (1 << 2) 599*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_CPU_ACCESS (1 << 3) 600*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_NO_CPU_ACCESS (1 << 4) 601*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_gem_create { 602*8d67ca89SAndroid Build Coastguard Worker __u64 size; 603*8d67ca89SAndroid Build Coastguard Worker __u64 alignment; 604*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 605*8d67ca89SAndroid Build Coastguard Worker __u32 initial_domain; 606*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 607*8d67ca89SAndroid Build Coastguard Worker }; 608*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_USERPTR_READONLY (1 << 0) 609*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_USERPTR_ANONONLY (1 << 1) 610*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_USERPTR_VALIDATE (1 << 2) 611*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_USERPTR_REGISTER (1 << 3) 612*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_gem_userptr { 613*8d67ca89SAndroid Build Coastguard Worker __u64 addr; 614*8d67ca89SAndroid Build Coastguard Worker __u64 size; 615*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 616*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 617*8d67ca89SAndroid Build Coastguard Worker }; 618*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_MACRO 0x1 619*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_MICRO 0x2 620*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_SWAP_16BIT 0x4 621*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_SWAP_32BIT 0x8 622*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_SURFACE 0x10 623*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_MICRO_SQUARE 0x20 624*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_EG_BANKW_SHIFT 8 625*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_EG_BANKW_MASK 0xf 626*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_EG_BANKH_SHIFT 12 627*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_EG_BANKH_MASK 0xf 628*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_EG_MACRO_TILE_ASPECT_SHIFT 16 629*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_EG_MACRO_TILE_ASPECT_MASK 0xf 630*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_EG_TILE_SPLIT_SHIFT 24 631*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_EG_TILE_SPLIT_MASK 0xf 632*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_EG_STENCIL_TILE_SPLIT_SHIFT 28 633*8d67ca89SAndroid Build Coastguard Worker #define RADEON_TILING_EG_STENCIL_TILE_SPLIT_MASK 0xf 634*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_gem_set_tiling { 635*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 636*8d67ca89SAndroid Build Coastguard Worker __u32 tiling_flags; 637*8d67ca89SAndroid Build Coastguard Worker __u32 pitch; 638*8d67ca89SAndroid Build Coastguard Worker }; 639*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_gem_get_tiling { 640*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 641*8d67ca89SAndroid Build Coastguard Worker __u32 tiling_flags; 642*8d67ca89SAndroid Build Coastguard Worker __u32 pitch; 643*8d67ca89SAndroid Build Coastguard Worker }; 644*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_gem_mmap { 645*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 646*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 647*8d67ca89SAndroid Build Coastguard Worker __u64 offset; 648*8d67ca89SAndroid Build Coastguard Worker __u64 size; 649*8d67ca89SAndroid Build Coastguard Worker __u64 addr_ptr; 650*8d67ca89SAndroid Build Coastguard Worker }; 651*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_gem_set_domain { 652*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 653*8d67ca89SAndroid Build Coastguard Worker __u32 read_domains; 654*8d67ca89SAndroid Build Coastguard Worker __u32 write_domain; 655*8d67ca89SAndroid Build Coastguard Worker }; 656*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_gem_wait_idle { 657*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 658*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 659*8d67ca89SAndroid Build Coastguard Worker }; 660*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_gem_busy { 661*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 662*8d67ca89SAndroid Build Coastguard Worker __u32 domain; 663*8d67ca89SAndroid Build Coastguard Worker }; 664*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_gem_pread { 665*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 666*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 667*8d67ca89SAndroid Build Coastguard Worker __u64 offset; 668*8d67ca89SAndroid Build Coastguard Worker __u64 size; 669*8d67ca89SAndroid Build Coastguard Worker __u64 data_ptr; 670*8d67ca89SAndroid Build Coastguard Worker }; 671*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_gem_pwrite { 672*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 673*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 674*8d67ca89SAndroid Build Coastguard Worker __u64 offset; 675*8d67ca89SAndroid Build Coastguard Worker __u64 size; 676*8d67ca89SAndroid Build Coastguard Worker __u64 data_ptr; 677*8d67ca89SAndroid Build Coastguard Worker }; 678*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_gem_op { 679*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 680*8d67ca89SAndroid Build Coastguard Worker __u32 op; 681*8d67ca89SAndroid Build Coastguard Worker __u64 value; 682*8d67ca89SAndroid Build Coastguard Worker }; 683*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_OP_GET_INITIAL_DOMAIN 0 684*8d67ca89SAndroid Build Coastguard Worker #define RADEON_GEM_OP_SET_INITIAL_DOMAIN 1 685*8d67ca89SAndroid Build Coastguard Worker #define RADEON_VA_MAP 1 686*8d67ca89SAndroid Build Coastguard Worker #define RADEON_VA_UNMAP 2 687*8d67ca89SAndroid Build Coastguard Worker #define RADEON_VA_RESULT_OK 0 688*8d67ca89SAndroid Build Coastguard Worker #define RADEON_VA_RESULT_ERROR 1 689*8d67ca89SAndroid Build Coastguard Worker #define RADEON_VA_RESULT_VA_EXIST 2 690*8d67ca89SAndroid Build Coastguard Worker #define RADEON_VM_PAGE_VALID (1 << 0) 691*8d67ca89SAndroid Build Coastguard Worker #define RADEON_VM_PAGE_READABLE (1 << 1) 692*8d67ca89SAndroid Build Coastguard Worker #define RADEON_VM_PAGE_WRITEABLE (1 << 2) 693*8d67ca89SAndroid Build Coastguard Worker #define RADEON_VM_PAGE_SYSTEM (1 << 3) 694*8d67ca89SAndroid Build Coastguard Worker #define RADEON_VM_PAGE_SNOOPED (1 << 4) 695*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_gem_va { 696*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 697*8d67ca89SAndroid Build Coastguard Worker __u32 operation; 698*8d67ca89SAndroid Build Coastguard Worker __u32 vm_id; 699*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 700*8d67ca89SAndroid Build Coastguard Worker __u64 offset; 701*8d67ca89SAndroid Build Coastguard Worker }; 702*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CHUNK_ID_RELOCS 0x01 703*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CHUNK_ID_IB 0x02 704*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CHUNK_ID_FLAGS 0x03 705*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CHUNK_ID_CONST_IB 0x04 706*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CS_KEEP_TILING_FLAGS 0x01 707*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CS_USE_VM 0x02 708*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CS_END_OF_FRAME 0x04 709*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CS_RING_GFX 0 710*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CS_RING_COMPUTE 1 711*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CS_RING_DMA 2 712*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CS_RING_UVD 3 713*8d67ca89SAndroid Build Coastguard Worker #define RADEON_CS_RING_VCE 4 714*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_cs_chunk { 715*8d67ca89SAndroid Build Coastguard Worker __u32 chunk_id; 716*8d67ca89SAndroid Build Coastguard Worker __u32 length_dw; 717*8d67ca89SAndroid Build Coastguard Worker __u64 chunk_data; 718*8d67ca89SAndroid Build Coastguard Worker }; 719*8d67ca89SAndroid Build Coastguard Worker #define RADEON_RELOC_PRIO_MASK (0xf << 0) 720*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_cs_reloc { 721*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 722*8d67ca89SAndroid Build Coastguard Worker __u32 read_domains; 723*8d67ca89SAndroid Build Coastguard Worker __u32 write_domain; 724*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 725*8d67ca89SAndroid Build Coastguard Worker }; 726*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_cs { 727*8d67ca89SAndroid Build Coastguard Worker __u32 num_chunks; 728*8d67ca89SAndroid Build Coastguard Worker __u32 cs_id; 729*8d67ca89SAndroid Build Coastguard Worker __u64 chunks; 730*8d67ca89SAndroid Build Coastguard Worker __u64 gart_limit; 731*8d67ca89SAndroid Build Coastguard Worker __u64 vram_limit; 732*8d67ca89SAndroid Build Coastguard Worker }; 733*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_DEVICE_ID 0x00 734*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_NUM_GB_PIPES 0x01 735*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_NUM_Z_PIPES 0x02 736*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_ACCEL_WORKING 0x03 737*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_CRTC_FROM_ID 0x04 738*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_ACCEL_WORKING2 0x05 739*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_TILING_CONFIG 0x06 740*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_WANT_HYPERZ 0x07 741*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_WANT_CMASK 0x08 742*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_CLOCK_CRYSTAL_FREQ 0x09 743*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_NUM_BACKENDS 0x0a 744*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_NUM_TILE_PIPES 0x0b 745*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_FUSION_GART_WORKING 0x0c 746*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_BACKEND_MAP 0x0d 747*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_VA_START 0x0e 748*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_IB_VM_MAX_SIZE 0x0f 749*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_MAX_PIPES 0x10 750*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_TIMESTAMP 0x11 751*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_MAX_SE 0x12 752*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_MAX_SH_PER_SE 0x13 753*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_FASTFB_WORKING 0x14 754*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_RING_WORKING 0x15 755*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_SI_TILE_MODE_ARRAY 0x16 756*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_SI_CP_DMA_COMPUTE 0x17 757*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_CIK_MACROTILE_MODE_ARRAY 0x18 758*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_SI_BACKEND_ENABLED_MASK 0x19 759*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_MAX_SCLK 0x1a 760*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_VCE_FW_VERSION 0x1b 761*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_VCE_FB_VERSION 0x1c 762*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_NUM_BYTES_MOVED 0x1d 763*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_VRAM_USAGE 0x1e 764*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_GTT_USAGE 0x1f 765*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_ACTIVE_CU_COUNT 0x20 766*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_CURRENT_GPU_TEMP 0x21 767*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_CURRENT_GPU_SCLK 0x22 768*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_CURRENT_GPU_MCLK 0x23 769*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_READ_REG 0x24 770*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_VA_UNMAP_WORKING 0x25 771*8d67ca89SAndroid Build Coastguard Worker #define RADEON_INFO_GPU_RESET_COUNTER 0x26 772*8d67ca89SAndroid Build Coastguard Worker struct drm_radeon_info { 773*8d67ca89SAndroid Build Coastguard Worker __u32 request; 774*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 775*8d67ca89SAndroid Build Coastguard Worker __u64 value; 776*8d67ca89SAndroid Build Coastguard Worker }; 777*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_COLOR_LINEAR_ALIGNED 8 778*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_COLOR_1D 13 779*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_COLOR_1D_SCANOUT 9 780*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_COLOR_2D_8BPP 14 781*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_COLOR_2D_16BPP 15 782*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_COLOR_2D_32BPP 16 783*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_COLOR_2D_64BPP 17 784*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_COLOR_2D_SCANOUT_16BPP 11 785*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_COLOR_2D_SCANOUT_32BPP 12 786*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_DEPTH_STENCIL_1D 4 787*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_DEPTH_STENCIL_2D 0 788*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_DEPTH_STENCIL_2D_2AA 3 789*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_DEPTH_STENCIL_2D_4AA 3 790*8d67ca89SAndroid Build Coastguard Worker #define SI_TILE_MODE_DEPTH_STENCIL_2D_8AA 2 791*8d67ca89SAndroid Build Coastguard Worker #define CIK_TILE_MODE_DEPTH_STENCIL_1D 5 792*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus 793*8d67ca89SAndroid Build Coastguard Worker } 794*8d67ca89SAndroid Build Coastguard Worker #endif 795*8d67ca89SAndroid Build Coastguard Worker #endif 796