diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0507-Revert-drm-amdgpu-add-amdgpu_vm_entries_mask-v2.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/0507-Revert-drm-amdgpu-add-amdgpu_vm_entries_mask-v2.patch | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0507-Revert-drm-amdgpu-add-amdgpu_vm_entries_mask-v2.patch b/common/recipes-kernel/linux/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/common/recipes-kernel/linux/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 + |