]> git.ipfire.org Git - thirdparty/kernel/linux.git/log
thirdparty/kernel/linux.git
2 months agodrm/amd/pm: Use common helper for smuv13.0.7 dpm
Lijo Lazar [Thu, 27 Nov 2025 10:41:46 +0000 (16:11 +0530)] 
drm/amd/pm: Use common helper for smuv13.0.7 dpm

Use helper function to print smuv13.0.7 dpm tables to sysfs.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use common helper for smuv13.0.6 dpm
Lijo Lazar [Thu, 27 Nov 2025 10:35:42 +0000 (16:05 +0530)] 
drm/amd/pm: Use common helper for smuv13.0.6 dpm

Use helper function to print navi10 dpm tables to sysfs.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use common helper for smuv13.0.0 dpm
Lijo Lazar [Thu, 27 Nov 2025 10:27:22 +0000 (15:57 +0530)] 
drm/amd/pm: Use common helper for smuv13.0.0 dpm

Use helper function to print smuv13.0.0 dpm tables to sysfs.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use common helper for aldebaran dpm table
Lijo Lazar [Thu, 27 Nov 2025 10:00:43 +0000 (15:30 +0530)] 
drm/amd/pm: Use common helper for aldebaran dpm table

Use helper function to print aldebaran dpm tables to sysfs. Remove
unused functions.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use common helper for sienna dpm table
Lijo Lazar [Thu, 27 Nov 2025 09:48:23 +0000 (15:18 +0530)] 
drm/amd/pm: Use common helper for sienna dpm table

Use helper function to print sienna cichlid dpm tables to sysfs.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use common helper for navi10 dpm table
Lijo Lazar [Thu, 27 Nov 2025 08:35:27 +0000 (14:05 +0530)] 
drm/amd/pm: Use common helper for navi10 dpm table

Use helper function to print navi10 dpm tables to sysfs. Also, remove
FCLK table as it is not supported in navi10.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use common helper for arcturus dpm
Lijo Lazar [Wed, 26 Nov 2025 05:17:10 +0000 (10:47 +0530)] 
drm/amd/pm: Use common helper for arcturus dpm

Use the helper function to print DPM clock levels to sysfs.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Add a helper to show dpm table
Lijo Lazar [Tue, 25 Nov 2025 15:24:58 +0000 (20:54 +0530)] 
drm/amd/pm: Add a helper to show dpm table

Add a helper function to print clock and pcie dpm levels through sysfs.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use generic pcie dpm table for SMUv14
Lijo Lazar [Tue, 25 Nov 2025 12:33:30 +0000 (18:03 +0530)] 
drm/amd/pm: Use generic pcie dpm table for SMUv14

Use smu_pcie_table for SMUv14 SOCs.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use generic pcie dpm table for SMUv13
Lijo Lazar [Tue, 25 Nov 2025 12:18:48 +0000 (17:48 +0530)] 
drm/amd/pm: Use generic pcie dpm table for SMUv13

Use smu_pcie_table for SMUv13 SOCs.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use generic pcie dpm table for SMUv11
Lijo Lazar [Tue, 25 Nov 2025 11:52:34 +0000 (17:22 +0530)] 
drm/amd/pm: Use generic pcie dpm table for SMUv11

Use smu_pcie_table for SMUv11 SOCs.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Add generic pcie dpm table
Lijo Lazar [Tue, 25 Nov 2025 11:06:08 +0000 (16:36 +0530)] 
drm/amd/pm: Add generic pcie dpm table

Add a generic pcie dpm table which contains the number of link clock
levels and link clock, pcie gen speed/width corresponding to each level.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use generic dpm table for SMUv14 SOCs
Lijo Lazar [Tue, 25 Nov 2025 10:23:25 +0000 (15:53 +0530)] 
drm/amd/pm: Use generic dpm table for SMUv14 SOCs

Use the generic dpm table structure instead of SMUv14 specific table.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use generic dpm table for SMUv13 SOCs
Lijo Lazar [Tue, 25 Nov 2025 10:10:05 +0000 (15:40 +0530)] 
drm/amd/pm: Use generic dpm table for SMUv13 SOCs

Use the generic dpm table structure instead of SMUv13 specific table.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: introduce new ioctl AMDKFD_IOC_CREATE_PROCESS
Zhu Lingshan [Thu, 21 Aug 2025 09:22:44 +0000 (17:22 +0800)] 
amdkfd: introduce new ioctl AMDKFD_IOC_CREATE_PROCESS

This commit implemetns a new ioctl AMDKFD_IOC_CREATE_PROCESS
that creates a new secondary kfd_progress on the FD.

To keep backward compatibility, userspace programs need to invoke
this ioctl explicitly on a FD to create a secondary
kfd_process which replacing its primary kfd_process.

This commit bumps ioctl minor version.

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: process debug trap ioctl only on a primary context
Zhu Lingshan [Mon, 13 Oct 2025 07:58:31 +0000 (15:58 +0800)] 
amdkfd: process debug trap ioctl only on a primary context

