aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2060-drm-amd-amdgpu-remove-vram_page_split-kernel-option-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2060-drm-amd-amdgpu-remove-vram_page_split-kernel-option-.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2060-drm-amd-amdgpu-remove-vram_page_split-kernel-option-.patch115
1 files changed, 115 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2060-drm-amd-amdgpu-remove-vram_page_split-kernel-option-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2060-drm-amd-amdgpu-remove-vram_page_split-kernel-option-.patch
new file mode 100644
index 00000000..fa86ea81
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2060-drm-amd-amdgpu-remove-vram_page_split-kernel-option-.patch
@@ -0,0 +1,115 @@
+From a4dfc4f1e178727a843e8d194dd6d90ec9018df0 Mon Sep 17 00:00:00 2001
+From: Tom St Denis <tom.stdenis@amd.com>
+Date: Tue, 4 Jun 2019 09:36:57 -0400
+Subject: [PATCH 2060/2940] drm/amd/amdgpu: remove vram_page_split kernel
+ option (v3)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This option is no longer needed. The default code paths
+are now the only option.
+
+v2: Add HPAGE support and a default for non contiguous maps
+v3: Misread 512 pages as MiB ...
+
+Change-Id: I4e200d0da8babdf00594f377c426393d1455c15e
+Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
+Reviewed-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Chaudhary Amit Kumar <Chaudharyamit.Kumar@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 -
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 ------
+ drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 8 --------
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 14 +++++++++-----
+ 4 files changed, 9 insertions(+), 20 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+index b99fef62357f..7cda01df7f70 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+@@ -144,7 +144,6 @@ extern uint amdgpu_sdma_phase_quantum;
+ extern char *amdgpu_disable_cu;
+ extern char *amdgpu_virtual_display;
+ extern uint amdgpu_pp_feature_mask;
+-extern int amdgpu_vram_page_split;
+ extern int amdgpu_ssg_enabled;
+ extern int amdgpu_ngg;
+ extern int amdgpu_prim_buf_per_se;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index 10ff0cce4f27..7b6d600ffc2c 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -1019,12 +1019,6 @@ static int amdgpu_device_check_arguments(struct amdgpu_device *adev)
+
+ amdgpu_device_check_block_size(adev);
+
+- if (amdgpu_vram_page_split != -1 && (amdgpu_vram_page_split < 16 ||
+- !is_power_of_2(amdgpu_vram_page_split))) {
+- dev_warn(adev->dev, "invalid VRAM page split (%d)\n",
+- amdgpu_vram_page_split);
+- amdgpu_vram_page_split = 1024;
+- }
+ ret = amdgpu_device_get_job_timeout_settings(adev);
+ if (ret) {
+ dev_err(adev->dev, "invalid lockup_timeout parameter syntax\n");
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+index b7788f4580ba..dfa64c5acf16 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+@@ -110,7 +110,6 @@ int amdgpu_vm_fragment_size = -1;
+ int amdgpu_vm_block_size = -1;
+ int amdgpu_vm_fault_stop = 0;
+ int amdgpu_vm_debug = 0;
+-int amdgpu_vram_page_split = 512;
+ int amdgpu_vm_update_mode = -1;
+ int amdgpu_exp_hw_support = 0;
+ int amdgpu_dc = -1;
+@@ -347,13 +346,6 @@ module_param_named(vm_debug, amdgpu_vm_debug, int, 0644);
+ MODULE_PARM_DESC(vm_update_mode, "VM update using CPU (0 = never (default except for large BAR(LB)), 1 = Graphics only, 2 = Compute only (default for LB), 3 = Both");
+ module_param_named(vm_update_mode, amdgpu_vm_update_mode, int, 0444);
+
+-/**
+- * DOC: vram_page_split (int)
+- * Override the number of pages after we split VRAM allocations (default 512, -1 = disable). The default is 512.
+- */
+-MODULE_PARM_DESC(vram_page_split, "Number of pages after we split VRAM allocations (default 512, -1 = disable)");
+-module_param_named(vram_page_split, amdgpu_vram_page_split, int, 0444);
+-
+ /**
+ * DOC: exp_hw_support (int)
+ * Enable experimental hw support (1 = enable). The default is 0 (disabled).
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
+index ec9ea3fdbb4a..8aea2f21b202 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
+@@ -284,17 +284,21 @@ static int amdgpu_vram_mgr_new(struct ttm_mem_type_manager *man,
+ if (!lpfn)
+ lpfn = man->size;
+
+- if (place->flags & TTM_PL_FLAG_CONTIGUOUS ||
+- amdgpu_vram_page_split == -1) {
++ if (place->flags & TTM_PL_FLAG_CONTIGUOUS) {
+ pages_per_node = ~0ul;
+ num_nodes = 1;
+ } else {
+- pages_per_node = max((uint32_t)amdgpu_vram_page_split,
+- mem->page_alignment);
++#ifdef CONFIG_TRANSPARENT_HUGEPAGE
++ pages_per_node = HPAGE_PMD_NR;
++#else
++ /* default to 2MB */
++ pages_per_node = (2UL << (20UL - PAGE_SHIFT));
++#endif
++ pages_per_node = max((uint32_t)pages_per_node, mem->page_alignment);
+ num_nodes = DIV_ROUND_UP(mem->num_pages, pages_per_node);
+ }
+
+- nodes = kvmalloc_array(num_nodes, sizeof(*nodes),
++ nodes = kvmalloc_array((uint32_t)num_nodes, sizeof(*nodes),
+ GFP_KERNEL | __GFP_ZERO);
+ if (!nodes)
+ return -ENOMEM;
+--
+2.17.1
+