aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3688-drm-amdgpu-Delete-cgs-wrapper-functions-for-gpu-memo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3688-drm-amdgpu-Delete-cgs-wrapper-functions-for-gpu-memo.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3688-drm-amdgpu-Delete-cgs-wrapper-functions-for-gpu-memo.patch325
1 files changed, 325 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3688-drm-amdgpu-Delete-cgs-wrapper-functions-for-gpu-memo.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3688-drm-amdgpu-Delete-cgs-wrapper-functions-for-gpu-memo.patch
new file mode 100644
index 00000000..1b4bd220
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3688-drm-amdgpu-Delete-cgs-wrapper-functions-for-gpu-memo.patch
@@ -0,0 +1,325 @@
+From f433c32782c2d8a26b3995aba2c77033d08ccdfc Mon Sep 17 00:00:00 2001
+From: Rex Zhu <Rex.Zhu@amd.com>
+Date: Mon, 5 Mar 2018 18:36:47 +0800
+Subject: [PATCH 3688/4131] drm/amdgpu: Delete cgs wrapper functions for gpu
+ memory manager
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+delete those cgs interfaces:
+amdgpu_cgs_alloc_gpu_mem
+amdgpu_cgs_free_gpu_mem
+amdgpu_cgs_gmap_gpu_mem
+amdgpu_cgs_gunmap_gpu_mem
+amdgpu_cgs_kmap_gpu_mem
+amdgpu_cgs_kunmap_gpu_mem
+
+Change-Id: Ieac0c36679317c2511c2caf8e57007adba2872ae
+Reviewed-by: Alex Deucher <alexdeucher@amd.com>
+Acked-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 131 -------------------------------
+ drivers/gpu/drm/amd/include/cgs_common.h | 115 ---------------------------
+ 2 files changed, 246 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
+index 76f4758..f2dd98d 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
+@@ -42,131 +42,6 @@ struct amdgpu_cgs_device {
+ ((struct amdgpu_cgs_device *)cgs_device)->adev
+
+
+-static int amdgpu_cgs_alloc_gpu_mem(struct cgs_device *cgs_device,
+- enum cgs_gpu_mem_type type,
+- uint64_t size, uint64_t align,
+- cgs_handle_t *handle)
+-{
+- CGS_FUNC_ADEV;
+- uint16_t flags = 0;
+- int ret = 0;
+- uint32_t domain = 0;
+- struct amdgpu_bo *obj;
+-
+- /* fail if the alignment is not a power of 2 */
+- if (((align != 1) && (align & (align - 1)))
+- || size == 0 || align == 0)
+- return -EINVAL;
+-
+-
+- switch(type) {
+- case CGS_GPU_MEM_TYPE__VISIBLE_CONTIG_FB:
+- case CGS_GPU_MEM_TYPE__VISIBLE_FB:
+- flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
+- AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS;
+- domain = AMDGPU_GEM_DOMAIN_VRAM;
+- break;
+- case CGS_GPU_MEM_TYPE__INVISIBLE_CONTIG_FB:
+- case CGS_GPU_MEM_TYPE__INVISIBLE_FB:
+- flags = AMDGPU_GEM_CREATE_NO_CPU_ACCESS |
+- AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS;
+- domain = AMDGPU_GEM_DOMAIN_VRAM;
+- break;
+- case CGS_GPU_MEM_TYPE__GART_CACHEABLE:
+- domain = AMDGPU_GEM_DOMAIN_GTT;
+- break;
+- case CGS_GPU_MEM_TYPE__GART_WRITECOMBINE:
+- flags = AMDGPU_GEM_CREATE_CPU_GTT_USWC;
+- domain = AMDGPU_GEM_DOMAIN_GTT;
+- break;
+- default:
+- return -EINVAL;
+- }
+-
+-
+- *handle = 0;
+-
+- ret = amdgpu_bo_create(adev, size, align, true, domain, flags,
+- NULL, NULL, &obj);
+- if (ret) {
+- DRM_ERROR("(%d) bo create failed\n", ret);
+- return ret;
+- }
+- *handle = (cgs_handle_t)obj;
+-
+- return ret;
+-}
+-
+-static int amdgpu_cgs_free_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t handle)
+-{
+- struct amdgpu_bo *obj = (struct amdgpu_bo *)handle;
+-
+- if (obj) {
+- int r = amdgpu_bo_reserve(obj, true);
+- if (likely(r == 0)) {
+- amdgpu_bo_kunmap(obj);
+- amdgpu_bo_unpin(obj);
+- amdgpu_bo_unreserve(obj);
+- }
+- amdgpu_bo_unref(&obj);
+-
+- }
+- return 0;
+-}
+-
+-static int amdgpu_cgs_gmap_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t handle,
+- uint64_t *mcaddr)
+-{
+- int r;
+- struct amdgpu_bo *obj = (struct amdgpu_bo *)handle;
+-
+- WARN_ON_ONCE(obj->placement.num_placement > 1);
+-
+- r = amdgpu_bo_reserve(obj, true);
+- if (unlikely(r != 0))
+- return r;
+- r = amdgpu_bo_pin(obj, obj->preferred_domains, mcaddr);
+- amdgpu_bo_unreserve(obj);
+- return r;
+-}
+-
+-static int amdgpu_cgs_gunmap_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t handle)
+-{
+- int r;
+- struct amdgpu_bo *obj = (struct amdgpu_bo *)handle;
+- r = amdgpu_bo_reserve(obj, true);
+- if (unlikely(r != 0))
+- return r;
+- r = amdgpu_bo_unpin(obj);
+- amdgpu_bo_unreserve(obj);
+- return r;
+-}
+-
+-static int amdgpu_cgs_kmap_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t handle,
+- void **map)
+-{
+- int r;
+- struct amdgpu_bo *obj = (struct amdgpu_bo *)handle;
+- r = amdgpu_bo_reserve(obj, true);
+- if (unlikely(r != 0))
+- return r;
+- r = amdgpu_bo_kmap(obj, map);
+- amdgpu_bo_unreserve(obj);
+- return r;
+-}
+-
+-static int amdgpu_cgs_kunmap_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t handle)
+-{
+- int r;
+- struct amdgpu_bo *obj = (struct amdgpu_bo *)handle;
+- r = amdgpu_bo_reserve(obj, true);
+- if (unlikely(r != 0))
+- return r;
+- amdgpu_bo_kunmap(obj);
+- amdgpu_bo_unreserve(obj);
+- return r;
+-}
+-
+ static uint32_t amdgpu_cgs_read_register(struct cgs_device *cgs_device, unsigned offset)
+ {
+ CGS_FUNC_ADEV;
+@@ -906,12 +781,6 @@ static int amdgpu_cgs_notify_dpm_enabled(struct cgs_device *cgs_device, bool ena
+ }
+
+ static const struct cgs_ops amdgpu_cgs_ops = {
+- .alloc_gpu_mem = amdgpu_cgs_alloc_gpu_mem,
+- .free_gpu_mem = amdgpu_cgs_free_gpu_mem,
+- .gmap_gpu_mem = amdgpu_cgs_gmap_gpu_mem,
+- .gunmap_gpu_mem = amdgpu_cgs_gunmap_gpu_mem,
+- .kmap_gpu_mem = amdgpu_cgs_kmap_gpu_mem,
+- .kunmap_gpu_mem = amdgpu_cgs_kunmap_gpu_mem,
+ .read_register = amdgpu_cgs_read_register,
+ .write_register = amdgpu_cgs_write_register,
+ .read_ind_register = amdgpu_cgs_read_ind_register,
+diff --git a/drivers/gpu/drm/amd/include/cgs_common.h b/drivers/gpu/drm/amd/include/cgs_common.h
+index 7f26f20..8602219 100644
+--- a/drivers/gpu/drm/amd/include/cgs_common.h
++++ b/drivers/gpu/drm/amd/include/cgs_common.h
+@@ -29,18 +29,6 @@
+ struct cgs_device;
+
+ /**
+- * enum cgs_gpu_mem_type - GPU memory types
+- */
+-enum cgs_gpu_mem_type {
+- CGS_GPU_MEM_TYPE__VISIBLE_FB,
+- CGS_GPU_MEM_TYPE__INVISIBLE_FB,
+- CGS_GPU_MEM_TYPE__VISIBLE_CONTIG_FB,
+- CGS_GPU_MEM_TYPE__INVISIBLE_CONTIG_FB,
+- CGS_GPU_MEM_TYPE__GART_CACHEABLE,
+- CGS_GPU_MEM_TYPE__GART_WRITECOMBINE
+-};
+-
+-/**
+ * enum cgs_ind_reg - Indirect register spaces
+ */
+ enum cgs_ind_reg {
+@@ -131,89 +119,6 @@ struct cgs_display_info {
+ typedef unsigned long cgs_handle_t;
+
+ /**
+- * cgs_alloc_gpu_mem() - Allocate GPU memory
+- * @cgs_device: opaque device handle
+- * @type: memory type
+- * @size: size in bytes
+- * @align: alignment in bytes
+- * @handle: memory handle (output)
+- *
+- * The memory types CGS_GPU_MEM_TYPE_*_CONTIG_FB force contiguous
+- * memory allocation. This guarantees that the MC address returned by
+- * cgs_gmap_gpu_mem is not mapped through the GART. The non-contiguous
+- * FB memory types may be GART mapped depending on memory
+- * fragmentation and memory allocator policies.
+- *
+- * If min/max_offset are non-0, the allocation will be forced to
+- * reside between these offsets in its respective memory heap. The
+- * base address that the offset relates to, depends on the memory
+- * type.
+- *
+- * - CGS_GPU_MEM_TYPE__*_CONTIG_FB: FB MC base address
+- * - CGS_GPU_MEM_TYPE__GART_*: GART aperture base address
+- * - others: undefined, don't use with max_offset
+- *
+- * Return: 0 on success, -errno otherwise
+- */
+-typedef int (*cgs_alloc_gpu_mem_t)(struct cgs_device *cgs_device, enum cgs_gpu_mem_type type,
+- uint64_t size, uint64_t align,
+- cgs_handle_t *handle);
+-
+-/**
+- * cgs_free_gpu_mem() - Free GPU memory
+- * @cgs_device: opaque device handle
+- * @handle: memory handle returned by alloc or import
+- *
+- * Return: 0 on success, -errno otherwise
+- */
+-typedef int (*cgs_free_gpu_mem_t)(struct cgs_device *cgs_device, cgs_handle_t handle);
+-
+-/**
+- * cgs_gmap_gpu_mem() - GPU-map GPU memory
+- * @cgs_device: opaque device handle
+- * @handle: memory handle returned by alloc or import
+- * @mcaddr: MC address (output)
+- *
+- * Ensures that a buffer is GPU accessible and returns its MC address.
+- *
+- * Return: 0 on success, -errno otherwise
+- */
+-typedef int (*cgs_gmap_gpu_mem_t)(struct cgs_device *cgs_device, cgs_handle_t handle,
+- uint64_t *mcaddr);
+-
+-/**
+- * cgs_gunmap_gpu_mem() - GPU-unmap GPU memory
+- * @cgs_device: opaque device handle
+- * @handle: memory handle returned by alloc or import
+- *
+- * Allows the buffer to be migrated while it's not used by the GPU.
+- *
+- * Return: 0 on success, -errno otherwise
+- */
+-typedef int (*cgs_gunmap_gpu_mem_t)(struct cgs_device *cgs_device, cgs_handle_t handle);
+-
+-/**
+- * cgs_kmap_gpu_mem() - Kernel-map GPU memory
+- *
+- * @cgs_device: opaque device handle
+- * @handle: memory handle returned by alloc or import
+- * @map: Kernel virtual address the memory was mapped to (output)
+- *
+- * Return: 0 on success, -errno otherwise
+- */
+-typedef int (*cgs_kmap_gpu_mem_t)(struct cgs_device *cgs_device, cgs_handle_t handle,
+- void **map);
+-
+-/**
+- * cgs_kunmap_gpu_mem() - Kernel-unmap GPU memory
+- * @cgs_device: opaque device handle
+- * @handle: memory handle returned by alloc or import
+- *
+- * Return: 0 on success, -errno otherwise
+- */
+-typedef int (*cgs_kunmap_gpu_mem_t)(struct cgs_device *cgs_device, cgs_handle_t handle);
+-
+-/**
+ * cgs_read_register() - Read an MMIO register
+ * @cgs_device: opaque device handle
+ * @offset: register offset
+@@ -355,13 +260,6 @@ typedef int (*cgs_enter_safe_mode)(struct cgs_device *cgs_device, bool en);
+ typedef void (*cgs_lock_grbm_idx)(struct cgs_device *cgs_device, bool lock);
+
+ struct cgs_ops {
+- /* memory management calls (similar to KFD interface) */
+- cgs_alloc_gpu_mem_t alloc_gpu_mem;
+- cgs_free_gpu_mem_t free_gpu_mem;
+- cgs_gmap_gpu_mem_t gmap_gpu_mem;
+- cgs_gunmap_gpu_mem_t gunmap_gpu_mem;
+- cgs_kmap_gpu_mem_t kmap_gpu_mem;
+- cgs_kunmap_gpu_mem_t kunmap_gpu_mem;
+ /* MMIO access */
+ cgs_read_register_t read_register;
+ cgs_write_register_t write_register;
+@@ -404,19 +302,6 @@ struct cgs_device
+ #define CGS_OS_CALL(func,dev,...) \
+ (((struct cgs_device *)dev)->os_ops->func(dev, ##__VA_ARGS__))
+
+-#define cgs_alloc_gpu_mem(dev,type,size,align,handle) \
+- CGS_CALL(alloc_gpu_mem,dev,type,size,align,handle)
+-#define cgs_free_gpu_mem(dev,handle) \
+- CGS_CALL(free_gpu_mem,dev,handle)
+-#define cgs_gmap_gpu_mem(dev,handle,mcaddr) \
+- CGS_CALL(gmap_gpu_mem,dev,handle,mcaddr)
+-#define cgs_gunmap_gpu_mem(dev,handle) \
+- CGS_CALL(gunmap_gpu_mem,dev,handle)
+-#define cgs_kmap_gpu_mem(dev,handle,map) \
+- CGS_CALL(kmap_gpu_mem,dev,handle,map)
+-#define cgs_kunmap_gpu_mem(dev,handle) \
+- CGS_CALL(kunmap_gpu_mem,dev,handle)
+-
+ #define cgs_read_register(dev,offset) \
+ CGS_CALL(read_register,dev,offset)
+ #define cgs_write_register(dev,offset,value) \
+--
+2.7.4
+