diff options
| author | Andrey Grodzovsky <andrey.grodzovsky@amd.com> | 2020-07-29 13:10:29 -0400 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2020-09-15 17:24:39 -0400 | 
| commit | bf36b52e781d7412c3fce826f74ba6a73b9be4d0 (patch) | |
| tree | 6885f6ea592c9dc01a37bead6ed43ea8021c63fd /drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | |
| parent | c9a6b82f45e261d247b980a7949aaa6a9bfffe01 (diff) | |
drm/amdgpu: Avoid accessing HW when suspending SW state
At this point the ASIC is already post reset by the HW/PSP
so the HW not in proper state to be configured for suspension,
some blocks might be even gated and so best is to avoid touching it.
v2: Rename in_dpc to more meaningful name
Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c index d6981425ec51..8c9bacfdbc30 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c @@ -693,6 +693,9 @@ uint32_t amdgpu_kiq_rreg(struct amdgpu_device *adev, uint32_t reg)  	struct amdgpu_kiq *kiq = &adev->gfx.kiq;  	struct amdgpu_ring *ring = &kiq->ring; +	if (adev->in_pci_err_recovery) +		return 0; +  	BUG_ON(!ring->funcs->emit_rreg);  	spin_lock_irqsave(&kiq->ring_lock, flags); @@ -757,6 +760,9 @@ void amdgpu_kiq_wreg(struct amdgpu_device *adev, uint32_t reg, uint32_t v)  	BUG_ON(!ring->funcs->emit_wreg); +	if (adev->in_pci_err_recovery) +		return; +  	spin_lock_irqsave(&kiq->ring_lock, flags);  	amdgpu_ring_alloc(ring, 32);  	amdgpu_ring_emit_wreg(ring, reg, v); | 
