From: Alex Deucher Date: Thu, 18 Jul 2024 14:22:00 +0000 (-0400) Subject: drm/amdgpu/gfx12: per queue reset only on bare metal X-Git-Tag: v6.12-rc1~126^2~6^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1a1995b1dc948d471854360ec0fd3306f54dfbae;p=thirdparty%2Fkernel%2Flinux.git drm/amdgpu/gfx12: per queue reset only on bare metal It's not supported under SR-IOV at the moment. Acked-by: Vitaly Prosyak Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c index 6e2883e2dbe5a..5935cc55a098f 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c @@ -5163,6 +5163,9 @@ static int gfx_v12_0_reset_kgq(struct amdgpu_ring *ring, unsigned int vmid) struct amdgpu_device *adev = ring->adev; int r; + if (amdgpu_sriov_vf(adev)) + return -EINVAL; + r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid, false); if (r) { dev_err(adev->dev, "reset via MES failed %d\n", r); @@ -5200,6 +5203,9 @@ static int gfx_v12_0_reset_kcq(struct amdgpu_ring *ring, unsigned int vmid) struct amdgpu_device *adev = ring->adev; int r, i; + if (amdgpu_sriov_vf(adev)) + return -EINVAL; + gfx_v12_0_set_safe_mode(adev, 0); mutex_lock(&adev->srbm_mutex); soc24_grbm_select(adev, ring->me, ring->pipe, ring->queue, 0);