Home | History | Annotate | Download | only in drm
      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 __MGA_DRM_H__
     20 #define __MGA_DRM_H__
     21 #include "drm.h"
     22 #ifdef __cplusplus
     23 extern "C" {
     24 #endif
     25 #ifndef __MGA_SAREA_DEFINES__
     26 #define __MGA_SAREA_DEFINES__
     27 #define MGA_F 0x1
     28 #define MGA_A 0x2
     29 #define MGA_S 0x4
     30 #define MGA_T2 0x8
     31 #define MGA_WARP_TGZ 0
     32 #define MGA_WARP_TGZF (MGA_F)
     33 #define MGA_WARP_TGZA (MGA_A)
     34 #define MGA_WARP_TGZAF (MGA_F | MGA_A)
     35 #define MGA_WARP_TGZS (MGA_S)
     36 #define MGA_WARP_TGZSF (MGA_S | MGA_F)
     37 #define MGA_WARP_TGZSA (MGA_S | MGA_A)
     38 #define MGA_WARP_TGZSAF (MGA_S | MGA_F | MGA_A)
     39 #define MGA_WARP_T2GZ (MGA_T2)
     40 #define MGA_WARP_T2GZF (MGA_T2 | MGA_F)
     41 #define MGA_WARP_T2GZA (MGA_T2 | MGA_A)
     42 #define MGA_WARP_T2GZAF (MGA_T2 | MGA_A | MGA_F)
     43 #define MGA_WARP_T2GZS (MGA_T2 | MGA_S)
     44 #define MGA_WARP_T2GZSF (MGA_T2 | MGA_S | MGA_F)
     45 #define MGA_WARP_T2GZSA (MGA_T2 | MGA_S | MGA_A)
     46 #define MGA_WARP_T2GZSAF (MGA_T2 | MGA_S | MGA_F | MGA_A)
     47 #define MGA_MAX_G200_PIPES 8
     48 #define MGA_MAX_G400_PIPES 16
     49 #define MGA_MAX_WARP_PIPES MGA_MAX_G400_PIPES
     50 #define MGA_WARP_UCODE_SIZE 32768
     51 #define MGA_CARD_TYPE_G200 1
     52 #define MGA_CARD_TYPE_G400 2
     53 #define MGA_CARD_TYPE_G450 3
     54 #define MGA_CARD_TYPE_G550 4
     55 #define MGA_FRONT 0x1
     56 #define MGA_BACK 0x2
     57 #define MGA_DEPTH 0x4
     58 #define MGA_UPLOAD_CONTEXT 0x1
     59 #define MGA_UPLOAD_TEX0 0x2
     60 #define MGA_UPLOAD_TEX1 0x4
     61 #define MGA_UPLOAD_PIPE 0x8
     62 #define MGA_UPLOAD_TEX0IMAGE 0x10
     63 #define MGA_UPLOAD_TEX1IMAGE 0x20
     64 #define MGA_UPLOAD_2D 0x40
     65 #define MGA_WAIT_AGE 0x80
     66 #define MGA_UPLOAD_CLIPRECTS 0x100
     67 #define MGA_BUFFER_SIZE (1 << 16)
     68 #define MGA_NUM_BUFFERS 128
     69 #define MGA_NR_SAREA_CLIPRECTS 8
     70 #define MGA_CARD_HEAP 0
     71 #define MGA_AGP_HEAP 1
     72 #define MGA_NR_TEX_HEAPS 2
     73 #define MGA_NR_TEX_REGIONS 16
     74 #define MGA_LOG_MIN_TEX_REGION_SIZE 16
     75 #define DRM_MGA_IDLE_RETRY 2048
     76 #endif
     77 typedef struct {
     78   unsigned int dstorg;
     79   unsigned int maccess;
     80   unsigned int plnwt;
     81   unsigned int dwgctl;
     82   unsigned int alphactrl;
     83   unsigned int fogcolor;
     84   unsigned int wflag;
     85   unsigned int tdualstage0;
     86   unsigned int tdualstage1;
     87   unsigned int fcol;
     88   unsigned int stencil;
     89   unsigned int stencilctl;
     90 } drm_mga_context_regs_t;
     91 typedef struct {
     92   unsigned int pitch;
     93 } drm_mga_server_regs_t;
     94 typedef struct {
     95   unsigned int texctl;
     96   unsigned int texctl2;
     97   unsigned int texfilter;
     98   unsigned int texbordercol;
     99   unsigned int texorg;
    100   unsigned int texwidth;
    101   unsigned int texheight;
    102   unsigned int texorg1;
    103   unsigned int texorg2;
    104   unsigned int texorg3;
    105   unsigned int texorg4;
    106 } drm_mga_texture_regs_t;
    107 typedef struct {
    108   unsigned int head;
    109   unsigned int wrap;
    110 } drm_mga_age_t;
    111 typedef struct _drm_mga_sarea {
    112   drm_mga_context_regs_t context_state;
    113   drm_mga_server_regs_t server_state;
    114   drm_mga_texture_regs_t tex_state[2];
    115   unsigned int warp_pipe;
    116   unsigned int dirty;
    117   unsigned int vertsize;
    118   struct drm_clip_rect boxes[MGA_NR_SAREA_CLIPRECTS];
    119   unsigned int nbox;
    120   unsigned int req_drawable;
    121   unsigned int req_draw_buffer;
    122   unsigned int exported_drawable;
    123   unsigned int exported_index;
    124   unsigned int exported_stamp;
    125   unsigned int exported_buffers;
    126   unsigned int exported_nfront;
    127   unsigned int exported_nback;
    128   int exported_back_x, exported_front_x, exported_w;
    129   int exported_back_y, exported_front_y, exported_h;
    130   struct drm_clip_rect exported_boxes[MGA_NR_SAREA_CLIPRECTS];
    131   unsigned int status[4];
    132   unsigned int last_wrap;
    133   drm_mga_age_t last_frame;
    134   unsigned int last_enqueue;
    135   unsigned int last_dispatch;
    136   unsigned int last_quiescent;
    137   struct drm_tex_region texList[MGA_NR_TEX_HEAPS][MGA_NR_TEX_REGIONS + 1];
    138   unsigned int texAge[MGA_NR_TEX_HEAPS];
    139   int ctxOwner;
    140 } drm_mga_sarea_t;
    141 #define DRM_MGA_INIT 0x00
    142 #define DRM_MGA_FLUSH 0x01
    143 #define DRM_MGA_RESET 0x02
    144 #define DRM_MGA_SWAP 0x03
    145 #define DRM_MGA_CLEAR 0x04
    146 #define DRM_MGA_VERTEX 0x05
    147 #define DRM_MGA_INDICES 0x06
    148 #define DRM_MGA_ILOAD 0x07
    149 #define DRM_MGA_BLIT 0x08
    150 #define DRM_MGA_GETPARAM 0x09
    151 #define DRM_MGA_SET_FENCE 0x0a
    152 #define DRM_MGA_WAIT_FENCE 0x0b
    153 #define DRM_MGA_DMA_BOOTSTRAP 0x0c
    154 #define DRM_IOCTL_MGA_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_INIT, drm_mga_init_t)
    155 #define DRM_IOCTL_MGA_FLUSH DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_FLUSH, struct drm_lock)
    156 #define DRM_IOCTL_MGA_RESET DRM_IO(DRM_COMMAND_BASE + DRM_MGA_RESET)
    157 #define DRM_IOCTL_MGA_SWAP DRM_IO(DRM_COMMAND_BASE + DRM_MGA_SWAP)
    158 #define DRM_IOCTL_MGA_CLEAR DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_CLEAR, drm_mga_clear_t)
    159 #define DRM_IOCTL_MGA_VERTEX DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_VERTEX, drm_mga_vertex_t)
    160 #define DRM_IOCTL_MGA_INDICES DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_INDICES, drm_mga_indices_t)
    161 #define DRM_IOCTL_MGA_ILOAD DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_ILOAD, drm_mga_iload_t)
    162 #define DRM_IOCTL_MGA_BLIT DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_BLIT, drm_mga_blit_t)
    163 #define DRM_IOCTL_MGA_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_GETPARAM, drm_mga_getparam_t)
    164 #define DRM_IOCTL_MGA_SET_FENCE DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_SET_FENCE, __u32)
    165 #define DRM_IOCTL_MGA_WAIT_FENCE DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_WAIT_FENCE, __u32)
    166 #define DRM_IOCTL_MGA_DMA_BOOTSTRAP DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_DMA_BOOTSTRAP, drm_mga_dma_bootstrap_t)
    167 typedef struct _drm_mga_warp_index {
    168   int installed;
    169   unsigned long phys_addr;
    170   int size;
    171 } drm_mga_warp_index_t;
    172 typedef struct drm_mga_init {
    173   enum {
    174     MGA_INIT_DMA = 0x01,
    175     MGA_CLEANUP_DMA = 0x02
    176   } func;
    177   unsigned long sarea_priv_offset;
    178   int chipset;
    179   int sgram;
    180   unsigned int maccess;
    181   unsigned int fb_cpp;
    182   unsigned int front_offset, front_pitch;
    183   unsigned int back_offset, back_pitch;
    184   unsigned int depth_cpp;
    185   unsigned int depth_offset, depth_pitch;
    186   unsigned int texture_offset[MGA_NR_TEX_HEAPS];
    187   unsigned int texture_size[MGA_NR_TEX_HEAPS];
    188   unsigned long fb_offset;
    189   unsigned long mmio_offset;
    190   unsigned long status_offset;
    191   unsigned long warp_offset;
    192   unsigned long primary_offset;
    193   unsigned long buffers_offset;
    194 } drm_mga_init_t;
    195 typedef struct drm_mga_dma_bootstrap {
    196   unsigned long texture_handle;
    197   __u32 texture_size;
    198   __u32 primary_size;
    199   __u32 secondary_bin_count;
    200   __u32 secondary_bin_size;
    201   __u32 agp_mode;
    202   __u8 agp_size;
    203 } drm_mga_dma_bootstrap_t;
    204 typedef struct drm_mga_clear {
    205   unsigned int flags;
    206   unsigned int clear_color;
    207   unsigned int clear_depth;
    208   unsigned int color_mask;
    209   unsigned int depth_mask;
    210 } drm_mga_clear_t;
    211 typedef struct drm_mga_vertex {
    212   int idx;
    213   int used;
    214   int discard;
    215 } drm_mga_vertex_t;
    216 typedef struct drm_mga_indices {
    217   int idx;
    218   unsigned int start;
    219   unsigned int end;
    220   int discard;
    221 } drm_mga_indices_t;
    222 typedef struct drm_mga_iload {
    223   int idx;
    224   unsigned int dstorg;
    225   unsigned int length;
    226 } drm_mga_iload_t;
    227 typedef struct _drm_mga_blit {
    228   unsigned int planemask;
    229   unsigned int srcorg;
    230   unsigned int dstorg;
    231   int src_pitch, dst_pitch;
    232   int delta_sx, delta_sy;
    233   int delta_dx, delta_dy;
    234   int height, ydir;
    235   int source_pitch, dest_pitch;
    236 } drm_mga_blit_t;
    237 #define MGA_PARAM_IRQ_NR 1
    238 #define MGA_PARAM_CARD_TYPE 2
    239 typedef struct drm_mga_getparam {
    240   int param;
    241   void __user * value;
    242 } drm_mga_getparam_t;
    243 #ifdef __cplusplus
    244 }
    245 #endif
    246 #endif
    247