Skip to content

Commit 314883f

Browse files
yunxialigregkh
authored andcommitted
drm/amdgpu: add skip_hw_access checks for sriov
[ Upstream commit b3948ad ] Accessing registers via host is missing the check for skip_hw_access and the lockdep check that comes with it. Signed-off-by: Yunxiang Li <Yunxiang.Li@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 72de6c0 commit 314883f

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -977,6 +977,9 @@ u32 amdgpu_virt_rlcg_reg_rw(struct amdgpu_device *adev, u32 offset, u32 v, u32 f
977977
return 0;
978978
}
979979

980+
if (amdgpu_device_skip_hw_access(adev))
981+
return 0;
982+
980983
reg_access_ctrl = &adev->gfx.rlc.reg_access_ctrl[xcc_id];
981984
scratch_reg0 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg0;
982985
scratch_reg1 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg1;
@@ -1053,6 +1056,9 @@ void amdgpu_sriov_wreg(struct amdgpu_device *adev,
10531056
{
10541057
u32 rlcg_flag;
10551058

1059+
if (amdgpu_device_skip_hw_access(adev))
1060+
return;
1061+
10561062
if (!amdgpu_sriov_runtime(adev) &&
10571063
amdgpu_virt_get_rlcg_reg_access_flag(adev, acc_flags, hwip, true, &rlcg_flag)) {
10581064
amdgpu_virt_rlcg_reg_rw(adev, offset, value, rlcg_flag, xcc_id);
@@ -1070,6 +1076,9 @@ u32 amdgpu_sriov_rreg(struct amdgpu_device *adev,
10701076
{
10711077
u32 rlcg_flag;
10721078

1079+
if (amdgpu_device_skip_hw_access(adev))
1080+
return 0;
1081+
10731082
if (!amdgpu_sriov_runtime(adev) &&
10741083
amdgpu_virt_get_rlcg_reg_access_flag(adev, acc_flags, hwip, false, &rlcg_flag))
10751084
return amdgpu_virt_rlcg_reg_rw(adev, offset, 0, rlcg_flag, xcc_id);

0 commit comments

Comments
 (0)