Skip to content

Commit 991f2e0

Browse files
tony-amdalexdeucher
authored andcommitted
drm/amdgpu: Check SQ_CONFIG register support on SRIOV
On SRIOV environments, check if RLCG supports SQ_CONFIG register programming. Signed-off-by: Tony Yi <Tony.Yi@amd.com> Reviewed-by: Zhigang Luo <zhigang.luo@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent 77cc0da commit 991f2e0

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,10 @@ enum AMDGIM_REG_ACCESS_FLAG {
152152
AMDGIM_FEATURE_MMHUB_REG_RLC_EN = (1 << 1),
153153
/* Use RLC to program GC regs */
154154
AMDGIM_FEATURE_GC_REG_RLC_EN = (1 << 2),
155-
/* Use PSP to program L1_TLB_CNTL*/
155+
/* Use PSP to program L1_TLB_CNTL */
156156
AMDGIM_FEATURE_L1_TLB_CNTL_PSP_EN = (1 << 3),
157+
/* Use RLCG to program SQ_CONFIG1 */
158+
AMDGIM_FEATURE_REG_ACCESS_SQ_CONFIG = (1 << 4),
157159
};
158160

159161
struct amdgim_pf2vf_info_v1 {
@@ -346,6 +348,10 @@ struct amdgpu_video_codec_info;
346348
#define amdgpu_sriov_rlcg_error_report_enabled(adev) \
347349
(amdgpu_sriov_reg_indirect_mmhub(adev) || amdgpu_sriov_reg_indirect_gc(adev))
348350

351+
#define amdgpu_sriov_reg_access_sq_config(adev) \
352+
(amdgpu_sriov_vf((adev)) && \
353+
((adev)->virt.reg_access & (AMDGIM_FEATURE_REG_ACCESS_SQ_CONFIG)))
354+
349355
#define amdgpu_passthrough(adev) \
350356
((adev)->virt.caps & AMDGPU_PASSTHROUGH_MODE)
351357

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ union amd_sriov_reg_access_flags {
113113
uint32_t vf_reg_access_mmhub : 1;
114114
uint32_t vf_reg_access_gc : 1;
115115
uint32_t vf_reg_access_l1_tlb_cntl : 1;
116-
uint32_t reserved : 28;
116+
uint32_t vf_reg_access_sq_config : 1;
117+
uint32_t reserved : 27;
117118
} flags;
118119
uint32_t all;
119120
};

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1351,7 +1351,9 @@ static void gfx_v9_4_3_constants_init(struct amdgpu_device *adev)
13511351
switch (amdgpu_ip_version(adev, GC_HWIP, 0)) {
13521352
/* ToDo: GC 9.4.4 */
13531353
case IP_VERSION(9, 4, 3):
1354-
if (adev->gfx.mec_fw_version >= 184)
1354+
if (adev->gfx.mec_fw_version >= 184 &&
1355+
(amdgpu_sriov_reg_access_sq_config(adev) ||
1356+
!amdgpu_sriov_vf(adev)))
13551357
adev->gmc.xnack_flags |= AMDGPU_GMC_XNACK_FLAG_CHAIN;
13561358
break;
13571359
case IP_VERSION(9, 5, 0):

0 commit comments

Comments
 (0)