aboutsummaryrefslogtreecommitdiffstats
path: root/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1715-drm-amdkfd-changes-introduced-in-kfd-merge-0486ab510.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1715-drm-amdkfd-changes-introduced-in-kfd-merge-0486ab510.patch')
-rw-r--r--meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1715-drm-amdkfd-changes-introduced-in-kfd-merge-0486ab510.patch237
1 files changed, 0 insertions, 237 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1715-drm-amdkfd-changes-introduced-in-kfd-merge-0486ab510.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1715-drm-amdkfd-changes-introduced-in-kfd-merge-0486ab510.patch
deleted file mode 100644
index 87687076..00000000
--- a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1715-drm-amdkfd-changes-introduced-in-kfd-merge-0486ab510.patch
+++ /dev/null
@@ -1,237 +0,0 @@
-From 1316c8eea37ede2f5dbf95bf2f180bbf0d4b64d8 Mon Sep 17 00:00:00 2001
-From: Evan Quan <evan.quan@amd.com>
-Date: Thu, 22 Jun 2017 14:57:12 +0800
-Subject: [PATCH 1715/4131] drm/amdkfd: changes introduced in kfd merge
- 0486ab510ea7144fc93e172ad91d80753bfd3441
-
-Change-Id: Ic08818b597c27fdbe4f75add2d1d79fae43b15d9
-Signed-off-by: Evan Quan <evan.quan@amd.com>
-
- Conflicts:
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 2 ++
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 7 +++---
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 11 ++++-----
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 29 ++++++++++-------------
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 4 ++--
- 5 files changed, 24 insertions(+), 29 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
-index 6446d8f..101c25d 100755
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
-@@ -71,10 +71,12 @@ int amdgpu_amdkfd_init(void)
- bool amdgpu_amdkfd_load_interface(struct amdgpu_device *adev)
- {
- switch (adev->asic_type) {
-+#ifdef CONFIG_DRM_AMDGPU_CIK
- case CHIP_KAVERI:
- case CHIP_HAWAII:
- kfd2kgd = amdgpu_amdkfd_gfx_7_get_functions();
- break;
-+#endif
- case CHIP_CARRIZO:
- case CHIP_TONGA:
- case CHIP_FIJI:
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
-index 9969b74..4549dc0 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
-@@ -32,6 +32,7 @@
- #include "cikd.h"
- #include "cik_sdma.h"
- #include "amdgpu_ucode.h"
-+#include "gfx_v7_0.h"
- #include "gca/gfx_7_2_d.h"
- #include "gca/gfx_7_2_enum.h"
- #include "gca/gfx_7_2_sh_mask.h"
-@@ -41,8 +42,6 @@
- #include "gmc/gmc_7_1_sh_mask.h"
- #include "cik_structs.h"
-
--#define CIK_QUEUES_PER_PIPE_MEC (8)
--
- #define AMDKFD_SKIP_UNCOMPILED_CODE 1
-
- enum hqd_dequeue_request_type {
-@@ -280,7 +279,7 @@ static void acquire_queue(struct kgd_dev *kgd, uint32_t pipe_id,
- {
- struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
-- uint32_t mec = (++pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
-+ uint32_t mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
- uint32_t pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec);
-
- lock_srbm(kgd, mec, pipe, queue_id, 0);
-@@ -348,7 +347,7 @@ static int kgd_init_interrupts(struct kgd_dev *kgd, uint32_t pipe_id)
- uint32_t mec;
- uint32_t pipe;
-
-- mec = (++pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
-+ mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
- pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec);
-
- lock_srbm(kgd, mec, pipe, 0, 0);
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
-index ea11ac6..e319f80 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
-@@ -42,8 +42,6 @@
- #include "vi_structs.h"
- #include "vid.h"
-
--#define VI_QUEUES_PER_PIPE_MEC (8)
--
- enum hqd_dequeue_request_type {
- NO_ACTION = 0,
- DRAIN_PIPE,
-@@ -266,7 +264,7 @@ static void acquire_queue(struct kgd_dev *kgd, uint32_t pipe_id,
- {
- struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
-- uint32_t mec = (++pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
-+ uint32_t mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
- uint32_t pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec);
-
- lock_srbm(kgd, mec, pipe, queue_id, 0);
-@@ -335,7 +333,7 @@ static int kgd_init_interrupts(struct kgd_dev *kgd, uint32_t pipe_id)
- uint32_t mec;
- uint32_t pipe;
-
-- mec = (++pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
-+ mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
- pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec);
-
- lock_srbm(kgd, mec, pipe, 0, 0);
-@@ -386,8 +384,8 @@ static int kgd_hqd_load(struct kgd_dev *kgd, void *mqd, uint32_t pipe_id,
- if (m->cp_hqd_vmid == 0) {
- uint32_t value, mec, pipe;
-
-- mec = (++pipe_id / VI_PIPE_PER_MEC) + 1;
-- pipe = (pipe_id % VI_PIPE_PER_MEC);
-+ mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
-+ pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec);
-
- pr_debug("kfd: set HIQ, mec:%d, pipe:%d, queue:%d.\n",
- mec, pipe, queue_id);
-@@ -782,7 +780,6 @@ static int invalidate_tlbs_with_kiq(struct amdgpu_device *adev, uint16_t pasid)
- signed long r;
- struct dma_fence *f;
- struct amdgpu_ring *ring = &adev->gfx.kiq.ring;
-- struct amdgpu_kiq *kiq = &adev->gfx.kiq;
-
- mutex_lock(&adev->gfx.kiq.ring_mutex);
- amdgpu_ring_alloc(ring, 12); /* fence + invalidate_tlbs package*/
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
-index e84c115..c06bf6b 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
-@@ -80,9 +80,6 @@
- #define mmMMHUB_VM_INVALIDATE_ENG16_ADDR_RANGE_HI32 0x0728
- #define mmMMHUB_VM_INVALIDATE_ENG16_ADDR_RANGE_HI32_BASE_IDX 0
-
--#define V9_PIPE_PER_MEC (4)
--#define V9_QUEUES_PER_PIPE_MEC (8)
--
- enum hqd_dequeue_request_type {
- NO_ACTION = 0,
- DRAIN_PIPE,
-@@ -309,18 +306,18 @@ static void unlock_srbm(struct kgd_dev *kgd)
- static void acquire_queue(struct kgd_dev *kgd, uint32_t pipe_id,
- uint32_t queue_id)
- {
-- uint32_t mec = (++pipe_id / V9_PIPE_PER_MEC) + 1;
-- uint32_t pipe = (pipe_id % V9_PIPE_PER_MEC);
-+ struct amdgpu_device *adev = get_amdgpu_device(kgd);
-+
-+ uint32_t mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
-+ uint32_t pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec);
-
- lock_srbm(kgd, mec, pipe, queue_id, 0);
- }
-
--static uint32_t get_queue_mask(uint32_t pipe_id, uint32_t queue_id)
-+static uint32_t get_queue_mask(struct amdgpu_device *adev,
-+ uint32_t pipe_id, uint32_t queue_id)
- {
-- /* assumes that pipe0 is used by graphics and that the correct
-- * MEC is selected by acquire_queue already
-- */
-- unsigned int bit = ((pipe_id+1) * V9_QUEUES_PER_PIPE_MEC +
-+ unsigned int bit = (pipe_id * adev->gfx.mec.num_pipe_per_mec +
- queue_id) & 31;
-
- return ((uint32_t)1) << bit;
-@@ -408,6 +405,7 @@ static int kgd_set_pasid_vmid_mapping(struct kgd_dev *kgd, unsigned int pasid,
- static int kgd_init_pipeline(struct kgd_dev *kgd, uint32_t pipe_id,
- uint32_t hpd_size, uint64_t hpd_gpu_addr)
- {
-+ /* amdgpu owns the per-pipe state */
- return 0;
- }
-
-@@ -421,8 +419,8 @@ static int kgd_init_interrupts(struct kgd_dev *kgd, uint32_t pipe_id)
- uint32_t mec;
- uint32_t pipe;
-
-- mec = (++pipe_id / V9_PIPE_PER_MEC) + 1;
-- pipe = (pipe_id % V9_PIPE_PER_MEC);
-+ mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
-+ pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec);
-
- lock_srbm(kgd, mec, pipe, 0, 0);
-
-@@ -491,8 +489,8 @@ static int kgd_hqd_load(struct kgd_dev *kgd, void *mqd, uint32_t pipe_id,
- if (m->cp_hqd_vmid == 0) {
- uint32_t value, mec, pipe;
-
-- mec = (++pipe_id / V9_PIPE_PER_MEC) + 1;
-- pipe = (pipe_id % V9_PIPE_PER_MEC);
-+ mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1;
-+ pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec);
-
- pr_debug("kfd: set HIQ, mec:%d, pipe:%d, queue:%d.\n",
- mec, pipe, queue_id);
-@@ -552,7 +550,7 @@ static int kgd_hqd_load(struct kgd_dev *kgd, void *mqd, uint32_t pipe_id,
- WREG32(SOC15_REG_OFFSET(GC, 0, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI),
- upper_32_bits((uint64_t)wptr));
- WREG32(SOC15_REG_OFFSET(GC, 0, mmCP_PQ_WPTR_POLL_CNTL1),
-- get_queue_mask(pipe_id, queue_id));
-+ get_queue_mask(adev, pipe_id, queue_id));
- }
-
- /* Start the EOP fetcher */
-@@ -965,7 +963,6 @@ static int invalidate_tlbs_with_kiq(struct amdgpu_device *adev, uint16_t pasid)
- signed long r;
- struct dma_fence *f;
- struct amdgpu_ring *ring = &adev->gfx.kiq.ring;
-- struct amdgpu_kiq *kiq = &adev->gfx.kiq;
-
- mutex_lock(&adev->gfx.kiq.ring_mutex);
- amdgpu_ring_alloc(ring, 12); /* fence + invalidate_tlbs package*/
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-index 3c65aaf..3a30505 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-@@ -870,7 +870,7 @@ static int reserve_bo_and_cond_vms(struct kgd_mem *mem,
- static void unreserve_bo_and_vms(struct bo_vm_reservation_context *ctx,
- bool wait)
- {
-- if (wait)
-+ if (wait) /* FIXME: when called from user context, this needs to be interruptible */
- amdgpu_sync_wait(&ctx->sync, false);
-
- if (ctx->reserved)
-@@ -936,7 +936,7 @@ static int update_gpuvm_pte(struct amdgpu_device *adev,
- /* Update the page directory */
- ret = amdgpu_vm_update_directories(adev, vm);
- if (ret != 0) {
-- pr_err("amdgpu_vm_update_page_directory failed\n");
-+ pr_err("amdgpu_vm_update_directories failed\n");
- return ret;
- }
-
---
-2.7.4
-