aboutsummaryrefslogtreecommitdiffstats
path: root/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1632-drm-amdkfd-Handle-UCTL2-faults-as-VM-faults.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1632-drm-amdkfd-Handle-UCTL2-faults-as-VM-faults.patch')
-rw-r--r--meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1632-drm-amdkfd-Handle-UCTL2-faults-as-VM-faults.patch65
1 files changed, 0 insertions, 65 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1632-drm-amdkfd-Handle-UCTL2-faults-as-VM-faults.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1632-drm-amdkfd-Handle-UCTL2-faults-as-VM-faults.patch
deleted file mode 100644
index 3c6198c4..00000000
--- a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1632-drm-amdkfd-Handle-UCTL2-faults-as-VM-faults.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 4955649dfea31a4b1b17898dd6ee3f6c175b93e0 Mon Sep 17 00:00:00 2001
-From: Felix Kuehling <Felix.Kuehling@amd.com>
-Date: Mon, 27 Mar 2017 17:57:51 -0400
-Subject: [PATCH 1632/4131] drm/amdkfd: Handle UCTL2 faults as VM faults
-
-Also get VM fault info from the IH ring entry for Vega10. All the
-information is available in the IH ring entry and AMDGPU does not
-store VM fault info in its VM fault handler any more.
-
-Change-Id: I803d8f2f5d2b89b3b721c13d7b69eb9de4cf5c6c
-Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
----
- drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c | 27 ++++++++++++++-----------
- 1 file changed, 15 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c
-index a479820..b2c6b52 100644
---- a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c
-+++ b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c
-@@ -65,7 +65,8 @@ static bool event_interrupt_isr_v9(struct kfd_dev *dev,
- source_id == SOC15_INTSRC_SDMA_TRAP ||
- source_id == SOC15_INTSRC_SQ_INTERRUPT_MSG ||
- source_id == SOC15_INTSRC_CP_BAD_OPCODE ||
-- client_id == SOC15_IH_CLIENTID_VMC)) {
-+ client_id == SOC15_IH_CLIENTID_VMC ||
-+ client_id == SOC15_IH_CLIENTID_UTCL2)) {
-
- /*
- * KFD want to handle this INT, but MEC firmware did
-@@ -108,19 +109,21 @@ static void event_interrupt_wq_v9(struct kfd_dev *dev,
- kfd_signal_event_interrupt(pasid, 0, 0); /*todo */
- else if (source_id == SOC15_INTSRC_CP_BAD_OPCODE)
- kfd_signal_hw_exception_event(pasid);
-- else if (client_id == SOC15_IH_CLIENTID_VMC) {
-- struct kfd_vm_fault_info info;
-+ else if (client_id == SOC15_IH_CLIENTID_VMC ||
-+ client_id == SOC15_IH_CLIENTID_UTCL2) {
-+ struct kfd_vm_fault_info info = {0};
-+ uint16_t ring_id = SOC15_RING_ID_FROM_IH_ENTRY(ih_ring_entry);
-+
-+ info.vmid = vmid;
-+ info.mc_id = client_id;
-+ info.page_addr = ih_ring_entry[4] |
-+ (uint64_t)(ih_ring_entry[5] & 0xf) << 32;
-+ info.prot_valid = ring_id & 0x08;
-+ info.prot_read = ring_id & 0x10;
-+ info.prot_write = ring_id & 0x20;
-
-- memset(&info, 0, sizeof(info));
-- dev->kfd2kgd->get_vm_fault_info(dev->kgd, &info);
- kfd_process_vm_fault(dev->dqm, pasid);
-- if (!info.page_addr && !info.status)
-- return;
--
-- if (info.vmid == vmid)
-- kfd_signal_vm_fault_event(dev, pasid, &info);
-- else
-- kfd_signal_vm_fault_event(dev, pasid, NULL);
-+ kfd_signal_vm_fault_event(dev, pasid, &info);
- }
- }
-
---
-2.7.4
-