blob: 6ce6bf32acc2e7a78bd4bbf2e476ac6b64f01554 [file] [log] [blame]
Christopher Ferris05d08e92016-02-04 13:16:38 -08001/****************************************************************************
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 __AMDGPU_DRM_H__
20#define __AMDGPU_DRM_H__
21#include "drm.h"
Christopher Ferris106b3a82016-08-24 12:15:38 -070022#ifdef __cplusplus
Christopher Ferris05d08e92016-02-04 13:16:38 -080023/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070024#endif
25#define DRM_AMDGPU_GEM_CREATE 0x00
Christopher Ferris05d08e92016-02-04 13:16:38 -080026#define DRM_AMDGPU_GEM_MMAP 0x01
27#define DRM_AMDGPU_CTX 0x02
Christopher Ferris106b3a82016-08-24 12:15:38 -070028/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080029#define DRM_AMDGPU_BO_LIST 0x03
30#define DRM_AMDGPU_CS 0x04
Christopher Ferris05d08e92016-02-04 13:16:38 -080031#define DRM_AMDGPU_INFO 0x05
32#define DRM_AMDGPU_GEM_METADATA 0x06
Christopher Ferris106b3a82016-08-24 12:15:38 -070033/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080034#define DRM_AMDGPU_GEM_WAIT_IDLE 0x07
35#define DRM_AMDGPU_GEM_VA 0x08
Christopher Ferris05d08e92016-02-04 13:16:38 -080036#define DRM_AMDGPU_WAIT_CS 0x09
37#define DRM_AMDGPU_GEM_OP 0x10
Christopher Ferris106b3a82016-08-24 12:15:38 -070038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080039#define DRM_AMDGPU_GEM_USERPTR 0x11
Christopher Ferris48af7cb2017-02-21 12:35:09 -080040#define DRM_AMDGPU_WAIT_FENCES 0x12
Christopher Ferris05d08e92016-02-04 13:16:38 -080041#define DRM_IOCTL_AMDGPU_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_CREATE, union drm_amdgpu_gem_create)
Christopher Ferris05d08e92016-02-04 13:16:38 -080042#define DRM_IOCTL_AMDGPU_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_MMAP, union drm_amdgpu_gem_mmap)
Christopher Ferris106b3a82016-08-24 12:15:38 -070043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -080044#define DRM_IOCTL_AMDGPU_CTX DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_CTX, union drm_amdgpu_ctx)
Christopher Ferris05d08e92016-02-04 13:16:38 -080045#define DRM_IOCTL_AMDGPU_BO_LIST DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_BO_LIST, union drm_amdgpu_bo_list)
46#define DRM_IOCTL_AMDGPU_CS DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_CS, union drm_amdgpu_cs)
Christopher Ferris05d08e92016-02-04 13:16:38 -080047#define DRM_IOCTL_AMDGPU_INFO DRM_IOW(DRM_COMMAND_BASE + DRM_AMDGPU_INFO, struct drm_amdgpu_info)
Christopher Ferris106b3a82016-08-24 12:15:38 -070048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -080049#define DRM_IOCTL_AMDGPU_GEM_METADATA DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_METADATA, struct drm_amdgpu_gem_metadata)
Christopher Ferris05d08e92016-02-04 13:16:38 -080050#define DRM_IOCTL_AMDGPU_GEM_WAIT_IDLE DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_WAIT_IDLE, union drm_amdgpu_gem_wait_idle)
51#define DRM_IOCTL_AMDGPU_GEM_VA DRM_IOW(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_VA, struct drm_amdgpu_gem_va)
Christopher Ferris05d08e92016-02-04 13:16:38 -080052#define DRM_IOCTL_AMDGPU_WAIT_CS DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_WAIT_CS, union drm_amdgpu_wait_cs)
Christopher Ferris106b3a82016-08-24 12:15:38 -070053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -080054#define DRM_IOCTL_AMDGPU_GEM_OP DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_OP, struct drm_amdgpu_gem_op)
Christopher Ferris05d08e92016-02-04 13:16:38 -080055#define DRM_IOCTL_AMDGPU_GEM_USERPTR DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_USERPTR, struct drm_amdgpu_gem_userptr)
Christopher Ferris48af7cb2017-02-21 12:35:09 -080056#define DRM_IOCTL_AMDGPU_WAIT_FENCES DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_WAIT_FENCES, union drm_amdgpu_wait_fences)
Christopher Ferris05d08e92016-02-04 13:16:38 -080057#define AMDGPU_GEM_DOMAIN_CPU 0x1
Christopher Ferris48af7cb2017-02-21 12:35:09 -080058/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080059#define AMDGPU_GEM_DOMAIN_GTT 0x2
60#define AMDGPU_GEM_DOMAIN_VRAM 0x4
61#define AMDGPU_GEM_DOMAIN_GDS 0x8
62#define AMDGPU_GEM_DOMAIN_GWS 0x10
Christopher Ferris48af7cb2017-02-21 12:35:09 -080063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080064#define AMDGPU_GEM_DOMAIN_OA 0x20
65#define AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED (1 << 0)
66#define AMDGPU_GEM_CREATE_NO_CPU_ACCESS (1 << 1)
67#define AMDGPU_GEM_CREATE_CPU_GTT_USWC (1 << 2)
Christopher Ferris48af7cb2017-02-21 12:35:09 -080068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris6a9755d2017-01-13 14:09:31 -080069#define AMDGPU_GEM_CREATE_VRAM_CLEARED (1 << 3)
70#define AMDGPU_GEM_CREATE_SHADOW (1 << 4)
Christopher Ferris48af7cb2017-02-21 12:35:09 -080071#define AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS (1 << 5)
Christopher Ferris05d08e92016-02-04 13:16:38 -080072struct drm_amdgpu_gem_create_in {
Christopher Ferris48af7cb2017-02-21 12:35:09 -080073/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070074 __u64 bo_size;
Christopher Ferris106b3a82016-08-24 12:15:38 -070075 __u64 alignment;
76 __u64 domains;
77 __u64 domain_flags;
Christopher Ferris48af7cb2017-02-21 12:35:09 -080078/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080079};
80struct drm_amdgpu_gem_create_out {
Christopher Ferris106b3a82016-08-24 12:15:38 -070081 __u32 handle;
82 __u32 _pad;
Christopher Ferris48af7cb2017-02-21 12:35:09 -080083/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080084};
85union drm_amdgpu_gem_create {
86 struct drm_amdgpu_gem_create_in in;
Christopher Ferris05d08e92016-02-04 13:16:38 -080087 struct drm_amdgpu_gem_create_out out;
Christopher Ferris48af7cb2017-02-21 12:35:09 -080088/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080089};
90#define AMDGPU_BO_LIST_OP_CREATE 0
91#define AMDGPU_BO_LIST_OP_DESTROY 1
Christopher Ferris05d08e92016-02-04 13:16:38 -080092#define AMDGPU_BO_LIST_OP_UPDATE 2
Christopher Ferris48af7cb2017-02-21 12:35:09 -080093/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080094struct drm_amdgpu_bo_list_in {
Christopher Ferris106b3a82016-08-24 12:15:38 -070095 __u32 operation;
96 __u32 list_handle;
97 __u32 bo_number;
Christopher Ferris48af7cb2017-02-21 12:35:09 -080098/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -070099 __u32 bo_info_size;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700100 __u64 bo_info_ptr;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800101};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800102struct drm_amdgpu_bo_list_entry {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700104 __u32 bo_handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700105 __u32 bo_priority;
106};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800107struct drm_amdgpu_bo_list_out {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700109 __u32 list_handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700110 __u32 _pad;
111};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800112union drm_amdgpu_bo_list {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800114 struct drm_amdgpu_bo_list_in in;
115 struct drm_amdgpu_bo_list_out out;
116};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800117#define AMDGPU_CTX_OP_ALLOC_CTX 1
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800119#define AMDGPU_CTX_OP_FREE_CTX 2
120#define AMDGPU_CTX_OP_QUERY_STATE 3
121#define AMDGPU_CTX_NO_RESET 0
Christopher Ferris05d08e92016-02-04 13:16:38 -0800122#define AMDGPU_CTX_GUILTY_RESET 1
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800124#define AMDGPU_CTX_INNOCENT_RESET 2
125#define AMDGPU_CTX_UNKNOWN_RESET 3
126struct drm_amdgpu_ctx_in {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700127 __u32 op;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700129 __u32 flags;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700130 __u32 ctx_id;
131 __u32 _pad;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800132};
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800134union drm_amdgpu_ctx_out {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700135 struct {
136 __u32 ctx_id;
137 __u32 _pad;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800139 } alloc;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700140 struct {
141 __u64 flags;
142 __u32 hangs;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700144 __u32 reset_status;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800145 } state;
146};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800147union drm_amdgpu_ctx {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800149 struct drm_amdgpu_ctx_in in;
150 union drm_amdgpu_ctx_out out;
151};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800152#define AMDGPU_GEM_USERPTR_READONLY (1 << 0)
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800154#define AMDGPU_GEM_USERPTR_ANONONLY (1 << 1)
155#define AMDGPU_GEM_USERPTR_VALIDATE (1 << 2)
156#define AMDGPU_GEM_USERPTR_REGISTER (1 << 3)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800157struct drm_amdgpu_gem_userptr {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700159 __u64 addr;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700160 __u64 size;
161 __u32 flags;
162 __u32 handle;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800164};
165#define AMDGPU_TILING_ARRAY_MODE_SHIFT 0
166#define AMDGPU_TILING_ARRAY_MODE_MASK 0xf
Christopher Ferris05d08e92016-02-04 13:16:38 -0800167#define AMDGPU_TILING_PIPE_CONFIG_SHIFT 4
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800169#define AMDGPU_TILING_PIPE_CONFIG_MASK 0x1f
170#define AMDGPU_TILING_TILE_SPLIT_SHIFT 9
171#define AMDGPU_TILING_TILE_SPLIT_MASK 0x7
Christopher Ferris05d08e92016-02-04 13:16:38 -0800172#define AMDGPU_TILING_MICRO_TILE_MODE_SHIFT 12
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800174#define AMDGPU_TILING_MICRO_TILE_MODE_MASK 0x7
175#define AMDGPU_TILING_BANK_WIDTH_SHIFT 15
176#define AMDGPU_TILING_BANK_WIDTH_MASK 0x3
Christopher Ferris05d08e92016-02-04 13:16:38 -0800177#define AMDGPU_TILING_BANK_HEIGHT_SHIFT 17
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800179#define AMDGPU_TILING_BANK_HEIGHT_MASK 0x3
180#define AMDGPU_TILING_MACRO_TILE_ASPECT_SHIFT 19
181#define AMDGPU_TILING_MACRO_TILE_ASPECT_MASK 0x3
Christopher Ferris05d08e92016-02-04 13:16:38 -0800182#define AMDGPU_TILING_NUM_BANKS_SHIFT 21
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800184#define AMDGPU_TILING_NUM_BANKS_MASK 0x3
185#define AMDGPU_TILING_SET(field,value) (((value) & AMDGPU_TILING_ ##field ##_MASK) << AMDGPU_TILING_ ##field ##_SHIFT)
186#define AMDGPU_TILING_GET(value,field) (((value) >> AMDGPU_TILING_ ##field ##_SHIFT) & AMDGPU_TILING_ ##field ##_MASK)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800187#define AMDGPU_GEM_METADATA_OP_SET_METADATA 1
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800189#define AMDGPU_GEM_METADATA_OP_GET_METADATA 2
190struct drm_amdgpu_gem_metadata {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700191 __u32 handle;
192 __u32 op;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800194 struct {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700195 __u64 flags;
196 __u64 tiling_info;
197 __u32 data_size_bytes;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700199 __u32 data[64];
Christopher Ferris05d08e92016-02-04 13:16:38 -0800200 } data;
201};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800202struct drm_amdgpu_gem_mmap_in {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700204 __u32 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700205 __u32 _pad;
206};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800207struct drm_amdgpu_gem_mmap_out {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700209 __u64 addr_ptr;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800210};
211union drm_amdgpu_gem_mmap {
Christopher Ferris05d08e92016-02-04 13:16:38 -0800212 struct drm_amdgpu_gem_mmap_in in;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800214 struct drm_amdgpu_gem_mmap_out out;
215};
216struct drm_amdgpu_gem_wait_idle_in {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700217 __u32 handle;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700219 __u32 flags;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700220 __u64 timeout;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800221};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800222struct drm_amdgpu_gem_wait_idle_out {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700224 __u32 status;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700225 __u32 domain;
226};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800227union drm_amdgpu_gem_wait_idle {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800229 struct drm_amdgpu_gem_wait_idle_in in;
230 struct drm_amdgpu_gem_wait_idle_out out;
231};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800232struct drm_amdgpu_wait_cs_in {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700234 __u64 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700235 __u64 timeout;
236 __u32 ip_type;
237 __u32 ip_instance;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700239 __u32 ring;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700240 __u32 ctx_id;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800241};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800242struct drm_amdgpu_wait_cs_out {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700244 __u64 status;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800245};
246union drm_amdgpu_wait_cs {
Christopher Ferris05d08e92016-02-04 13:16:38 -0800247 struct drm_amdgpu_wait_cs_in in;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800249 struct drm_amdgpu_wait_cs_out out;
250};
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800251struct drm_amdgpu_fence {
252 __u32 ctx_id;
253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254 __u32 ip_type;
255 __u32 ip_instance;
256 __u32 ring;
257 __u64 seq_no;
258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259};
260struct drm_amdgpu_wait_fences_in {
261 __u64 fences;
262 __u32 fence_count;
263/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264 __u32 wait_all;
265 __u64 timeout_ns;
266};
267struct drm_amdgpu_wait_fences_out {
268/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269 __u32 status;
270 __u32 first_signaled;
271};
272union drm_amdgpu_wait_fences {
273/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274 struct drm_amdgpu_wait_fences_in in;
275 struct drm_amdgpu_wait_fences_out out;
276};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800277#define AMDGPU_GEM_OP_GET_GEM_CREATE_INFO 0
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800278/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800279#define AMDGPU_GEM_OP_SET_PLACEMENT 1
280struct drm_amdgpu_gem_op {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700281 __u32 handle;
282 __u32 op;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800283/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700284 __u64 value;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800285};
286#define AMDGPU_VA_OP_MAP 1
287#define AMDGPU_VA_OP_UNMAP 2
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800288/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800289#define AMDGPU_VM_DELAY_UPDATE (1 << 0)
290#define AMDGPU_VM_PAGE_READABLE (1 << 1)
291#define AMDGPU_VM_PAGE_WRITEABLE (1 << 2)
292#define AMDGPU_VM_PAGE_EXECUTABLE (1 << 3)
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800293/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800294struct drm_amdgpu_gem_va {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700295 __u32 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700296 __u32 _pad;
297 __u32 operation;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700299 __u32 flags;
300 __u64 va_address;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700301 __u64 offset_in_bo;
302 __u64 map_size;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800304};
305#define AMDGPU_HW_IP_GFX 0
306#define AMDGPU_HW_IP_COMPUTE 1
307#define AMDGPU_HW_IP_DMA 2
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800309#define AMDGPU_HW_IP_UVD 3
310#define AMDGPU_HW_IP_VCE 4
311#define AMDGPU_HW_IP_NUM 5
312#define AMDGPU_HW_IP_INSTANCE_MAX_COUNT 1
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800314#define AMDGPU_CHUNK_ID_IB 0x01
315#define AMDGPU_CHUNK_ID_FENCE 0x02
316#define AMDGPU_CHUNK_ID_DEPENDENCIES 0x03
317struct drm_amdgpu_cs_chunk {
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800318/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700319 __u32 chunk_id;
320 __u32 length_dw;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700321 __u64 chunk_data;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800322};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800323/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800324struct drm_amdgpu_cs_in {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700325 __u32 ctx_id;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700326 __u32 bo_list_handle;
327 __u32 num_chunks;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800328/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700329 __u32 _pad;
330 __u64 chunks;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800331};
332struct drm_amdgpu_cs_out {
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800333/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700334 __u64 handle;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800335};
336union drm_amdgpu_cs {
337 struct drm_amdgpu_cs_in in;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800338/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800339 struct drm_amdgpu_cs_out out;
340};
341#define AMDGPU_IB_FLAG_CE (1 << 0)
342#define AMDGPU_IB_FLAG_PREAMBLE (1 << 1)
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800343/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800344struct drm_amdgpu_cs_chunk_ib {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700345 __u32 _pad;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700346 __u32 flags;
347 __u64 va_start;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700349 __u32 ib_bytes;
350 __u32 ip_type;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700351 __u32 ip_instance;
352 __u32 ring;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800353/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800354};
355struct drm_amdgpu_cs_chunk_dep {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700356 __u32 ip_type;
357 __u32 ip_instance;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800358/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700359 __u32 ring;
360 __u32 ctx_id;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700361 __u64 handle;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800362};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800363/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800364struct drm_amdgpu_cs_chunk_fence {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700365 __u32 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700366 __u32 offset;
367};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800368/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800369struct drm_amdgpu_cs_chunk_data {
370 union {
371 struct drm_amdgpu_cs_chunk_ib ib_data;
372 struct drm_amdgpu_cs_chunk_fence fence_data;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800373/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800374 };
375};
376#define AMDGPU_IDS_FLAGS_FUSION 0x1
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800377#define AMDGPU_IDS_FLAGS_PREEMPTION 0x2
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800378/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800379#define AMDGPU_INFO_ACCEL_WORKING 0x00
Christopher Ferris05d08e92016-02-04 13:16:38 -0800380#define AMDGPU_INFO_CRTC_FROM_ID 0x01
381#define AMDGPU_INFO_HW_IP_INFO 0x02
382#define AMDGPU_INFO_HW_IP_COUNT 0x03
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800383/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800384#define AMDGPU_INFO_TIMESTAMP 0x05
Christopher Ferris05d08e92016-02-04 13:16:38 -0800385#define AMDGPU_INFO_FW_VERSION 0x0e
386#define AMDGPU_INFO_FW_VCE 0x1
387#define AMDGPU_INFO_FW_UVD 0x2
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800388/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800389#define AMDGPU_INFO_FW_GMC 0x03
Christopher Ferris05d08e92016-02-04 13:16:38 -0800390#define AMDGPU_INFO_FW_GFX_ME 0x04
391#define AMDGPU_INFO_FW_GFX_PFP 0x05
392#define AMDGPU_INFO_FW_GFX_CE 0x06
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800393/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800394#define AMDGPU_INFO_FW_GFX_RLC 0x07
Christopher Ferris05d08e92016-02-04 13:16:38 -0800395#define AMDGPU_INFO_FW_GFX_MEC 0x08
396#define AMDGPU_INFO_FW_SMC 0x0a
397#define AMDGPU_INFO_FW_SDMA 0x0b
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800398/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800399#define AMDGPU_INFO_NUM_BYTES_MOVED 0x0f
Christopher Ferris05d08e92016-02-04 13:16:38 -0800400#define AMDGPU_INFO_VRAM_USAGE 0x10
401#define AMDGPU_INFO_GTT_USAGE 0x11
402#define AMDGPU_INFO_GDS_CONFIG 0x13
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800403/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800404#define AMDGPU_INFO_VRAM_GTT 0x14
Christopher Ferris05d08e92016-02-04 13:16:38 -0800405#define AMDGPU_INFO_READ_MMR_REG 0x15
406#define AMDGPU_INFO_DEV_INFO 0x16
407#define AMDGPU_INFO_VIS_VRAM_USAGE 0x17
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800408/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800409#define AMDGPU_INFO_NUM_EVICTIONS 0x18
410#define AMDGPU_INFO_MEMORY 0x19
411#define AMDGPU_INFO_VCE_CLOCK_TABLE 0x1A
412#define AMDGPU_INFO_VBIOS 0x1B
413/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414#define AMDGPU_INFO_VBIOS_SIZE 0x1
415#define AMDGPU_INFO_VBIOS_IMAGE 0x2
Christopher Ferris05d08e92016-02-04 13:16:38 -0800416#define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0
Christopher Ferris05d08e92016-02-04 13:16:38 -0800417#define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800418/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800419#define AMDGPU_INFO_MMR_SH_INDEX_SHIFT 8
420#define AMDGPU_INFO_MMR_SH_INDEX_MASK 0xff
Christopher Ferris49f525c2016-12-12 14:55:36 -0800421struct drm_amdgpu_query_fw {
422 __u32 fw_type;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800423/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris49f525c2016-12-12 14:55:36 -0800424 __u32 ip_instance;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800425 __u32 index;
426 __u32 _pad;
427};
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800428/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800429struct drm_amdgpu_info {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700430 __u64 return_pointer;
431 __u32 return_size;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700432 __u32 query;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800433/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800434 union {
Christopher Ferris05d08e92016-02-04 13:16:38 -0800435 struct {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700436 __u32 id;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700437 __u32 _pad;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800438/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800439 } mode_crtc;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800440 struct {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700441 __u32 type;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700442 __u32 ip_instance;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800443/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800444 } query_hw_ip;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800445 struct {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700446 __u32 dword_offset;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700447 __u32 count;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800448/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700449 __u32 instance;
450 __u32 flags;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800451 } read_mmr_reg;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800452 struct drm_amdgpu_query_fw query_fw;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800453/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454 struct {
455 __u32 type;
456 __u32 offset;
457 } vbios_info;
458/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800459 };
Christopher Ferris49f525c2016-12-12 14:55:36 -0800460};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800461struct drm_amdgpu_info_gds {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700462 __u32 gds_gfx_partition_size;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800463/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700464 __u32 compute_partition_size;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800465 __u32 gds_total_size;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700466 __u32 gws_per_gfx_partition;
467 __u32 gws_per_compute_partition;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800468/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700469 __u32 oa_per_gfx_partition;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800470 __u32 oa_per_compute_partition;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700471 __u32 _pad;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800472};
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800473/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800474struct drm_amdgpu_info_vram_gtt {
Christopher Ferris49f525c2016-12-12 14:55:36 -0800475 __u64 vram_size;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700476 __u64 vram_cpu_accessible_size;
477 __u64 gtt_size;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800478/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800479};
480struct drm_amdgpu_heap_info {
481 __u64 total_heap_size;
482 __u64 usable_heap_size;
483/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484 __u64 heap_usage;
485 __u64 max_allocation;
486};
487struct drm_amdgpu_memory_info {
488/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489 struct drm_amdgpu_heap_info vram;
490 struct drm_amdgpu_heap_info cpu_accessible_vram;
491 struct drm_amdgpu_heap_info gtt;
492};
493/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494struct drm_amdgpu_info_firmware {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700495 __u32 ver;
496 __u32 feature;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800497};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800498/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800499#define AMDGPU_VRAM_TYPE_UNKNOWN 0
Christopher Ferris05d08e92016-02-04 13:16:38 -0800500#define AMDGPU_VRAM_TYPE_GDDR1 1
501#define AMDGPU_VRAM_TYPE_DDR2 2
Christopher Ferris05d08e92016-02-04 13:16:38 -0800502#define AMDGPU_VRAM_TYPE_GDDR3 3
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800503/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800504#define AMDGPU_VRAM_TYPE_GDDR4 4
Christopher Ferris05d08e92016-02-04 13:16:38 -0800505#define AMDGPU_VRAM_TYPE_GDDR5 5
506#define AMDGPU_VRAM_TYPE_HBM 6
Christopher Ferris05d08e92016-02-04 13:16:38 -0800507#define AMDGPU_VRAM_TYPE_DDR3 7
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800508/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800509struct drm_amdgpu_info_device {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700510 __u32 device_id;
511 __u32 chip_rev;
512 __u32 external_rev;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800513/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800514 __u32 pci_rev;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700515 __u32 family;
516 __u32 num_shader_engines;
517 __u32 num_shader_arrays_per_engine;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800518/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800519 __u32 gpu_counter_freq;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700520 __u64 max_engine_clock;
521 __u64 max_memory_clock;
522 __u32 cu_active_number;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800523/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800524 __u32 cu_ao_mask;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700525 __u32 cu_bitmap[4][4];
526 __u32 enabled_rb_pipes_mask;
527 __u32 num_rb_pipes;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800528/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800529 __u32 num_hw_gfx_contexts;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700530 __u32 _pad;
531 __u64 ids_flags;
532 __u64 virtual_address_offset;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800533/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800534 __u64 virtual_address_max;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700535 __u32 virtual_address_alignment;
536 __u32 pte_fragment_size;
537 __u32 gart_page_size;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800538/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800539 __u32 ce_ram_size;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700540 __u32 vram_type;
541 __u32 vram_bit_width;
542 __u32 vce_harvest_config;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800543/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800544};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800545struct drm_amdgpu_info_hw_ip {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700546 __u32 hw_ip_version_major;
547 __u32 hw_ip_version_minor;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800548/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800549 __u64 capabilities_flags;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700550 __u32 ib_start_alignment;
551 __u32 ib_size_alignment;
552 __u32 available_rings;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800553/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800554 __u32 _pad;
555};
556#define AMDGPU_VCE_CLOCK_TABLE_ENTRIES 6
557struct drm_amdgpu_info_vce_clock_table_entry {
558/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559 __u32 sclk;
560 __u32 mclk;
561 __u32 eclk;
562 __u32 pad;
563/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564};
565struct drm_amdgpu_info_vce_clock_table {
566 struct drm_amdgpu_info_vce_clock_table_entry entries[AMDGPU_VCE_CLOCK_TABLE_ENTRIES];
567 __u32 num_valid_entries;
568/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569 __u32 pad;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800570};
571#define AMDGPU_FAMILY_UNKNOWN 0
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800572#define AMDGPU_FAMILY_SI 110
Christopher Ferris106b3a82016-08-24 12:15:38 -0700573/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800574#define AMDGPU_FAMILY_CI 120
Christopher Ferris49f525c2016-12-12 14:55:36 -0800575#define AMDGPU_FAMILY_KV 125
Christopher Ferris05d08e92016-02-04 13:16:38 -0800576#define AMDGPU_FAMILY_VI 130
577#define AMDGPU_FAMILY_CZ 135
Christopher Ferris05d08e92016-02-04 13:16:38 -0800578/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800579#ifdef __cplusplus
Christopher Ferris05d08e92016-02-04 13:16:38 -0800580#endif
Christopher Ferris49f525c2016-12-12 14:55:36 -0800581#endif