diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4285-drm-amdkfd-Simplify-packet-manager-initialization.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/4285-drm-amdkfd-Simplify-packet-manager-initialization.patch | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4285-drm-amdkfd-Simplify-packet-manager-initialization.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4285-drm-amdkfd-Simplify-packet-manager-initialization.patch new file mode 100644 index 00000000..b48471e0 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4285-drm-amdkfd-Simplify-packet-manager-initialization.patch @@ -0,0 +1,117 @@ +From 694226f4f18f76d296b149049528cc64d83cb664 Mon Sep 17 00:00:00 2001 +From: Felix Kuehling <Felix.Kuehling@amd.com> +Date: Tue, 24 Apr 2018 18:05:50 -0400 +Subject: [PATCH 4285/5725] drm/amdkfd: Simplify packet manager initialization + +Assign the function tables directly instead of doing it in a one-line +function. Also making the tables const while I'm at it. + +Change-Id: If03fe1f89fc5badf15f3e9dd356b44601152bd7b +Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> +--- + drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c | 8 +------- + drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_vi.c | 7 +------ + drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 4 ++-- + drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 9 ++++----- + 4 files changed, 8 insertions(+), 20 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c +index c6d5a33..6724b1a 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c +@@ -323,7 +323,7 @@ static int pm_release_mem_v9(uint64_t gpu_addr, uint32_t *buffer) + return 0; + } + +-static struct packet_manager_funcs kfd_v9_pm_funcs = { ++const struct packet_manager_funcs kfd_v9_pm_funcs = { + .map_process = pm_map_process_v9, + .runlist = pm_runlist_v9, + .set_resources = pm_set_resources_vi, +@@ -339,9 +339,3 @@ static struct packet_manager_funcs kfd_v9_pm_funcs = { + .query_status_size = sizeof(struct pm4_mes_query_status), + .release_mem_size = sizeof(struct pm4_mec_release_mem) + }; +- +-void kfd_pm_func_init_v9(struct packet_manager *pm) +-{ +- pm->pmf = &kfd_v9_pm_funcs; +-} +- +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_vi.c b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_vi.c +index a1a2e7b..357478f 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_vi.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_vi.c +@@ -358,7 +358,7 @@ static int pm_release_mem_vi(uint64_t gpu_addr, uint32_t *buffer) + return 0; + } + +-static struct packet_manager_funcs kfd_vi_pm_funcs = { ++const struct packet_manager_funcs kfd_vi_pm_funcs = { + .map_process = pm_map_process_vi, + .runlist = pm_runlist_vi, + .set_resources = pm_set_resources_vi, +@@ -374,8 +374,3 @@ static struct packet_manager_funcs kfd_vi_pm_funcs = { + .query_status_size = sizeof(struct pm4_mes_query_status), + .release_mem_size = sizeof(struct pm4_mec_release_mem) + }; +- +-void kfd_pm_func_init_vi(struct packet_manager *pm) +-{ +- pm->pmf = &kfd_vi_pm_funcs; +-} +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c +index 699352b..bc6e854 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c +@@ -237,11 +237,11 @@ int pm_init(struct packet_manager *pm, struct device_queue_manager *dqm) + case CHIP_FIJI: + case CHIP_POLARIS10: + case CHIP_POLARIS11: +- kfd_pm_func_init_vi(pm); ++ pm->pmf = &kfd_vi_pm_funcs; + break; + case CHIP_VEGA10: + case CHIP_RAVEN: +- kfd_pm_func_init_v9(pm); ++ pm->pmf = &kfd_v9_pm_funcs; + break; + default: + BUG(); +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +index 62bc7df..bb05e95 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +@@ -992,7 +992,7 @@ struct packet_manager { + struct kfd_mem_obj *ib_buffer_obj; + unsigned int ib_size_bytes; + +- struct packet_manager_funcs *pmf; ++ const struct packet_manager_funcs *pmf; + }; + + struct packet_manager_funcs { +@@ -1024,6 +1024,9 @@ struct packet_manager_funcs { + int release_mem_size; + }; + ++extern const struct packet_manager_funcs kfd_vi_pm_funcs; ++extern const struct packet_manager_funcs kfd_v9_pm_funcs; ++ + int pm_init(struct packet_manager *pm, struct device_queue_manager *dqm); + void pm_uninit(struct packet_manager *pm); + int pm_send_set_resources(struct packet_manager *pm, +@@ -1044,10 +1047,6 @@ unsigned int pm_build_pm4_header(unsigned int opcode, size_t packet_size); + int pm_set_resources_vi(struct packet_manager *pm, uint32_t *buffer, + struct scheduling_resources *res); + +-void kfd_pm_func_init_vi(struct packet_manager *pm); +-void kfd_pm_func_init_v9(struct packet_manager *pm); +- +- + uint64_t kfd_get_number_elems(struct kfd_dev *kfd); + + /* Events */ +-- +2.7.4 + |