diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4394-drm-amdkfd-Only-keep-release_mem-function-for-Hawaii.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4394-drm-amdkfd-Only-keep-release_mem-function-for-Hawaii.patch | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4394-drm-amdkfd-Only-keep-release_mem-function-for-Hawaii.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4394-drm-amdkfd-Only-keep-release_mem-function-for-Hawaii.patch new file mode 100644 index 00000000..5b31dfde --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4394-drm-amdkfd-Only-keep-release_mem-function-for-Hawaii.patch @@ -0,0 +1,136 @@ +From ac6b4c83d151966d129fd5eea92087da0d02702b Mon Sep 17 00:00:00 2001 +From: Yong Zhao <Yong.Zhao@amd.com> +Date: Wed, 30 Oct 2019 19:22:11 -0400 +Subject: [PATCH 4394/4736] drm/amdkfd: Only keep release_mem function for + Hawaii + +release_mem is only used for Hawaii, but because GFX7 and GFX8 share the +same function pointer structure, so we only delete release_mem for GFX9 +and GFX10. + +Change-Id: I13787a8a29b83e7516c582a7401f2e14721edf5f +Signed-off-by: Yong Zhao <Yong.Zhao@amd.com> +Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> +--- + .../gpu/drm/amd/amdkfd/kfd_kernel_queue_v10.c | 35 ++----------------- + .../gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c | 33 ++--------------- + 2 files changed, 4 insertions(+), 64 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v10.c b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v10.c +index 7a695b9a2bcd..5ee593ba3137 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v10.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v10.c +@@ -338,37 +338,6 @@ static int pm_query_status_v10(struct packet_manager *pm, uint32_t *buffer, + return 0; + } + +- +-static int pm_release_mem_v10(uint64_t gpu_addr, uint32_t *buffer) +-{ +- struct pm4_mec_release_mem *packet; +- +- WARN_ON(!buffer); +- +- packet = (struct pm4_mec_release_mem *)buffer; +- memset(buffer, 0, sizeof(struct pm4_mec_release_mem)); +- +- packet->header.u32All = pm_build_pm4_header(IT_RELEASE_MEM, +- sizeof(struct pm4_mec_release_mem)); +- +- packet->bitfields2.event_type = CACHE_FLUSH_AND_INV_TS_EVENT; +- packet->bitfields2.event_index = event_index__mec_release_mem__end_of_pipe; +- packet->bitfields2.tcl1_action_ena = 1; +- packet->bitfields2.tc_action_ena = 1; +- packet->bitfields2.cache_policy = cache_policy__mec_release_mem__lru; +- +- packet->bitfields3.data_sel = data_sel__mec_release_mem__send_32_bit_low; +- packet->bitfields3.int_sel = +- int_sel__mec_release_mem__send_interrupt_after_write_confirm; +- +- packet->bitfields4.address_lo_32b = (gpu_addr & 0xffffffff) >> 2; +- packet->address_hi = upper_32_bits(gpu_addr); +- +- packet->data_lo = 0; +- +- return sizeof(struct pm4_mec_release_mem) / sizeof(unsigned int); +-} +- + const struct packet_manager_funcs kfd_v10_pm_funcs = { + .map_process = pm_map_process_v10, + .runlist = pm_runlist_v10, +@@ -377,7 +346,7 @@ const struct packet_manager_funcs kfd_v10_pm_funcs = { + .unmap_queues = pm_unmap_queues_v10, + .set_grace_period = pm_set_grace_period_v10, + .query_status = pm_query_status_v10, +- .release_mem = pm_release_mem_v10, ++ .release_mem = NULL, + .map_process_size = sizeof(struct pm4_mes_map_process), + .runlist_size = sizeof(struct pm4_mes_runlist), + .set_resources_size = sizeof(struct pm4_mes_set_resources), +@@ -385,6 +354,6 @@ const struct packet_manager_funcs kfd_v10_pm_funcs = { + .unmap_queues_size = sizeof(struct pm4_mes_unmap_queues), + .set_grace_period_size = sizeof(struct pm4_mec_write_data_mmio), + .query_status_size = sizeof(struct pm4_mes_query_status), +- .release_mem_size = sizeof(struct pm4_mec_release_mem) ++ .release_mem_size = 0, + }; + +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 b5c077b50d1a..42aefc976838 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c +@@ -377,35 +377,6 @@ static int pm_query_status_v9(struct packet_manager *pm, uint32_t *buffer, + return 0; + } + +- +-static int pm_release_mem_v9(uint64_t gpu_addr, uint32_t *buffer) +-{ +- struct pm4_mec_release_mem *packet; +- +- packet = (struct pm4_mec_release_mem *)buffer; +- memset(buffer, 0, sizeof(struct pm4_mec_release_mem)); +- +- packet->header.u32All = pm_build_pm4_header(IT_RELEASE_MEM, +- sizeof(struct pm4_mec_release_mem)); +- +- packet->bitfields2.event_type = CACHE_FLUSH_AND_INV_TS_EVENT; +- packet->bitfields2.event_index = event_index__mec_release_mem__end_of_pipe; +- packet->bitfields2.tcl1_action_ena = 1; +- packet->bitfields2.tc_action_ena = 1; +- packet->bitfields2.cache_policy = cache_policy__mec_release_mem__lru; +- +- packet->bitfields3.data_sel = data_sel__mec_release_mem__send_32_bit_low; +- packet->bitfields3.int_sel = +- int_sel__mec_release_mem__send_interrupt_after_write_confirm; +- +- packet->bitfields4.address_lo_32b = (gpu_addr & 0xffffffff) >> 2; +- packet->address_hi = upper_32_bits(gpu_addr); +- +- packet->data_lo = 0; +- +- return 0; +-} +- + const struct packet_manager_funcs kfd_v9_pm_funcs = { + .map_process = pm_map_process_v9, + .runlist = pm_runlist_v9, +@@ -414,7 +385,7 @@ const struct packet_manager_funcs kfd_v9_pm_funcs = { + .unmap_queues = pm_unmap_queues_v9, + .set_grace_period = pm_set_grace_period_v9, + .query_status = pm_query_status_v9, +- .release_mem = pm_release_mem_v9, ++ .release_mem = NULL, + .map_process_size = sizeof(struct pm4_mes_map_process), + .runlist_size = sizeof(struct pm4_mes_runlist), + .set_resources_size = sizeof(struct pm4_mes_set_resources), +@@ -422,5 +393,5 @@ const struct packet_manager_funcs kfd_v9_pm_funcs = { + .unmap_queues_size = sizeof(struct pm4_mes_unmap_queues), + .set_grace_period_size = sizeof(struct pm4_mec_write_data_mmio), + .query_status_size = sizeof(struct pm4_mes_query_status), +- .release_mem_size = sizeof(struct pm4_mec_release_mem) ++ .release_mem_size = 0, + }; +-- +2.17.1 + |