aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0507-Revert-drm-amdgpu-add-amdgpu_vm_entries_mask-v2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0507-Revert-drm-amdgpu-add-amdgpu_vm_entries_mask-v2.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0507-Revert-drm-amdgpu-add-amdgpu_vm_entries_mask-v2.patch90
1 files changed, 90 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0507-Revert-drm-amdgpu-add-amdgpu_vm_entries_mask-v2.patch b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0507-Revert-drm-amdgpu-add-amdgpu_vm_entries_mask-v2.patch
new file mode 100644
index 00000000..4ae0424c
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0507-Revert-drm-amdgpu-add-amdgpu_vm_entries_mask-v2.patch
@@ -0,0 +1,90 @@
+From 36ea484709b6da1dec6913a106c4eff534919674 Mon Sep 17 00:00:00 2001
+From: Prike Liang <Prike.Liang@amd.com>
+Date: Thu, 11 Oct 2018 15:38:18 +0800
+Subject: [PATCH 0507/2940] Revert "drm/amdgpu: add amdgpu_vm_entries_mask v2"
+
+This reverts commit d5e01d3beedab67dd4293aafcf05dbdf74bdb032.
+
+Change-Id: I55f7ce8d067e88a34e1b44cbce8f3442441343e7
+Signed-off-by: Prike Liang <Prike.Liang@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 34 ++++++--------------------
+ 1 file changed, 7 insertions(+), 27 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+index 3553a94b2026..635bd17cd709 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+@@ -190,26 +190,6 @@ static unsigned amdgpu_vm_num_entries(struct amdgpu_device *adev,
+ return AMDGPU_VM_PTE_COUNT(adev);
+ }
+
+-/**
+- * amdgpu_vm_entries_mask - the mask to get the entry number of a PD/PT
+- *
+- * @adev: amdgpu_device pointer
+- * @level: VMPT level
+- *
+- * Returns:
+- * The mask to extract the entry number of a PD/PT from an address.
+- */
+-static uint32_t amdgpu_vm_entries_mask(struct amdgpu_device *adev,
+- unsigned int level)
+-{
+- if (level <= adev->vm_manager.root_level)
+- return 0xffffffff;
+- else if (level != AMDGPU_VM_PTB)
+- return 0x1ff;
+- else
+- return AMDGPU_VM_PTE_COUNT(adev) - 1;
+-}
+-
+ /**
+ * amdgpu_vm_bo_size - returns the size of the BOs in bytes
+ *
+@@ -419,17 +399,17 @@ static void amdgpu_vm_pt_start(struct amdgpu_device *adev,
+ static bool amdgpu_vm_pt_descendant(struct amdgpu_device *adev,
+ struct amdgpu_vm_pt_cursor *cursor)
+ {
+- unsigned mask, shift, idx;
++ unsigned num_entries, shift, idx;
+
+ if (!cursor->entry->entries)
+ return false;
+
+ BUG_ON(!cursor->entry->base.bo);
+- mask = amdgpu_vm_entries_mask(adev, cursor->level);
++ num_entries = amdgpu_vm_num_entries(adev, cursor->level);
+ shift = amdgpu_vm_level_shift(adev, cursor->level);
+
+ ++cursor->level;
+- idx = (cursor->pfn >> shift) & mask;
++ idx = (cursor->pfn >> shift) % num_entries;
+ cursor->parent = cursor->entry;
+ cursor->entry = &cursor->entry->entries[idx];
+ return true;
+@@ -1605,7 +1585,7 @@ static int amdgpu_vm_update_ptes(struct amdgpu_pte_update_params *params,
+ amdgpu_vm_pt_start(adev, params->vm, start, &cursor);
+ while (cursor.pfn < end) {
+ struct amdgpu_bo *pt = cursor.entry->base.bo;
+- unsigned shift, parent_shift, mask;
++ unsigned shift, parent_shift, num_entries;
+ uint64_t incr, entry_end, pe_start;
+
+ if (!pt)
+@@ -1660,9 +1640,9 @@ static int amdgpu_vm_update_ptes(struct amdgpu_pte_update_params *params,
+
+ /* Looks good so far, calculate parameters for the update */
+ incr = AMDGPU_GPU_PAGE_SIZE << shift;
+- mask = amdgpu_vm_entries_mask(adev, cursor.level);
+- pe_start = ((cursor.pfn >> shift) & mask) * 8;
+- entry_end = (mask + 1) << shift;
++ num_entries = amdgpu_vm_num_entries(adev, cursor.level);
++ pe_start = ((cursor.pfn >> shift) & (num_entries - 1)) * 8;
++ entry_end = num_entries << shift;
+ entry_end += cursor.pfn & ~(entry_end - 1);
+ entry_end = min(entry_end, end);
+
+--
+2.17.1
+