Set_debug_trap ioctl should work on a specific kfd_process
even when multiple contexts feature is implemented.

For consistency, this commit allow set_debug_trap ioctl only work on the
primary kfd process of a user space program

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use generic dpm table for SMUv11 SOCs
Lijo Lazar [Tue, 25 Nov 2025 07:22:10 +0000 (12:52 +0530)] 
drm/amd/pm: Use generic dpm table for SMUv11 SOCs

Remove SMUv11 specific DPM table and use the generic dpm table
structure.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Add clock table structure
Lijo Lazar [Tue, 25 Nov 2025 06:43:51 +0000 (12:13 +0530)] 
drm/amd/pm: Add clock table structure

Add a common clock table structure to represent dpm levels for different
clocks.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdkfd: Use huge page size to check split svm range alignment
Xiaogang Chen [Mon, 1 Dec 2025 20:12:29 +0000 (14:12 -0600)] 
drm/amdkfd: Use huge page size to check split svm range alignment

When split svm ranges that have been mapped using huge page should use huge
page size(2MB) to check split range alignment, not prange->granularity that
means migration granularity.

Fixes: 7ef6b2d4b7e5 ("drm/amdkfd: remap unaligned svm ranges that have split")
Signed-off-by: Xiaogang Chen <xiaogang.chen@amd.com>
Reviewed-by: Philip Yang <Philip.Yang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: add a helper for processing recoverable GPUVM faults
Alex Deucher [Mon, 1 Dec 2025 19:46:53 +0000 (14:46 -0500)] 
drm/amdgpu: add a helper for processing recoverable GPUVM faults

Add a common helper to remove the repeated logic from each
gmc module.

Suggested-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Deprecate print_clock_levels interface
Lijo Lazar [Wed, 26 Nov 2025 10:38:14 +0000 (16:08 +0530)] 
drm/amd/pm: Deprecate print_clock_levels interface

Use emit_clock_levels instead of print_clock_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clock_levels in vega20
Lijo Lazar [Wed, 26 Nov 2025 10:15:48 +0000 (15:45 +0530)] 
drm/amd/pm: Use emit_clock_levels in vega20

Move to emit_clock_levels from print_clock_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clock_levels in vega12
Lijo Lazar [Wed, 26 Nov 2025 10:09:58 +0000 (15:39 +0530)] 
drm/amd/pm: Use emit_clock_levels in vega12

Move to emit_clock_levels from print_clock_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clock_levels in vega10
Lijo Lazar [Wed, 26 Nov 2025 09:29:14 +0000 (14:59 +0530)] 
drm/amd/pm: Use emit_clock_levels in vega10

Keep only emit_clock_levels, and remove print_clock_levels.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clock_levels in SMUv10.0
Lijo Lazar [Wed, 26 Nov 2025 09:17:07 +0000 (14:47 +0530)] 
drm/amd/pm: Use emit_clock_levels in SMUv10.0

Move to emit_clock_levels from print_clock_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clock_levels in SMUv8.0
Lijo Lazar [Wed, 26 Nov 2025 09:15:16 +0000 (14:45 +0530)] 
drm/amd/pm: Use emit_clock_levels in SMUv8.0

Move to emit_clock_levels from print_clock_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clock_levels in SMUv7.0
Lijo Lazar [Wed, 26 Nov 2025 08:08:40 +0000 (13:38 +0530)] 
drm/amd/pm: Use emit_clock_levels in SMUv7.0

Move to emit_clock_levels from print_clock_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clk_levels in SMUv14.0.2
Lijo Lazar [Wed, 26 Nov 2025 07:57:44 +0000 (13:27 +0530)] 
drm/amd/pm: Use emit_clk_levels in SMUv14.0.2

Move to emit_clk_levels from print_clk_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clk_levels in SMUv14.0.0
Lijo Lazar [Wed, 26 Nov 2025 07:54:19 +0000 (13:24 +0530)] 
drm/amd/pm: Use emit_clk_levels in SMUv14.0.0

Move to emit_clk_levels from print_clk_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clk_levels in yellow carp
Lijo Lazar [Wed, 26 Nov 2025 07:50:50 +0000 (13:20 +0530)] 
drm/amd/pm: Use emit_clk_levels in yellow carp

Move to emit_clk_levels from print_clk_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clk_levels in SMUv13.0.7
Lijo Lazar [Wed, 26 Nov 2025 07:48:38 +0000 (13:18 +0530)] 
drm/amd/pm: Use emit_clk_levels in SMUv13.0.7

Move to emit_clk_levels from print_clk_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clk_levels in SMUv13.0.6
Lijo Lazar [Wed, 26 Nov 2025 07:44:45 +0000 (13:14 +0530)] 
drm/amd/pm: Use emit_clk_levels in SMUv13.0.6

Move to emit_clk_levels from print_clk_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clk_levels in SMUv13.0.5
Lijo Lazar [Wed, 26 Nov 2025 07:33:32 +0000 (13:03 +0530)] 
drm/amd/pm: Use emit_clk_levels in SMUv13.0.5

