linux_dsm_epyc7002/drivers/gpu/drm/amd/amdkfd
Rajneesh Bhardwaj 9593f4d6a6 drm/amdkfd: refactor runtime pm for baco
So far the kfd driver implemented same routines for runtime and system
wide suspend and resume (s2idle or mem). During system wide suspend the
kfd aquires an atomic lock that prevents any more user processes to
create queues and interact with kfd driver and amd gpu. This mechanism
created problem when amdgpu device is runtime suspended with BACO
enabled. Any application that relies on kfd driver fails to load because
the driver reports a locked kfd device since gpu is runtime suspended.

However, in an ideal case, when gpu is runtime  suspended the kfd driver
should be able to:

 - auto resume amdgpu driver whenever a client requests compute service
 - prevent runtime suspend for amdgpu  while kfd is in use

This change refactors the amdgpu and amdkfd drivers to support BACO and
runtime power management.

Reviewed-by: Oak Zeng <oak.zeng@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2020-02-12 16:00:54 -05:00
..
cik_event_interrupt.c drm/amdkfd: Eliminate get_atc_vmid_pasid_mapping_valid 2019-10-03 09:11:04 -05:00
cik_int.h
cik_regs.h
cwsr_trap_handler_gfx8.asm drm/amdkfd: Remove dead code from gfx8/gfx9 trap handlers 2019-07-30 23:22:18 -05:00
cwsr_trap_handler_gfx9.asm drm/amdkfd: Remove dead code from gfx8/gfx9 trap handlers 2019-07-30 23:22:18 -05:00
cwsr_trap_handler_gfx10.asm drm/amdkfd: Fix race in gfx10 context restore handler 2019-10-03 09:11:04 -05:00
cwsr_trap_handler.h drm/amdkfd: Fix race in gfx10 context restore handler 2019-10-03 09:11:04 -05:00
Kconfig drm/amdgpu: fix license on Kconfig and Makefiles 2019-12-11 15:22:08 -05:00
kfd_chardev.c drm/amdkfd: show warning when kfd is locked 2020-02-12 16:00:47 -05:00
kfd_crat.c drm/amdkfd: bug fix for out of bounds mem on gpu cache filling info 2019-10-30 11:06:51 -04:00
kfd_crat.h drm/amdkfd: Adjust weight to represent num_hops info when report xgmi iolink 2019-05-24 12:20:48 -05:00
kfd_dbgdev.c drm/amdkfd: Eliminate unnecessary kernel queue function pointers 2019-12-05 16:24:36 -05:00
kfd_dbgdev.h
kfd_dbgmgr.c drm/amdkfd: Use hex print format for pasid 2019-10-03 09:11:03 -05:00
kfd_dbgmgr.h
kfd_debugfs.c drm/amdkfd: Fix permissions of hang_hws 2020-01-07 11:54:30 -05:00
kfd_device_queue_manager_cik.c drm/amdkfd: Introduce asic-specific mqd_manager_init function 2019-05-24 12:21:02 -05:00
kfd_device_queue_manager_v9.c drm/amdkfd: Consistently apply noretry setting 2019-07-16 13:02:55 -05:00
kfd_device_queue_manager_v10.c drm/amdkfd: Add navi10 support to amdkfd. (v3) 2019-06-21 18:59:24 -05:00
kfd_device_queue_manager_vi.c drm/amdkfd: Introduce asic-specific mqd_manager_init function 2019-05-24 12:21:02 -05:00
kfd_device_queue_manager.c drm/amdkfd: Fix a bug in SDMA RLC queue counting under HWS mode 2020-02-04 10:32:41 -05:00
kfd_device_queue_manager.h drm/amdkfd: Improve HWS hang detection and handling 2020-01-07 11:54:56 -05:00
kfd_device.c drm/amdkfd: refactor runtime pm for baco 2020-02-12 16:00:54 -05:00
kfd_doorbell.c drm/amdkfd: Use better name to indicate the offset is in dwords 2019-11-13 15:29:45 -05:00
kfd_events.c drm/amdkfd: Simplify the mmap offset related bit operations 2019-11-13 15:29:45 -05:00
kfd_events.h
kfd_flat_memory.c drm/amdkfd: Check against device cgroup 2019-10-07 15:11:38 -05:00
kfd_int_process_v9.c drm/amdkfd: Query vmid pasid mapping through stored info for non HWS 2019-10-03 09:11:03 -05:00
kfd_interrupt.c drm/amdkfd: fix a potential NULL pointer dereference (v2) 2019-10-03 09:11:00 -05:00
kfd_iommu.c drm/amdkfd: remove set but not used variable 'top_dev' 2019-11-19 10:12:51 -05:00
kfd_iommu.h
kfd_kernel_queue.c drm/amdkfd: Avoid hanging hardware in stop_cpsch 2020-01-07 11:55:04 -05:00
kfd_kernel_queue.h drm/amdkfd: Eliminate unnecessary kernel queue function pointers 2019-12-05 16:24:36 -05:00
kfd_module.c drm/amdkfd: add missing void argument to function kgd2kfd_init 2019-10-07 15:10:26 -05:00
kfd_mqd_manager_cik.c drm/amdkfd: DIQ should not use HIQ way to allocate memory 2019-11-22 14:27:11 -05:00
kfd_mqd_manager_v9.c drm/amdkfd: use kiq to load the mqd of hiq queue for gfx v9 (v6) 2020-01-16 13:34:50 -05:00
kfd_mqd_manager_v10.c drm/amdkfd: use map_queues for hiq on gfx v10 as well 2020-01-16 13:34:57 -05:00
kfd_mqd_manager_vi.c drm/amdkfd: Remove duplicate functions update_mqd_hiq() 2019-11-22 14:27:11 -05:00
kfd_mqd_manager.c drm/amdkfd: Extend CU mask to 8 SEs (v3) 2019-08-02 10:19:11 -05:00
kfd_mqd_manager.h drm/amdkfd: Extend CU mask to 8 SEs (v3) 2019-08-02 10:19:11 -05:00
kfd_packet_manager_v9.c drm/amdkfd: Rename kfd_kernel_queue_*.c to kfd_packet_manager_*.c 2019-11-19 09:47:23 -05:00
kfd_packet_manager_vi.c drm/amdkfd: Rename kfd_kernel_queue_*.c to kfd_packet_manager_*.c 2019-11-19 09:47:23 -05:00
kfd_packet_manager.c drm/amdkfd: Avoid hanging hardware in stop_cpsch 2020-01-07 11:55:04 -05:00
kfd_pasid.c
kfd_pm4_headers_ai.h drm/amdkfd: Support bigger gds size 2019-07-18 14:18:03 -05:00
kfd_pm4_headers_diq.h
kfd_pm4_headers_vi.h drm/amdkfd: Delete alloc_format field from map_queue struct 2019-05-24 12:21:03 -05:00
kfd_pm4_headers.h
kfd_pm4_opcodes.h
kfd_priv.h drm/amdkfd: refactor runtime pm for baco 2020-02-12 16:00:54 -05:00
kfd_process_queue_manager.c drm/amdkfd: Add queue information to sysfs 2020-02-06 15:04:38 -05:00
kfd_process.c drm/amdkfd: refactor runtime pm for baco 2020-02-12 16:00:54 -05:00
kfd_queue.c
kfd_topology.c drm/amdkfd: expose num_cp_queues data field to topology node (v2) 2019-12-19 10:10:18 -05:00
kfd_topology.h drm/amdkfd: expose num_cp_queues data field to topology node (v2) 2019-12-19 10:10:18 -05:00
Makefile drm/amdkfd: Rename kfd_kernel_queue_*.c to kfd_packet_manager_*.c 2019-11-19 09:47:23 -05:00
soc15_int.h