aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1280-drm-amdkfd-KFD-use-the-new-invalidate_tlbs-interface.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1280-drm-amdkfd-KFD-use-the-new-invalidate_tlbs-interface.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1280-drm-amdkfd-KFD-use-the-new-invalidate_tlbs-interface.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1280-drm-amdkfd-KFD-use-the-new-invalidate_tlbs-interface.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1280-drm-amdkfd-KFD-use-the-new-invalidate_tlbs-interface.patch
new file mode 100644
index 00000000..b211b992
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1280-drm-amdkfd-KFD-use-the-new-invalidate_tlbs-interface.patch
@@ -0,0 +1,53 @@
+From 7ee7393d40c3765ce8adfe51ff7864b1da0aa6ee Mon Sep 17 00:00:00 2001
+From: Shaoyun Liu <Shaoyun.Liu@amd.com>
+Date: Wed, 26 Apr 2017 16:42:42 -0400
+Subject: [PATCH 1280/4131] drm/amdkfd: KFD use the new invalidate_tlbs
+ interface for TLB invalidation
+
+Change-Id: I58a15b411a00c17471c00f4e8217097177797305
+Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com>
+---
+ drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c | 28 +---------------------------
+ 1 file changed, 1 insertion(+), 27 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c b/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c
+index 1c1ec21..2fa5d32 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c
+@@ -425,32 +425,6 @@ int kfd_init_apertures(struct kfd_process *process)
+
+ void kfd_flush_tlb(struct kfd_dev *dev, uint32_t pasid)
+ {
+- uint8_t vmid;
+- int first_vmid_to_scan = 8;
+- int last_vmid_to_scan = 15;
+-
+ const struct kfd2kgd_calls *f2g = dev->kfd2kgd;
+- /* Scan all registers in the range ATC_VMID8_PASID_MAPPING .. ATC_VMID15_PASID_MAPPING
+- * to check which VMID the current process is mapped to
+- * and flush TLB for this VMID if found*/
+- if (dev->device_info->asic_family >= CHIP_VEGA10)
+- spin_lock(&dev->tlb_invalidation_lock);
+-
+- for (vmid = first_vmid_to_scan; vmid <= last_vmid_to_scan; vmid++) {
+- if (f2g->get_atc_vmid_pasid_mapping_valid(
+- dev->kgd, vmid)) {
+- if (f2g->get_atc_vmid_pasid_mapping_pasid(
+- dev->kgd, vmid) == pasid) {
+- dev_dbg(kfd_device,
+- "flushing TLB of vmid %u", vmid);
+- f2g->write_vmid_invalidate_request(
+- dev->kgd, vmid);
+- break;
+- }
+- }
+- }
+-
+- if (dev->device_info->asic_family >= CHIP_VEGA10)
+- spin_unlock(&dev->tlb_invalidation_lock);
+-
++ f2g->invalidate_tlbs(dev->kgd, pasid);
+ }
+--
+2.7.4
+