Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>
---
 include/drm/amdgpu_drm.h | 123 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 123 insertions(+)

diff --git a/include/drm/amdgpu_drm.h b/include/drm/amdgpu_drm.h
index d8f24976..2be8b8dc 100644
--- a/include/drm/amdgpu_drm.h
+++ b/include/drm/amdgpu_drm.h
@@ -50,6 +50,8 @@ extern "C" {
 #define DRM_AMDGPU_WAIT_CS             0x09
 #define DRM_AMDGPU_GEM_OP              0x10
 #define DRM_AMDGPU_GEM_USERPTR         0x11
+#define DRM_AMDGPU_WAIT_FENCES         0x12
+#define DRM_AMDGPU_FREESYNC            0x14
 
 #define DRM_IOCTL_AMDGPU_GEM_CREATE    DRM_IOWR(DRM_COMMAND_BASE + 
DRM_AMDGPU_GEM_CREATE, union drm_amdgpu_gem_create)
 #define DRM_IOCTL_AMDGPU_GEM_MMAP      DRM_IOWR(DRM_COMMAND_BASE + 
DRM_AMDGPU_GEM_MMAP, union drm_amdgpu_gem_mmap)
@@ -63,6 +65,8 @@ extern "C" {
 #define DRM_IOCTL_AMDGPU_WAIT_CS       DRM_IOWR(DRM_COMMAND_BASE + 
DRM_AMDGPU_WAIT_CS, union drm_amdgpu_wait_cs)
 #define DRM_IOCTL_AMDGPU_GEM_OP                DRM_IOWR(DRM_COMMAND_BASE + 
DRM_AMDGPU_GEM_OP, struct drm_amdgpu_gem_op)
 #define DRM_IOCTL_AMDGPU_GEM_USERPTR   DRM_IOWR(DRM_COMMAND_BASE + 
DRM_AMDGPU_GEM_USERPTR, struct drm_amdgpu_gem_userptr)
+#define DRM_IOCTL_AMDGPU_WAIT_FENCES   DRM_IOWR(DRM_COMMAND_BASE + 
DRM_AMDGPU_WAIT_FENCES, union drm_amdgpu_wait_fences)
+#define DRM_IOCTL_AMDGPU_FREESYNC      DRM_IOWR(DRM_COMMAND_BASE + 
DRM_AMDGPU_FREESYNC, struct drm_amdgpu_freesync)
 
 #define AMDGPU_GEM_DOMAIN_CPU          0x1
 #define AMDGPU_GEM_DOMAIN_GTT          0x2