Move to emit_clk_levels from print_clk_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clk_levels in SMUv13.0.4
Lijo Lazar [Wed, 26 Nov 2025 07:30:18 +0000 (13:00 +0530)] 
drm/amd/pm: Use emit_clk_levels in SMUv13.0.4

Move to emit_clk_levels from print_clk_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clk_levels in SMUv13.0.0
Lijo Lazar [Wed, 26 Nov 2025 07:25:37 +0000 (12:55 +0530)] 
drm/amd/pm: Use emit_clk_levels in SMUv13.0.0

Move to emit_clk_levels from print_clk_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clk_levels in renoir
Lijo Lazar [Wed, 26 Nov 2025 07:17:06 +0000 (12:47 +0530)] 
drm/amd/pm: Use emit_clk_levels in renoir

Move to emit_clk_levels from print_clk_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clk_levels in vangogh
Lijo Lazar [Wed, 26 Nov 2025 07:03:52 +0000 (12:33 +0530)] 
drm/amd/pm: Use emit_clk_levels in vangogh

Move to emit_clk_levels from print_clk_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clk_levels in cyan skillfish
Lijo Lazar [Wed, 26 Nov 2025 06:59:41 +0000 (12:29 +0530)] 
drm/amd/pm: Use emit_clk_levels in cyan skillfish

Move to emit_clk_levels from print_clk_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: add soc config init for GC v12_1
Likun Gao [Fri, 21 Mar 2025 03:23:44 +0000 (11:23 +0800)] 
drm/amdgpu: add soc config init for GC v12_1

Add function to initialize soc configuration information
for GC 12.1.0 ASICs.
Use it to map IPs and other SOC related information once IP
configuration information is available through discovery.

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Use emit_clk_levels in sienna_cichild
Lijo Lazar [Wed, 26 Nov 2025 06:52:15 +0000 (12:22 +0530)] 
drm/amd/pm: Use emit_clk_levels in sienna_cichild

Move to emit_clk_levels from print_clk_levels

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/pm: Remove print_clk_levels from navi10
Lijo Lazar [Wed, 26 Nov 2025 06:33:59 +0000 (12:03 +0530)] 
drm/amd/pm: Remove print_clk_levels from navi10

Keep only emit_clk_levels as it covers print_clk_levels functionality

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: fence handler evict and restore a kfd process by its context id
Zhu Lingshan [Tue, 5 Aug 2025 03:31:32 +0000 (11:31 +0800)] 
amdkfd: fence handler evict and restore a kfd process by its context id

In fence enable signaling handler, kfd evicts
and restores the corresponding kfd_process,
this commit helps find the kfd_process by
both its mm and context id.

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: record kfd context id in amdkfd_fence
Zhu Lingshan [Wed, 6 Aug 2025 13:37:26 +0000 (21:37 +0800)] 
amdkfd: record kfd context id in amdkfd_fence

This commit records the context id of the
cooresponding kfd process in amdkfd_fence

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu/mes12_1: set multi-xcc mes log address
Michael Chen [Fri, 21 Mar 2025 18:39:03 +0000 (14:39 -0400)] 
drm/amdgpu/mes12_1: set multi-xcc mes log address

Set mes event log address based on xcc id and pipe.

Signed-off-by: Michael Chen <michael.chen@amd.com>
Reviewed-by: Jack Xiao <Jack.Xiao@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu/mes12_1: add cooperative dispatch support
Jack Xiao [Mon, 10 Mar 2025 09:02:36 +0000 (17:02 +0800)] 
drm/amdgpu/mes12_1: add cooperative dispatch support

Add initial cooperative dispatch MES support.
a. set shared cmd buffer for the group of cooperative dispatch mes.
b. automatically dispatch add_hw_queue/remove_hw_queue to master mes.

Signed-off-by: Jack Xiao <Jack.Xiao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdkfd: Add interrupt handling for GFX 12.1.0
Mukul Joshi [Thu, 27 Feb 2025 03:46:54 +0000 (22:46 -0500)] 
drm/amdkfd: Add interrupt handling for GFX 12.1.0

Add interrupt handling for GFX 12.1.0 similar to what is done
for GFX 9.4.3.

Signed-off-by: Mukul Joshi <mukul.joshi@amd.com>
Reviewed-by: Alex Sierra <alex.sierra@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdkfd: Add MQD manager for GFX 12.1.0
Mukul Joshi [Thu, 27 Feb 2025 03:22:00 +0000 (22:22 -0500)] 
drm/amdkfd: Add MQD manager for GFX 12.1.0

This patch adds the following functionality for GFX 12.1.0:
1. Add a new MQD manager for GFX v12.1.0.
2. Add a new 12.1.0 specific device queue manager file.

Signed-off-by: Mukul Joshi <mukul.joshi@amd.com>
Reviewed-by: Alex Sierra <alex.sierra@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdkfd: Add GFX 12.1.0 support in KFD
Mukul Joshi [Thu, 27 Feb 2025 03:09:56 +0000 (22:09 -0500)] 
drm/amdkfd: Add GFX 12.1.0 support in KFD

