drm/radeon/kms/evergreen: reset the grbm blocks at resume and init

This fixes module reloading and resume as the gfx block seems to
be left in a bad state in some cases.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Cc: stable@kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>

authored by Alex Deucher and committed by Dave Airlie 86f5c9ed 9f0c4f9c

+10
+10
drivers/gpu/drm/radeon/evergreen.c
··· 2583 { 2584 int r; 2585 2586 /* Do not reset GPU before posting, on rv770 hw unlike on r500 hw, 2587 * posting will perform necessary task to bring back GPU into good 2588 * shape. ··· 2704 r = radeon_atombios_init(rdev); 2705 if (r) 2706 return r; 2707 /* Post card if necessary */ 2708 if (!evergreen_card_posted(rdev)) { 2709 if (!rdev->bios) {
··· 2583 { 2584 int r; 2585 2586 + /* reset the asic, the gfx blocks are often in a bad state 2587 + * after the driver is unloaded or after a resume 2588 + */ 2589 + if (radeon_asic_reset(rdev)) 2590 + dev_warn(rdev->dev, "GPU reset failed !\n"); 2591 /* Do not reset GPU before posting, on rv770 hw unlike on r500 hw, 2592 * posting will perform necessary task to bring back GPU into good 2593 * shape. ··· 2699 r = radeon_atombios_init(rdev); 2700 if (r) 2701 return r; 2702 + /* reset the asic, the gfx blocks are often in a bad state 2703 + * after the driver is unloaded or after a resume 2704 + */ 2705 + if (radeon_asic_reset(rdev)) 2706 + dev_warn(rdev->dev, "GPU reset failed !\n"); 2707 /* Post card if necessary */ 2708 if (!evergreen_card_posted(rdev)) { 2709 if (!rdev->bios) {