@@ -79,6 +83,10 @@ extern "C" {
 #define AMDGPU_GEM_CREATE_CPU_GTT_USWC         (1 << 2)
 /* Flag that the memory should be in VRAM and cleared */
 #define AMDGPU_GEM_CREATE_VRAM_CLEARED         (1 << 3)
+/* Flag that create shadow bo(GTT) while allocating vram bo */
+#define AMDGPU_GEM_CREATE_SHADOW               (1 << 4)
+/* Flag that allocating the BO should use linear VRAM */
+#define AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS      (1 << 5)
 
 struct drm_amdgpu_gem_create_in  {
        /** the requested memory size */
@@ -303,6 +311,32 @@ union drm_amdgpu_wait_cs {
        struct drm_amdgpu_wait_cs_out out;
 };
 
+struct drm_amdgpu_fence {
+       uint32_t ctx_id;
+       uint32_t ip_type;
+       uint32_t ip_instance;
+       uint32_t ring;
+       uint64_t seq_no;
+};
+
+struct drm_amdgpu_wait_fences_in {
+       /** This points to uint64_t * which points to fences */
+       uint64_t fences;
+       uint32_t fence_count;
+       uint32_t wait_all;
+       uint64_t timeout_ns;
+};
+
+struct drm_amdgpu_wait_fences_out {
+       uint32_t status;
+       uint32_t first_signaled;
+};
+
+union drm_amdgpu_wait_fences {
+       struct drm_amdgpu_wait_fences_in in;
+       struct drm_amdgpu_wait_fences_out out;
+};
+
 #define AMDGPU_GEM_OP_GET_GEM_CREATE_INFO      0
 #define AMDGPU_GEM_OP_SET_PLACEMENT            1
 
@@ -329,6 +363,8 @@ struct drm_amdgpu_gem_op {
 #define AMDGPU_VM_PAGE_WRITEABLE       (1 << 2)
 /* executable mapping, new for VI */
 #define AMDGPU_VM_PAGE_EXECUTABLE      (1 << 3)
+/* partially resident texture */
+#define AMDGPU_VM_PAGE_PRT             (1 << 4)
 
 struct drm_amdgpu_gem_va {
        /** GEM object handle */
@@ -434,6 +470,7 @@ struct drm_amdgpu_cs_chunk_data {
  *
  */
 #define AMDGPU_IDS_FLAGS_FUSION         0x1
+#define AMDGPU_IDS_FLAGS_PREEMPTION     0x2
 
 /* indicate if acceleration can be working */
 #define AMDGPU_INFO_ACCEL_WORKING              0x00
@@ -483,6 +520,20 @@ struct drm_amdgpu_cs_chunk_data {
 #define AMDGPU_INFO_DEV_INFO                   0x16
 /* visible vram usage */
 #define AMDGPU_INFO_VIS_VRAM_USAGE             0x17
+/* number of TTM buffer evictions */
+#define AMDGPU_INFO_NUM_EVICTIONS              0x18
+/* Query memory about VRAM and GTT domains */
+#define AMDGPU_INFO_MEMORY                     0x19
+/* Query vce clock table */
+#define AMDGPU_INFO_VCE_CLOCK_TABLE            0x1A
+/* Query vbios related information */
+#define AMDGPU_INFO_VBIOS                      0x1B
+       /* Subquery id: Query vbios size */
+       #define AMDGPU_INFO_VBIOS_SIZE          0x1
+       /* Subquery id: Query vbios image */
+       #define AMDGPU_INFO_VBIOS_IMAGE         0x2
+/* Query UVD handles */
+#define AMDGPU_INFO_NUM_HANDLES                        0x1C
 
 #define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0
 #define AMDGPU_INFO_MMR_SE_INDEX_MASK  0xff
@@ -541,6 +592,11 @@ struct drm_amdgpu_info {
                } read_mmr_reg;
 
                struct drm_amdgpu_query_fw query_fw;
+
+               struct {
+                       uint32_t type;
+                       uint32_t offset;
+               } vbios_info;
        };
 };
 
@@ -568,6 +624,34 @@ struct drm_amdgpu_info_vram_gtt {
        uint64_t gtt_size;
 };
 
+struct drm_amdgpu_heap_info {
+       /** max. physical memory */
+       uint64_t total_heap_size;
+
+       /** Theoretical max. available memory in the given heap */
+       uint64_t usable_heap_size;
+
+       /**
+        * Number of bytes allocated in the heap. This includes all processes
+        * and private allocations in the kernel. It changes when new buffers
+        * are allocated, freed, and moved. It cannot be larger than
+        * heap_size.
+        */
+       uint64_t heap_usage;
+
+       /**
+        * Theoretical possible max. size of buffer which
+        * could be allocated in the given heap
+        */
+       uint64_t max_allocation;
+};
+
+struct drm_amdgpu_memory_info {
+       struct drm_amdgpu_heap_info vram;
+       struct drm_amdgpu_heap_info cpu_accessible_vram;
+       struct drm_amdgpu_heap_info gtt;
+};
+
 struct drm_amdgpu_info_firmware {
        uint32_t ver;
        uint32_t feature;
@@ -641,15 +725,54 @@ struct drm_amdgpu_info_hw_ip {
        uint32_t  _pad;
 };
 
+struct drm_amdgpu_info_num_handles {
+       /** Max handles as supported by firmware for UVD */
+       uint32_t  uvd_max_handles;
+       /** Handles currently in use for UVD */
+       uint32_t  uvd_used_handles;
+};
+
+#define AMDGPU_VCE_CLOCK_TABLE_ENTRIES         6
+
+struct drm_amdgpu_info_vce_clock_table_entry {
+       /** System clock */
+       uint32_t sclk;
+       /** Memory clock */
+       uint32_t mclk;
+       /** VCE clock */
+       uint32_t eclk;
+       uint32_t pad;
+};
+
+struct drm_amdgpu_info_vce_clock_table {
+       struct drm_amdgpu_info_vce_clock_table_entry 
entries[AMDGPU_VCE_CLOCK_TABLE_ENTRIES];
+       uint32_t num_valid_entries;
+       uint32_t pad;
+};
+
 /*
  * Supported GPU families
  */
 #define AMDGPU_FAMILY_UNKNOWN                  0
+#define AMDGPU_FAMILY_SI                       110 /* Hainan, Oland, Verde, 
Pitcairn, Tahiti */
 #define AMDGPU_FAMILY_CI                       120 /* Bonaire, Hawaii */
 #define AMDGPU_FAMILY_KV                       125 /* Kaveri, Kabini, Mullins 
*/
 #define AMDGPU_FAMILY_VI                       130 /* Iceland, Tonga */
 #define AMDGPU_FAMILY_CZ                       135 /* Carrizo, Stoney */
 
+/*
+ * Definition of free sync enter and exit signals
+ * We may have more options in the future
+ */
+#define AMDGPU_FREESYNC_FULLSCREEN_ENTER               1
+#define AMDGPU_FREESYNC_FULLSCREEN_EXIT                2
+
+struct drm_amdgpu_freesync {
+       uint32_t op;                    /* AMDGPU_FREESYNC_FULLSCREEN_ENTER or 
*/
+                                       /* AMDGPU_FREESYNC_FULLSCREEN_ENTER */
+       uint32_t spare[7];
+};
+
 #if defined(__cplusplus)
 }
 #endif
-- 
2.11.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to