Commit 13a752e3 authored by Monk Liu's avatar Monk Liu Committed by Alex Deucher
Browse files

drm/amdgpu:cleanup in_sriov_reset and lock_reset



since now gpu reset is unified with gpu_recover
for both bare-metal and SR-IOV:

1)rename in_sriov_reset to in_gpu_reset
2)move lock_reset from adev->virt to adev

Signed-off-by: default avatarMonk Liu <Monk.Liu@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 5740682e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1643,7 +1643,8 @@ struct amdgpu_device {

	/* record last mm index being written through WREG32*/
	unsigned long last_mm_index;
	bool                            in_sriov_reset;
	bool                            in_gpu_reset;
	struct mutex  lock_reset;
};

static inline struct amdgpu_device *amdgpu_ttm_adev(struct ttm_bo_device *bdev)
+5 −4
Original line number Diff line number Diff line
@@ -2163,6 +2163,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
	mutex_init(&adev->mn_lock);
	mutex_init(&adev->virt.vf_errors.lock);
	hash_init(adev->mn_hash);
	mutex_init(&adev->lock_reset);

	amdgpu_check_arguments(adev);

@@ -2990,9 +2991,9 @@ int amdgpu_gpu_recover(struct amdgpu_device *adev, struct amdgpu_job *job)

	dev_info(adev->dev, "GPU reset begin!\n");

	mutex_lock(&adev->virt.lock_reset);
	mutex_lock(&adev->lock_reset);
	atomic_inc(&adev->gpu_reset_counter);
	adev->in_sriov_reset = 1;
	adev->in_gpu_reset = 1;

	/* block TTM */
	resched = ttm_bo_lock_delayed_workqueue(&adev->mman.bdev);
@@ -3102,8 +3103,8 @@ int amdgpu_gpu_recover(struct amdgpu_device *adev, struct amdgpu_job *job)
	}

	amdgpu_vf_error_trans_all(adev);
	adev->in_sriov_reset = 0;
	mutex_unlock(&adev->virt.lock_reset);
	adev->in_gpu_reset = 0;
	mutex_unlock(&adev->lock_reset);
	return r;
}

+1 −1
Original line number Diff line number Diff line
@@ -264,7 +264,7 @@ static int psp_hw_start(struct psp_context *psp)
	struct amdgpu_device *adev = psp->adev;
	int ret;

	if (!amdgpu_sriov_vf(adev) || !adev->in_sriov_reset) {
	if (!amdgpu_sriov_vf(adev) || !adev->in_gpu_reset) {
		ret = psp_bootloader_load_sysdrv(psp);
		if (ret)
			return ret;
+1 −1
Original line number Diff line number Diff line
@@ -370,7 +370,7 @@ int amdgpu_ucode_init_bo(struct amdgpu_device *adev)
		return 0;
	}

	if (!amdgpu_sriov_vf(adev) || !adev->in_sriov_reset) {
	if (!amdgpu_sriov_vf(adev) || !adev->in_gpu_reset) {
		err = amdgpu_bo_create(adev, adev->firmware.fw_size, PAGE_SIZE, true,
					amdgpu_sriov_vf(adev) ? AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT,
					AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
+0 −2
Original line number Diff line number Diff line
@@ -115,8 +115,6 @@ void amdgpu_virt_init_setting(struct amdgpu_device *adev)
	adev->enable_virtual_display = true;
	adev->cg_flags = 0;
	adev->pg_flags = 0;

	mutex_init(&adev->virt.lock_reset);
}

uint32_t amdgpu_virt_kiq_rreg(struct amdgpu_device *adev, uint32_t reg)
Loading