Add support for GFX 12.1.0 in KFD.

Signed-off-by: Mukul Joshi <mukul.joshi@amd.com>
Reviewed-by: Alex Sierra <alex.sierra@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: Setup PCIe atomics bit in PTE on GFX 12.1.0
Mukul Joshi [Wed, 26 Feb 2025 20:45:46 +0000 (15:45 -0500)] 
drm/amdgpu: Setup PCIe atomics bit in PTE on GFX 12.1.0

To enable atomic access to memory, setup the new PCIe atomics bit
in PTE on GFX 12.1.0.

Signed-off-by: Mukul Joshi <mukul.joshi@amd.com>
Reviewed-by: Alex Sierra <alex.sierra@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: Setup Atomics enable in TCP UTCL0 for GFX 12.1.0
Mukul Joshi [Wed, 26 Feb 2025 20:35:23 +0000 (15:35 -0500)] 
drm/amdgpu: Setup Atomics enable in TCP UTCL0 for GFX 12.1.0

We need to explicitly setup atomics enable in TCP UTCL0 to enable
PCIe atomics to host memory.

Signed-off-by: Mukul Joshi <mukul.joshi@amd.com>
Reviewed-by: Alex Sierra <alex.sierra@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: Fix golden register init for GFX 12.1.0
Mukul Joshi [Wed, 26 Feb 2025 20:29:09 +0000 (15:29 -0500)] 
drm/amdgpu: Fix golden register init for GFX 12.1.0

TCP_UTCL0 registers are not per XCD so don't init them on a per
XCD basis.

Fixes: ad5f1ee0a9b0 ("drm/amdgpu: Add initial support for gfx v12_1")
Signed-off-by: Mukul Joshi <mukul.joshi@amd.com>
Reviewed-by: Alex Sierra <alex.sierra@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: Include the correct pkt header for gfx v12_1
Hawking Zhang [Sun, 16 Mar 2025 11:04:51 +0000 (19:04 +0800)] 
drm/amdgpu: Include the correct pkt header for gfx v12_1

GFX v12_1 should use packets defined in gfx_v12_1_pkt
header file.

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Likun Gao <Likun.Gao@amd.com>
Acked-by: Feifei Xu <Feifei.Xu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd: include rrmt mode for mes_v12_1
Alex Sierra [Fri, 7 Mar 2025 18:17:34 +0000 (12:17 -0600)] 
drm/amd: include rrmt mode for mes_v12_1

Implement rrmt for misc read/write regs ops in mes_v12.
This covers LOCAL/REMOTE XCD and LOCAL/REMOTE AID.

v2: fix comments (Alex)

Signed-off-by: Alex Sierra <alex.sierra@amd.com>
Reviewed-by: Mukul Joshi <mukul.joshi@amd.com>
Reviewed-by: Michael Chen <michael.chen@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: skip SDMA autoload copy if not initialized
Likun Gao [Tue, 11 Mar 2025 06:53:05 +0000 (14:53 +0800)] 
drm/amdgpu: skip SDMA autoload copy if not initialized

Skip SDMA firmware copy for rlc autoload if SDMA not enabled.

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: only set XCC 0 related reg for rlc autoload
Likun Gao [Tue, 4 Mar 2025 02:07:16 +0000 (10:07 +0800)] 
drm/amdgpu: only set XCC 0 related reg for rlc autoload

For RLC autoload, only set XCC id 0 related register to trigger
rlc autoload, no need to trigger muti-times for muti-xcc.

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: update rlc autoload function
Likun Gao [Tue, 18 Feb 2025 03:19:30 +0000 (11:19 +0800)] 
drm/amdgpu: update rlc autoload function

Update rlc autoload function for gfx v12.1.0
to support muti-XCC firmware autoload.

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: remove hdp flush/invalidation completely for gfx12.1.0/sdma7.1.0
Le Ma [Tue, 25 Feb 2025 11:24:33 +0000 (19:24 +0800)] 
drm/amdgpu: remove hdp flush/invalidation completely for gfx12.1.0/sdma7.1.0

Remove the hdp operation and interfaces as the HDP hw does not exist.

v2: add checks to see if hdp funcs exists before do hdp flush/invalidation

Signed-off-by: Le Ma <le.ma@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/include : Update MES v12 API header
Shaoyun Liu [Wed, 5 Feb 2025 17:06:50 +0000 (12:06 -0500)] 
drm/amd/include : Update MES v12 API header

1. Add RRMT option support which will be used for remote die
   register access
2. Update set_hw_resource1 for cooperative mode support
3. Add full_sh_mem_config_data for xnack support

v2: squash in compilation fix

Signed-off-by: Shaoyun Liu <shaoyun.liu@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: Add gfx v12_1_0 to discovery list
Likun Gao [Thu, 13 Feb 2025 02:16:04 +0000 (10:16 +0800)] 
drm/amdgpu: Add gfx v12_1_0 to discovery list

