Skip to content

Commit 2cbcb78

Browse files
committed
Merge tag 'amd-drm-next-5.13-2021-03-23' of https://gitlab.freedesktop.org/agd5f/linux into drm-next
amd-drm-next-5.13-2021-03-23: amdgpu: - Debugfs cleanup - Various cleanups and spelling fixes - Flexible array cleanups - Initial AMD Freesync HDMI - Display fixes - 10bpc dithering improvements - Display ASSR support - Clean up and unify powerplay and swsmu interfaces - Vangogh fixes - Add SMU gfx busy queues for RV/PCO - PCIE DPM fixes - S0ix fixes - GPU metrics data fixes - DCN secure display support - Backlight type override - Add initial support for Aldebaran - RAS fixes - Prime fixes for A+A systems - Reset fixes - Initial resource cursor support - Drop legacy IO BAR requirements - Various power fixes amdkfd: - MMU notifier fixes - APU fixes radeon: - Debugfs cleanups - Flexible array cleanups UAPI: - amdgpu: Add a new INFO ioctl interface to query video capabilities rather than hardcoding them in userspace. This allows us to provide fine grained asic capabilities (e.g., if a particular part is bandwidth limited, we can limit the capabilities). Proposed userspace: https://gitlab.freedesktop.org/leoliu/drm/-/commits/info_video_caps https://gitlab.freedesktop.org/leoliu/mesa/-/commits/info_video_caps - amdkfd: bump the driver version. There was a problem with reporting some RAS features on older versions of the driver. Proposed userspace: ROCm/ROCT-Thunk-Interface@7cdd634 Danvet: A bunch of conflicts all over, but it seems to compile ... I did put the call to dc_allow_idle_optimizations() on a single line since it looked a bit too jarring to be left alone. Signed-off-by: Daniel Vetter <[email protected]> From: Alex Deucher <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2 parents 06debd6 + 8c44390 commit 2cbcb78

File tree

323 files changed

+142321
-3917
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

323 files changed

+142321
-3917
lines changed

drivers/gpu/drm/amd/amdgpu/Kconfig

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,6 @@ config DRM_AMDGPU_USERPTR
3434
This option selects CONFIG_HMM and CONFIG_HMM_MIRROR if it
3535
isn't already selected to enabled full userptr support.
3636

37-
config DRM_AMDGPU_GART_DEBUGFS
38-
bool "Allow GART access through debugfs"
39-
depends on DRM_AMDGPU
40-
depends on DEBUG_FS
41-
default n
42-
help
43-
Selecting this option creates a debugfs file to inspect the mapped
44-
pages. Uses more memory for housekeeping, enable only for debugging.
45-
4637
source "drivers/gpu/drm/amd/acp/Kconfig"
4738
source "drivers/gpu/drm/amd/display/Kconfig"
4839
source "drivers/gpu/drm/amd/amdkfd/Kconfig"

drivers/gpu/drm/amd/amdgpu/Makefile

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ amdgpu-y += \
7171
vi.o mxgpu_vi.o nbio_v6_1.o soc15.o emu_soc.o mxgpu_ai.o nbio_v7_0.o vega10_reg_init.o \
7272
vega20_reg_init.o nbio_v7_4.o nbio_v2_3.o nv.o navi10_reg_init.o navi14_reg_init.o \
7373
arct_reg_init.o navi12_reg_init.o mxgpu_nv.o sienna_cichlid_reg_init.o vangogh_reg_init.o \
74-
nbio_v7_2.o dimgrey_cavefish_reg_init.o hdp_v4_0.o hdp_v5_0.o
74+
nbio_v7_2.o dimgrey_cavefish_reg_init.o hdp_v4_0.o hdp_v5_0.o aldebaran_reg_init.o
7575

7676
# add DF block
7777
amdgpu-y += \
@@ -83,7 +83,8 @@ amdgpu-y += \
8383
gmc_v7_0.o \
8484
gmc_v8_0.o \
8585
gfxhub_v1_0.o mmhub_v1_0.o gmc_v9_0.o gfxhub_v1_1.o mmhub_v9_4.o \
86-
gfxhub_v2_0.o mmhub_v2_0.o gmc_v10_0.o gfxhub_v2_1.o mmhub_v2_3.o
86+
gfxhub_v2_0.o mmhub_v2_0.o gmc_v10_0.o gfxhub_v2_1.o mmhub_v2_3.o \
87+
mmhub_v1_7.o
8788

