Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be34d3bf authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu: use atomfirmware interfaces for scratch reg save/restore



If the board is atomfirmware based.

Acked-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 66e02bc3
Loading
Loading
Loading
Loading
+16 −4
Original line number Diff line number Diff line
@@ -2156,6 +2156,9 @@ int amdgpu_device_suspend(struct drm_device *dev, bool suspend, bool fbcon)
	 */
	amdgpu_bo_evict_vram(adev);

	if (adev->is_atom_fw)
		amdgpu_atomfirmware_scratch_regs_save(adev);
	else
		amdgpu_atombios_scratch_regs_save(adev);
	pci_save_state(dev->pdev);
	if (suspend) {
@@ -2208,6 +2211,9 @@ int amdgpu_device_resume(struct drm_device *dev, bool resume, bool fbcon)
			return r;
		}
	}
	if (adev->is_atom_fw)
		amdgpu_atomfirmware_scratch_regs_restore(adev);
	else
		amdgpu_atombios_scratch_regs_restore(adev);

	/* post card */
@@ -2593,8 +2599,14 @@ int amdgpu_gpu_reset(struct amdgpu_device *adev)
			amdgpu_display_stop_mc_access(adev, &save);
			amdgpu_wait_for_idle(adev, AMD_IP_BLOCK_TYPE_GMC);
		}
		if (adev->is_atom_fw)
			amdgpu_atomfirmware_scratch_regs_save(adev);
		else
			amdgpu_atombios_scratch_regs_save(adev);
		r = amdgpu_asic_reset(adev);
		if (adev->is_atom_fw)
			amdgpu_atomfirmware_scratch_regs_restore(adev);
		else
			amdgpu_atombios_scratch_regs_restore(adev);
		/* post card */
		amdgpu_atom_asic_init(adev->mode_info.atom_context);