[PATCH 3/3] drm/amdgpu: fix to clear ASIC INIT COMPLETE bit on resuming phase
Huang Rui
ray.huang at amd.com
Mon Apr 10 09:37:51 UTC 2017
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 at amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 5 ++++-
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 6 +++++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
index ad43299..b0dd72a8 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
@@ -1727,8 +1727,11 @@ void amdgpu_atombios_scratch_regs_restore(struct amdgpu_device *adev)
{
int i;
- for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++)
+ for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++) {
+ if (i == 7)
+ adev->bios_scratch[i] &= ~ATOM_S7_ASIC_INIT_COMPLETE_MASK;
WREG32(mmBIOS_SCRATCH_0 + i, adev->bios_scratch[i]);
+ }
}
void amdgpu_atombios_scratch_regs_engine_hung(struct amdgpu_device *adev,
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
index 4b9abd6..c7e28bf 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,8 +78,11 @@ void amdgpu_atomfirmware_scratch_regs_restore(struct amdgpu_device *adev)
{
int i;
- for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++)
+ for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++) {
+ if (i == 7)
+ adev->bios_scratch[i] &= ~ATOM_S7_ASIC_INIT_COMPLETE_MASK;
WREG32(adev->bios_scratch_reg_offset + i, adev->bios_scratch[i]);
+ }
}
int amdgpu_atomfirmware_allocate_fb_scratch(struct amdgpu_device *adev)
--
2.7.4
More information about the amd-gfx
mailing list