Include gfx v12_1_0 in the discovery list for
gfx IP blocks

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Mukul Joshi <mukul.joshi@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: Add initial support for gfx v12_1
Likun Gao [Mon, 17 Feb 2025 09:13:05 +0000 (17:13 +0800)] 
drm/amdgpu: Add initial support for gfx v12_1

Add initial support for gfx ip block for gc v12_1.

V2: Remove some not applicable bit set.
V3: drop unused header (Alex)
v4: Fix type on copyright
v5: fix num_xcc handling (Alex)

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Mukul Joshi <mukul.joshi@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: record kfd context id into kfd process_info
Zhu Lingshan [Mon, 3 Mar 2025 10:42:50 +0000 (18:42 +0800)] 
amdkfd: record kfd context id into kfd process_info

This commit records the context id of the owner
kfd_process into a kfd process_info when
create it.

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: introduce new helper kfd_lookup_process_by_id
Zhu Lingshan [Thu, 21 Aug 2025 06:41:31 +0000 (14:41 +0800)] 
amdkfd: introduce new helper kfd_lookup_process_by_id

This commit introduces a new helper function
kfd_lookup_process_by_id which can find a
kfd process that identified by its context id from
the kfd process table

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: remove test_kq
Zhu Lingshan [Mon, 4 Aug 2025 08:18:58 +0000 (16:18 +0800)] 
amdkfd: remove test_kq

This commit removes test_kq() function becuse it has been
marked as unused since 2014 and no other functions calls it.

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/display: correct kernel-doc in dml21_wrapper.h
Randy Dunlap [Sat, 29 Nov 2025 07:37:39 +0000 (23:37 -0800)] 
drm/amd/display: correct kernel-doc in dml21_wrapper.h

Fix all kernel-doc warnings in dml21_wrapper.h:
- add missing @dml_ctx entries (2 places)
- fix function prototype typo for dml21_create()
- change a blank kernel-doc line to " *"

Fixes these warnings:
Warning: drivers/gpu/drm/amd/display/dc/dml2_0/dml21/dml21_wrapper.h:30
 function parameter 'dml_ctx' not described in 'dml21_create'
Warning: drivers/gpu/drm/amd/display/dc/dml2_0/dml21/dml21_wrapper.h:30
 expecting prototype for dml2_create(). Prototype was for dml21_create()
 instead
Warning: drivers/gpu/drm/amd/display/dc/dml2_0/dml21/dml21_wrapper.h:55
 bad line:
Warning: drivers/gpu/drm/amd/display/dc/dml2_0/dml21/dml21_wrapper.h:61
 function parameter 'dml_ctx' not described in 'dml21_validate'

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/amdgpu: Move enum for VDD board
Asad Kamal [Fri, 28 Nov 2025 12:10:55 +0000 (20:10 +0800)] 
drm/amd/amdgpu: Move enum for VDD board

Move AMDGPU_PP_SENSOR_VDDBOARD below already existing
members to maintain backward compatibility

Signed-off-by: Asad Kamal <asad.kamal@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: Don't send warning when close drm obj if drm device has been unplug
Xiaogang Chen [Sat, 22 Nov 2025 22:49:22 +0000 (16:49 -0600)] 
drm/amdgpu: Don't send warning when close drm obj if drm device has been unplug

During amdgpu_gem_object_close amdgpu driver cleans vm mapping for the closing
drm obj. If the correspondent adev has been unplug got error -ENODEV code. In
this case do not need send warning message.

Signed-off-by: Xiaogang Chen <xiaogang.chen@amd.com>
Reviewed-by: Kent Russell <kent.russell@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: process pointer of a HIQ should be NULL
Zhu Lingshan [Mon, 4 Aug 2025 07:36:31 +0000 (15:36 +0800)] 
amdkfd: process pointer of a HIQ should be NULL

In kq_initialize, queue->process of a HIQ should
be NULL as initialized, because it does not belong
to any kfd_process.

This commit decommisions the function kfd_get_process() because
it can not locate a specific kfd_process among multiple
contexts and not any code path calls it after this commit.

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: Make pre_asic_init optional
Lijo Lazar [Fri, 28 Nov 2025 07:06:46 +0000 (12:36 +0530)] 
drm/amdgpu: Make pre_asic_init optional

pre_asic_init is not required for all SOCs. Make it optional and remove
empty implementations.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Asad Kamal <asad.kamal@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: remove DIQ support
Zhu Lingshan [Mon, 13 Oct 2025 08:41:36 +0000 (16:41 +0800)] 
amdkfd: remove DIQ support

This commit remove DIQ support because it has been
marked as DEPRECATED since 2022

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: find kfd_process by filep->private_data in kfd_mmap
Zhu Lingshan [Mon, 4 Aug 2025 07:33:51 +0000 (15:33 +0800)] 
amdkfd: find kfd_process by filep->private_data in kfd_mmap