8889
# add UMC block
8990
amdgpu-y += \
@@ -106,7 +107,8 @@ amdgpu-y += \
106107
psp_v3_1.o \
107108
psp_v10_0.o \
108109
psp_v11_0.o \
109-
psp_v12_0.o
110+
psp_v12_0.o \
111+
psp_v13_0.o
110112

111113
# add DCE block
112114
amdgpu-y += \
@@ -121,6 +123,7 @@ amdgpu-y += \
121123
gfx_v8_0.o \
122124
gfx_v9_0.o \
123125
gfx_v9_4.o \
126+
gfx_v9_4_2.o \
124127
gfx_v10_0.o
125128

126129
# add async DMA block
@@ -129,6 +132,7 @@ amdgpu-y += \
129132
sdma_v2_4.o \
130133
sdma_v3_0.o \
131134
sdma_v4_0.o \
135+
sdma_v4_4.o \
132136
sdma_v5_0.o \
133137
sdma_v5_2.o
134138

@@ -172,7 +176,8 @@ amdgpu-y += \
172176
amdgpu-y += \
173177
smuio_v9_0.o \
174178
smuio_v11_0.o \
175-
smuio_v11_0_6.o
179+
smuio_v11_0_6.o \
180+
smuio_v13_0.o
176181

177182
# add amdkfd interfaces
178183
amdgpu-y += amdgpu_amdkfd.o
@@ -187,6 +192,7 @@ amdgpu-y += \
187192
amdgpu_amdkfd_gfx_v8.o \
188193
amdgpu_amdkfd_gfx_v9.o \
189194
amdgpu_amdkfd_arcturus.o \
195+
amdgpu_amdkfd_aldebaran.o \
190196
amdgpu_amdkfd_gfx_v10.o \
191197
amdgpu_amdkfd_gfx_v10_3.o
192198

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/*
2+
* Copyright 2020 Advanced Micro Devices, Inc.
3+
*
4+
* Permission is hereby granted, free of charge, to any person obtaining a
5+
* copy of this software and associated documentation files (the "Software"),
6+
* to deal in the Software without restriction, including without limitation
7+
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
8+
* and/or sell copies of the Software, and to permit persons to whom the
9+
* Software is furnished to do so, subject to the following conditions:
10+
*
11+
* The above copyright notice and this permission notice shall be included in
12+
* all copies or substantial portions of the Software.
13+
*
14+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17+
* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18+
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19+
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20+
* OTHER DEALINGS IN THE SOFTWARE.
21+
*
22+
*/
23+
#include "amdgpu.h"
24+
#include "soc15.h"
25+
26+
#include "soc15_common.h"
27+
#include "aldebaran_ip_offset.h"
28+
29+
int aldebaran_reg_base_init(struct amdgpu_device *adev)
30+
{
31+
/* HW has more IP blocks, only initialized the block needed by our driver */
32+
uint32_t i;
33+
for (i = 0 ; i < MAX_INSTANCE ; ++i) {
34+
adev->reg_offset[GC_HWIP][i] = (uint32_t *)(&(GC_BASE.instance[i]));
35+
adev->reg_offset[HDP_HWIP][i] = (uint32_t *)(&(HDP_BASE.instance[i]));
36+
adev->reg_offset[MMHUB_HWIP][i] = (uint32_t *)(&(MMHUB_BASE.instance[i]));
37+
adev->reg_offset[ATHUB_HWIP][i] = (uint32_t *)(&(ATHUB_BASE.instance[i]));
38+
adev->reg_offset[NBIO_HWIP][i] = (uint32_t *)(&(NBIO_BASE.instance[i]));
39+
adev->reg_offset[MP0_HWIP][i] = (uint32_t *)(&(MP0_BASE.instance[i]));
40+
adev->reg_offset[MP1_HWIP][i] = (uint32_t *)(&(MP1_BASE.instance[i]));
41+
adev->reg_offset[DF_HWIP][i] = (uint32_t *)(&(DF_BASE.instance[i]));
42+
adev->reg_offset[OSSSYS_HWIP][i] = (uint32_t *)(&(OSSSYS_BASE.instance[i]));
43+
adev->reg_offset[SDMA0_HWIP][i] = (uint32_t *)(&(SDMA0_BASE.instance[i]));
44+
adev->reg_offset[SDMA1_HWIP][i] = (uint32_t *)(&(SDMA1_BASE.instance[i]));
45+
adev->reg_offset[SDMA2_HWIP][i] = (uint32_t *)(&(SDMA2_BASE.instance[i]));
46+
adev->reg_offset[SDMA3_HWIP][i] = (uint32_t *)(&(SDMA3_BASE.instance[i]));
47+
adev->reg_offset[SDMA4_HWIP][i] = (uint32_t *)(&(SDMA4_BASE.instance[i]));
48+
adev->reg_offset[SMUIO_HWIP][i] = (uint32_t *)(&(SMUIO_BASE.instance[i]));
49+
adev->reg_offset[THM_HWIP][i] = (uint32_t *)(&(THM_BASE.instance[i]));
50+
adev->reg_offset[UMC_HWIP][i] = (uint32_t *)(&(UMC_BASE.instance[i]));
51+
adev->reg_offset[VCN_HWIP][i] = (uint32_t *)(&(VCN_BASE.instance[i]));
52+
}
53+
return 0;
54+
}

