diff options
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/files/1139-unify-memory-query-info-interface.patch')
-rw-r--r-- | meta-amdfalconx86/recipes-kernel/linux/files/1139-unify-memory-query-info-interface.patch | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/files/1139-unify-memory-query-info-interface.patch b/meta-amdfalconx86/recipes-kernel/linux/files/1139-unify-memory-query-info-interface.patch deleted file mode 100644 index b7c965a3..00000000 --- a/meta-amdfalconx86/recipes-kernel/linux/files/1139-unify-memory-query-info-interface.patch +++ /dev/null @@ -1,113 +0,0 @@ -From 314642915b4a2bda146fb9d900ca99eabeab36c0 Mon Sep 17 00:00:00 2001 -From: Sanjay R Mehta <sanju.mehta@amd.com> -Date: Mon, 14 Nov 2016 12:13:41 +0530 -Subject: [PATCH 01/10] unify memory query info interface -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Change-Id: I74d2b7379bc4febe714a91daf4e1786895de90f2 -Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com> -Reviewed-by: Marek Olšák <marek.olsak@amd.com> -Signed-off-by: Sanjay R Mehta <sanju.mehta@amd.com> ---- - drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 32 +++++++++++++++++++++++ - drivers/gpu/drm/amd/include/uapi/drm/amdgpu_drm.h | 32 +++++++++++++++++++++++ - 2 files changed, 64 insertions(+) - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c -index 31c20ba..a48783e 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c -@@ -390,6 +390,38 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file - return copy_to_user(out, &vram_gtt, - min((size_t)size, sizeof(vram_gtt))) ? -EFAULT : 0; - } -+ -+ case AMDGPU_INFO_MEMORY: { -+ struct drm_amdgpu_memory_info mem; -+ -+ memset(&mem, 0, sizeof(mem)); -+ mem.vram.total_heap_size = adev->mc.real_vram_size; -+ mem.vram.usable_heap_size = -+ adev->mc.real_vram_size - adev->vram_pin_size; -+ mem.vram.heap_usage = atomic64_read(&adev->vram_usage); -+ mem.vram.max_allocation = mem.vram.usable_heap_size * 3 / 4; -+ -+ mem.cpu_accessible_vram.total_heap_size = -+ adev->mc.visible_vram_size; -+ mem.cpu_accessible_vram.usable_heap_size = -+ adev->mc.visible_vram_size - -+ (adev->vram_pin_size - adev->invisible_pin_size); -+ mem.cpu_accessible_vram.heap_usage = -+ atomic64_read(&adev->vram_vis_usage); -+ mem.cpu_accessible_vram.max_allocation = -+ mem.cpu_accessible_vram.usable_heap_size * 3 / 4; -+ -+ mem.gtt.total_heap_size = adev->mc.gtt_size; -+ mem.gtt.usable_heap_size = -+ adev->mc.gtt_size - adev->gart_pin_size; -+ mem.gtt.heap_usage = atomic64_read(&adev->gtt_usage); -+ mem.gtt.max_allocation = mem.gtt.usable_heap_size * 3 / 4; -+ -+ return copy_to_user(out, &mem, -+ min((size_t)size, sizeof(mem))) -+ ? -EFAULT : 0; -+ } -+ - case AMDGPU_INFO_READ_MMR_REG: { - unsigned n, alloc_size; - uint32_t *regs; -diff --git a/drivers/gpu/drm/amd/include/uapi/drm/amdgpu_drm.h b/drivers/gpu/drm/amd/include/uapi/drm/amdgpu_drm.h -index 4d7d982..3f13a87 100644 ---- a/drivers/gpu/drm/amd/include/uapi/drm/amdgpu_drm.h -+++ b/drivers/gpu/drm/amd/include/uapi/drm/amdgpu_drm.h -@@ -540,6 +540,10 @@ struct drm_amdgpu_cs_chunk_data { - #define AMDGPU_INFO_VIS_VRAM_USAGE 0x17 - /* virtual range */ - #define AMDGPU_INFO_VIRTUAL_RANGE 0x18 -+ -+/* Query memory about VRAM and GTT domains */ -+#define AMDGPU_INFO_MEMORY 0x19 -+ - /* gpu capability */ - #define AMDGPU_INFO_CAPABILITY 0x50 - /* query pin memory capability */ -@@ -705,6 +709,34 @@ struct drm_amdgpu_info_hw_ip { - __u32 _pad; - }; - -+struct drm_amdgpu_heap_info { -+ /** max. physical memory */ -+ __u64 total_heap_size; -+ -+ /** Theoretical max. available memory in the given heap */ -+ __u64 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. -+ */ -+ __u64 heap_usage; -+ -+ /** -+ * Theoretical possible max. size of buffer which -+ * could be allocated in the given heap -+ */ -+ __u64 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; -+}; -+ - /* - * Supported GPU families - */ --- -2.7.4 - |