diff options
| author | Huang Rui <ray.huang@amd.com> | 2017-04-10 09:29:13 +0800 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2017-04-28 17:32:13 -0400 | 
| commit | 692bb1ac038a0b736c2b6e9bba41ac2da38e16cf (patch) | |
| tree | f4d90fb41a9ca78295d8dd4feab269c9dace76f7 /drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | |
| parent | b4de2c5aab2d5cd84c2a648d825b0e48ca426e27 (diff) | |
drm/amdgpu: fix to clear ASIC INIT COMPLETE bit on resuming phase
ASIC_INIT_COMPLETE bit must be cleared during S3 resuming phase,
because VBIOS will check the bit to decide if execute ASIC_Init
posting via kernel driver.
Signed-off-by: Huang Rui <ray.huang@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_atomfirmware.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c index 4b9abd68e04f..d735cd1807b3 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c @@ -26,6 +26,7 @@  #include "atomfirmware.h"  #include "amdgpu_atomfirmware.h"  #include "atom.h" +#include "atombios.h"  #define get_index_into_master_table(master_table, table_name) (offsetof(struct master_table, table_name) / sizeof(uint16_t)) @@ -77,6 +78,12 @@ void amdgpu_atomfirmware_scratch_regs_restore(struct amdgpu_device *adev)  {  	int i; +	/* +	 * VBIOS will check ASIC_INIT_COMPLETE bit to decide if +	 * execute ASIC_Init posting via driver +	 */ +	adev->bios_scratch[7] &= ~ATOM_S7_ASIC_INIT_COMPLETE_MASK; +  	for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++)  		WREG32(adev->bios_scratch_reg_offset + i, adev->bios_scratch[i]);  } | 