This commit finds the proper kfd_process by
filep->private_data in kfd_mmap,
because the function kfd_get_process()
can not locate a specific kfd process among
multiple contexts.

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: identify a secondary kfd process by its id
Zhu Lingshan [Tue, 14 Oct 2025 09:16:06 +0000 (17:16 +0800)] 
amdkfd: identify a secondary kfd process by its id

This commit introduces a new id field for
struct kfd process, which helps identify
a kfd process among multiple contexts that
all belong to a single user space program.

The sysfs entry of a secondary kfd process
is placed under the sysfs entry folder of
its primary kfd process.

The naming format of the sysfs entry of a secondary
kfd process is "context_%u" where %u is the context id.

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: process USERPTR allocation only on the primary kfd process
Zhu Lingshan [Mon, 30 Jun 2025 03:00:29 +0000 (11:00 +0800)] 
amdkfd: process USERPTR allocation only on the primary kfd process

The lifecycle of the primary kfd process is tied to
the user space program, all secondary kfd process
would be destroyed when fd close. Thus only the primary
kfd process should process USERPTR memory allocation.

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: process svm ioctl only on the primary kfd process
Zhu Lingshan [Fri, 14 Feb 2025 06:06:19 +0000 (14:06 +0800)] 
amdkfd: process svm ioctl only on the primary kfd process

svm ioctl should only be processed on the primary
kfd process because only the lifecycle of the
primary kfd process is tied to the  user space
applicaiton.

Another reason is in virtualization the hypervisor owns
the primary kfd process as a privileged one.

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: destroy kfd secondary contexts through fd close
Zhu Lingshan [Mon, 28 Oct 2024 07:55:01 +0000 (15:55 +0800)] 
amdkfd: destroy kfd secondary contexts through fd close

Life cycle of a KFD secondary context(kfd_process) is tied
to the opened file. Therefore this commit destroy a kfd
secondary context when close the fd it belonging to.

This commit extracts the code removing the kfd_process
from the kfd_process_table to a separate function and
call it in kfd_process_notifier_release_internal unconditionally.

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: Introduce kfd_create_process_sysfs as a separate function
Zhu Lingshan [Tue, 22 Apr 2025 09:28:41 +0000 (17:28 +0800)] 
amdkfd: Introduce kfd_create_process_sysfs as a separate function

KFD creates sysfs entries for a kfd_process in
function kfd_create_process when creating it.

This commit extracts the code creating sysfs
entries to a separate function because it
would be invoked in other code path like
creating secondary kfd contexts (kfd_process).

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/display: Promote DC to 3.2.361
Taimur Hassan [Sat, 22 Nov 2025 04:33:35 +0000 (23:33 -0500)] 
drm/amd/display: Promote DC to 3.2.361

This version brings along the following updates:

 - Fix wrong x_pos and y_pos for cursor offload.
 - Fix Smart Power OLED not working after S4.
 - Fix double cursor when switching between hw and sw cursor.
 - Add configurable SPL namespace prefix.
 - Add register definitions in dcn_hubbub_registers.
 - Add additional info from DML.
 - Add dc interface for query QoS information.
 - Refactor HPD to increase flexibility.
 - Remove unused encoder types.

Reviewed-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Taimur Hassan <Syed.Hassan@amd.com>
Signed-off-by: Roman Li <roman.li@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/display: Add configurable SPL namespace prefix
Navid Assadian [Wed, 12 Nov 2025 19:35:12 +0000 (14:35 -0500)] 
drm/amd/display: Add configurable SPL namespace prefix

[WHY]
SPL is a shared library that is used both in kernel and userspace.
When multiple libraries use SPL as statically linked, namespace
collision occur.

[HOW]
Create a configurable namespace prefix.
Add the prefix to all the public functions of the library to
distinguish between the SPL functions in each library.

Reviewed-by: Samson Tam <samson.tam@amd.com>
Signed-off-by: Navid Assadian <Navid.Assadian@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/display: Reset pipe mask at beginning of cursor offload
Nicholas Kazlauskas [Thu, 20 Nov 2025 14:51:34 +0000 (09:51 -0500)] 
drm/amd/display: Reset pipe mask at beginning of cursor offload

[Why]
Double cursor when switching between hardware and software cursor when
dragging an MPO window can occur with cursor offload enabled.

The abort cursor update in the full programming path is responsible for
this issue since it does not reset the pipe mask when attempting to
submit an empty update.

The firmware programs the payload as requested which may contain
invalid or stale data for the previously enabled pipes, resulting in
an offset or double cursor.

[How]
For performance we don't want to memset the entire payload structure
due to its size, so just reset the pipe mask which will indicate the
payload data is empty.

Reviewed-by: Dillon Varone <dillon.varone@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Roman Li <roman.li@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/display: add register definitions in dcn_hubbub_registers
Charlene Liu [Tue, 18 Nov 2025 21:16:13 +0000 (16:16 -0500)] 
drm/amd/display: add register definitions in dcn_hubbub_registers

