diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index 0e91871..0684d39 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c @@ -2450,10 +2450,11 @@ int r600_resume(struct radeon_device *rdev) { int r; - /* Do not reset GPU before posting, on r600 hw unlike on r500 hw, - * posting will perform necessary task to bring back GPU into good - * shape. - */ + /* Reset gpu before posting otherwise ATOM will enter infinite loop */ + if (radeon_asic_reset(rdev)) + dev_warn(rdev->dev, "GPU reset failed ! (GRBM_STATUS=0x%08X, GRBM_STATUS2=0x%08X)\n", + RREG32(GRBM_STATUS), RREG32(GRBM_STATUS2)); + /* post card */ atom_asic_init(rdev->mode_info.atom_context); /* Initialize clocks */