Browse Source

drm/amdgpu: wait for IB test on first device open

Instead of delaying that to the first query. Otherwise we could try to use the
SDMA for VM updates before the IB tests are done.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Christian König 6 years ago
parent
commit
3bfa8897e4
1 changed files with 3 additions and 3 deletions
  1. 3 3
      drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c

+ 3 - 3
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c

@@ -467,9 +467,6 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
 	if (!info->return_size || !info->return_pointer)
 	if (!info->return_size || !info->return_pointer)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	/* Ensure IB tests are run on ring */
-	flush_delayed_work(&adev->late_init_work);
-
 	switch (info->query) {
 	switch (info->query) {
 	case AMDGPU_INFO_ACCEL_WORKING:
 	case AMDGPU_INFO_ACCEL_WORKING:
 		ui32 = adev->accel_working;
 		ui32 = adev->accel_working;
@@ -950,6 +947,9 @@ int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
 	struct amdgpu_fpriv *fpriv;
 	struct amdgpu_fpriv *fpriv;
 	int r, pasid;
 	int r, pasid;
 
 
+	/* Ensure IB tests are run on ring */
+	flush_delayed_work(&adev->late_init_work);
+
 	file_priv->driver_priv = NULL;
 	file_priv->driver_priv = NULL;
 
 
 	r = pm_runtime_get_sync(dev->dev);
 	r = pm_runtime_get_sync(dev->dev);