diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1348-drm-amdkfd-Add-module-parameter-priv_cp_queues.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1348-drm-amdkfd-Add-module-parameter-priv_cp_queues.patch | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1348-drm-amdkfd-Add-module-parameter-priv_cp_queues.patch b/meta-amd-bsp/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-amd-bsp/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 + |