drivers/gpu/drm/amd/amdgpu/amdgpu.h

Lines changed: 43 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,16 @@ struct amdgpu_mgpu_info
124124
uint32_t num_gpu;
125125
uint32_t num_dgpu;
126126
uint32_t num_apu;
127+
128+
/* delayed reset_func for XGMI configuration if necessary */
129+
struct delayed_work delayed_reset_work;
130+
bool pending_reset;
131+
};
132+
133+
struct amdgpu_watchdog_timer
134+
{
135+
bool timeout_fatal_disable;
136+
uint32_t period; /* maxCycles = (1 << period), the number of cycles before a timeout */
127137
};
128138

129139
#define AMDGPU_MAX_TIMEOUT_PARAM_LENGTH 256
@@ -177,14 +187,17 @@ extern int amdgpu_compute_multipipe;
177187
extern int amdgpu_gpu_recovery;
178188
extern int amdgpu_emu_mode;
179189
extern uint amdgpu_smu_memory_pool_size;
190+
extern int amdgpu_smu_pptable_id;
180191
extern uint amdgpu_dc_feature_mask;
192+
extern uint amdgpu_freesync_vid_mode;
181193
extern uint amdgpu_dc_debug_mask;
182194
extern uint amdgpu_dm_abm_level;
183195
extern int amdgpu_backlight;
184196
extern struct amdgpu_mgpu_info mgpu_info;
185197
extern int amdgpu_ras_enable;
186198
extern uint amdgpu_ras_mask;
187199
extern int amdgpu_bad_page_threshold;
200+
extern struct amdgpu_watchdog_timer amdgpu_watchdog_timer;
188201
extern int amdgpu_async_gfx_ring;
189202
extern int amdgpu_mcbp;
190203
extern int amdgpu_discovery;
@@ -584,6 +597,19 @@ enum amd_reset_method {
584597
AMD_RESET_METHOD_PCI,
585598
};
586599

600+
struct amdgpu_video_codec_info {
601+
u32 codec_type;
602+
u32 max_width;
603+
u32 max_height;
604+
u32 max_pixels_per_frame;
605+
u32 max_level;
606+
};
607+
608+
struct amdgpu_video_codecs {
609+
const u32 codec_count;
610+
const struct amdgpu_video_codec_info *codec_array;
611+
};
612+
587613
/*
588614
* ASIC specific functions.
589615
*/
@@ -628,6 +654,9 @@ struct amdgpu_asic_funcs {
628654
void (*pre_asic_init)(struct amdgpu_device *adev);
629655
/* enter/exit umd stable pstate */
630656
int (*update_umd_stable_pstate)(struct amdgpu_device *adev, bool enter);
657+
/* query video codecs */
658+
int (*query_video_codecs)(struct amdgpu_device *adev, bool encode,
659+
const struct amdgpu_video_codecs **codecs);
631660
};
632661