Reviewed-by: Roman Li <roman.li@amd.com>
Signed-off-by: Charlene Liu <Charlene.Liu@amd.com>
Signed-off-by: Roman Li <roman.li@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/display: Correct FIXED_VS Link Rate Toggle Condition
Jing Zhou [Mon, 17 Nov 2025 07:18:50 +0000 (15:18 +0800)] 
drm/amd/display: Correct FIXED_VS Link Rate Toggle Condition

[WHY&HOW]
The condition is only perform toggle if FIXED_VS LTTPR reports
no IEEE OUI.
The literal "\x0,\x0,\x0" contains commas changes the
bytes being compared to {0x00,0x2C,0X00}.
The correct literal should be "\x00\x00\x00" without commas.

Reviewed-by: Charlene Liu <charlene.liu@amd.com>
Reviewed-by: Wenjing Liu <wenjing.liu@amd.com>
Signed-off-by: Jing Zhou <Jing.Zhou@amd.com>
Signed-off-by: Roman Li <roman.li@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/display: Add additional info from DML
Nevenko Stupar [Wed, 19 Nov 2025 20:13:48 +0000 (15:13 -0500)] 
drm/amd/display: Add additional info from DML

for DMU when applicable on future platforms.

Reviewed-by: Alvin Lee <alvin.lee2@amd.com>
Signed-off-by: Nevenko Stupar <Nevenko.Stupar@amd.com>
Signed-off-by: Roman Li <roman.li@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/display: Guard FAMS2 configuration updates
Dillon Varone [Tue, 18 Nov 2025 20:58:23 +0000 (20:58 +0000)] 
drm/amd/display: Guard FAMS2 configuration updates

[WHY&HOW]
If DMCUB is not initialized or FAMS2 is not supported, the
interface should not be called.

Reviewed-by: Sridevi Arvindekar <sridevi.arvindekar@amd.com>
Signed-off-by: Dillon Varone <Dillon.Varone@amd.com>
Signed-off-by: Roman Li <roman.li@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/display: add dc interface for query QoS information
Wenjing Liu [Mon, 10 Nov 2025 19:37:26 +0000 (14:37 -0500)] 
drm/amd/display: add dc interface for query QoS information

[why]
Add support for retrieving Quality of Service (QoS) metrics from dc
to enable performance analysis and bottleneck identification. This provides
benchmark tools with real-time bandwidth and latency measurements from hardware
performance counters, helping diagnose display system performance issues.

[how]
- Add dc_get_qos_info() function to DC layer for unified QoS data retrieval
- Implement hardware sequencer interface with function pointers for QoS
measurements
- Integrate QoS metrics: peak/average bandwidth (Mbps) and max/average
latency (ns)

Reviewed-by: Aric Cyr <aric.cyr@amd.com>
Signed-off-by: Wenjing Liu <wenjing.liu@amd.com>
Signed-off-by: Roman Li <roman.li@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/display: Fix wrong x_pos and y_pos for cursor offload
Nicholas Kazlauskas [Wed, 12 Nov 2025 15:58:19 +0000 (10:58 -0500)] 
drm/amd/display: Fix wrong x_pos and y_pos for cursor offload

[Why]
The hubp401_cursor_set_position function programs a different value
than it stores for use with cursor offload.

This can cause a desync when switching between cursor programming paths.

[How]
We do the translation to destination space currently twice: once in the
HWSS layer, and then again in the HUBP layer since we never store the
translated result.

HUBP expects to program the pos->x and pos->y directly for other ASIC,
so follow that pattern here as well.

Reviewed-by: Alvin Lee <alvin.lee2@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Roman Li <roman.li@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/display: refactor HPD to increase flexibility
Dmytro Laktyushkin [Sat, 8 Nov 2025 00:25:42 +0000 (19:25 -0500)] 
drm/amd/display: refactor HPD to increase flexibility

Currently all dcn revisions have to follow the same codepath for
hotplug detection. This change allows per dcn hpd handling consolidating
hpd code in link_encoder.

Reviewed-by: Dillon Varone <dillon.varone@amd.com>
Signed-off-by: Dmytro Laktyushkin <dmytro.laktyushkin@amd.com>
Signed-off-by: Roman Li <roman.li@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/display: Use local variable for analog_engine initialization
Ivan Lipski [Fri, 21 Nov 2025 16:54:31 +0000 (11:54 -0500)] 
drm/amd/display: Use local variable for analog_engine initialization

[Why&How]
Use local variable for analog_engine retrieval and check if it is supported
instead of the struct parameter.

Signed-off-by: Ivan Lipski <ivan.lipski@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amd/display: Remove unused encoder types
Ivan Lipski [Fri, 21 Nov 2025 16:48:49 +0000 (11:48 -0500)] 
drm/amd/display: Remove unused encoder types

[Why&How]
We only support ENCODER_ID_INTERNAL_UNIPHY encoders now, so NUTMEG & TRAVIS
can be removed from translate_encoder_to_transmitter.

Also refactor to use local variables of transmitter to exit early.

V2: Fix construct_phy check for  TRANSMITTER_UKNOWN

