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 <[email protected]>
---
 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

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to