diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/si.c')
-rw-r--r-- | drivers/gpu/drm/radeon/si.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c index c354c1094967..d96f7cbca0a1 100644 --- a/drivers/gpu/drm/radeon/si.c +++ b/drivers/gpu/drm/radeon/si.c | |||
@@ -85,6 +85,9 @@ extern void si_dma_vm_set_page(struct radeon_device *rdev, | |||
85 | uint32_t incr, uint32_t flags); | 85 | uint32_t incr, uint32_t flags); |
86 | static void si_enable_gui_idle_interrupt(struct radeon_device *rdev, | 86 | static void si_enable_gui_idle_interrupt(struct radeon_device *rdev, |
87 | bool enable); | 87 | bool enable); |
88 | static void si_fini_pg(struct radeon_device *rdev); | ||
89 | static void si_fini_cg(struct radeon_device *rdev); | ||
90 | static void si_rlc_stop(struct radeon_device *rdev); | ||
88 | 91 | ||
89 | static const u32 verde_rlc_save_restore_register_list[] = | 92 | static const u32 verde_rlc_save_restore_register_list[] = |
90 | { | 93 | { |
@@ -1678,6 +1681,7 @@ static int si_init_microcode(struct radeon_device *rdev) | |||
1678 | fw_name); | 1681 | fw_name); |
1679 | release_firmware(rdev->smc_fw); | 1682 | release_firmware(rdev->smc_fw); |
1680 | rdev->smc_fw = NULL; | 1683 | rdev->smc_fw = NULL; |
1684 | err = 0; | ||
1681 | } else if (rdev->smc_fw->size != smc_req_size) { | 1685 | } else if (rdev->smc_fw->size != smc_req_size) { |
1682 | printk(KERN_ERR | 1686 | printk(KERN_ERR |
1683 | "si_smc: Bogus length %zu in firmware \"%s\"\n", | 1687 | "si_smc: Bogus length %zu in firmware \"%s\"\n", |
@@ -3608,6 +3612,13 @@ static void si_gpu_soft_reset(struct radeon_device *rdev, u32 reset_mask) | |||
3608 | dev_info(rdev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x%08X\n", | 3612 | dev_info(rdev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x%08X\n", |
3609 | RREG32(VM_CONTEXT1_PROTECTION_FAULT_STATUS)); | 3613 | RREG32(VM_CONTEXT1_PROTECTION_FAULT_STATUS)); |
3610 | 3614 | ||
3615 | /* disable PG/CG */ | ||
3616 | si_fini_pg(rdev); | ||
3617 | si_fini_cg(rdev); | ||
3618 | |||
3619 | /* stop the rlc */ | ||
3620 | si_rlc_stop(rdev); | ||
3621 | |||
3611 | /* Disable CP parsing/prefetching */ | 3622 | /* Disable CP parsing/prefetching */ |
3612 | WREG32(CP_ME_CNTL, CP_ME_HALT | CP_PFP_HALT | CP_CE_HALT); | 3623 | WREG32(CP_ME_CNTL, CP_ME_HALT | CP_PFP_HALT | CP_CE_HALT); |
3613 | 3624 | ||