Commit 9a9e87d1 authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu/sdma: handle paging queues in amdgpu_sdma_reset_engine()



Need to properly start and stop paging queues if they are present.

This is not an issue today since we don't support a paging queue
on any chips with queue reset.

Fixes: b22659d5 ("drm/amdgpu: switch amdgpu_sdma_reset_engine to use the new sdma function pointers")
Reviewed-by: default avatarJesse Zhang <Jesse.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 4cede0ef
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -571,8 +571,11 @@ int amdgpu_sdma_reset_engine(struct amdgpu_device *adev, uint32_t instance_id)
		page_sched_stopped = true;
	}

	if (sdma_instance->funcs->stop_kernel_queue)
	if (sdma_instance->funcs->stop_kernel_queue) {
		sdma_instance->funcs->stop_kernel_queue(gfx_ring);
		if (adev->sdma.has_page_queue)
			sdma_instance->funcs->stop_kernel_queue(page_ring);
	}

	/* Perform the SDMA reset for the specified instance */
	ret = amdgpu_sdma_soft_reset(adev, instance_id);
@@ -581,8 +584,11 @@ int amdgpu_sdma_reset_engine(struct amdgpu_device *adev, uint32_t instance_id)
		goto exit;
	}

	if (sdma_instance->funcs->start_kernel_queue)
	if (sdma_instance->funcs->start_kernel_queue) {
		sdma_instance->funcs->start_kernel_queue(gfx_ring);
		if (adev->sdma.has_page_queue)
			sdma_instance->funcs->start_kernel_queue(page_ring);
	}

exit:
	/* Restart the scheduler's work queue for the GFX and page rings