aboutsummaryrefslogtreecommitdiffstats
path: root/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1348-drm-amdkfd-Add-module-parameter-priv_cp_queues.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1348-drm-amdkfd-Add-module-parameter-priv_cp_queues.patch')
-rw-r--r--meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1348-drm-amdkfd-Add-module-parameter-priv_cp_queues.patch100
1 files changed, 100 insertions, 0 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1348-drm-amdkfd-Add-module-parameter-priv_cp_queues.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1348-drm-amdkfd-Add-module-parameter-priv_cp_queues.patch
new file mode 100644
index 00000000..315a468b
--- /dev/null
+++ b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1348-drm-amdkfd-Add-module-parameter-priv_cp_queues.patch
@@ -0,0 +1,100 @@
+From cae69756523b0a50416292cabd39fd6a30001557 Mon Sep 17 00:00:00 2001
+From: Amber Lin <Amber.Lin@amd.com>
+Date: Thu, 7 Sep 2017 11:23:48 -0400
+Subject: [PATCH 1348/4131] drm/amdkfd: Add module parameter, priv_cp_queues
+
+Add a module parameter, priv_cp_queues, to enable privileged access of CP
+for user mode queues if amdkfd.priv_cp_queues=1 is set. Default is
+disabled.
+
+Change-Id: Iea2fe88b4a16826e8c1d3a05f4ee48b67c4f2386
+Signed-off-by: Amber Lin <Amber.Lin@amd.com>
+Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
+---
+ drivers/gpu/drm/amd/amdkfd/kfd_module.c | 5 +++++
+ drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c | 4 ++++
+ drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c | 4 ++++
+ drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c | 4 ++++
+ drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 5 +++++
+ 5 files changed, 22 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_module.c b/drivers/gpu/drm/amd/amdkfd/kfd_module.c
+index aba3e9d..ba4d5de 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_module.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_module.c
+@@ -89,6 +89,11 @@ module_param_named(noretry, vega10_noretry, int, 0644);
+ MODULE_PARM_DESC(noretry,
+ "Set sh_mem_config.retry_disable on Vega10 (0 = retry enabled (default), 1 = retry disabled)");
+
++int priv_cp_queues;
++module_param(priv_cp_queues, int, 0644);
++MODULE_PARM_DESC(priv_cp_queues,
++ "Enable privileged mode for CP queues (0 = off (default), 1 = on)");
++
+ int kgd2kfd_init(unsigned int interface_version,
+ const struct kgd2kfd_calls **g2f)
+ {
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c
+index b96f684..64bf653 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c
+@@ -159,6 +159,10 @@ static int init_mqd(struct mqd_manager *mm, void **mqd,
+ if (q->format == KFD_QUEUE_FORMAT_AQL)
+ m->cp_hqd_iq_rptr = AQL_ENABLE;
+
++ if (priv_cp_queues)
++ m->cp_hqd_pq_control |=
++ 1 << CP_HQD_PQ_CONTROL__PRIV_STATE__SHIFT;
++
+ *mqd = m;
+ if (gart_addr)
+ *gart_addr = addr;
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
+index d603ce9..0713cac 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
+@@ -170,6 +170,10 @@ static int init_mqd(struct mqd_manager *mm, void **mqd,
+ m->cp_hqd_wg_state_offset = q->ctl_stack_size;
+ }
+
++ if (priv_cp_queues)
++ m->cp_hqd_pq_control |=
++ 1 << CP_HQD_PQ_CONTROL__PRIV_STATE__SHIFT;
++
+ *mqd = m;
+ if (gart_addr)
+ *gart_addr = addr;
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c
+index a01e703..a5ba6f7 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c
+@@ -172,6 +172,10 @@ static int init_mqd(struct mqd_manager *mm, void **mqd,
+ m->cp_hqd_wg_state_offset = q->ctl_stack_size;
+ }
+
++ if (priv_cp_queues)
++ m->cp_hqd_pq_control |=
++ 1 << CP_HQD_PQ_CONTROL__PRIV_STATE__SHIFT;
++
+ *mqd = m;
+ if (gart_addr)
+ *gart_addr = addr;
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
+index 43a8838..fc2936b 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
+@@ -143,6 +143,11 @@ extern int ignore_crat;
+ */
+ extern int vega10_noretry;
+
++/*
++ * Enable privileged mode for all CP queues including user queues
++ */
++extern int priv_cp_queues;
++
+ /**
+ * enum kfd_sched_policy
+ *
+--
+2.7.4
+