Signed-off-by: Ivan Lipski <ivan.lipski@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: find_process_by_mm always return the primary context
Zhu Lingshan [Tue, 29 Oct 2024 08:46:34 +0000 (16:46 +0800)] 
amdkfd: find_process_by_mm always return the primary context

Up until this commit, the kfd multiple contexts feature has
not been fully implemented in mainline kernel yet.

For backawrd compatibility, not break existing use cases,
this commit changes function find_process_by_mm, let it
always return the primary kfd_process.

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: remove the ring param from ttm functions
Pierre-Eric Pelloux-Prayer [Mon, 17 Nov 2025 09:53:14 +0000 (10:53 +0100)] 
drm/amdgpu: remove the ring param from ttm functions

With the removal of the direct_submit argument, the ring param
becomes useless: the jobs are always submitted to buffer_funcs_ring.

Some functions are getting an amdgpu_device argument since they
were getting it from the ring arg.

---
v4: remove adev param from amdgpu_ttm_map_buffer
---

Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Acked-by: Felix Kuehling <felix.kuehling@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: mark the first kfd_process as the primary one
Zhu Lingshan [Mon, 21 Apr 2025 07:47:54 +0000 (15:47 +0800)] 
amdkfd: mark the first kfd_process as the primary one

The first kfd_process is created through open(),
this commit marks it as the primary kfd_process
by assigning a primary id for its context_id.

Only the primary process should register the mmu_notifier.

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: create pm4 header for gc v12_1
Likun Gao [Wed, 19 Feb 2025 04:00:23 +0000 (12:00 +0800)] 
drm/amdgpu: create pm4 header for gc v12_1

Duplicated from nvd.h.
Update Release MEM and Acquire MEM pkt header.

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Mukul Joshi <mukul.joshi@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: Add mes v12_1_0 to discovery list
Jack Xiao [Tue, 18 Feb 2025 03:38:08 +0000 (11:38 +0800)] 
drm/amdgpu: Add mes v12_1_0 to discovery list

Include mes v12_1_0 in the discovery list for
mes IP blocks.

Signed-off-by: Jack Xiao <Jack.Xiao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Mukul Joshi <mukul.joshi@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu/mes_v12_1: initial support for mes_v12_1
Jack Xiao [Wed, 14 May 2025 09:01:21 +0000 (17:01 +0800)] 
drm/amdgpu/mes_v12_1: initial support for mes_v12_1

Duplicated and rename mes ip version name to v12_1_0.
Fix to access correct ring pipe by xcc_id.
Fix to access correct instance registers by xcc_id.
Fix to access correct index registers by grbm/xcc_id.

v2: rebase (Alex)
v3: fix sw_fini (Alex)

Signed-off-by: Jack Xiao <Jack.Xiao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Mukul Joshi <mukul.joshi@amd.com>
Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: remove direct_submit arg from amdgpu_copy_buffer
Pierre-Eric Pelloux-Prayer [Fri, 19 Sep 2025 07:13:12 +0000 (09:13 +0200)] 
drm/amdgpu: remove direct_submit arg from amdgpu_copy_buffer

It was always false.

Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Acked-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: Rename userq_mgr_xa to userq_xa
Lijo Lazar [Mon, 24 Nov 2025 08:51:43 +0000 (14:21 +0530)] 
drm/amdgpu: Rename userq_mgr_xa to userq_xa

Rename since it is an xarray of userq pointers

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: Clean up userq helper functions
Lijo Lazar [Mon, 24 Nov 2025 07:56:57 +0000 (13:26 +0530)] 
drm/amdgpu: Clean up userq helper functions

Remove userq manager from function signatures. Get the associated
manager from userq itself.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: Set GC family for GC 12.1
Likun Gao [Mon, 17 Feb 2025 03:53:16 +0000 (11:53 +0800)] 
drm/amdgpu: Set GC family for GC 12.1

Set GC family for GC 12.1.0.

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: add new compute/mes mqd structure
Jack Xiao [Tue, 18 Feb 2025 03:58:53 +0000 (11:58 +0800)] 
drm/amdgpu: add new compute/mes mqd structure

Add new compute_mqd and mes_mqd structure.
V2: Rename to v12_1_compute_mqd and v12_1_mes_mqd..

Signed-off-by: Jack Xiao <Jack.Xiao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agoamdkfd: enlarge the hashtable of kfd_process
Zhu Lingshan [Thu, 24 Oct 2024 02:32:38 +0000 (10:32 +0800)] 
amdkfd: enlarge the hashtable of kfd_process

This commit enlarges the hashtable size of
kfd_process to 256, because of the multiple
contexts feature allowing each application
create multiple kfd_processes

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 months agodrm/amdgpu: Change user queue interface signatures
Lijo Lazar [Mon, 24 Nov 2025 07:17:16 +0000 (12:47 +0530)] 
drm/amdgpu: Change user queue interface signatures

A userq is associated with its queue manager. Use that and make
the userqueue interfaces to operate on queue.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>