diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 1 |
3 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 66cdd89982c9..94547bd3bfce 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |||
@@ -2351,6 +2351,7 @@ int amdgpu_sriov_gpu_reset(struct amdgpu_device *adev, bool voluntary) | |||
2351 | struct amdgpu_ring *ring; | 2351 | struct amdgpu_ring *ring; |
2352 | struct dma_fence *fence = NULL, *next = NULL; | 2352 | struct dma_fence *fence = NULL, *next = NULL; |
2353 | 2353 | ||
2354 | mutex_lock(&adev->virt.lock_reset); | ||
2354 | atomic_inc(&adev->gpu_reset_counter); | 2355 | atomic_inc(&adev->gpu_reset_counter); |
2355 | 2356 | ||
2356 | /* block TTM */ | 2357 | /* block TTM */ |
@@ -2436,6 +2437,7 @@ int amdgpu_sriov_gpu_reset(struct amdgpu_device *adev, bool voluntary) | |||
2436 | dev_info(adev->dev, "GPU reset failed\n"); | 2437 | dev_info(adev->dev, "GPU reset failed\n"); |
2437 | } | 2438 | } |
2438 | 2439 | ||
2440 | mutex_unlock(&adev->virt.lock_reset); | ||
2439 | return r; | 2441 | return r; |
2440 | } | 2442 | } |
2441 | 2443 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c index 1fc48e1690ff..2feb9aa3b1f4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | |||
@@ -98,6 +98,7 @@ void amdgpu_virt_init_setting(struct amdgpu_device *adev) | |||
98 | adev->enable_virtual_display = true; | 98 | adev->enable_virtual_display = true; |
99 | 99 | ||
100 | mutex_init(&adev->virt.lock_kiq); | 100 | mutex_init(&adev->virt.lock_kiq); |
101 | mutex_init(&adev->virt.lock_reset); | ||
101 | } | 102 | } |
102 | 103 | ||
103 | uint32_t amdgpu_virt_kiq_rreg(struct amdgpu_device *adev, uint32_t reg) | 104 | uint32_t amdgpu_virt_kiq_rreg(struct amdgpu_device *adev, uint32_t reg) |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h index 7020ff22b9b5..4b05568bff00 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | |||
@@ -47,6 +47,7 @@ struct amdgpu_virt { | |||
47 | bool chained_ib_support; | 47 | bool chained_ib_support; |
48 | uint32_t reg_val_offs; | 48 | uint32_t reg_val_offs; |
49 | struct mutex lock_kiq; | 49 | struct mutex lock_kiq; |
50 | struct mutex lock_reset; | ||
50 | struct amdgpu_irq_src ack_irq; | 51 | struct amdgpu_irq_src ack_irq; |
51 | struct amdgpu_irq_src rcv_irq; | 52 | struct amdgpu_irq_src rcv_irq; |
52 | struct delayed_work flr_work; | 53 | struct delayed_work flr_work; |