drm/amdgpu: check scratch registers to see if we need post (v2)
authorAlex Deucher <alexander.deucher@amd.com>
Fri, 30 Jun 2017 21:26:47 +0000 (17:26 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 14 Jul 2017 15:06:28 +0000 (11:06 -0400)
Rather than checking the CONGIG_MEMSIZE register as that may
not be reliable on some APUs.

v2: The scratch register is only used on CIK+

Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

index 541695768f0a5ea794e554dea0497b9ec7ced09e..d92ac5c1af543d2348c2d5d5974ea432047f7fc1 100644 (file)
@@ -736,7 +736,12 @@ bool amdgpu_need_post(struct amdgpu_device *adev)
                adev->has_hw_reset = false;
                return true;
        }
-       /* then check MEM_SIZE, in case the crtcs are off */
+
+       /* bios scratch used on CIK+ */
+       if (adev->asic_type >= CHIP_BONAIRE)
+               return amdgpu_atombios_scratch_need_asic_init(adev);
+
+       /* check MEM_SIZE for older asics */
        reg = amdgpu_asic_get_config_memsize(adev);
 
        if ((reg != 0) && (reg != 0xffffffff))