633662
/*
@@ -792,12 +821,7 @@ struct amdgpu_device {
792821
bool accel_working;
793822
struct notifier_block acpi_nb;
794823
struct amdgpu_i2c_chan *i2c_bus[AMDGPU_MAX_I2C_BUS];
795-
struct amdgpu_debugfs debugfs[AMDGPU_DEBUGFS_MAX_COMPONENTS];
796-
unsigned debugfs_count;
797-
#if defined(CONFIG_DEBUG_FS)
798-
struct dentry *debugfs_preempt;
799-
struct dentry *debugfs_regs[AMDGPU_DEBUGFS_MAX_COMPONENTS];
800-
#endif
824+
struct debugfs_blob_wrapper debugfs_vbios_blob;
801825
struct amdgpu_atif *atif;
802826
struct amdgpu_atcs atcs;
803827
struct mutex srbm_mutex;
@@ -853,8 +877,6 @@ struct amdgpu_device {
853877
spinlock_t audio_endpt_idx_lock;
854878
amdgpu_block_rreg_t audio_endpt_rreg;
855879
amdgpu_block_wreg_t audio_endpt_wreg;
856-
void __iomem *rio_mem;
857-
resource_size_t rio_mem_size;
858880
struct amdgpu_doorbell doorbell;
859881

860882
/* clock/pll info */
@@ -897,6 +919,7 @@ struct amdgpu_device {
897919
struct amdgpu_irq_src vupdate_irq;
898920
struct amdgpu_irq_src pageflip_irq;
899921
struct amdgpu_irq_src hpd_irq;
922+
struct amdgpu_irq_src dmub_trace_irq;
900923

901924
/* rings */
902925
u64 fence_context;
@@ -1024,6 +1047,7 @@ struct amdgpu_device {
10241047

10251048
int asic_reset_res;
10261049
struct work_struct xgmi_reset_work;
1050+
struct list_head reset_list;
10271051

10281052
long gfx_timeout;
10291053
long sdma_timeout;
@@ -1088,9 +1112,6 @@ void amdgpu_mm_wreg_mmio_rlc(struct amdgpu_device *adev,
10881112
void amdgpu_mm_wreg8(struct amdgpu_device *adev, uint32_t offset, uint8_t value);
10891113
uint8_t amdgpu_mm_rreg8(struct amdgpu_device *adev, uint32_t offset);
10901114

1091-
u32 amdgpu_io_rreg(struct amdgpu_device *adev, u32 reg);
1092-
void amdgpu_io_wreg(struct amdgpu_device *adev, u32 reg, u32 v);
1093-
10941115
u32 amdgpu_device_indirect_rreg(struct amdgpu_device *adev,
10951116
u32 pcie_index, u32 pcie_data,
10961117
u32 reg_addr);
@@ -1107,6 +1128,15 @@ void amdgpu_device_indirect_wreg64(struct amdgpu_device *adev,
11071128
bool amdgpu_device_asic_has_dc_support(enum amd_asic_type asic_type);
11081129
bool amdgpu_device_has_dc_support(struct amdgpu_device *adev);
11091130

1131+
int amdgpu_device_pre_asic_reset(struct amdgpu_device *adev,
1132+
struct amdgpu_job *job,
1133+
bool *need_full_reset_arg);
1134+
1135+
int amdgpu_do_asic_reset(struct amdgpu_hive_info *hive,
1136+
struct list_head *device_list_handle,
1137+
bool *need_full_reset_arg,
1138+
bool skip_hw_reset);
1139+
11101140
int emu_soc_asic_init(struct amdgpu_device *adev);
11111141

11121142
/*
@@ -1172,8 +1202,6 @@ int emu_soc_asic_init(struct amdgpu_device *adev);
11721202
} while (0)
11731203

11741204
#define DREG32_SYS(sqf, adev, reg) seq_printf((sqf), #reg " : 0x%08X\n", amdgpu_device_rreg((adev), (reg), false))
1175-
#define RREG32_IO(reg) amdgpu_io_rreg(adev, (reg))
1176-
#define WREG32_IO(reg, v) amdgpu_io_wreg(adev, (reg), (v))
11771205

11781206
#define REG_FIELD_SHIFT(reg, field) reg##__##field##__SHIFT
11791207
#define REG_FIELD_MASK(reg, field) reg##__##field##_MASK
@@ -1227,6 +1255,7 @@ int emu_soc_asic_init(struct amdgpu_device *adev);
12271255
#define amdgpu_asic_pre_asic_init(adev) (adev)->asic_funcs->pre_asic_init((adev))
12281256
#define amdgpu_asic_update_umd_stable_pstate(adev, enter) \
12291257
((adev)->asic_funcs->update_umd_stable_pstate ? (adev)->asic_funcs->update_umd_stable_pstate((adev), (enter)) : 0)
1258+
#define amdgpu_asic_query_video_codecs(adev, e, c) (adev)->asic_funcs->query_video_codecs((adev), (e), (c))
12301259

12311260
#define amdgpu_inc_vram_lost(adev) atomic_inc(&((adev)->vram_lost_counter));
12321261

@@ -1247,6 +1276,7 @@ void amdgpu_device_program_register_sequence(struct amdgpu_device *adev,
12471276
const u32 array_size);
12481277

12491278
bool amdgpu_device_supports_atpx(struct drm_device *dev);
1279+
int amdgpu_device_mode1_reset(struct amdgpu_device *adev);
12501280
bool amdgpu_device_supports_boco(struct drm_device *dev);
12511281
bool amdgpu_device_supports_baco(struct drm_device *dev);
12521282
bool amdgpu_device_is_peer_accessible(struct amdgpu_device *adev,

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ int amdgpu_amdkfd_init(void)
4444
int ret;
4545

4646
si_meminfo(&si);
47-
amdgpu_amdkfd_total_mem_size = si.totalram - si.totalhigh;
47+
amdgpu_amdkfd_total_mem_size = si.freeram - si.freehigh;
4848
amdgpu_amdkfd_total_mem_size *= si.mem_unit;
4949

5050
ret = kgd2kfd_init();
@@ -165,7 +165,8 @@ void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)
165165
adev->doorbell_index.last_non_cp;
166166
}
167167

168-
kgd2kfd_device_init(adev->kfd.dev, adev_to_drm(adev), &gpu_resources);
168+
adev->kfd.init_complete = kgd2kfd_device_init(adev->kfd.dev,
169+
adev_to_drm(adev), &gpu_resources);
169170
}
170171
}
171172

@@ -638,13 +639,6 @@ void amdgpu_amdkfd_set_compute_idle(struct kgd_dev *kgd, bool idle)
638639
{
639640
struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
640641

641-
/* Temp workaround to fix the soft hang observed in certain compute
642-
* applications if GFXOFF is enabled.
643-
*/
644-
if (adev->asic_type == CHIP_SIENNA_CICHLID) {
645-
pr_debug("GFXOFF is %s\n", idle ? "enabled" : "disabled");
646-
amdgpu_gfx_off_ctrl(adev, idle);
647-
}
648642
amdgpu_dpm_switch_power_profile(adev,
649643
PP_SMC_POWER_PROFILE_COMPUTE,
650644
!idle);

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ struct amdgpu_amdkfd_fence {
8080
struct amdgpu_kfd_dev {
8181
struct kfd_dev *dev;
8282
uint64_t vram_used;
83+
bool init_complete;
8384
};
8485

8586
enum kgd_engine_type {
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
* Copyright 2020 Advanced Micro Devices, Inc.
3+
*
4+
* Permission is hereby granted, free of charge, to any person obtaining a
5+
* copy of this software and associated documentation files (the "Software"),
6+
* to deal in the Software without restriction, including without limitation
7+
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
8+
* and/or sell copies of the Software, and to permit persons to whom the
9+
* Software is furnished to do so, subject to the following conditions:
10+
*
11+
* The above copyright notice and this permission notice shall be included in
12+
* all copies or substantial portions of the Software.
13+
*
14+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17+
* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18+
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19+
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20+
* OTHER DEALINGS IN THE SOFTWARE.
21+
*/
22+
#include "amdgpu.h"
23+
#include "amdgpu_amdkfd.h"
24+
#include "amdgpu_amdkfd_arcturus.h"
25+
#include "amdgpu_amdkfd_gfx_v9.h"
26+
27+
const struct kfd2kgd_calls aldebaran_kfd2kgd = {
28+
.program_sh_mem_settings = kgd_gfx_v9_program_sh_mem_settings,
29+
.set_pasid_vmid_mapping = kgd_gfx_v9_set_pasid_vmid_mapping,
30+
.init_interrupts = kgd_gfx_v9_init_interrupts,
31+
.hqd_load = kgd_gfx_v9_hqd_load,
32+
.hiq_mqd_load = kgd_gfx_v9_hiq_mqd_load,
33+
.hqd_sdma_load = kgd_arcturus_hqd_sdma_load,
34+
.hqd_dump = kgd_gfx_v9_hqd_dump,
35+
.hqd_sdma_dump = kgd_arcturus_hqd_sdma_dump,
36+
.hqd_is_occupied = kgd_gfx_v9_hqd_is_occupied,
37+
.hqd_sdma_is_occupied = kgd_arcturus_hqd_sdma_is_occupied,
38+
.hqd_destroy = kgd_gfx_v9_hqd_destroy,
39+
.hqd_sdma_destroy = kgd_arcturus_hqd_sdma_destroy,
40+
.address_watch_disable = kgd_gfx_v9_address_watch_disable,
41+
.address_watch_execute = kgd_gfx_v9_address_watch_execute,
42+
.wave_control_execute = kgd_gfx_v9_wave_control_execute,
43+
.address_watch_get_offset = kgd_gfx_v9_address_watch_get_offset,
44+
.get_atc_vmid_pasid_mapping_info =
45+
kgd_gfx_v9_get_atc_vmid_pasid_mapping_info,
46+
.set_vm_context_page_table_base = kgd_gfx_v9_set_vm_context_page_table_base,
47+
};

0 commit comments

Comments
 (0)